@rolatech/angular-services 20.0.2-beta.3 → 20.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"rolatech-angular-services.mjs","sources":["../tmp-esm2022/lib/components/dialog/dialog.component.js","../tmp-esm2022/lib/services/base.service.js","../tmp-esm2022/lib/services/product.service.js","../tmp-esm2022/lib/services/cart.service.js","../tmp-esm2022/lib/services/navigation.service.js","../tmp-esm2022/lib/services/dialog.service.js","../tmp-esm2022/lib/services/loading.service.js","../tmp-esm2022/lib/services/media.service.js","../tmp-esm2022/lib/services/layout.service.js","../tmp-esm2022/lib/services/snack-bar.service.js","../tmp-esm2022/lib/services/support.service.js","../tmp-esm2022/lib/services/breadcrumb.service.js","../tmp-esm2022/lib/services/sidenav.service.js","../tmp-esm2022/lib/services/theme.service.js","../tmp-esm2022/lib/services/order.service.js","../tmp-esm2022/lib/services/inventory.service.js","../tmp-esm2022/lib/state/notification.store.js","../tmp-esm2022/lib/services/notification.service.js","../tmp-esm2022/lib/services/product-category.service.js","../tmp-esm2022/lib/services/notification-template.service.js","../tmp-esm2022/lib/services/fulfillment.service.js","../tmp-esm2022/lib/services/title.service.js","../tmp-esm2022/lib/services/post.service.js","../tmp-esm2022/lib/services/order-payout.service.js","../tmp-esm2022/lib/services/resource.service.js","../tmp-esm2022/lib/services/resource-category.service.js","../tmp-esm2022/lib/services/booking.service.js","../tmp-esm2022/lib/services/facility.service.js","../tmp-esm2022/lib/services/amenity.service.js","../tmp-esm2022/lib/services/property.service.js","../tmp-esm2022/lib/services/feature.service.js","../tmp-esm2022/lib/services/payment.service.js","../tmp-esm2022/lib/services/offering.service.js","../tmp-esm2022/lib/services/membership.service.js","../tmp-esm2022/lib/services/category.service.js","../tmp-esm2022/lib/services/assistant-stream.service.js","../tmp-esm2022/lib/services/conversation.service.js","../tmp-esm2022/lib/services/conversation-init.service.js","../tmp-esm2022/lib/services/property-search.service.js","../tmp-esm2022/lib/interceptor/loading.interceptor.js","../tmp-esm2022/lib/directive/back-button.directive.js","../tmp-esm2022/lib/directive/hide-footer.directive.js","../tmp-esm2022/lib/directive/index.js","../tmp-esm2022/provider.js","../tmp-esm2022/rolatech-angular-services.js"],"sourcesContent":["import { Component, EventEmitter, HostListener, inject, OutputEmitterRef, viewChild, ViewContainerRef, } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogActions, MatDialogContent, MatDialogRef, MatDialogTitle } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nexport class DialogComponent {\n onEsc() {\n this.close(false);\n }\n data = inject(MAT_DIALOG_DATA);\n result;\n dialogRef = inject((MatDialogRef));\n componentRef = viewChild.required('container', { read: ViewContainerRef });\n ngOnInit() {\n this.createComponent();\n }\n ngOnDestroy() {\n this.componentRef().clear();\n }\n createComponent() {\n this.componentRef().clear();\n if (this.data.component) {\n const componentRef = this.componentRef().createComponent(this.data.component);\n const hostedComponent = componentRef.instance;\n if (this.data.data) {\n Object.keys(this.data.data).forEach((inputName) => {\n // hostedComponent[inputName] = this.data.data[inputName];\n const signalInput = typeof hostedComponent[inputName] === 'function';\n if (signalInput) {\n // hostedComponent[inputName] = input(this.data.data[inputName]);\n hostedComponent[inputName].set(this.data.data[inputName]);\n }\n else {\n hostedComponent[inputName] = this.data.data[inputName];\n }\n // hostedComponent[inputName] = signalInput ? input<any>(this.data.data[inputName]) : this.data.data[inputName];\n });\n }\n Object.keys(hostedComponent)\n .filter((prop) => {\n return hostedComponent[prop] instanceof OutputEmitterRef;\n })\n .forEach((event) => {\n this[event] = new EventEmitter();\n hostedComponent[event].subscribe((data) => {\n this[event].emit(data);\n });\n });\n }\n this.dialogRef.afterOpened().subscribe(() => {\n if (this.dialogRef.componentInstance['output']) {\n this.dialogRef.componentInstance['output'].subscribe((res) => {\n this.result = res;\n });\n }\n });\n }\n close(value = false) {\n this.dialogRef.close(value);\n }\n confirm() {\n this.close(this.result || true);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: DialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.2.0\", type: DialogComponent, isStandalone: true, selector: \"rolatech-dialog\", host: { listeners: { \"keydown.esc\": \"onEsc()\" } }, viewQueries: [{ propertyName: \"componentRef\", first: true, predicate: [\"container\"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: \"<div class=\\\"min-w-[320px]\\\">\\n <h1 class=\\\"text-xl\\\" mat-dialog-title i18n>{{ data.title }}</h1>\\n <mat-dialog-content>\\n <div>\\n <p i18n>{{ data.message }}</p>\\n <ng-template #container></ng-template>\\n <!-- <ng-container #container></ng-container> -->\\n </div>\\n </mat-dialog-content>\\n <div class=\\\"flex-1\\\"></div>\\n <mat-dialog-actions>\\n <button mat-button (click)=\\\"close()\\\" i18n>{{ data.cancelText ? data.cancelText : 'Cancel' }}</button>\\n <button mat-flat-button class=\\\"w-20\\\" (click)=\\\"confirm()\\\" i18n>{{ data.confirmText ? data.confirmText : 'Ok' }}</button>\\n </mat-dialog-actions>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"directive\", type: MatDialogActions, selector: \"[mat-dialog-actions], mat-dialog-actions, [matDialogActions]\", inputs: [\"align\"] }, { kind: \"directive\", type: MatDialogTitle, selector: \"[mat-dialog-title], [matDialogTitle]\", inputs: [\"id\"], exportAs: [\"matDialogTitle\"] }, { kind: \"directive\", type: MatDialogContent, selector: \"[mat-dialog-content], mat-dialog-content, [matDialogContent]\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: DialogComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-dialog', imports: [MatButtonModule, MatDialogActions, MatDialogTitle, MatDialogContent], template: \"<div class=\\\"min-w-[320px]\\\">\\n <h1 class=\\\"text-xl\\\" mat-dialog-title i18n>{{ data.title }}</h1>\\n <mat-dialog-content>\\n <div>\\n <p i18n>{{ data.message }}</p>\\n <ng-template #container></ng-template>\\n <!-- <ng-container #container></ng-container> -->\\n </div>\\n </mat-dialog-content>\\n <div class=\\\"flex-1\\\"></div>\\n <mat-dialog-actions>\\n <button mat-button (click)=\\\"close()\\\" i18n>{{ data.cancelText ? data.cancelText : 'Cancel' }}</button>\\n <button mat-flat-button class=\\\"w-20\\\" (click)=\\\"confirm()\\\" i18n>{{ data.confirmText ? data.confirmText : 'Ok' }}</button>\\n </mat-dialog-actions>\\n</div>\\n\" }]\n }], propDecorators: { onEsc: [{\n type: HostListener,\n args: ['keydown.esc']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUdOLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTdILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBUTNELE1BQU0sT0FBTyxlQUFlO0lBRW5CLEtBQUs7UUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLEdBQWUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sQ0FBTTtJQUNaLFNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQSxZQUE2QixDQUFBLENBQUMsQ0FBQztJQUNsRCxZQUFZLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBSyxFQUFFLENB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LEVBQUUsZ0JBQWdCLENBQUM7OEJBSXZFLEtBQUs7c0JBRFgsWUFBWTt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0RW1pdHRlclJlZixcbiAgdmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nQWN0aW9ucywgTWF0RGlhbG9nQ29udGVudCwgTWF0RGlhbG9nUmVmLCBNYXREaWFsb2dUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBEaWFsb2dEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9kaWFsb2cuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW01hdEJ1dHRvbk1vZHVsZSwgTWF0RGlhbG9nQWN0aW9ucywgTWF0RGlhbG9nVGl0bGUsIE1hdERpYWxvZ0NvbnRlbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZXNjJylcbiAgcHVibGljIG9uRXNjKCkge1xuICAgIHRoaXMuY2xvc2UoZmFsc2UpO1xuICB9XG4gIGRhdGE6IERpYWxvZ0RhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKTtcbiAgcmVzdWx0OiBhbnk7XG4gIGRpYWxvZ1JlZiA9IGluamVjdChNYXREaWFsb2dSZWY8RGlhbG9nQ29tcG9uZW50Pik7XG4gIGNvbXBvbmVudFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZCgnY29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pO1xuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNyZWF0ZUNvbXBvbmVudCgpO1xuICB9XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuY29tcG9uZW50UmVmKCkuY2xlYXIoKTtcbiAgfVxuICBjcmVhdGVDb21wb25lbnQoKSB7XG4gICAgdGhpcy5jb21wb25lbnRSZWYoKS5jbGVhcigpO1xuICAgIGlmICh0aGlzLmRhdGEuY29tcG9uZW50KSB7XG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudFJlZigpLmNyZWF0ZUNvbXBvbmVudDxEaWFsb2dDb21wb25lbnQ+KHRoaXMuZGF0YS5jb21wb25lbnQpO1xuICAgICAgY29uc3QgaG9zdGVkQ29tcG9uZW50ID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xuICAgICAgaWYgKHRoaXMuZGF0YS5kYXRhKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuZGF0YS5kYXRhKS5mb3JFYWNoKChpbnB1dE5hbWUpID0+IHtcbiAgICAgICAgICAvLyBob3N0ZWRDb21wb25lbnRbaW5wdXROYW1lXSA9IHRoaXMuZGF0YS5kYXRhW2lucHV0TmFtZV07XG4gICAgICAgICAgY29uc3Qgc2lnbmFsSW5wdXQgPSB0eXBlb2YgaG9zdGVkQ29tcG9uZW50W2lucHV0TmFtZV0gPT09ICdmdW5jdGlvbic7XG4gICAgICAgICAgaWYgKHNpZ25hbElucHV0KSB7XG4gICAgICAgICAgICAvLyBob3N0ZWRDb21wb25lbnRbaW5wdXROYW1lXSA9IGlucHV0KHRoaXMuZGF0YS5kYXRhW2lucHV0TmFtZV0pO1xuICAgICAgICAgICAgaG9zdGVkQ29tcG9uZW50W2lucHV0TmFtZV0uc2V0KHRoaXMuZGF0YS5kYXRhW2lucHV0TmFtZV0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBob3N0ZWRDb21wb25lbnRbaW5wdXROYW1lXSA9IHRoaXMuZGF0YS5kYXRhW2lucHV0TmFtZV07XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGhvc3RlZENvbXBvbmVudFtpbnB1dE5hbWVdID0gc2lnbmFsSW5wdXQgPyBpbnB1dDxhbnk+KHRoaXMuZGF0YS5kYXRhW2lucHV0TmFtZV0pIDogdGhpcy5kYXRhLmRhdGFbaW5wdXROYW1lXTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBPYmplY3Qua2V5cyhob3N0ZWRDb21wb25lbnQpXG4gICAgICAgIC5maWx0ZXIoKHByb3ApID0+IHtcbiAgICAgICAgICByZXR1cm4gaG9zdGVkQ29tcG9uZW50W3Byb3BdIGluc3RhbmNlb2YgT3V0cHV0RW1pdHRlclJlZjtcbiAgICAgICAgfSlcbiAgICAgICAgLmZvckVhY2goKGV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpc1tldmVudF0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgICAgICAgaG9zdGVkQ29tcG9uZW50W2V2ZW50XS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHRoaXNbZXZlbnRdLmVtaXQoZGF0YSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZGlhbG9nUmVmLmFmdGVyT3BlbmVkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZVsnb3V0cHV0J10pIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2VbJ291dHB1dCddLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZXN1bHQgPSByZXM7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBjbG9zZSh2YWx1ZSA9IGZhbHNlKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodmFsdWUpO1xuICB9XG4gIHB1YmxpYyBjb25maXJtKCkge1xuICAgIHRoaXMuY2xvc2UodGhpcy5yZXN1bHQgfHwgdHJ1ZSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtaW4tdy1bMzIwcHhdXCI+XG4gIDxoMSBjbGFzcz1cInRleHQteGxcIiBtYXQtZGlhbG9nLXRpdGxlIGkxOG4+e3sgZGF0YS50aXRsZSB9fTwvaDE+XG4gIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgPGRpdj5cbiAgICAgIDxwIGkxOG4+e3sgZGF0YS5tZXNzYWdlIH19PC9wPlxuICAgICAgPG5nLXRlbXBsYXRlICNjb250YWluZXI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAjY29udGFpbmVyPjwvbmctY29udGFpbmVyPiAtLT5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LTFcIj48L2Rpdj5cbiAgPG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cImNsb3NlKClcIiBpMThuPnt7IGRhdGEuY2FuY2VsVGV4dCA/IGRhdGEuY2FuY2VsVGV4dCA6ICdDYW5jZWwnIH19PC9idXR0b24+XG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJ3LTIwXCIgKGNsaWNrKT1cImNvbmZpcm0oKVwiIGkxOG4+e3sgZGF0YS5jb25maXJtVGV4dCA/IGRhdGEuY29uZmlybVRleHQgOiAnT2snIH19PC9idXR0b24+XG4gIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuPC9kaXY+XG4iXX0=","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport * as i0 from \"@angular/core\";\nexport class BaseService {\n http = inject(HttpClient);\n environment = inject(APP_CONFIG);\n actionUrl;\n endpoint;\n constructor() {\n this.init();\n }\n init() {\n this.actionUrl = `${this.environment.baseUrl}/${this.endpoint}`;\n }\n find(options, withCredentials = true) {\n return this.http.get(this.actionUrl, {\n params: options,\n withCredentials,\n });\n }\n get(id, options, withCredentials = true) {\n return this.http.get(`${this.actionUrl}/${id}`, {\n params: options,\n withCredentials,\n });\n }\n create(item) {\n return this.http.post(`${this.actionUrl}`, item, {\n withCredentials: true,\n });\n }\n update(id, data) {\n return this.http.put(`${this.actionUrl}/${id}`, data, {\n withCredentials: true,\n });\n }\n delete(id) {\n return this.http.delete(`${this.actionUrl}/${id}`, {\n withCredentials: true,\n });\n }\n updateStatus(id, data) {\n return this.http.put(`${this.actionUrl}/${id}/status`, data, {\n withCredentials: true,\n });\n }\n search(word, withCredentials = true) {\n return this.http.get(`${this.actionUrl}?search=${word}`, {\n withCredentials,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BaseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BaseService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BaseService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL2Jhc2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU10RCxNQUFNLE9BQU8sV0FBVztJQUNaLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUIsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxTQUFTLENBQVU7SUFDdEIsUUFBUSxDQUFVO0lBRXpCO1FBQ0UsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUNELElBQUk7UUFDRixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFDRCxJQUFJLENBQUksT0FBYSxFQUFFLGVBQWUsR0FBRyxJQUFJO1FBQzNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN0QyxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWU7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELEdBQUcsQ0FBSSxFQUFVLEVBQUUsT0FBYSxFQUFFLGVBQWUsR0FBRyxJQUFJO1FBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQ2pELE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZTtTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTSxDQUFJLElBQU87UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRTtZQUNsRCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTSxDQUFJLEVBQVUsRUFBRSxJQUFPO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRTtZQUN2RCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTSxDQUFJLEVBQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDcEQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFlBQVksQ0FBSSxFQUFVLEVBQUUsSUFBTztRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUU7WUFDOUQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFZLEVBQUUsZUFBZSxHQUFHLElBQUk7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFdBQVcsSUFBSSxFQUFFLEVBQUU7WUFDNUQsZUFBZTtTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQWhEVSxXQUFXOzJHQUFYLFdBQVcsY0FGVixNQUFNOzsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFQUF9DT05GSUcgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQmFzZVNlcnZpY2Uge1xuICBwcm90ZWN0ZWQgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHJvdGVjdGVkIGVudmlyb25tZW50ID0gaW5qZWN0KEFQUF9DT05GSUcpO1xuICBwcm90ZWN0ZWQgYWN0aW9uVXJsITogc3RyaW5nO1xuICBwdWJsaWMgZW5kcG9pbnQhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pbml0KCk7XG4gIH1cbiAgaW5pdCgpIHtcbiAgICB0aGlzLmFjdGlvblVybCA9IGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vJHt0aGlzLmVuZHBvaW50fWA7XG4gIH1cbiAgZmluZDxUPihvcHRpb25zPzogYW55LCB3aXRoQ3JlZGVudGlhbHMgPSB0cnVlKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4odGhpcy5hY3Rpb25VcmwsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFscyxcbiAgICB9KTtcbiAgfVxuICBnZXQ8VD4oaWQ6IHN0cmluZywgb3B0aW9ucz86IGFueSwgd2l0aENyZWRlbnRpYWxzID0gdHJ1ZSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfWAsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFscyxcbiAgICB9KTtcbiAgfVxuICBjcmVhdGU8VD4oaXRlbTogVCk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPihgJHt0aGlzLmFjdGlvblVybH1gLCBpdGVtLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBkYXRlPFQ+KGlkOiBzdHJpbmcsIGRhdGE6IFQpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUPihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH1gLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlPFQ+KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxUPihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBkYXRlU3RhdHVzPFQ+KGlkOiBzdHJpbmcsIGRhdGE6IFQpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUPihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vc3RhdHVzYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHNlYXJjaCh3b3JkOiBzdHJpbmcsIHdpdGhDcmVkZW50aWFscyA9IHRydWUpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9P3NlYXJjaD0ke3dvcmR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class ProductService extends BaseService {\n init() {\n this.endpoint = 'products';\n super.init();\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n findByIds(ids) {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}/by`, {\n params: params,\n withCredentials: true,\n });\n }\n publish(productId) {\n return this.http.post(`${this.actionUrl}/${productId}/publish`, {}, {\n withCredentials: true,\n });\n }\n archived(productId) {\n return this.http.post(`${this.actionUrl}/${productId}/archived`, {}, {\n withCredentials: true,\n });\n }\n findWishlist(options) {\n return this.http.get(`${this.actionUrl}/wishlist`, { params: options, withCredentials: true });\n }\n addToWishlist(productId) {\n return this.http.post(`${this.actionUrl}/${productId}/wishlist`, {}, { withCredentials: true });\n }\n removeFromWishlist(productId) {\n return this.http.delete(`${this.actionUrl}/${productId}/wishlist`, { withCredentials: true });\n }\n findWishlistBy(productId) {\n return this.http.get(`${this.actionUrl}/${productId}/wishlist/by`, { withCredentials: true });\n }\n findPurchasedByProductId(productId) {\n return this.http.get(`${this.actionUrl}/users/me/by?productId=${productId}`, {\n withCredentials: true,\n });\n }\n // Media\n uploadMedia(productId, data) {\n return this.http.post(`${this.actionUrl}/${productId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id, mediaId) {\n return this.http.delete(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n // Pricing\n addPricing(productId, data) {\n return this.http.post(`${this.actionUrl}/${productId}/pricing`, data, {\n withCredentials: true,\n });\n }\n updatePricing(pricingId, data) {\n return this.http.put(`${this.actionUrl}/pricing/${pricingId}`, data, {\n withCredentials: true,\n });\n }\n deletePricing(pricingId) {\n return this.http.delete(`${this.actionUrl}/pricing/${pricingId}`, {\n withCredentials: true,\n });\n }\n // Section\n addSection(productId, data) {\n return this.http.post(`${this.actionUrl}/${productId}/sections`, data, {\n withCredentials: true,\n });\n }\n addBatchSections(productId, data) {\n return this.http.post(`${this.actionUrl}/${productId}/sections/batch`, data, {\n withCredentials: true,\n });\n }\n findSections(productId) {\n return this.http.get(`${this.actionUrl}/${productId}/sections`, {\n withCredentials: true,\n });\n }\n updateSection(sectionId, data) {\n return this.http.put(`${this.actionUrl}/sections/${sectionId}`, data, {\n withCredentials: true,\n });\n }\n deleteSection(sectionId) {\n return this.http.delete(`${this.actionUrl}/sections/${sectionId}`, {\n withCredentials: true,\n });\n }\n uploadSectionMedia(sectionId, data) {\n return this.http.post(`${this.actionUrl}/sections/${sectionId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteSectionMedia(sectionId, mediaId) {\n return this.http.delete(`${this.actionUrl}/sections/${sectionId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n addOption(productId, data) {\n return this.http.post(`${this.actionUrl}/${productId}/options`, data, {\n withCredentials: true,\n });\n }\n findOptions(productId) {\n return this.http.get(`${this.actionUrl}/${productId}/options`);\n }\n updateOption(optionId, data) {\n return this.http.put(`${this.actionUrl}/options/${optionId}`, data, {\n withCredentials: true,\n });\n }\n deleteOption(optionId) {\n return this.http.delete(`${this.actionUrl}/options/${optionId}`, {\n withCredentials: true,\n });\n }\n // variants\n updateVariantPrice(productId, status) {\n return this.http.put(`${this.actionUrl}/${productId}/variants/by?status=${status}`, {}, {\n withCredentials: true,\n });\n }\n createVariants(productId, data) {\n return this.http.post(`${this.actionUrl}/${productId}/variants`, data, {\n withCredentials: true,\n });\n }\n getVariant(variantId) {\n return this.http.get(`${this.actionUrl}/variants/${variantId}`);\n }\n findVariants(productId) {\n return this.http.get(`${this.actionUrl}/${productId}/variants`);\n }\n findVariantsByIds(ids) {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}/variants/by`, {\n params: params,\n withCredentials: true,\n });\n }\n updateVariants(productId, data) {\n return this.http.put(`${this.actionUrl}/${productId}/variants`, data, {\n withCredentials: true,\n });\n }\n uploadVariantMedia(variantId, data) {\n return this.http.post(`${this.actionUrl}/variants/${variantId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteVariantMedia(variantId, mediaId) {\n return this.http.delete(`${this.actionUrl}/variants/${variantId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ProductService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ProductService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ProductService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL3Byb2R1Y3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLN0MsTUFBTSxPQUFPLGNBQWUsU0FBUSxXQUFXO0lBQ3BDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQsRUFBRSxDQUFDLE9BQVk7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxFQUFFO1lBQ2hELE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFNBQVMsQ0FBQyxHQUFrQjtRQUMxQixNQUFNLE1BQU0sR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRTtZQUNoRCxNQUFNLEVBQUUsTUFBTTtZQUNkLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLENBQUMsU0FBaUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFNBQVMsVUFBVSxFQUN4QyxFQUFFLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsSUFB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UyxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBQ3pFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxTQUFpQixFQUFFLElBQWM7UUFDbEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsU0FBUyxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQ2hGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxTQUFpQixFQUFFLE9BQWU7UUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsU0FBUyxVQUFVLE9BQU8sRUFBRSxFQUFFO1lBQ3ZGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBakxVLGNBQWM7MkdBQWQsY0FBYyxjQUZiLE1BQU07OzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0U2VydmljZSBleHRlbmRzIEJhc2VTZXJ2aWNlIHtcbiAgb3ZlcnJpZGUgaW5pdCgpIHtcbiAgICB0aGlzLmVuZHBvaW50ID0gJ3Byb2R1Y3RzJztcbiAgICBzdXBlci5pbml0KCk7XG4gIH1cblxuICBtZShvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L21lYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRCeUlkcyhpZHM6IEFycmF5PHN0cmluZz4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IHsgaWRzOiBpZHMuam9pbignLCcpIH07XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vYnlgLCB7XG4gICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBwdWJsaXNoKHByb2R1Y3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb2R1Y3RJZH0vcHVibGlzaGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIGFyY2hpdmVkKHByb2R1Y3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb2R1Y3RJZH0vYXJjaGl2ZWRgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICBmaW5kV2lzaGxpc3Qob3B0aW9uczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hY3Rpb25Vcmx9L3dpc2hsaXN0YCwgeyBwYXJhbXM6IG9wdGlvbnMsIHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBhZGRUb1dpc2hsaXN0KHByb2R1Y3RJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb2R1Y3RJZH0vd2lzaGxpc3RgLCB7fSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgcmVtb3ZlRnJvbVdpc2hsaXN0KHByb2R1Y3RJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvZHVjdElkfS93aXNobGlzdGAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGZpbmRXaXNobGlzdEJ5KHByb2R1Y3RJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvZHVjdElkfS93aXNobGlzdC9ieWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGZpbmRQdXJjaGFzZWRCeVByb2R1Y3RJZChwcm9kdWN0SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYWN0aW9uVXJsfS91c2Vycy9tZS9ieT9wcm9kdWN0SWQ9JHtwcm9kdWN0SWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIC8vIE1lZGlhXG4gIHVwbG9hZE1lZGlhKHByb2R1Y3RJZDogc3RyaW5nLCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvZHVjdElkfS9tZWRpYWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVNZWRpYShpZDogc3RyaW5nLCBtZWRpYUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L21lZGlhLyR7bWVkaWFJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgLy8gUHJpY2luZ1xuICBhZGRQcmljaW5nKHByb2R1Y3RJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb2R1Y3RJZH0vcHJpY2luZ2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVQcmljaW5nKHByaWNpbmdJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ByaWNpbmcvJHtwcmljaW5nSWR9YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZVByaWNpbmcocHJpY2luZ0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ByaWNpbmcvJHtwcmljaW5nSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIC8vIFNlY3Rpb25cbiAgYWRkU2VjdGlvbihwcm9kdWN0SWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9kdWN0SWR9L3NlY3Rpb25zYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGFkZEJhdGNoU2VjdGlvbnMocHJvZHVjdElkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvZHVjdElkfS9zZWN0aW9ucy9iYXRjaGAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kU2VjdGlvbnMocHJvZHVjdElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvZHVjdElkfS9zZWN0aW9uc2AsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVTZWN0aW9uKHNlY3Rpb25JZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3NlY3Rpb25zLyR7c2VjdGlvbklkfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVTZWN0aW9uKHNlY3Rpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9zZWN0aW9ucy8ke3NlY3Rpb25JZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBsb2FkU2VjdGlvbk1lZGlhKHNlY3Rpb25JZDogc3RyaW5nLCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3NlY3Rpb25zLyR7c2VjdGlvbklkfS9tZWRpYWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVTZWN0aW9uTWVkaWEoc2VjdGlvbklkOiBzdHJpbmcsIG1lZGlhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vc2VjdGlvbnMvJHtzZWN0aW9uSWR9L21lZGlhLyR7bWVkaWFJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgYWRkT3B0aW9uKHByb2R1Y3RJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb2R1Y3RJZH0vb3B0aW9uc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kT3B0aW9ucyhwcm9kdWN0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9kdWN0SWR9L29wdGlvbnNgKTtcbiAgfVxuICB1cGRhdGVPcHRpb24ob3B0aW9uSWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9vcHRpb25zLyR7b3B0aW9uSWR9YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZU9wdGlvbihvcHRpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9vcHRpb25zLyR7b3B0aW9uSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIC8vIHZhcmlhbnRzXG4gIHVwZGF0ZVZhcmlhbnRQcmljZShwcm9kdWN0SWQ6IHN0cmluZywgc3RhdHVzOiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvZHVjdElkfS92YXJpYW50cy9ieT9zdGF0dXM9JHtzdGF0dXN9YCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbiAgY3JlYXRlVmFyaWFudHMocHJvZHVjdElkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvZHVjdElkfS92YXJpYW50c2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBnZXRWYXJpYW50KHZhcmlhbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS92YXJpYW50cy8ke3ZhcmlhbnRJZH1gKTtcbiAgfVxuICBmaW5kVmFyaWFudHMocHJvZHVjdElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvZHVjdElkfS92YXJpYW50c2ApO1xuICB9XG4gIGZpbmRWYXJpYW50c0J5SWRzKGlkczogQXJyYXk8c3RyaW5nPik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgcGFyYW1zID0geyBpZHM6IGlkcy5qb2luKCcsJykgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS92YXJpYW50cy9ieWAsIHtcbiAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZVZhcmlhbnRzKHByb2R1Y3RJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvZHVjdElkfS92YXJpYW50c2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGxvYWRWYXJpYW50TWVkaWEodmFyaWFudElkOiBzdHJpbmcsIGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vdmFyaWFudHMvJHt2YXJpYW50SWR9L21lZGlhYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZVZhcmlhbnRNZWRpYSh2YXJpYW50SWQ6IHN0cmluZywgbWVkaWFJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS92YXJpYW50cy8ke3ZhcmlhbnRJZH0vbWVkaWEvJHttZWRpYUlkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { EventEmitter, inject, Injectable } from '@angular/core';\nimport { map, switchMap } from 'rxjs';\nimport _ from 'lodash';\nimport { BaseService } from './base.service';\nimport { ProductService } from './product.service';\nimport * as i0 from \"@angular/core\";\nexport var CartEventType;\n(function (CartEventType) {\n CartEventType[CartEventType[\"CartAdd\"] = 0] = \"CartAdd\";\n CartEventType[CartEventType[\"CartRemove\"] = 1] = \"CartRemove\";\n})(CartEventType || (CartEventType = {}));\nexport class CartService extends BaseService {\n productService = inject(ProductService);\n cartEvent = new EventEmitter();\n init() {\n this.endpoint = 'carts';\n super.init();\n }\n findDetails(options) {\n return this.http\n .get(`${this.actionUrl}`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const productIds = _.uniq(_.map(res.data, 'productId')); // [12, 14, 16, 18]\n return this.findProductsByIds(productIds).pipe(map((products) => {\n res.data?.forEach((item) => {\n const matchingProduct = _.find(products.data, { id: item.productId });\n item.product = matchingProduct;\n });\n return res;\n }));\n }), switchMap((res) => {\n const variantIds = _.uniq(_.map(res.data, 'variantId')); // [12, 14, 16, 18]\n return this.findVariantsByIds(variantIds).pipe(map((variants) => {\n res.data?.forEach((item) => {\n const matchingVariant = _.find(variants.data, { id: item.variantId });\n item.variant = matchingVariant;\n });\n return res;\n }));\n }));\n }\n findProductsByIds(ids) {\n return this.productService.findByIds(ids);\n }\n findVariantsByIds(ids) {\n return this.productService.findVariantsByIds(ids);\n }\n by(options) {\n return this.http.get(`${this.actionUrl}/items/by`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n deleteByIds(ids) {\n return this.http.delete(`${this.actionUrl}/me`, {\n withCredentials: true,\n });\n }\n deleteAll() {\n return this.http.delete(`${this.actionUrl}/me`, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: CartService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: CartService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: CartService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL2NhcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBQ25ELE1BQU0sQ0FBTixJQUFZLGFBR1g7QUFIRCxXQUFZLGFBQWE7SUFDdkIsdURBQVcsQ0FBQTtJQUNYLDZEQUFjLENBQUE7QUFDaEIsQ0FBQyxFQUhXLGFBQWEsS0FBYixhQUFhLFFBR3hCO0FBSUQsTUFBTSxPQUFPLFdBQVksU0FBUSxXQUFXO0lBQzFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsU0FBUyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO0lBQ3JDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQVk7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUM3QixNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDRCxJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDckIsTUFB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VyxjQUZWLE1BQU07OzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdWN0U2VydmljZSB9IGZyb20gJy4vcHJvZHVjdC5zZXJ2aWNlJztcbmV4cG9ydCBlbnVtIENhcnRFdmVudFR5cGUge1xuICBDYXJ0QWRkID0gMCxcbiAgQ2FydFJlbW92ZSA9IDEsXG59XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2FydFNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIHByb2R1Y3RTZXJ2aWNlID0gaW5qZWN0KFByb2R1Y3RTZXJ2aWNlKTtcbiAgY2FydEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxDYXJ0RXZlbnRUeXBlPigpO1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAnY2FydHMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICBmaW5kRGV0YWlscyhvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH1gLCB7XG4gICAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJvZHVjdElkcyA9IF8udW5pcShfLm1hcChyZXMuZGF0YSwgJ3Byb2R1Y3RJZCcpKTsgLy8gWzEyLCAxNCwgMTYsIDE4XVxuICAgICAgICAgIHJldHVybiB0aGlzLmZpbmRQcm9kdWN0c0J5SWRzKHByb2R1Y3RJZHMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHByb2R1Y3RzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmVzLmRhdGE/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ1Byb2R1Y3QgPSBfLmZpbmQocHJvZHVjdHMuZGF0YSwgeyBpZDogaXRlbS5wcm9kdWN0SWQgfSk7XG4gICAgICAgICAgICAgICAgaXRlbS5wcm9kdWN0ID0gbWF0Y2hpbmdQcm9kdWN0O1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFyaWFudElkcyA9IF8udW5pcShfLm1hcChyZXMuZGF0YSwgJ3ZhcmlhbnRJZCcpKTsgLy8gWzEyLCAxNCwgMTYsIDE4XVxuICAgICAgICAgIHJldHVybiB0aGlzLmZpbmRWYXJpYW50c0J5SWRzKHZhcmlhbnRJZHMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHZhcmlhbnRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmVzLmRhdGE/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ1ZhcmlhbnQgPSBfLmZpbmQodmFyaWFudHMuZGF0YSwgeyBpZDogaXRlbS52YXJpYW50SWQgfSk7XG4gICAgICAgICAgICAgICAgaXRlbS52YXJpYW50ID0gbWF0Y2hpbmdWYXJpYW50O1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuICBmaW5kUHJvZHVjdHNCeUlkcyhpZHM6IEFycmF5PHN0cmluZz4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnByb2R1Y3RTZXJ2aWNlLmZpbmRCeUlkcyhpZHMpO1xuICB9XG4gIGZpbmRWYXJpYW50c0J5SWRzKGlkczogQXJyYXk8c3RyaW5nPik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucHJvZHVjdFNlcnZpY2UuZmluZFZhcmlhbnRzQnlJZHMoaWRzKTtcbiAgfVxuICBieShvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2l0ZW1zL2J5YCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIG1lKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vbWVgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlQnlJZHMoaWRzOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L21lYCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZUFsbCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L21lYCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { NavigationEnd, Router } from '@angular/router';\nimport * as i0 from \"@angular/core\";\nexport class NavigationService {\n history = [];\n router = inject(Router);\n location = inject(Location);\n constructor() {\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n this.history.push(event.urlAfterRedirects);\n }\n });\n }\n start() {\n // this.router.events.subscribe((event) => {\n // if (event instanceof NavigationEnd) {\n // this.history.push(event.urlAfterRedirects);\n // }\n // });\n }\n getHistory() {\n return this.history;\n }\n back() {\n this.history.pop();\n if (this.history.length > 0) {\n this.location.back();\n }\n else {\n this.router.navigateByUrl('/');\n }\n }\n next() {\n if (this.history.length > 0) {\n return this.history[this.history.length - 2];\n }\n return '';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NavigationService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NavigationService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFLeEQsTUFBTSxPQUFPLGlCQUFpQjtJQUNwQixPQUFPLEdBQWEsRUFBRSxDQUFDO0lBQy9CLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QjtRQUNFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3JDLElBQUksS0FBSyxZQUFZLGFBQWEsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUM3QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsS0FBSztRQUNILDRDQUE0QztRQUM1QywwQ0FBMEM7UUFDMUMsa0RBQWtEO1FBQ2xELE1BQU07UUFDTixNQUFNO0lBQ1IsQ0FBQztJQUNELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUNELElBQUk7UUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0lBQ0QsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7dUdBbENVLGlCQUFpQjsyR0FBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgaGlzdG9yeTogc3RyaW5nW10gPSBbXTtcbiAgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIGxvY2F0aW9uID0gaW5qZWN0KExvY2F0aW9uKTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgdGhpcy5oaXN0b3J5LnB1c2goZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHN0YXJ0KCkge1xuICAgIC8vIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgLy8gICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgLy8gICAgIHRoaXMuaGlzdG9yeS5wdXNoKGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKTtcbiAgICAvLyAgIH1cbiAgICAvLyB9KTtcbiAgfVxuICBnZXRIaXN0b3J5KCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5oaXN0b3J5O1xuICB9XG4gIGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5oaXN0b3J5LnBvcCgpO1xuICAgIGlmICh0aGlzLmhpc3RvcnkubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nKTtcbiAgICB9XG4gIH1cbiAgbmV4dCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmhpc3RvcnkubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuaGlzdG9yeVt0aGlzLmhpc3RvcnkubGVuZ3RoIC0gMl07XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxufVxuIl19","import { inject, Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { map, take } from 'rxjs';\nimport { DialogComponent } from '../components/dialog/dialog.component';\nimport * as i0 from \"@angular/core\";\nexport class DialogService {\n dialog = inject(MatDialog);\n dialogRef;\n open(options) {\n this.dialogRef = this.dialog.open(DialogComponent, {\n data: {\n ...options,\n },\n });\n }\n cancelled() {\n return this.dialogRef.beforeClosed().pipe(take(1), map((res) => res));\n }\n confirmed() {\n return this.dialogRef.afterClosed().pipe(take(1), map((res) => res));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: DialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: DialogService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: DialogService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvc2VydmljZXMvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsR0FBRyxFQUFjLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7O0FBSXhFLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsU0FBUyxDQUFpQztJQUVuQyxJQUFJLENBQUMsT0FBbUI7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBOEIsZUFBZSxFQUFFO1lBQzlFLElBQUksRUFBRTtnQkFDSixHQUFHLE9BQU87YUFDWDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FDdkMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQ2xCLENBQUM7SUFDSixDQUFDO0lBQ00sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQ3RDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUNsQixDQUFDO0lBQ0osQ0FBQzt1R0F0QlUsYUFBYTsyR0FBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlhbG9nRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGlhbG9nU2VydmljZSB7XG4gIGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICBkaWFsb2dSZWYhOiBNYXREaWFsb2dSZWY8RGlhbG9nQ29tcG9uZW50PjtcblxuICBwdWJsaWMgb3BlbihvcHRpb25zOiBEaWFsb2dEYXRhKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuPERpYWxvZ0NvbXBvbmVudCwgRGlhbG9nRGF0YT4oRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBjYW5jZWxsZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWYuYmVmb3JlQ2xvc2VkKCkucGlwZShcbiAgICAgIHRha2UoMSksXG4gICAgICBtYXAoKHJlcykgPT4gcmVzKSxcbiAgICApO1xuICB9XG4gIHB1YmxpYyBjb25maXJtZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKFxuICAgICAgdGFrZSgxKSxcbiAgICAgIG1hcCgocmVzKSA9PiByZXMpLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class LoadingService {\n loading$ = new BehaviorSubject(false);\n ratio$ = new BehaviorSubject(0);\n isLoading = false;\n constructor() { }\n start() {\n this.loading$.next(true);\n }\n stop() {\n this.loading$.next(false);\n }\n async present(text) {\n this.isLoading = true;\n }\n async dismiss() {\n this.isLoading = false;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LoadingService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LoadingService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL2xvYWRpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3ZDLE1BQU0sT0FBTyxjQUFjO0lBQ2xCLFFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUVsQixnQkFBZSxDQUFDO0lBRWhCLEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQWE7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPO1FBQ1gsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQzt1R0FwQlUsY0FBYzsyR0FBZCxjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExvYWRpbmdTZXJ2aWNlIHtcbiAgcHVibGljIGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHB1YmxpYyByYXRpbyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDApO1xuICBpc0xvYWRpbmcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgc3RhcnQoKSB7XG4gICAgdGhpcy5sb2FkaW5nJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgc3RvcCgpIHtcbiAgICB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpO1xuICB9XG4gIGFzeW5jIHByZXNlbnQodGV4dD86IHN0cmluZykge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIGRpc21pc3MoKSB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class MediaService extends BaseService {\n init() {\n this.endpoint = 'media';\n super.init();\n }\n upload(data) {\n return this.http.post(`${this.actionUrl}/upload`, data, {\n reportProgress: false,\n withCredentials: true,\n // headers: new HttpHeaders({\n // 'Content-Type': 'multipart/form-data',\n // }),\n });\n }\n uploadAndSave(data) {\n return this.http.post(`${this.actionUrl}/save`, data, {\n reportProgress: false,\n withCredentials: true,\n });\n }\n deleteBy(filename) {\n return this.http.delete(`${this.actionUrl}/${filename}`, {});\n }\n batchDelete(data) {\n return this.http.post(`${this.actionUrl}/batch`, data, { withCredentials: true });\n }\n moveToGroup(data) {\n return this.http.post(`${this.actionUrl}/move`, data, { withCredentials: true });\n }\n addGroup(data) {\n return this.http.post(`${this.actionUrl}/groups`, data, { withCredentials: true });\n }\n findGroup(id) {\n return this.http.get(`${this.actionUrl}/groups/${id}`, { withCredentials: true });\n }\n findGroups(options) {\n return this.http.get(`${this.actionUrl}/groups`, { withCredentials: true });\n }\n getImageInfo(url) {\n return this.http.get(`${url}?imageInfo`);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: MediaService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: MediaService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: MediaService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9tZWRpYS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUs3QyxNQUFNLE9BQU8sWUFBYSxTQUFRLFdBQVc7SUFDbEMsSUFBSTtRQUNYLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBYztRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsU0FBUyxFQUFFLElBQUksRUFBRTtZQUMzRCxjQUFjLEVBQUUsS0FBSztZQUNyQixlQUFlLEVBQUUsSUFBSTtZQUNyQiw2QkFBNkI7WUFDN0IsMkNBQTJDO1lBQzNDLE1BQU07U0FDUCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLElBQWM7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLE9BQU8sRUFBRSxJQUFJLEVBQUU7WUFDekQsY0FBYyxFQUFFLEtBQUs7WUFDckIsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVEsQ0FBQyxRQUFnQjtRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBQ0QsV0FBVyxDQUFDLElBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBQ0QsV0FBVyxDQUFDLElBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBQ0QsUUFBUSxDQUFDLElBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBQ0QsU0FBUyxDQUFDLEVBQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBQ0QsVUFBVSxDQUFDLE9BQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFNBQVMsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFDRCxZQUFZLENBQUMsR0FBVztRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUMsQ0FBQztJQUMzQyxDQUFDO3VHQXhDVSxZQUFZOzJHQUFaLFlBQVksY0FGWCxNQUFNOzsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTWVkaWFTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAnbWVkaWEnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICB1cGxvYWQoZGF0YTogRm9ybURhdGEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS91cGxvYWRgLCBkYXRhLCB7XG4gICAgICByZXBvcnRQcm9ncmVzczogZmFsc2UsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAvLyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgLy8gICAnQ29udGVudC1UeXBlJzogJ211bHRpcGFydC9mb3JtLWRhdGEnLFxuICAgICAgLy8gfSksXG4gICAgfSk7XG4gIH1cbiAgdXBsb2FkQW5kU2F2ZShkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3NhdmVgLCBkYXRhLCB7XG4gICAgICByZXBvcnRQcm9ncmVzczogZmFsc2UsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlQnkoZmlsZW5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtmaWxlbmFtZX1gLCB7fSk7XG4gIH1cbiAgYmF0Y2hEZWxldGUoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vYmF0Y2hgLCBkYXRhLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBtb3ZlVG9Hcm91cChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9tb3ZlYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgYWRkR3JvdXAoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vZ3JvdXBzYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgZmluZEdyb3VwKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2dyb3Vwcy8ke2lkfWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGZpbmRHcm91cHMob3B0aW9ucz86IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vZ3JvdXBzYCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgZ2V0SW1hZ2VJbmZvKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt1cmx9P2ltYWdlSW5mb2ApO1xuICB9XG59XG4iXX0=","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { computed, inject, Injectable, signal } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { map, shareReplay } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nexport class LayoutService {\n breakpointObserver = inject(BreakpointObserver);\n route = inject(ActivatedRoute);\n router = inject(Router);\n isHandset$;\n _hideFooter = signal(false, ...(ngDevMode ? [{ debugName: \"_hideFooter\" }] : []));\n hideFooter = computed(() => this._hideFooter(), ...(ngDevMode ? [{ debugName: \"hideFooter\" }] : []));\n constructor() {\n this.isHandset$ = this.breakpointObserver\n .observe([Breakpoints.Small, Breakpoints.HandsetPortrait])\n .pipe(map((result) => result.matches), shareReplay());\n this.router.events\n // .pipe(filter((e): e is NavigationEnd => e instanceof NavigationEnd))\n .subscribe(() => {\n let r = this.route;\n while (r.firstChild)\n r = r.firstChild;\n const hide = r.snapshot.data['hideFooter'] === true;\n this.setHideFooter(hide);\n });\n }\n setHideFooter(v) {\n this._hideFooter.set(v);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LayoutService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LayoutService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvc2VydmljZXMvbGF5b3V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFeEUsT0FBTyxFQUFVLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHMUQsTUFBTSxPQUFPLGFBQWE7SUFDeEIsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFDL0MsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUM5QixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3ZCLFVBQVUsQ0FBc0I7SUFDeEIsV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLHVEQUFDLENBQUM7SUFDcEMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLHNEQUFDLENBQUM7SUFFaEQ7UUFDRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0I7YUFDdEMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDekQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUMvQixXQUFXLEVBQUUsQ0FDZCxDQUFDO1FBRUosSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQ2hCLHVFQUF1RTthQUN0RSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBRWQsSUFBSSxDQUFDLEdBQW1CLElBQUksQ0FBQyxLQUFLLENBQUM7WUFFbkMsT0FBTyxDQUFDLENBQUMsVUFBVTtnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQztZQUN0QyxNQUFNLElBQUksR0FBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQWEsS0FBSyxJQUFJLENBQUM7WUFFakUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxhQUFhLENBQUMsQ0FBVTtRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQixDQUFDO3VHQTlCVSxhQUFhOzJHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBjb21wdXRlZCwgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTGF5b3V0U2VydmljZSB7XG4gIGJyZWFrcG9pbnRPYnNlcnZlciA9IGluamVjdChCcmVha3BvaW50T2JzZXJ2ZXIpXG4gIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKVxuICByb3V0ZXIgPSBpbmplY3QoUm91dGVyKVxuICBpc0hhbmRzZXQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwcml2YXRlIF9oaWRlRm9vdGVyID0gc2lnbmFsKGZhbHNlKTtcbiAgaGlkZUZvb3RlciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2hpZGVGb290ZXIoKSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pc0hhbmRzZXQkID0gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJcbiAgICAgIC5vYnNlcnZlKFtCcmVha3BvaW50cy5TbWFsbCwgQnJlYWtwb2ludHMuSGFuZHNldFBvcnRyYWl0XSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3VsdCkgPT4gcmVzdWx0Lm1hdGNoZXMpLFxuICAgICAgICBzaGFyZVJlcGxheSgpXG4gICAgICApO1xuXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAvLyAucGlwZShmaWx0ZXIoKGUpOiBlIGlzIE5hdmlnYXRpb25FbmQgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG5cbiAgICAgICAgbGV0IHI6IEFjdGl2YXRlZFJvdXRlID0gdGhpcy5yb3V0ZTtcblxuICAgICAgICB3aGlsZSAoci5maXJzdENoaWxkKSByID0gci5maXJzdENoaWxkO1xuICAgICAgICBjb25zdCBoaWRlID0gKHIuc25hcHNob3QuZGF0YVsnaGlkZUZvb3RlciddIGFzIGJvb2xlYW4pID09PSB0cnVlO1xuXG4gICAgICAgIHRoaXMuc2V0SGlkZUZvb3RlcihoaWRlKTtcbiAgICAgIH0pO1xuICB9XG4gIHNldEhpZGVGb290ZXIodjogYm9vbGVhbikge1xuICAgIHRoaXMuX2hpZGVGb290ZXIuc2V0KHYpO1xuICB9XG59XG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport * as i0 from \"@angular/core\";\nexport class SnackBarService {\n snackBar = inject(MatSnackBar);\n open(message) {\n this.snackBar.open(message);\n }\n dismiss() {\n this.snackBar.dismiss();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SnackBarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SnackBarService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SnackBarService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2stYmFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvc2VydmljZXMvc25hY2stYmFyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUcxRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixRQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9CLElBQUksQ0FBQyxPQUFPO1FBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELE9BQU87UUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7dUdBUFUsZUFBZTsyR0FBZixlQUFlOzsyRkFBZixlQUFlO2tCQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTbmFja0JhclNlcnZpY2Uge1xuICBzbmFja0JhciA9IGluamVjdChNYXRTbmFja0Jhcik7XG4gIG9wZW4obWVzc2FnZSkge1xuICAgIHRoaXMuc25hY2tCYXIub3BlbihtZXNzYWdlKTtcbiAgfVxuICBkaXNtaXNzKCkge1xuICAgIHRoaXMuc25hY2tCYXIuZGlzbWlzcygpO1xuICB9XG59XG4iXX0=","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport * as i0 from \"@angular/core\";\nexport class SupportService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n findAllBuckets(options) {\n return this.http.get(`${this.environment.baseUrl}/support/buckets`, {\n params: options,\n withCredentials: false,\n });\n }\n findAll(options) {\n return this.http.get(`${this.environment.baseUrl}/support/folders`, {\n params: options,\n withCredentials: false,\n });\n }\n findFolderBySlug(slug) {\n return this.http.get(`${this.environment.baseUrl}/support/folders/slug/${slug}`, {\n withCredentials: false,\n });\n }\n findByPath(path) {\n return this.http.get(`${this.environment.baseUrl}/support/folders/by?path=${path}`, {\n withCredentials: false,\n });\n }\n findAllFiles(options) {\n return this.http.get(`${this.environment.baseUrl}/support/files`, {\n params: options,\n withCredentials: false,\n });\n }\n findFileByFolder(folder) {\n return this.http.get(`${this.environment.baseUrl}/support/files/by?folder=${folder}`, {\n withCredentials: false,\n });\n }\n findFileBySlug(slug) {\n return this.http.get(`${this.environment.baseUrl}/support/files/slug/${slug}`, {\n withCredentials: false,\n });\n }\n uploadFile(data) {\n return this.http.post(`${this.environment.baseUrl}/support/files`, data, {\n withCredentials: true,\n });\n }\n createBucket(data) {\n return this.http.post(`${this.environment.baseUrl}/support/buckets`, data, {\n withCredentials: true,\n });\n }\n createFolderBySlug(slug, data) {\n return this.http.post(`${this.environment.baseUrl}/support/folders/slug/${slug}`, data, {\n withCredentials: true,\n });\n }\n uploadFileBySlug(slug, data) {\n return this.http.post(`${this.environment.baseUrl}/support/files/slug/${slug}`, data, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SupportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SupportService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SupportService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL3N1cHBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUt0RCxNQUFNLE9BQU8sY0FBYztJQUN6QixXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFMUIsY0FBYyxDQUFDLE9BQVk7UUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxrQkFBa0IsRUFBRTtZQUN2RSxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxLQUFLO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLENBQUMsT0FBWTtRQUNsQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLGtCQUFrQixFQUFFO1lBQ3ZFLE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLEtBQUs7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGdCQUFnQixDQUFDLElBQVk7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyx5QkFBeUIsSUFBSSxFQUFFLEVBQUU7WUFDcEYsZUFBZSxFQUFFLEtBQUs7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVUsQ0FBQyxJQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sNEJBQTRCLElBQUksRUFBRSxFQUFFO1lBQ3ZGLGVBQWUsRUFBRSxLQUFLO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxZQUFZLENBQUMsT0FBWTtRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLGdCQUFnQixFQUFFO1lBQ3JFLE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLEtBQUs7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGdCQUFnQixDQUFDLE1BQWM7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyw0QkFBNEIsTUFBTSxFQUFFLEVBQUU7WUFDekYsZUFBZSxFQUFFLEtBQUs7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sdUJBQXVCLElBQUksRUFBRSxFQUFFO1lBQ2xGLGVBQWUsRUFBRSxLQUFLO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxVQUFVLENBQUMsSUFBYztRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLGdCQUFnQixFQUFFLElBQUksRUFBRTtZQUM1RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsWUFBWSxDQUFDLElBQVM7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxrQkFBa0IsRUFBRSxJQUFJLEVBQUU7WUFDOUUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGtCQUFrQixDQUFDLElBQVksRUFBRSxJQUFTO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8seUJBQXlCLElBQUksRUFBRSxFQUFFLElBQUksRUFBRTtZQUMzRixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLElBQWM7UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyx1QkFBdUIsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFO1lBQ3pGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBN0RVLGNBQWM7MkdBQWQsY0FBYyxjQUZiLE1BQU07OzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVBQX0NPTkZJRyB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTdXBwb3J0U2VydmljZSB7XG4gIGVudmlyb25tZW50ID0gaW5qZWN0KEFQUF9DT05GSUcpO1xuICBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuXG4gIGZpbmRBbGxCdWNrZXRzKG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9zdXBwb3J0L2J1Y2tldHNgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRBbGwob3B0aW9uczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L3N1cHBvcnQvZm9sZGVyc2AsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gICAgfSk7XG4gIH1cbiAgZmluZEZvbGRlckJ5U2x1ZyhzbHVnOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vc3VwcG9ydC9mb2xkZXJzL3NsdWcvJHtzbHVnfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gICAgfSk7XG4gIH1cbiAgZmluZEJ5UGF0aChwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vc3VwcG9ydC9mb2xkZXJzL2J5P3BhdGg9JHtwYXRofWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gICAgfSk7XG4gIH1cbiAgZmluZEFsbEZpbGVzKG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9zdXBwb3J0L2ZpbGVzYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kRmlsZUJ5Rm9sZGVyKGZvbGRlcjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L3N1cHBvcnQvZmlsZXMvYnk/Zm9sZGVyPSR7Zm9sZGVyfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gICAgfSk7XG4gIH1cbiAgZmluZEZpbGVCeVNsdWcoc2x1Zzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L3N1cHBvcnQvZmlsZXMvc2x1Zy8ke3NsdWd9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuICB1cGxvYWRGaWxlKGRhdGE6IEZvcm1EYXRhKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9zdXBwb3J0L2ZpbGVzYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGNyZWF0ZUJ1Y2tldChkYXRhOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L3N1cHBvcnQvYnVja2V0c2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBjcmVhdGVGb2xkZXJCeVNsdWcoc2x1Zzogc3RyaW5nLCBkYXRhOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L3N1cHBvcnQvZm9sZGVycy9zbHVnLyR7c2x1Z31gLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBsb2FkRmlsZUJ5U2x1ZyhzbHVnOiBzdHJpbmcsIGRhdGE6IEZvcm1EYXRhKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9zdXBwb3J0L2ZpbGVzL3NsdWcvJHtzbHVnfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { Injectable, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport * as i0 from \"@angular/core\";\nexport class BreadcrumbService {\n router = inject(Router);\n breadcrumbs = [];\n add(label, slug) {\n const breadcrumb = {\n label: label,\n slug: slug,\n };\n this.breadcrumbs.push(breadcrumb);\n return this.breadcrumbs;\n }\n goTo(slug, route) {\n if (this.breadcrumbs.length === 1) {\n return;\n }\n const index = this.breadcrumbs.findIndex((item) => item.slug === slug);\n this.breadcrumbs.length = index;\n this.router.navigate([`${slug}`], {\n relativeTo: route,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BreadcrumbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BreadcrumbService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BreadcrumbService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL2JyZWFkY3J1bWIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFrQixNQUFNLGlCQUFpQixDQUFDOztBQUt6RCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEIsV0FBVyxHQUFpQixFQUFFLENBQUM7SUFFL0IsR0FBRyxDQUFDLEtBQWEsRUFBRSxJQUFZO1FBQzdCLE1BQU0sVUFBVSxHQUFlO1lBQzdCLEtBQUssRUFBRSxLQUFLO1lBQ1osSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLENBQUMsSUFBWSxFQUFFLEtBQXFCO1FBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUU7WUFDaEMsVUFBVSxFQUFFLEtBQUs7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FyQlUsaUJBQWlCOzJHQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iU2VydmljZSB7XG4gIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBicmVhZGNydW1iczogQnJlYWRjcnVtYltdID0gW107XG5cbiAgYWRkKGxhYmVsOiBzdHJpbmcsIHNsdWc6IHN0cmluZykge1xuICAgIGNvbnN0IGJyZWFkY3J1bWI6IEJyZWFkY3J1bWIgPSB7XG4gICAgICBsYWJlbDogbGFiZWwsXG4gICAgICBzbHVnOiBzbHVnLFxuICAgIH07XG4gICAgdGhpcy5icmVhZGNydW1icy5wdXNoKGJyZWFkY3J1bWIpO1xuICAgIHJldHVybiB0aGlzLmJyZWFkY3J1bWJzO1xuICB9XG4gIGdvVG8oc2x1Zzogc3RyaW5nLCByb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICBpZiAodGhpcy5icmVhZGNydW1icy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmJyZWFkY3J1bWJzLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5zbHVnID09PSBzbHVnKTtcbiAgICB0aGlzLmJyZWFkY3J1bWJzLmxlbmd0aCA9IGluZGV4O1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgJHtzbHVnfWBdLCB7XG4gICAgICByZWxhdGl2ZVRvOiByb3V0ZSxcbiAgICB9KTtcbiAgfVxufVxuXG5pbnRlcmZhY2UgQnJlYWRjcnVtYiB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHNsdWc6IHN0cmluZztcbn1cbiJdfQ==","import { MediaMatcher } from '@angular/cdk/layout';\nimport { Injectable, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class SidenavService {\n media = inject(MediaMatcher);\n sidenav;\n mobileQuery;\n isMobile = false;\n isCollaped = false;\n isExpanded = true;\n constructor() {\n this.mobileQuery = this.media.matchMedia('(max-width: 600px)');\n this.isMobile = this.mobileQuery.matches;\n }\n setSidenav(sidenav) {\n this.sidenav = sidenav;\n }\n open() {\n return this.sidenav.open();\n }\n close() {\n return this.sidenav.close();\n }\n toggle() {\n this.sidenav.toggle();\n this.isCollaped = !this.isMobile && !this.sidenav?.opened;\n }\n lists() { }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SidenavService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SidenavService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SidenavService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL3NpZGVuYXYuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSW5ELE1BQU0sT0FBTyxjQUFjO0lBQ3pCLEtBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDN0IsT0FBTyxDQUFjO0lBQ2IsV0FBVyxDQUFrQjtJQUNyQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsVUFBVSxHQUFHLElBQUksQ0FBQztJQUNsQjtRQUNFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO0lBQzNDLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBbUI7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVNLElBQUk7UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLEtBQUs7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDNUQsQ0FBQztJQUNNLEtBQUssS0FBSSxDQUFDO3VHQTVCTixjQUFjOzJHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZWRpYU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U2lkZW5hdiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2lkZW5hdlNlcnZpY2Uge1xuICBtZWRpYSA9IGluamVjdChNZWRpYU1hdGNoZXIpO1xuICBzaWRlbmF2ITogTWF0U2lkZW5hdjtcbiAgcHJpdmF0ZSBtb2JpbGVRdWVyeSE6IE1lZGlhUXVlcnlMaXN0O1xuICBpc01vYmlsZSA9IGZhbHNlO1xuICBpc0NvbGxhcGVkID0gZmFsc2U7XG4gIGlzRXhwYW5kZWQgPSB0cnVlO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLm1vYmlsZVF1ZXJ5ID0gdGhpcy5tZWRpYS5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOiA2MDBweCknKTtcbiAgICB0aGlzLmlzTW9iaWxlID0gdGhpcy5tb2JpbGVRdWVyeS5tYXRjaGVzO1xuICB9XG5cbiAgcHVibGljIHNldFNpZGVuYXYoc2lkZW5hdjogTWF0U2lkZW5hdikge1xuICAgIHRoaXMuc2lkZW5hdiA9IHNpZGVuYXY7XG4gIH1cblxuICBwdWJsaWMgb3BlbigpIHtcbiAgICByZXR1cm4gdGhpcy5zaWRlbmF2Lm9wZW4oKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zaWRlbmF2LmNsb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgIHRoaXMuc2lkZW5hdi50b2dnbGUoKTtcbiAgICB0aGlzLmlzQ29sbGFwZWQgPSAhdGhpcy5pc01vYmlsZSAmJiAhdGhpcy5zaWRlbmF2Py5vcGVuZWQ7XG4gIH1cbiAgcHVibGljIGxpc3RzKCkge31cbn1cbiJdfQ==","import { isPlatformBrowser } from '@angular/common';\nimport { Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class ThemeService {\n platformId = inject(PLATFORM_ID);\n darkTheme = new BehaviorSubject(false);\n isDarkTheme = this.darkTheme.asObservable();\n constructor() {\n if (isPlatformBrowser(this.platformId)) {\n if (window.matchMedia) {\n // Check if the dark-mode Media-Query matches\n if (window.matchMedia('(prefers-color-scheme: dark)').matches) {\n this.setDarkTheme(true);\n // Dark\n }\n else {\n // Light\n this.setDarkTheme(false);\n }\n }\n else {\n // Default (when Media-Queries are not supported)\n }\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {\n const newColorScheme = e.matches ? 'dark' : 'light';\n if (newColorScheme === 'dark') {\n this.setDarkTheme(true);\n }\n else {\n this.setDarkTheme(false);\n }\n });\n }\n }\n setDarkTheme(isDarkTheme) {\n this.darkTheme.next(isDarkTheme);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ThemeService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ThemeService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUt2QyxNQUFNLE9BQU8sWUFBWTtJQUN2QixVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pDLFNBQVMsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDMUUsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUM7UUFDRSxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN0Qiw2Q0FBNkM7Z0JBQzdDLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUM5RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN4QixPQUFPO2dCQUNULENBQUM7cUJBQU0sQ0FBQztvQkFDTixRQUFRO29CQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04saURBQWlEO1lBQ25ELENBQUM7WUFDRCxNQUFNLENBQUMsVUFBVSxDQUFDLDhCQUE4QixDQUFDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2pGLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUNwRCxJQUFJLGNBQWMsS0FBSyxNQUFNLEVBQUUsQ0FBQztvQkFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDMUIsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLFdBQW9CO1FBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7dUdBL0JVLFlBQVk7MkdBQVosWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUaGVtZVNlcnZpY2Uge1xuICBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgZGFya1RoZW1lOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgaXNEYXJrVGhlbWUgPSB0aGlzLmRhcmtUaGVtZS5hc09ic2VydmFibGUoKTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIGlmICh3aW5kb3cubWF0Y2hNZWRpYSkge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgZGFyay1tb2RlIE1lZGlhLVF1ZXJ5IG1hdGNoZXNcbiAgICAgICAgaWYgKHdpbmRvdy5tYXRjaE1lZGlhKCcocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspJykubWF0Y2hlcykge1xuICAgICAgICAgIHRoaXMuc2V0RGFya1RoZW1lKHRydWUpO1xuICAgICAgICAgIC8vIERhcmtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBMaWdodFxuICAgICAgICAgIHRoaXMuc2V0RGFya1RoZW1lKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRGVmYXVsdCAod2hlbiBNZWRpYS1RdWVyaWVzIGFyZSBub3Qgc3VwcG9ydGVkKVxuICAgICAgfVxuICAgICAgd2luZG93Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZSkgPT4ge1xuICAgICAgICBjb25zdCBuZXdDb2xvclNjaGVtZSA9IGUubWF0Y2hlcyA/ICdkYXJrJyA6ICdsaWdodCc7XG4gICAgICAgIGlmIChuZXdDb2xvclNjaGVtZSA9PT0gJ2RhcmsnKSB7XG4gICAgICAgICAgdGhpcy5zZXREYXJrVGhlbWUodHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXREYXJrVGhlbWUoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzZXREYXJrVGhlbWUoaXNEYXJrVGhlbWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRhcmtUaGVtZS5uZXh0KGlzRGFya1RoZW1lKTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class OrderService extends BaseService {\n init() {\n this.endpoint = 'orders';\n super.init();\n }\n createPaymentIntent(id) {\n return this.http.post(`${this.actionUrl}/${id}/create-payment-intent`, {}, {\n withCredentials: true,\n });\n }\n by(options) {\n return this.http.get(`${this.actionUrl}/items/by`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n merchant(options) {\n return this.http.get(`${this.actionUrl}/merchant`, {\n params: options,\n withCredentials: true,\n });\n }\n timeline(id) {\n return this.http.get(`${this.actionUrl}/${id}/timeline`, {\n withCredentials: true,\n });\n }\n pay(id) {\n return this.http.post(`${this.actionUrl}/${id}/pay`, {}, {\n withCredentials: true,\n });\n }\n refund(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/refund`, data, {\n withCredentials: true,\n });\n }\n findAllReturns(options) {\n return this.http.get(`${this.actionUrl}/returns`, {\n params: options,\n withCredentials: true,\n });\n }\n findAllReturnsByInstructor(options) {\n return this.http.get(`${this.actionUrl}/returns/instructor`, {\n params: options,\n withCredentials: true,\n });\n }\n getReturn(id) {\n return this.http.get(`${this.actionUrl}/returns/${id}`, {\n withCredentials: true,\n });\n }\n returnApprove(id) {\n return this.http.post(`${this.actionUrl}/returns/${id}/approve`, {}, {\n withCredentials: true,\n });\n }\n returnReject(id, data) {\n return this.http.post(`${this.actionUrl}/returns/${id}/reject`, data, {\n withCredentials: true,\n });\n }\n cancel(id) {\n return this.http.post(`${this.actionUrl}/${id}/cancel`, {}, {\n withCredentials: true,\n });\n }\n countMeByStatus(options) {\n return this.http.get(`${this.actionUrl}/count/me/by`, {\n params: options,\n withCredentials: true,\n });\n }\n fulfill(orderId, data) {\n return this.http.post(`${this.actionUrl}/${orderId}/fulfillment`, data, {\n withCredentials: true,\n });\n }\n getMerchantOrder(orderId) {\n return this.http.get(`${this.actionUrl}/${orderId}/by/merchant`, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: OrderService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: OrderService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: OrderService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9vcmRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUs3QyxNQUFNLE9BQU8sWUFBYSxTQUFRLFdBQVc7SUFDbEMsSUFBSTtRQUNYLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxFQUFVO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLHdCQUF3QixFQUMvQyxFQUFFLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsRUFBRSxDQUFDLE9BQVk7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxFQUFFO1lBQ3RELE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELEVBQUUsQ0FBQyxPQUFZO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRTtZQUNoRCxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxRQUFRLENBQUMsT0FBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMs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QUUsSUFBSSxFQUFFO1lBQzNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxPQUFlO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLE9BQU8sY0FBYyxFQUFFO1lBQ3BFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBMUdVLFlBQVk7MkdBQVosWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBPcmRlclNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIG92ZXJyaWRlIGluaXQoKSB7XG4gICAgdGhpcy5lbmRwb2ludCA9ICdvcmRlcnMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICBjcmVhdGVQYXltZW50SW50ZW50KGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2NyZWF0ZS1wYXltZW50LWludGVudGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIGJ5KG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vaXRlbXMvYnlgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgbWUob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9tZWAsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBtZXJjaGFudChvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L21lcmNoYW50YCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHRpbWVsaW5lKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3RpbWVsaW5lYCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHBheShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9wYXlgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICByZWZ1bmQoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vcmVmdW5kYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRBbGxSZXR1cm5zKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vcmV0dXJuc2AsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kQWxsUmV0dXJuc0J5SW5zdHJ1Y3RvcihvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3JldHVybnMvaW5zdHJ1Y3RvcmAsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBnZXRSZXR1cm4oaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vcmV0dXJucy8ke2lkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICByZXR1cm5BcHByb3ZlKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9L3JldHVybnMvJHtpZH0vYXBwcm92ZWAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHJldHVyblJlamVjdChpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9yZXR1cm5zLyR7aWR9L3JlamVjdGAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBjYW5jZWwoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vY2FuY2VsYCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbiAgY291bnRNZUJ5U3RhdHVzKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vY291bnQvbWUvYnlgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZnVsZmlsbChvcmRlcklkOiBzdHJpbmcsIGRhdGE6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke29yZGVySWR9L2Z1bGZpbGxtZW50YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGdldE1lcmNoYW50T3JkZXIob3JkZXJJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtvcmRlcklkfS9ieS9tZXJjaGFudGAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class InventoryService extends BaseService {\n init() {\n this.endpoint = 'inventories';\n super.init();\n }\n getLocation(locationId) {\n return this.http.get(`${this.actionUrl}/locations/${locationId}`, { withCredentials: true });\n }\n findLocations(options) {\n return this.http.get(`${this.actionUrl}/locations`, { params: options, withCredentials: true });\n }\n addLocation(data) {\n return this.http.post(`${this.actionUrl}/locations`, data, { withCredentials: true });\n }\n updateLocation(locationId, data) {\n return this.http.put(`${this.actionUrl}/locations/${locationId}`, data, { withCredentials: true });\n }\n deleteLocation(locationId) {\n return this.http.delete(`${this.actionUrl}/locations/${locationId}`, { withCredentials: true });\n }\n initInventoryItems(data) {\n return this.http.post(`${this.actionUrl}/items/init`, data, { withCredentials: true });\n }\n findMyInventoryItems(options) {\n return this.http.get(`${this.actionUrl}/items/me`, { params: options, withCredentials: true });\n }\n addInventoryItem(data) {\n return this.http.post(`${this.actionUrl}/items`, data, { withCredentials: true });\n }\n updateInventoryItem(data) {\n return this.http.put(`${this.actionUrl}/items`, data, { withCredentials: true });\n }\n addInventoryByProductId(locationId, productId, data) {\n return this.http.post(`${this.actionUrl}/locations/${locationId}`, data, { withCredentials: true });\n }\n addInventoryByVariantId(locationId, variantId, data) {\n return this.http.post(`${this.actionUrl}/locations`, data, { withCredentials: true });\n }\n findInventoryItemsByProductId(productId) {\n return this.http.get(`${this.actionUrl}/products/${productId}`, { withCredentials: true });\n }\n findInventoryItemsByVariantId(variantId) {\n return this.http.get(`${this.actionUrl}/variants/${variantId}`, { withCredentials: true });\n }\n findInventoryLevelsByLocationIdAndVariantIds(locationId, ids) {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}/locations/${locationId}/variants/by`, { params: params, withCredentials: true });\n }\n deleteInventoryItemsByProductId(productId) {\n return this.http.delete(`${this.actionUrl}/products/${productId}`, { withCredentials: true });\n }\n deleteInventoryItemsByVariantId(variantId) {\n return this.http.delete(`${this.actionUrl}/variants/${variantId}`, { withCredentials: true });\n }\n deleteInventoryLevel(levelId) {\n return this.http.delete(`${this.actionUrl}/levels/${levelId}`, { withCredentials: true });\n }\n findProductsInLocation(locationId) {\n return this.http.get(`${this.actionUrl}/locations/${locationId}/products`, { withCredentials: true });\n }\n findLocationsByProductId(productId) {\n return this.http.get(`${this.actionUrl}/products/${productId}/locations`, { withCredentials: true });\n }\n findLocationsByVariantId(variantId) {\n return this.http.get(`${this.actionUrl}/variants/${variantId}/locations`, { withCredentials: true });\n }\n updateStockByLocationIdAndProductId(locationId, productId, data) {\n return this.http.put(`${this.actionUrl}/locations${locationId}/products/${productId}`, data, { withCredentials: true });\n }\n updateStockByLocationIdAndVariantId(locationId, variantId, data) {\n return this.http.put(`${this.actionUrl}/locations${locationId}/variants/${variantId}`, data, { withCredentials: true });\n }\n adjustStocksByLocationId(data) {\n return this.http.put(`${this.actionUrl}/levels/adjust`, data, { withCredentials: true });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: InventoryService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: InventoryService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: InventoryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52ZW50b3J5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvc2VydmljZXMvaW52ZW50b3J5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBTTdDLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBQ3RDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQztRQUM5QixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsV0FBVyxDQUFDLFVBQWtCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxjQUFjLFVBQVUsRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUNELGFBQWEsQ0FBQyxPQUFZO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFDRCxXQUFXLENBQUMsSUFBUztRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFDRCxjQUFjLENBQUMsVUFBa0IsRUFBRSxJQUFTO1FBQzFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFH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QUUsSUFBUztRQUNsRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsYUFBYSxVQUFVLGFBQWEsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUgsQ0FBQztJQUNELG1DQUFtQyxDQUFDLFVBQWtCLEVBQUUsU0FBaUIsRUFBRSxJQUFTO1FBQ2xGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxhQUFhLFVBQVUsYUFBYSxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxSCxDQUFDO0lBQ0Qsd0JBQXdCLENBQUMsSUFBUztRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0YsQ0FBQzt1R0E3RVUsZ0JBQWdCOzJHQUFoQixnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBJbnZlbnRvcnlTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAnaW52ZW50b3JpZXMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICBnZXRMb2NhdGlvbihsb2NhdGlvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYWN0aW9uVXJsfS9sb2NhdGlvbnMvJHtsb2NhdGlvbklkfWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGZpbmRMb2NhdGlvbnMob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vbG9jYXRpb25zYCwgeyBwYXJhbXM6IG9wdGlvbnMsIHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBhZGRMb2NhdGlvbihkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmFjdGlvblVybH0vbG9jYXRpb25zYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgdXBkYXRlTG9jYXRpb24obG9jYXRpb25JZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuYWN0aW9uVXJsfS9sb2NhdGlvbnMvJHtsb2NhdGlvbklkfWAsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGRlbGV0ZUxvY2F0aW9uKGxvY2F0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5hY3Rpb25Vcmx9L2xvY2F0aW9ucy8ke2xvY2F0aW9uSWR9YCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgaW5pdEludmVudG9yeUl0ZW1zKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYWN0aW9uVXJsfS9pdGVtcy9pbml0YCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgZmluZE15SW52ZW50b3J5SXRlbXMob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vaXRlbXMvbWVgLCB7IHBhcmFtczogb3B0aW9ucywgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGFkZEludmVudG9yeUl0ZW0oZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hY3Rpb25Vcmx9L2l0ZW1zYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgdXBkYXRlSW52ZW50b3J5SXRlbShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuYWN0aW9uVXJsfS9pdGVtc2AsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGFkZEludmVudG9yeUJ5UHJvZHVjdElkKGxvY2F0aW9uSWQ6IHN0cmluZywgcHJvZHVjdElkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYWN0aW9uVXJsfS9sb2NhdGlvbnMvJHtsb2NhdGlvbklkfWAsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGFkZEludmVudG9yeUJ5VmFyaWFudElkKGxvY2F0aW9uSWQ6IHN0cmluZywgdmFyaWFudElkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYWN0aW9uVXJsfS9sb2NhdGlvbnNgLCBkYXRhLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuXG4gIGZpbmRJbnZlbnRvcnlJdGVtc0J5UHJvZHVjdElkKHByb2R1Y3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vcHJvZHVjdHMvJHtwcm9kdWN0SWR9YCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgZmluZEludmVudG9yeUl0ZW1zQnlWYXJpYW50SWQodmFyaWFudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYWN0aW9uVXJsfS92YXJpYW50cy8ke3ZhcmlhbnRJZH1gLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBmaW5kSW52ZW50b3J5TGV2ZWxzQnlMb2NhdGlvbklkQW5kVmFyaWFudElkcyhsb2NhdGlvbklkOiBzdHJpbmcsIGlkczogQXJyYXk8c3RyaW5nPik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgcGFyYW1zID0geyBpZHM6IGlkcy5qb2luKCcsJykgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vbG9jYXRpb25zLyR7bG9jYXRpb25JZH0vdmFyaWFudHMvYnlgLCB7IHBhcmFtczogcGFyYW1zLCB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cblxuICBkZWxldGVJbnZlbnRvcnlJdGVtc0J5UHJvZHVjdElkKHByb2R1Y3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmFjdGlvblVybH0vcHJvZHVjdHMvJHtwcm9kdWN0SWR9YCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgZGVsZXRlSW52ZW50b3J5SXRlbXNCeVZhcmlhbnRJZCh2YXJpYW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5hY3Rpb25Vcmx9L3ZhcmlhbnRzLyR7dmFyaWFudElkfWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGRlbGV0ZUludmVudG9yeUxldmVsKGxldmVsSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5hY3Rpb25Vcmx9L2xldmVscy8ke2xldmVsSWR9YCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cblxuICBmaW5kUHJvZHVjdHNJbkxvY2F0aW9uKGxvY2F0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hY3Rpb25Vcmx9L2xvY2F0aW9ucy8ke2xvY2F0aW9uSWR9L3Byb2R1Y3RzYCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgZmluZExvY2F0aW9uc0J5UHJvZHVjdElkKHByb2R1Y3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vcHJvZHVjdHMvJHtwcm9kdWN0SWR9L2xvY2F0aW9uc2AsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGZpbmRMb2NhdGlvbnNCeVZhcmlhbnRJZCh2YXJpYW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hY3Rpb25Vcmx9L3ZhcmlhbnRzLyR7dmFyaWFudElkfS9sb2NhdGlvbnNgLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICB1cGRhdGVTdG9ja0J5TG9jYXRpb25JZEFuZFByb2R1Y3RJZChsb2NhdGlvbklkOiBzdHJpbmcsIHByb2R1Y3RJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuYWN0aW9uVXJsfS9sb2NhdGlvbnMke2xvY2F0aW9uSWR9L3Byb2R1Y3RzLyR7cHJvZHVjdElkfWAsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIHVwZGF0ZVN0b2NrQnlMb2NhdGlvbklkQW5kVmFyaWFudElkKGxvY2F0aW9uSWQ6IHN0cmluZywgdmFyaWFudElkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5hY3Rpb25Vcmx9L2xvY2F0aW9ucyR7bG9jYXRpb25JZH0vdmFyaWFudHMvJHt2YXJpYW50SWR9YCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgYWRqdXN0U3RvY2tzQnlMb2NhdGlvbklkKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5hY3Rpb25Vcmx9L2xldmVscy9hZGp1c3RgLCBkYXRhLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class NotificationStore {\n $count = new BehaviorSubject(0);\n getCount() {\n return this.$count.asObservable();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NotificationStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NotificationStore, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NotificationStore, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3N0YXRlL25vdGlmaWNhdGlvbi5zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3ZDLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDcEMsQ0FBQzt1R0FKVSxpQkFBaUI7MkdBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25TdG9yZSB7XG4gICRjb3VudCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG4gIGdldENvdW50KCkge1xuICAgIHJldHVybiB0aGlzLiRjb3VudC5hc09ic2VydmFibGUoKTtcbiAgfVxufVxuIl19","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { map } from 'rxjs';\nimport { NotificationStore } from '../state/notification.store';\nimport * as i0 from \"@angular/core\";\nexport class NotificationService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n storeService = inject(NotificationStore);\n find(options) {\n return this.http.get(`${this.environment.baseUrl}/notifications`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options) {\n return this.http.get(`${this.environment.baseUrl}/notifications/me`, {\n params: options,\n withCredentials: true,\n });\n }\n get(id) {\n return this.http.get(`${this.environment.baseUrl}/notifications/${id}`, {\n withCredentials: true,\n });\n }\n read(ids) {\n return this.http.get(`${this.environment.baseUrl}/notifications/${ids}`, {\n withCredentials: true,\n });\n }\n update(id) {\n return this.http\n .put(`${this.environment.baseUrl}/notifications/${id}`, { status: 'READ' }, {\n withCredentials: true,\n })\n .pipe(map((res) => {\n const value = this.storeService.$count.value - 1;\n this.storeService.$count.next(value);\n }));\n }\n readAll() {\n return this.http\n .put(`${this.environment.baseUrl}/notifications/status/all`, { status: 'READ' }, {\n withCredentials: true,\n })\n .pipe(map((res) => {\n this.storeService.$count.next(0);\n }));\n }\n delete(id) {\n return this.http.get(`${this.environment.baseUrl}/notifications/${id}`, {\n withCredentials: true,\n });\n }\n findByUserId(userId) {\n return this.http.get(`${this.environment.baseUrl}/notifications/by?userId=${userId}`, {\n withCredentials: true,\n });\n }\n countByStatus(status) {\n return this.http\n .get(`${this.environment.baseUrl}/notifications/count/by?status=${status}`, {\n withCredentials: true,\n })\n .pipe(map(({ data }) => {\n this.storeService.$count.next(data);\n return data;\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NotificationService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NotificationService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUloRSxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQixZQUFZLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFekMsSUFBSSxDQUFDLE9BQVk7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLGdCQUFnQixFQUFFO1lBQ3JFLE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELEVBQUUsQ0FBQyxPQUFZO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxtQkFBbUIsRUFBRTtZQUN4RSxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxHQUFHLENBQUMsRUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sa0JBQWtCLEVBQUUsRUFBRSxFQUFFO1lBQzNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLENBQUMsR0FBa0I7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxrQkFBa0IsR0FBRyxFQUFFLEVBQUU7WUFDNUUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sQ0FBQyxFQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FDRixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxrQkFBa0IsRUFBRSxFQUFFLEVBQ2pELEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUNsQjtZQUNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQ0Y7YUFDQSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDVixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUNELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUNGLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLDJCQUEyQixFQUN0RCxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFDbEI7WUFDRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUNGO2FBQ0EsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBQ0QsTUFBTSxDQUFDLEVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLGtCQUFrQixFQUFFLEVBQUUsRUFBRTtZQUMzRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsWUFBWSxDQUFDLE1BQWM7UUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyw0QkFBNEIsTUFBTSxFQUFFLEVBQUU7WUFDekYsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGFBQWEsQ0FBQyxNQUFjO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sa0NBQWtDLE1BQU0sRUFBRSxFQUFFO1lBQy9FLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7dUdBL0VVLG1CQUFtQjsyR0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBUFBfQ09ORklHIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU3RvcmUgfSBmcm9tICcuLi9zdGF0ZS9ub3RpZmljYXRpb24uc3RvcmUnO1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvblNlcnZpY2Uge1xuICBlbnZpcm9ubWVudCA9IGluamVjdChBUFBfQ09ORklHKTtcbiAgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgc3RvcmVTZXJ2aWNlID0gaW5qZWN0KE5vdGlmaWNhdGlvblN0b3JlKTtcblxuICBmaW5kKG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9ub3RpZmljYXRpb25zYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIG1lKG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9ub3RpZmljYXRpb25zL21lYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGdldChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L25vdGlmaWNhdGlvbnMvJHtpZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgcmVhZChpZHM6IEFycmF5PHN0cmluZz4pIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vbm90aWZpY2F0aW9ucy8ke2lkc31gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBkYXRlKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucHV0PGFueT4oXG4gICAgICAgIGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vbm90aWZpY2F0aW9ucy8ke2lkfWAsXG4gICAgICAgIHsgc3RhdHVzOiAnUkVBRCcgfSxcbiAgICAgICAge1xuICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5zdG9yZVNlcnZpY2UuJGNvdW50LnZhbHVlIC0gMTtcbiAgICAgICAgICB0aGlzLnN0b3JlU2VydmljZS4kY291bnQubmV4dCh2YWx1ZSk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuICByZWFkQWxsKCkge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wdXQ8YW55PihcbiAgICAgICAgYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9ub3RpZmljYXRpb25zL3N0YXR1cy9hbGxgLFxuICAgICAgICB7IHN0YXR1czogJ1JFQUQnIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLnN0b3JlU2VydmljZS4kY291bnQubmV4dCgwKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG4gIGRlbGV0ZShpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L25vdGlmaWNhdGlvbnMvJHtpZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZmluZEJ5VXNlcklkKHVzZXJJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L25vdGlmaWNhdGlvbnMvYnk/dXNlcklkPSR7dXNlcklkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBjb3VudEJ5U3RhdHVzKHN0YXR1czogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vbm90aWZpY2F0aW9ucy9jb3VudC9ieT9zdGF0dXM9JHtzdGF0dXN9YCwge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoeyBkYXRhIH0pID0+IHtcbiAgICAgICAgICB0aGlzLnN0b3JlU2VydmljZS4kY291bnQubmV4dChkYXRhKTtcbiAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class ProductCategoryService extends BaseService {\n init() {\n this.endpoint = 'products/categories';\n super.init();\n }\n uploadMedia(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id, mediaId) {\n return this.http.delete(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n importFromExcel(data) {\n return this.http.post(`${this.actionUrl}/excel`, data, {\n withCredentials: true,\n });\n }\n createFromExcel(data) {\n return this.http.post(`${this.actionUrl}/list`, data, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ProductCategoryService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ProductCategoryService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ProductCategoryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jYXRlZ29yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL3Byb2R1Y3QtY2F0ZWdvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLN0MsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFdBQVc7SUFDNUMsSUFBSTtRQUNYLElBQUksQ0FBQyxRQUFRLEdBQUcscUJBQXFCLENBQUM7UUFDdEMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUNELFdBQVcsQ0FBQyxFQUFVLEVBQUUsSUFBYztRQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDaEUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVcsQ0FBQyxFQUFVLEVBQUUsT0FBZTtRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFVBQVUsT0FBTyxFQUFFLEVBQUU7WUFDdkUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGVBQWUsQ0FBQyxJQUFjO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQzFELGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxlQUFlLENBQUMsSUFBUztRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsT0FBTyxFQUFFLElBQUksRUFBRTtZQUN6RCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQXhCVSxzQkFBc0I7MkdBQXRCLHNCQUFzQixjQUZyQixNQUFNOzsyRkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0Q2F0ZWdvcnlTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAncHJvZHVjdHMvY2F0ZWdvcmllcyc7XG4gICAgc3VwZXIuaW5pdCgpO1xuICB9XG4gIHVwbG9hZE1lZGlhKGlkOiBzdHJpbmcsIGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vbWVkaWFgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlTWVkaWEoaWQ6IHN0cmluZywgbWVkaWFJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9tZWRpYS8ke21lZGlhSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGltcG9ydEZyb21FeGNlbChkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2V4Y2VsYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGNyZWF0ZUZyb21FeGNlbChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9saXN0YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport * as i0 from \"@angular/core\";\nexport class NotificationTemplateService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n find(options) {\n return this.http.get(`${this.environment.baseUrl}/notifications`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options) {\n return this.http.get(`${this.environment.baseUrl}/notifications/me`, {\n params: options,\n withCredentials: true,\n });\n }\n get(id) {\n return this.http.get(`${this.environment.baseUrl}/notifications/${id}`, {\n withCredentials: true,\n });\n }\n read(ids) {\n return this.http.get(`${this.environment.baseUrl}/notifications/${ids}`, {\n withCredentials: true,\n });\n }\n delete(id) {\n return this.http.get(`${this.environment.baseUrl}/notifications/${id}`, {\n withCredentials: true,\n });\n }\n findByUserId(userId) {\n return this.http.get(`${this.environment.baseUrl}/notifications/by?userId=${userId}`, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NotificationTemplateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NotificationTemplateService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NotificationTemplateService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXRlbXBsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvc2VydmljZXMvbm90aWZpY2F0aW9uLXRlbXBsYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFLdEQsTUFBTSxPQUFPLDJCQUEyQjtJQUN0QyxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFMUIsSUFBSSxDQUFDLE9BQVk7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLGdCQUFnQixFQUFFO1lBQ3JFLE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELEVBQUUsQ0FBQyxPQUFZO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxtQkFBbUIsRUFBRTtZQUN4RSxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxHQUFHLENBQUMsRUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sa0JBQWtCLEVBQUUsRUFBRSxFQUFFO1lBQzNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLENBQUMsR0FBa0I7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxrQkFBa0IsR0FBRyxFQUFFLEVBQUU7WUFDNUUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sQ0FBQyxFQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxrQkFBa0IsRUFBRSxFQUFFLEVBQUU7WUFDM0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFlBQVksQ0FBQyxNQUFjO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sNEJBQTRCLE1BQU0sRUFBRSxFQUFFO1lBQ3pGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBbkNVLDJCQUEyQjsyR0FBM0IsMkJBQTJCLGNBRjFCLE1BQU07OzJGQUVQLDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBUFBfQ09ORklHIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvblRlbXBsYXRlU2VydmljZSB7XG4gIGVudmlyb25tZW50ID0gaW5qZWN0KEFQUF9DT05GSUcpO1xuICBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuXG4gIGZpbmQob3B0aW9uczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L25vdGlmaWNhdGlvbnNgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgbWUob3B0aW9uczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L25vdGlmaWNhdGlvbnMvbWVgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZ2V0KGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vbm90aWZpY2F0aW9ucy8ke2lkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICByZWFkKGlkczogQXJyYXk8c3RyaW5nPikge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9ub3RpZmljYXRpb25zLyR7aWRzfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGUoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9ub3RpZmljYXRpb25zLyR7aWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRCeVVzZXJJZCh1c2VySWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9ub3RpZmljYXRpb25zL2J5P3VzZXJJZD0ke3VzZXJJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class FulfillmentService extends BaseService {\n init() {\n this.endpoint = 'fulfillments';\n super.init();\n }\n fulfill(orderId, data) {\n return this.http.post(`${this.actionUrl}/orders/${orderId}`, data, {\n withCredentials: true,\n });\n }\n tracking(orderId) {\n return this.http.get(`${this.actionUrl}/tracking/orders/${orderId}`, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FulfillmentService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FulfillmentService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FulfillmentService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsZmlsbG1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9mdWxmaWxsbWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU03QyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsV0FBVztJQUN4QyxJQUFJO1FBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUM7UUFDL0IsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sQ0FBQyxPQUFlLEVBQUUsSUFBUztRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDdEUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVEsQ0FBQyxPQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxvQkFBb0IsT0FBTyxFQUFFLEVBQUU7WUFDeEUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FkVSxrQkFBa0I7MkdBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGdWxmaWxsbWVudFNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIG92ZXJyaWRlIGluaXQoKSB7XG4gICAgdGhpcy5lbmRwb2ludCA9ICdmdWxmaWxsbWVudHMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICBmdWxmaWxsKG9yZGVySWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vb3JkZXJzLyR7b3JkZXJJZH1gLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdHJhY2tpbmcob3JkZXJJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS90cmFja2luZy9vcmRlcnMvJHtvcmRlcklkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { inject, Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport * as i0 from \"@angular/core\";\nexport class TitleService {\n environment = inject(APP_CONFIG);\n titleService = inject(Title);\n getTitle() {\n return this.titleService.getTitle();\n }\n setTitle(newTitle) {\n this.titleService.setTitle(`${newTitle} - ${this.environment.name}`);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: TitleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: TitleService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: TitleService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy90aXRsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBS3RELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU3QixRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFDRCxRQUFRLENBQUMsUUFBZ0I7UUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxRQUFRLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7dUdBVFUsWUFBWTsyR0FBWixZQUFZLGNBRlgsTUFBTTs7MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBBUFBfQ09ORklHIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRpdGxlU2VydmljZSB7XG4gIGVudmlyb25tZW50ID0gaW5qZWN0KEFQUF9DT05GSUcpO1xuICB0aXRsZVNlcnZpY2UgPSBpbmplY3QoVGl0bGUpO1xuXG4gIGdldFRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudGl0bGVTZXJ2aWNlLmdldFRpdGxlKCk7XG4gIH1cbiAgc2V0VGl0bGUobmV3VGl0bGU6IHN0cmluZykge1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKGAke25ld1RpdGxlfSAtICR7dGhpcy5lbnZpcm9ubWVudC5uYW1lfWApO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class PostService extends BaseService {\n init() {\n this.endpoint = 'posts';\n super.init();\n }\n by(options) {\n return this.http.get(`${this.actionUrl}/items/by`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n merchant(options) {\n return this.http.get(`${this.actionUrl}/merchant`, {\n params: options,\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PostService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PostService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PostService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL3Bvc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLN0MsTUFBTSxPQUFPLFdBQVksU0FBUSxXQUFXO0lBQ2pDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsRUFBRSxDQUFDLE9BQVk7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxFQUFFO1lBQ3RELE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELEVBQUUsQ0FBQyxPQUFZO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRTtZQUNoRCxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxRQUFRLENBQUMsT0FBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxFQUFFO1lBQ3RELE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0F0QlUsV0FBVzsyR0FBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBvc3RTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAncG9zdHMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICBieShvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2l0ZW1zL2J5YCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIG1lKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vbWVgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgbWVyY2hhbnQob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9tZXJjaGFudGAsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class OrderPayoutService extends BaseService {\n init() {\n this.endpoint = 'orders/payouts';\n super.init();\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n approve(id) {\n return this.http.post(`${this.actionUrl}/${id}/approve`, {}, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: OrderPayoutService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: OrderPayoutService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: OrderPayoutService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItcGF5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvc2VydmljZXMvb3JkZXItcGF5b3V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBSTdDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxXQUFXO0lBQ3hDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLGdCQUFnQixDQUFDO1FBQ2pDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFDRCxFQUFFLENBQUMsT0FBWTtRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUU7WUFDaEQsTUFBTSxFQUFFLE9BQU87WUFDZixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEVBQVU7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsVUFBVSxFQUNqQyxFQUFFLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUNGLENBQUM7SUFDSixDQUFDO3VHQW5CVSxrQkFBa0I7MkdBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgT3JkZXJQYXlvdXRTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAnb3JkZXJzL3BheW91dHMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICBtZShvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L21lYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGFwcHJvdmUoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vYXBwcm92ZWAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class ResourceService extends BaseService {\n init() {\n this.endpoint = 'resources';\n super.init();\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n findByIds(ids) {\n return this.http.get(`${this.actionUrl}/by`, {\n params: { ids },\n withCredentials: true,\n });\n }\n filter(options) {\n return this.http.get(`${this.actionUrl}/search`, {\n params: options,\n withCredentials: false,\n });\n }\n updateLocation(id, data) {\n return this.http.put(`${this.actionUrl}/${id}/location`, data, {\n withCredentials: true,\n });\n }\n updateAmenities(id, data) {\n return this.http.put(`${this.actionUrl}/${id}/amenities`, data, {\n withCredentials: true,\n });\n }\n addDetail(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/details`, data, {\n withCredentials: true,\n });\n }\n addBatchDetails(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/details/batch`, data, {\n withCredentials: true,\n });\n }\n findDetails(id) {\n return this.http.get(`${this.actionUrl}/${id}/details`, {\n withCredentials: true,\n });\n }\n updateDetail(id, detailId, data) {\n return this.http.put(`${this.actionUrl}/${id}/details/${detailId}`, data, {\n withCredentials: true,\n });\n }\n deleteDetail(id, detailId) {\n return this.http.delete(`${this.actionUrl}/${id}/details/${detailId}`, {\n withCredentials: true,\n });\n }\n uploadDetailMedia(id, detailId, data) {\n return this.http.post(`${this.actionUrl}/${id}/details/${detailId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteDetailMedia(id, detailId, mediaId) {\n return this.http.delete(`${this.actionUrl}/${id}/details/${detailId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n findSessions(id) {\n return this.http.get(`${this.actionUrl}/${id}/sessions`, {\n withCredentials: true,\n });\n }\n addSession(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/sessions`, data, {\n withCredentials: true,\n });\n }\n updateSession(id, sessionId, data) {\n return this.http.put(`${this.actionUrl}/${id}/sessions/${sessionId}`, data, {\n withCredentials: true,\n });\n }\n deleteSession(id, sessionId) {\n return this.http.delete(`${this.actionUrl}/${id}/sessions/${sessionId}`, {\n withCredentials: true,\n });\n }\n findPeriods(id) {\n return this.http.get(`${this.actionUrl}/${id}/periods`, {\n withCredentials: true,\n });\n }\n addPeriod(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/periods`, data, {\n withCredentials: true,\n });\n }\n updatePeriod(id, periodId, data) {\n return this.http.put(`${this.actionUrl}/${id}/periods/${periodId}`, data, {\n withCredentials: true,\n });\n }\n deletePeriod(id, periodId) {\n return this.http.delete(`${this.actionUrl}/${id}/periods/${periodId}`, {\n withCredentials: true,\n });\n }\n review(id) {\n return this.http.post(`${this.actionUrl}/${id}/review`, {}, {\n withCredentials: true,\n });\n }\n publish(id) {\n return this.http.post(`${this.actionUrl}/${id}/publish`, {}, {\n withCredentials: true,\n });\n }\n upload(data) {\n return this.http.post(`${this.actionUrl}/upload`, data, {\n withCredentials: true,\n });\n }\n uploadMedia(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id, mediaId) {\n return this.http.delete(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n accept(id) {\n return this.http.post(`${this.actionUrl}/${id}/reviews/accept`, {}, {\n withCredentials: true,\n });\n }\n reject(id, body) {\n return this.http.post(`${this.actionUrl}/${id}/reviews/reject`, body, {\n withCredentials: true,\n });\n }\n findByResourceId(id) {\n const options = {\n filter: `resourceId:${id}`,\n };\n return this.http.get(`${this.actionUrl}`, {\n params: options,\n withCredentials: false,\n });\n }\n findVariantsByResourceId(id) {\n return this.http.get(`${this.actionUrl}/${id}/variants`, {\n withCredentials: false,\n });\n }\n addVariants(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/variants`, data, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ResourceService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ResourceService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ResourceService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9yZXNvdXJjZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUs3QyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBQ3JDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQztRQUM1QixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsRUFBRSxDQUFDLE9BQVk7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxFQUFFO1lBQ2hELE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFNBQVMsQ0FBQyxHQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUU7WUFDaEQsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sQ0FBQyxPQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxTQUFTLEVBQUU7WUFDcEQsTUFBTSxFQUFFLE9BQU87WUFDZixlQUFlLEVBQUUsS0FBSztTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsY0FBYyxDQUFDLEVBQVUsRUFBRSxJQUFTO1FBQ2xDLE9B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LGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBL0tVLGVBQWU7MkdBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBSZXNvdXJjZVNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIG92ZXJyaWRlIGluaXQoKSB7XG4gICAgdGhpcy5lbmRwb2ludCA9ICdyZXNvdXJjZXMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICBtZShvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L21lYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRCeUlkcyhpZHM6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vYnlgLCB7XG4gICAgICBwYXJhbXM6IHsgaWRzIH0sXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZmlsdGVyKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vc2VhcmNoYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVMb2NhdGlvbihpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2xvY2F0aW9uYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZUFtZW5pdGllcyhpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2FtZW5pdGllc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBhZGREZXRhaWwoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vZGV0YWlsc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBhZGRCYXRjaERldGFpbHMoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vZGV0YWlscy9iYXRjaGAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kRGV0YWlscyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9kZXRhaWxzYCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZURldGFpbChpZDogc3RyaW5nLCBkZXRhaWxJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2RldGFpbHMvJHtkZXRhaWxJZH1gLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlRGV0YWlsKGlkOiBzdHJpbmcsIGRldGFpbElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2RldGFpbHMvJHtkZXRhaWxJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBsb2FkRGV0YWlsTWVkaWEoaWQ6IHN0cmluZywgZGV0YWlsSWQ6IHN0cmluZywgZGF0YTogRm9ybURhdGEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9kZXRhaWxzLyR7ZGV0YWlsSWR9L21lZGlhYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZURldGFpbE1lZGlhKGlkOiBzdHJpbmcsIGRldGFpbElkOiBzdHJpbmcsIG1lZGlhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vZGV0YWlscy8ke2RldGFpbElkfS9tZWRpYS8ke21lZGlhSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRTZXNzaW9ucyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9zZXNzaW9uc2AsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBhZGRTZXNzaW9uKGlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3Nlc3Npb25zYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZVNlc3Npb24oaWQ6IHN0cmluZywgc2Vzc2lvbklkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vc2Vzc2lvbnMvJHtzZXNzaW9uSWR9YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZVNlc3Npb24oaWQ6IHN0cmluZywgc2Vzc2lvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3Nlc3Npb25zLyR7c2Vzc2lvbklkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kUGVyaW9kcyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9wZXJpb2RzYCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGFkZFBlcmlvZChpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9wZXJpb2RzYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZVBlcmlvZChpZDogc3RyaW5nLCBwZXJpb2RJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3BlcmlvZHMvJHtwZXJpb2RJZH1gLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlUGVyaW9kKGlkOiBzdHJpbmcsIHBlcmlvZElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3BlcmlvZHMvJHtwZXJpb2RJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgcmV2aWV3KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3Jldmlld2AsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHB1Ymxpc2goaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vcHVibGlzaGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHVwbG9hZChkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3VwbG9hZGAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGxvYWRNZWRpYShpZDogc3RyaW5nLCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L21lZGlhYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZU1lZGlhKGlkOiBzdHJpbmcsIG1lZGlhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vbWVkaWEvJHttZWRpYUlkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBhY2NlcHQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vcmV2aWV3cy9hY2NlcHRgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICByZWplY3QoaWQ6IHN0cmluZywgYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vcmV2aWV3cy9yZWplY3RgLCBib2R5LCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBmaW5kQnlSZXNvdXJjZUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBmaWx0ZXI6IGByZXNvdXJjZUlkOiR7aWR9YCxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9YCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kVmFyaWFudHNCeVJlc291cmNlSWQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vdmFyaWFudHNgLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgYWRkVmFyaWFudHMoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vdmFyaWFudHNgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class ResourceCategoryService extends BaseService {\n init() {\n this.endpoint = 'resources/categories';\n super.init();\n }\n uploadMedia(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id, mediaId) {\n return this.http.delete(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ResourceCategoryService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ResourceCategoryService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ResourceCategoryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9yZXNvdXJjZS1jYXRlZ29yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUs3QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsV0FBVztJQUM3QyxJQUFJO1FBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQztRQUN2QyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVUsRUFBRSxJQUFjO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUNoRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVUsRUFBRSxPQUFlO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsVUFBVSxPQUFPLEVBQUUsRUFBRTtZQUN2RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQWRVLHVCQUF1QjsyR0FBdkIsdUJBQXVCLGNBRnRCLE1BQU07OzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFJlc291cmNlQ2F0ZWdvcnlTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAncmVzb3VyY2VzL2NhdGVnb3JpZXMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICB1cGxvYWRNZWRpYShpZDogc3RyaW5nLCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L21lZGlhYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZU1lZGlhKGlkOiBzdHJpbmcsIG1lZGlhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vbWVkaWEvJHttZWRpYUlkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class BookingService extends BaseService {\n init() {\n this.endpoint = 'bookings';\n super.init();\n }\n by(options) {\n return this.http.get(`${this.actionUrl}/items/by`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n timeline(id) {\n return this.http.get(`${this.actionUrl}/${id}/timeline`, {\n withCredentials: true,\n });\n }\n items(options) {\n return this.http.get(`${this.actionUrl}/items`, {\n params: options,\n withCredentials: true,\n });\n }\n pay(id) {\n return this.http.post(`${this.actionUrl}/${id}/pay`, {}, {\n withCredentials: true,\n });\n }\n refund(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/items/refund`, data, {\n withCredentials: true,\n });\n }\n findAllReturns(options) {\n return this.http.get(`${this.actionUrl}/returns`, {\n params: options,\n withCredentials: true,\n });\n }\n getReturn(id) {\n return this.http.get(`${this.actionUrl}/returns/${id}`, {\n withCredentials: true,\n });\n }\n returnApprove(id) {\n return this.http.post(`${this.actionUrl}/returns/${id}/approve`, {}, {\n withCredentials: true,\n });\n }\n returnReject(id, data) {\n return this.http.post(`${this.actionUrl}/returns/${id}/reject`, data, {\n withCredentials: true,\n });\n }\n cancel(id) {\n return this.http.post(`${this.actionUrl}/${id}/cancel`, {}, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BookingService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BookingService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BookingService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va2luZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL2Jvb2tpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLN0MsTUFBTSxPQUFPLGNBQWUsU0FBUSxXQUFXO0lBQ3BDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsRUFBRSxDQUFDLE9BQVk7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxFQUFFO1lBQ3RELE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELEVBQUUsQ0FBQyxPQUFZO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRTtZQUNoRCxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxRQUFRLENBQUMsRUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUM1RCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsS0FBSyxDQUFDLE9BQVk7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFFBQVEsRUFBRTtZQUNuRCxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxHQUFHLENBQUMsRUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLE1BQU0sRUFDN0IsRUFBRSxFQUNGO1lBQ0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sQ0FBQyxFQUFVLEVBQUUsSUFBUztRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUU7WUFDdkUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGNBQWMsQ0FBQyxPQUFZO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxVQUFVLEVBQUU7WUFDckQsTUFBTSxFQUFFLE9BQU87WUFDZixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsU0FBUyxDQUFDLEVBQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFlBQVksRUFBRSxFQUFFLEVBQUU7WUFDM0QsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGFBQWEsQ0FBQyxFQUFVO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWSxFQUFFLFVBQVUsRUFDekMsRUFBRSxFQUNGO1lBQ0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELFlBQVksQ0FBQyxFQUFVLEVBQUUsSUFBUztRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUU7WUFDekUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sQ0FBQyxFQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsU0FBUyxFQUNoQyxFQUFFLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUNGLENBQUM7SUFDSixDQUFDO3VHQTNFVSxjQUFjOzJHQUFkLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQm9va2luZ1NlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIG92ZXJyaWRlIGluaXQoKSB7XG4gICAgdGhpcy5lbmRwb2ludCA9ICdib29raW5ncyc7XG4gICAgc3VwZXIuaW5pdCgpO1xuICB9XG4gIGJ5KG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vaXRlbXMvYnlgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgbWUob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9tZWAsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB0aW1lbGluZShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS90aW1lbGluZWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBpdGVtcyhvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2l0ZW1zYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHBheShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9wYXlgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICByZWZ1bmQoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vaXRlbXMvcmVmdW5kYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRBbGxSZXR1cm5zKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vcmV0dXJuc2AsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBnZXRSZXR1cm4oaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vcmV0dXJucy8ke2lkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICByZXR1cm5BcHByb3ZlKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9L3JldHVybnMvJHtpZH0vYXBwcm92ZWAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHJldHVyblJlamVjdChpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9yZXR1cm5zLyR7aWR9L3JlamVjdGAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBjYW5jZWwoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vY2FuY2VsYCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class FacilityService extends BaseService {\n init() {\n this.endpoint = 'facilities';\n super.init();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FacilityService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FacilityService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FacilityService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjaWxpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9mYWNpbGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUs3QyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBQ3JDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQztRQUM3QixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO3VHQUpVLGVBQWU7MkdBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGYWNpbGl0eVNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIG92ZXJyaWRlIGluaXQoKSB7XG4gICAgdGhpcy5lbmRwb2ludCA9ICdmYWNpbGl0aWVzJztcbiAgICBzdXBlci5pbml0KCk7XG4gIH1cbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class AmenityService extends BaseService {\n init() {\n this.endpoint = 'resources/amenities';\n super.init();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: AmenityService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: AmenityService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: AmenityService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1lbml0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL2FtZW5pdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLN0MsTUFBTSxPQUFPLGNBQWUsU0FBUSxXQUFXO0lBQ3BDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLHFCQUFxQixDQUFDO1FBQ3RDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7dUdBSlUsY0FBYzsyR0FBZCxjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFtZW5pdHlTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAncmVzb3VyY2VzL2FtZW5pdGllcyc7XG4gICAgc3VwZXIuaW5pdCgpO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { map, switchMap } from 'rxjs';\nimport { BaseService } from './base.service';\nimport _ from 'lodash';\nimport * as i0 from \"@angular/core\";\nexport class PropertyService extends BaseService {\n init() {\n this.endpoint = 'properties';\n super.init();\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n findByIds(ids) {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}/by`, {\n params: params,\n withCredentials: true,\n });\n }\n publish(propertyId) {\n return this.http.post(`${this.actionUrl}/${propertyId}/publish`, {}, {\n withCredentials: true,\n });\n }\n submitForReview(propertyId) {\n return this.http.post(`${this.actionUrl}/${propertyId}/review`, {}, {\n withCredentials: true,\n });\n }\n reviewApprove(id) {\n return this.http.post(`${this.actionUrl}/${id}/reviews/approve`, {}, {\n withCredentials: true,\n });\n }\n reviewReject(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/reviews/accept`, data, {\n withCredentials: true,\n });\n }\n export() {\n return this.http.get(`${this.actionUrl}/export`, {\n observe: 'response',\n responseType: 'blob',\n withCredentials: true\n }).pipe(map((resp) => {\n const cd = resp.headers.get('Content-Disposition') || '';\n const match = /filename\\*?=(?:UTF-8''|\")?([^\";]+)/i.exec(cd);\n const raw = match?.[1] ?? 'properties.csv';\n // decode RFC5987 filenames\n const filename = decodeURIComponent(raw.replace(/\"/g, ''));\n return { blob: resp.body, filename };\n }));\n }\n archived(propertyId) {\n return this.http.post(`${this.actionUrl}/${propertyId}/archived`, {}, {\n withCredentials: true,\n });\n }\n findWishlist(options) {\n return this.http.get(`${this.actionUrl}/wishlist`, { params: options, withCredentials: true });\n }\n addToWishlist(propertyId) {\n return this.http.post(`${this.actionUrl}/${propertyId}/wishlist`, {}, { withCredentials: true });\n }\n removeFromWishlist(propertyId) {\n return this.http.delete(`${this.actionUrl}/${propertyId}/wishlist`, { withCredentials: true });\n }\n wishListCheck(propertyId) {\n return this.http.get(`${this.actionUrl}/${propertyId}/wishlist/check`, { withCredentials: true });\n }\n findPurchasedByPropertyId(propertyId) {\n return this.http.get(`${this.actionUrl}/users/me/by?propertyId=${propertyId}`, {\n withCredentials: true,\n });\n }\n // Media\n uploadMedia(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id, mediaId) {\n return this.http.delete(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n // Pricing\n addPricing(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/pricing`, data, {\n withCredentials: true,\n });\n }\n updatePricing(pricingId, data) {\n return this.http.put(`${this.actionUrl}/pricing/${pricingId}`, data, {\n withCredentials: true,\n });\n }\n deletePricing(pricingId) {\n return this.http.delete(`${this.actionUrl}/pricing/${pricingId}`, {\n withCredentials: true,\n });\n }\n // Section\n addSection(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/sections`, data, {\n withCredentials: true,\n });\n }\n addBatchSections(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/sections/batch`, data, {\n withCredentials: true,\n });\n }\n findSections(propertyId) {\n return this.http.get(`${this.actionUrl}/${propertyId}/sections`, {\n withCredentials: true,\n });\n }\n updateSection(sectionId, data) {\n return this.http.put(`${this.actionUrl}/sections/${sectionId}`, data, {\n withCredentials: true,\n });\n }\n deleteSection(sectionId) {\n return this.http.delete(`${this.actionUrl}/sections/${sectionId}`, {\n withCredentials: true,\n });\n }\n uploadSectionMedia(sectionId, data) {\n return this.http.post(`${this.actionUrl}/sections/${sectionId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteSectionMedia(sectionId, mediaId) {\n return this.http.delete(`${this.actionUrl}/sections/${sectionId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n addOption(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/options`, data, {\n withCredentials: true,\n });\n }\n findOptions(propertyId) {\n return this.http.get(`${this.actionUrl}/${propertyId}/options`);\n }\n updateOption(optionId, data) {\n return this.http.put(`${this.actionUrl}/options/${optionId}`, data, {\n withCredentials: true,\n });\n }\n deleteOption(optionId) {\n return this.http.delete(`${this.actionUrl}/options/${optionId}`, {\n withCredentials: true,\n });\n }\n // variants\n updateVariantPrice(propertyId, status) {\n return this.http.put(`${this.actionUrl}/${propertyId}/variants/by?status=${status}`, {}, {\n withCredentials: true,\n });\n }\n createVariants(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/variants`, data, {\n withCredentials: true,\n });\n }\n getVariant(variantId) {\n return this.http.get(`${this.actionUrl}/variants/${variantId}`);\n }\n findVariants(propertyId) {\n return this.http.get(`${this.actionUrl}/${propertyId}/variants`);\n }\n findVariantsByIds(ids) {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}/variants/by`, {\n params: params,\n withCredentials: true,\n });\n }\n updateVariants(propertyId, data) {\n return this.http.put(`${this.actionUrl}/${propertyId}/variants`, data, {\n withCredentials: true,\n });\n }\n uploadVariantMedia(variantId, data) {\n return this.http.post(`${this.actionUrl}/variants/${variantId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteVariantMedia(variantId, mediaId) {\n return this.http.delete(`${this.actionUrl}/variants/${variantId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n findViewingsByUser(options) {\n return this.http\n .get(`${this.actionUrl}/viewings/by/user`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingProperty = _.find(properties.data, { id: item.propertyId });\n item.property = matchingProperty;\n });\n return res;\n }));\n }));\n }\n findViewingsByAgent(options) {\n return this.http\n .get(`${this.actionUrl}/viewings/by/agent`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingProperty = _.find(properties.data, { id: item.propertyId });\n item.property = matchingProperty;\n });\n return res;\n }));\n }));\n }\n requestViewing(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/viewings`, data, {\n withCredentials: true,\n });\n }\n confirmViewing(viewingId, slotId) {\n return this.http.post(`${this.actionUrl}/viewings/${viewingId}/confirm?slotId=${slotId}`, {}, {\n withCredentials: true,\n });\n }\n getViewing(viewingId) {\n return this.http.get(`${this.actionUrl}/viewings/${viewingId}`, { withCredentials: true });\n }\n cancelViewing(id) {\n return this.http.post(`${this.actionUrl}/viewings/${id}/cancel`, {}, {\n withCredentials: true,\n });\n }\n makeOffer(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/offers`, data, {\n withCredentials: true,\n });\n }\n findOffers(options) {\n return this.http\n .get(`${this.actionUrl}/offers`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }));\n }));\n }\n findOffersByUser(options) {\n return this.http\n .get(`${this.actionUrl}/offers/by/user`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }));\n }));\n }\n findOffersByAgent(options) {\n return this.http\n .get(`${this.actionUrl}/offers/by/agent`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }));\n }));\n }\n findPropertiesByIds(ids) {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}`, {\n params: params,\n });\n }\n getOffer(offerId) {\n return this.http.get(`${this.actionUrl}/offers/${offerId}`, { withCredentials: true });\n }\n cancelOffer(id) {\n return this.http.post(`${this.actionUrl}/offers/${id}/cancel`, {}, {\n withCredentials: true,\n });\n }\n acceptOffer(id) {\n return this.http.put(`${this.actionUrl}/offers/${id}/accept`, {}, {\n withCredentials: true,\n });\n }\n rejectOffer(id, data) {\n return this.http.put(`${this.actionUrl}/offers/${id}/reject`, data, {\n withCredentials: true,\n });\n }\n createHoldingDepositCheckout(offerId, data) {\n return this.http.post(`${this.actionUrl}/offers/${offerId}/pay/holding-deposit`, data, {\n withCredentials: true,\n });\n }\n createSecurityDepositCheckout(offerId, data) {\n return this.http.post(`${this.actionUrl}/offers/${offerId}/pay/security-deposit`, data, {\n withCredentials: true,\n });\n }\n checkOfferPaymentStatus(offerId, sessionId) {\n const options = {\n sessionId,\n };\n return this.http.get(`${this.actionUrl}/offers/${offerId}/session`, { params: options, withCredentials: true });\n }\n offerTimeline(offerId) {\n return this.http.get(`${this.actionUrl}/offers/${offerId}/timeline`, {\n withCredentials: true,\n });\n }\n getHighlights(id) {\n return this.http.get(`${this.actionUrl}/${id}/highlights`, { withCredentials: false });\n }\n findFeatures(id) {\n return this.http.get(`${this.actionUrl}/${id}/features`, { withCredentials: false });\n }\n updateFeatures(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/features`, data, { withCredentials: true });\n }\n updateLocation(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/location`, data, { withCredentials: true });\n }\n updateAgent(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/agents`, data, { withCredentials: true });\n }\n // Videos\n getVideos(id) {\n return this.http.get(`${this.actionUrl}/${id}/videos`, { withCredentials: true });\n }\n addVideo(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/videos`, data, { withCredentials: true });\n }\n updateVideo(id, videoId, data) {\n return this.http.put(`${this.actionUrl}/${id}/videos/${videoId}`, data, { withCredentials: true });\n }\n deleteVideo(id, videoId) {\n return this.http.delete(`${this.actionUrl}/${id}/videos/${videoId}`, { withCredentials: true });\n }\n uploadVideoThumbnail(videoId, data) {\n return this.http.post(`${this.actionUrl}/videos/${videoId}/thumbnail`, data, {\n withCredentials: true,\n });\n }\n // Tenants\n findTenants(options) {\n return this.http.get(`${this.actionUrl}/tenants`, { withCredentials: true, params: options, });\n }\n getTenant(id) {\n return this.http.get(`${this.actionUrl}/tenants/${id}`, { withCredentials: true });\n }\n createTenant(data) {\n return this.http.post(`${this.actionUrl}/tenants`, data, { withCredentials: true });\n }\n updateTenant(id, data) {\n return this.http.put(`${this.actionUrl}/tenants/${id}`, data, { withCredentials: true });\n }\n deleteTenant(id) {\n return this.http.delete(`${this.actionUrl}/tenants/${id}`, { withCredentials: true });\n }\n //COS\n uploadVideosInit(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/videos/init`, data, {\n withCredentials: true,\n });\n }\n uploadVideosPartsToProperty(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/videos/parts`, data, {\n withCredentials: true,\n });\n }\n completePartUpload(videoId, data) {\n return this.http.put(`${this.actionUrl}/videos/${videoId}/parts`, data, {\n withCredentials: true,\n });\n }\n uploadVideoToProperty(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/videos`, data, {\n withCredentials: true,\n });\n }\n deletePropertyVideo(propertyId, videoId) {\n return this.http.delete(`${this.actionUrl}/${propertyId}/videos/${videoId}`, { withCredentials: true });\n }\n uploadPropertyVideoThumbnail(videoId, data) {\n return this.http.post(`${this.actionUrl}/videos/${videoId}/thumbnail`, data, {\n withCredentials: true,\n });\n }\n // epc\n getEpc(id) {\n return this.http.get(`${this.actionUrl}/${id}/epc`, { withCredentials: false });\n }\n addEpc(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/epc`, data, { withCredentials: true });\n }\n updateEpc(id, data) {\n return this.http.put(`${this.actionUrl}/${id}/epc`, data, { withCredentials: true });\n }\n deleteEpc(id) {\n return this.http.delete(`${this.actionUrl}/${id}/epc`, { withCredentials: true });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9wcm9wZXJ0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7QUFNdkIsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBVztJQUNyQyxJQUFJO1FBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7UUFDN0IsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELEVBQUUsQ0FBQyxPQUFZO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRTtZQUNoRCxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxTQUFTLENBQUMsR0FBa0I7UUFDMUIsTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUU7WUFDaEQsTUFBTSxFQUFFLE1BQU07WUFDZCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxDQUFDLFVBQWtCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFVBQVUsRUFDekMsRUFBRSxFQUNGO1lBQ0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELGVBQWUsQ0FBQyxVQUFrQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxTQUFTLEVBQ3hDLEVBQUUsRUFDRjtZQUNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxhQUFhLENBQUMsRUFBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxrQkFBa0IsRUFDekMsRUFBRSxFQUNGO1lBQ0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELFlBQVksQ0FBQyxFQUFVLEVBQUUsSUFBUztRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRTtZQUN6RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxTQUFTLEVBQUU7WUFDL0MsT0FBTyxFQUFFLFVBQVU7WUFDbkIsWUFBWSxFQUFFLE1BQU07WUFDcEIsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxJQUF3QixFQUFFLEVBQUU7WUFDL0IsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekQsTUFBTSxLQUFLLEdBQUcscUNBQXFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdELE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLGdCQUFnQixDQUFDO1lBQzNDLDJCQUEyQjtZQUMzQixNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNELE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQVksRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUNELFFBQVEsQ0FBQyxVQUFrQjtRQUN6QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxXQUFXLEVBQzFDLEVBQUUsRUFDRjtZQUNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxZQUFZLENBQUMsT0FBWTtRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBQ0QsYUFBYSxDQUFDLFVBQWtCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFVBQVUsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxVQUFrQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFdBQVcsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFDRCxhQUFhLENBQUMsVUFBa0I7UUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxpQkFBaUIsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFDRCx5QkFBeUIsQ0FBQyxVQUFrQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsMkJBQTJCLFVBQVUsRUFBRSxFQUFFO1lBQzdFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxRQUFRO0lBQ1IsV0FBVyxDQUFDLFVBQWtCLEVBQUUsSUFBYztRQUM1QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDeEUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVcsQ0FBQyxFQUFVLEVBQUUsT0FBZTtRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFVBQVUsT0FBTyxFQUFFLEVBQUU7WUFDdkUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVU7SUFDVixVQUFVLENBQUMsVUFBa0IsRUFBRSxJQUFTO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFVBQVUsVUFBVSxFQUFFLElBQUksRUFBRTtZQUMxRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLFNBQWlCLEVBQUUsSUFBUztRQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWSxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDeEUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGFBQWEsQ0FBQyxTQUFpQjtRQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWSxTQUFTLEVBQUUsRUFBRTtZQUNyRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsVUFBVTtJQUNWLFVBQVUsQ0FBQyxVQUFrQixFQUFFLElBQVM7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBQzNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxVQUFrQixFQUFFLElBQVM7UUFDNUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxpQkFBaUIsRUFBRSxJQUFJLEVBQUU7WUFDakYsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFlBQVksQ0FBQyxVQUFrQjtRQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFdBQVcsRUFBRTtZQUNwRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLFNBQWlCLEVBQUUsSUFBUztRQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsYUFBYSxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDekUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGFBQWEsQ0FBQyxTQUFpQjtRQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsYUFBYSxTQUFTLEVBQUUsRUFBRTtZQUN0RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsU0FBaUIsRUFBRSxJQUFjO1FBQ2xELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxhQUFhLFNBQVMsUUFBUSxFQUFFLElBQUksRUFBRTtZQUNoRixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsU0FBaUIsRUFBRSxPQUFlO1FBQ25ELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxhQUFhLFNBQVMsVUFBVSxPQUFPLEVBQUUsRUFBRTtZQUN2RixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsU0FBUyxDQUFDLFVBQWtCLEVBQUUsSUFBUztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFVBQVUsRUFBRSxJQUFJLEVBQUU7WUFDMUUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVcsQ0FBQyxVQUFrQjtRQUM1QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFDRCxZQUFZLENBQUMsUUFBZ0IsRUFBRSxJQUFTO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxZQUFZLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRTtZQUN2RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsWUFBWSxDQUFDLFFBQWdCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxZQUFZLFFBQVEsRUFBRSxFQUFFO1lBQ3BFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXO0lBQ1gsa0JBQWtCLENBQUMsVUFBa0IsRUFBRSxNQUFlO1FBQ3BELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLHVCQUF1QixNQUFNLEVBQUUsRUFDOUQsRUFBRSxFQUNGO1lBQ0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELGNBQWMsQ0FBQyxVQUFrQixFQUFFLElBQVM7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBQzNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxVQUFVLENBQUMsU0FBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBQ0QsWUFBWSxDQUFDLFVBQWtCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFVBQVUsV0FBVyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUNELGlCQUFpQixDQUFDLEdBQWtCO1FBQ2xDLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsY0FBYyxFQUFFO1lBQ3pELE1BQU0sRUFBRSxNQUFNO1lBQ2QsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGNBQWMsQ0FBQyxVQUFrQixFQUFFLElBQVM7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBQzFFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxTQUFpQixFQUFFLElBQWM7UUFDbEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsU0FBUyxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQ2hGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxTQUFpQixFQUFFLE9BQWU7UUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsU0FBUyxVQUFVLE9BQU8sRUFBRSxFQUFFO1lBQ3ZGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxPQUFZO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxtQkFBbUIsRUFBRTtZQUM5QyxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDRCxJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDaEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtZQUM5RSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQy9DLEdBQUcsQ0FBQyxDQUFDLFVBQWUsRUFBRSxFQUFFO2dCQUN0QixHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO29CQUM5QixNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztvQkFDMUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQztnQkFDbkMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxPQUFZO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxvQkFBb0IsRUFBRTtZQUMvQyxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDRCxJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDaEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtZQUM5RSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQy9DLEdBQUcsQ0FBQyxDQUFDLFVBQWUsRUFBRSxFQUFFO2dCQUN0QixHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO29CQUM5QixNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztvQkFDMUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQztnQkFDbkMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFDRCxjQUFjLENBQUMsVUFBa0IsRUFBRSxJQUFTO1FBQzFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFVBQVUsV0FBVyxFQUFFLElBQUksRUFBRTtZQUMzRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsY0FBYyxDQUFDLFNBQWlCLEVBQUUsTUFBYztRQUM5QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsU0FBUyxtQkFBbUIsTUFBTSxFQUFFLEVBQ2xFLEVBQUUsRUFDRjtZQUNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxVQUFVLENBQUMsU0FBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsU0FBUyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBQ0QsYUFBYSxDQUFDLEVBQVU7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsR0FBRyxJQUFJLENBQUMsU0FBUyxhQUFhLEVBQUUsU0FBUyxFQUN6QyxFQUFFLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsU0FBUyxDQUFDLFVBQWtCLEVBQUUsSUFBUztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFNBQVMsRUFBRSxJQUFJLEVBQUU7WUFDekUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVUsQ0FBQyxPQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxTQUFTLEVBQUU7WUFDcEMsTUFBTSxFQUFFLE9BQU87WUFDZixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDO2FBQ0QsSUFBSSxDQUNILFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2hCLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUI7WUFDOUUsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUMvQyxHQUFHLENBQUMsQ0FBQyxVQUFlLEVBQUUsRUFBRTtnQkFDdEIsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtvQkFDOUIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO29CQUN0RSxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxPQUFZO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxpQkFBaUIsRUFBRTtZQUM1QyxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDRCxJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDaEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtZQUM5RSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQy9DLEdBQUcsQ0FBQyxDQUFDLFVBQWUsRUFBRSxFQUFFO2dCQUN0QixHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO29CQUM5QixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7b0JBQ3RFLElBQUksQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDO2dCQUMvQixDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUNELGlCQUFpQixDQUFDLE9BQVk7UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGtCQUFrQixFQUFFO1lBQzdDLE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQzthQUNELElBQUksQ0FDSCxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNoQixNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CO1lBQzlFLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDL0MsR0FBRyxDQUFDLENBQUMsVUFBZSxFQUFFLEVBQUU7Z0JBQ3RCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7b0JBQzlCLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztvQkFDdEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxDQUFDO2dCQUNILE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBQ0QsbUJBQW1CLENBQUMsR0FBa0I7UUFDcEMsTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDN0MsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsUUFBUSxDQUFDLE9BQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFdBQVcsT0FBTyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsR0FBRyxJQUFJLENBQUMsU0FBUyxXQUFXLEVBQUUsU0FBUyxFQUN2QyxFQUFFLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsR0FBRyxJQUFJLENBQUMsU0FBUyxXQUFXLEVBQUUsU0FBUyxFQUN2QyxFQUFFLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVUsRUFBRSxJQUFTO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxXQUFXLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtZQUN2RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsNEJBQTRCLENBQUMsT0FBZSxFQUFFLElBQVM7UUFDckQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFdBQVcsT0FBTyxzQkFBc0IsRUFBRSxJQUFJLEVBQUU7WUFDMUYsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELDZCQUE2QixDQUFDLE9BQWUsRUFBRSxJQUFTO1FBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxXQUFXLE9BQU8sdUJBQXVCLEVBQUUsSUFBSSxFQUFFO1lBQzNGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCx1QkFBdUIsQ0FBQyxPQUFZLEVBQUUsU0FBaUI7UUFDckQsTUFBTSxPQUFPLEdBQUc7WUFDZCxTQUFTO1NBQ1YsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxXQUFXLE9BQU8sVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2SCxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQWU7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFdBQVcsT0FBTyxXQUFXLEVBQUU7WUFDeEUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGFBQWEsQ0FBSSxFQUFVO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsYUFBYSxFQUFFLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUNELFlBQVksQ0FBSSxFQUFVO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUNELGNBQWMsQ0FBSSxFQUFVLEVBQUUsSUFBUztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBQ0QsY0FBYyxDQUFJLEVBQVUsRUFBRSxJQUFTO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFDRCxXQUFXLENBQUksRUFBVSxFQUFFLElBQVM7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUNELFNBQVM7SUFDVCxTQUFTLENBQUksRUFBVTtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFDRCxRQUFRLENBQUksRUFBVSxFQUFFLElBQVM7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUNELFdBQVcsQ0FBSSxFQUFVLEVBQUUsT0FBZSxFQUFFLElBQVM7UUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxXQUFXLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFDRCxXQUFXLENBQUksRUFBVSxFQUFFLE9BQWU7UUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxXQUFXLE9BQU8sRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDckcsQ0FBQztJQUNELG9CQUFvQixDQUFDLE9BQVksRUFBRSxJQUFjO1FBQy9DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxXQUFXLE9BQU8sWUFBWSxFQUFFLElBQUksRUFBRTtZQUMzRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVTtJQUNWLFdBQVcsQ0FBSSxPQUFZO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxVQUFVLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFDRCxTQUFTLENBQUksRUFBVTtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWSxFQUFFLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFDRCxZQUFZLENBQUksSUFBUztRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsVUFBVSxFQUFFLElBQUksRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFDRCxZQUFZLENBQUksRUFBVSxFQUFFLElBQVM7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLFlBQVksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUNELFlBQVksQ0FBSSxFQUFVO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxZQUFZLEVBQUUsRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELEtBQUs7SUFDTCxnQkFBZ0IsQ0FBQyxVQUFrQixFQUFFLElBQVM7UUFDNUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxjQUFjLEVBQUUsSUFBSSxFQUFFO1lBQzlFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCwyQkFBMkIsQ0FBQyxVQUFrQixFQUFFLElBQWM7UUFDNUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxlQUFlLEVBQUUsSUFBSSxFQUFFO1lBQy9FLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxPQUFlLEVBQUUsSUFBUztRQUMzQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxPQUFPLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDM0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELHFCQUFxQixDQUFDLFVBQWtCLEVBQUUsSUFBUztRQUNqRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFNBQVMsRUFBRSxJQUFJLEVBQUU7WUFDekUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELG1CQUFtQixDQUFDLFVBQWtCLEVBQUUsT0FBWTtRQUNsRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFdBQVcsT0FBTyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxRyxDQUFDO0lBQ0QsNEJBQTRCLENBQUMsT0FBWSxFQUFFLElBQWM7UUFDdkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLFdBQVcsT0FBTyxZQUFZLEVBQUUsSUFBSSxFQUFFO1lBQzNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNO0lBQ04sTUFBTSxDQUFJLEVBQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBQ0QsTUFBTSxDQUFJLEVBQVUsRUFBRSxJQUFTO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFDRCxTQUFTLENBQUksRUFBVSxFQUFFLElBQVM7UUFDaEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUNELFNBQVMsQ0FBSSxFQUFVO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkYsQ0FBQzt1R0FwZlUsZUFBZTsyR0FBZixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAncHJvcGVydGllcyc7XG4gICAgc3VwZXIuaW5pdCgpO1xuICB9XG5cbiAgbWUob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9tZWAsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kQnlJZHMoaWRzOiBBcnJheTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB7IGlkczogaWRzLmpvaW4oJywnKSB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2J5YCwge1xuICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgcHVibGlzaChwcm9wZXJ0eUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vcHVibGlzaGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHN1Ym1pdEZvclJldmlldyhwcm9wZXJ0eUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vcmV2aWV3YCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbiAgcmV2aWV3QXBwcm92ZShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9yZXZpZXdzL2FwcHJvdmVgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICByZXZpZXdSZWplY3QoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vcmV2aWV3cy9hY2NlcHRgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZXhwb3J0KCk6IE9ic2VydmFibGU8eyBibG9iOiBCbG9iOyBmaWxlbmFtZTogc3RyaW5nIH0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vZXhwb3J0YCwge1xuICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgocmVzcDogSHR0cFJlc3BvbnNlPEJsb2I+KSA9PiB7XG4gICAgICAgIGNvbnN0IGNkID0gcmVzcC5oZWFkZXJzLmdldCgnQ29udGVudC1EaXNwb3NpdGlvbicpIHx8ICcnO1xuICAgICAgICBjb25zdCBtYXRjaCA9IC9maWxlbmFtZVxcKj89KD86VVRGLTgnJ3xcIik/KFteXCI7XSspL2kuZXhlYyhjZCk7XG4gICAgICAgIGNvbnN0IHJhdyA9IG1hdGNoPy5bMV0gPz8gJ3Byb3BlcnRpZXMuY3N2JztcbiAgICAgICAgLy8gZGVjb2RlIFJGQzU5ODcgZmlsZW5hbWVzXG4gICAgICAgIGNvbnN0IGZpbGVuYW1lID0gZGVjb2RlVVJJQ29tcG9uZW50KHJhdy5yZXBsYWNlKC9cIi9nLCAnJykpO1xuICAgICAgICByZXR1cm4geyBibG9iOiByZXNwLmJvZHkgYXMgQmxvYiwgZmlsZW5hbWUgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuICBhcmNoaXZlZChwcm9wZXJ0eUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vYXJjaGl2ZWRgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICBmaW5kV2lzaGxpc3Qob3B0aW9uczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hY3Rpb25Vcmx9L3dpc2hsaXN0YCwgeyBwYXJhbXM6IG9wdGlvbnMsIHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBhZGRUb1dpc2hsaXN0KHByb3BlcnR5SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS93aXNobGlzdGAsIHt9LCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICByZW1vdmVGcm9tV2lzaGxpc3QocHJvcGVydHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vd2lzaGxpc3RgLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICB3aXNoTGlzdENoZWNrKHByb3BlcnR5SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3dpc2hsaXN0L2NoZWNrYCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgZmluZFB1cmNoYXNlZEJ5UHJvcGVydHlJZChwcm9wZXJ0eUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vdXNlcnMvbWUvYnk/cHJvcGVydHlJZD0ke3Byb3BlcnR5SWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIC8vIE1lZGlhXG4gIHVwbG9hZE1lZGlhKHByb3BlcnR5SWQ6IHN0cmluZywgZGF0YTogRm9ybURhdGEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L21lZGlhYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZU1lZGlhKGlkOiBzdHJpbmcsIG1lZGlhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vbWVkaWEvJHttZWRpYUlkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICAvLyBQcmljaW5nXG4gIGFkZFByaWNpbmcocHJvcGVydHlJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3ByaWNpbmdgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBkYXRlUHJpY2luZyhwcmljaW5nSWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9wcmljaW5nLyR7cHJpY2luZ0lkfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVQcmljaW5nKHByaWNpbmdJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9wcmljaW5nLyR7cHJpY2luZ0lkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICAvLyBTZWN0aW9uXG4gIGFkZFNlY3Rpb24ocHJvcGVydHlJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3NlY3Rpb25zYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGFkZEJhdGNoU2VjdGlvbnMocHJvcGVydHlJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3NlY3Rpb25zL2JhdGNoYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRTZWN0aW9ucyhwcm9wZXJ0eUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vc2VjdGlvbnNgLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBkYXRlU2VjdGlvbihzZWN0aW9uSWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9zZWN0aW9ucy8ke3NlY3Rpb25JZH1gLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlU2VjdGlvbihzZWN0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vc2VjdGlvbnMvJHtzZWN0aW9uSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwbG9hZFNlY3Rpb25NZWRpYShzZWN0aW9uSWQ6IHN0cmluZywgZGF0YTogRm9ybURhdGEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9zZWN0aW9ucy8ke3NlY3Rpb25JZH0vbWVkaWFgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlU2VjdGlvbk1lZGlhKHNlY3Rpb25JZDogc3RyaW5nLCBtZWRpYUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3NlY3Rpb25zLyR7c2VjdGlvbklkfS9tZWRpYS8ke21lZGlhSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGFkZE9wdGlvbihwcm9wZXJ0eUlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vb3B0aW9uc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kT3B0aW9ucyhwcm9wZXJ0eUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vb3B0aW9uc2ApO1xuICB9XG4gIHVwZGF0ZU9wdGlvbihvcHRpb25JZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L29wdGlvbnMvJHtvcHRpb25JZH1gLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlT3B0aW9uKG9wdGlvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L29wdGlvbnMvJHtvcHRpb25JZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgLy8gdmFyaWFudHNcbiAgdXBkYXRlVmFyaWFudFByaWNlKHByb3BlcnR5SWQ6IHN0cmluZywgc3RhdHVzOiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vdmFyaWFudHMvYnk/c3RhdHVzPSR7c3RhdHVzfWAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIGNyZWF0ZVZhcmlhbnRzKHByb3BlcnR5SWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS92YXJpYW50c2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBnZXRWYXJpYW50KHZhcmlhbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS92YXJpYW50cy8ke3ZhcmlhbnRJZH1gKTtcbiAgfVxuICBmaW5kVmFyaWFudHMocHJvcGVydHlJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3ZhcmlhbnRzYCk7XG4gIH1cbiAgZmluZFZhcmlhbnRzQnlJZHMoaWRzOiBBcnJheTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB7IGlkczogaWRzLmpvaW4oJywnKSB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ZhcmlhbnRzL2J5YCwge1xuICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBkYXRlVmFyaWFudHMocHJvcGVydHlJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vdmFyaWFudHNgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBsb2FkVmFyaWFudE1lZGlhKHZhcmlhbnRJZDogc3RyaW5nLCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ZhcmlhbnRzLyR7dmFyaWFudElkfS9tZWRpYWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVWYXJpYW50TWVkaWEodmFyaWFudElkOiBzdHJpbmcsIG1lZGlhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vdmFyaWFudHMvJHt2YXJpYW50SWR9L21lZGlhLyR7bWVkaWFJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZmluZFZpZXdpbmdzQnlVc2VyKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS92aWV3aW5ncy9ieS91c2VyYCwge1xuICAgICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChyZXMpID0+IHtcbiAgICAgICAgICBjb25zdCBwcm9wZXJ0eUlkcyA9IF8udW5pcShfLm1hcChyZXMuZGF0YSwgJ3Byb3BlcnR5SWQnKSk7IC8vIFsxMiwgMTQsIDE2LCAxOF1cbiAgICAgICAgICByZXR1cm4gdGhpcy5maW5kUHJvcGVydGllc0J5SWRzKHByb3BlcnR5SWRzKS5waXBlKFxuICAgICAgICAgICAgbWFwKChwcm9wZXJ0aWVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmVzLmRhdGE/LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nUHJvcGVydHkgPSBfLmZpbmQocHJvcGVydGllcy5kYXRhLCB7IGlkOiBpdGVtLnByb3BlcnR5SWQgfSk7XG4gICAgICAgICAgICAgICAgaXRlbS5wcm9wZXJ0eSA9IG1hdGNoaW5nUHJvcGVydHk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG4gIGZpbmRWaWV3aW5nc0J5QWdlbnQob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ZpZXdpbmdzL2J5L2FnZW50YCwge1xuICAgICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChyZXMpID0+IHtcbiAgICAgICAgICBjb25zdCBwcm9wZXJ0eUlkcyA9IF8udW5pcShfLm1hcChyZXMuZGF0YSwgJ3Byb3BlcnR5SWQnKSk7IC8vIFsxMiwgMTQsIDE2LCAxOF1cbiAgICAgICAgICByZXR1cm4gdGhpcy5maW5kUHJvcGVydGllc0J5SWRzKHByb3BlcnR5SWRzKS5waXBlKFxuICAgICAgICAgICAgbWFwKChwcm9wZXJ0aWVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmVzLmRhdGE/LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nUHJvcGVydHkgPSBfLmZpbmQocHJvcGVydGllcy5kYXRhLCB7IGlkOiBpdGVtLnByb3BlcnR5SWQgfSk7XG4gICAgICAgICAgICAgICAgaXRlbS5wcm9wZXJ0eSA9IG1hdGNoaW5nUHJvcGVydHk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG4gIHJlcXVlc3RWaWV3aW5nKHByb3BlcnR5SWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS92aWV3aW5nc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBjb25maXJtVmlld2luZyh2aWV3aW5nSWQ6IHN0cmluZywgc2xvdElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9L3ZpZXdpbmdzLyR7dmlld2luZ0lkfS9jb25maXJtP3Nsb3RJZD0ke3Nsb3RJZH1gLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICBnZXRWaWV3aW5nKHZpZXdpbmdJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS92aWV3aW5ncy8ke3ZpZXdpbmdJZH1gLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBjYW5jZWxWaWV3aW5nKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9L3ZpZXdpbmdzLyR7aWR9L2NhbmNlbGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIG1ha2VPZmZlcihwcm9wZXJ0eUlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vb2ZmZXJzYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRPZmZlcnMob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L29mZmVyc2AsIHtcbiAgICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJvcGVydHlJZHMgPSBfLnVuaXEoXy5tYXAocmVzLmRhdGEsICdwcm9wZXJ0eUlkJykpOyAvLyBbMTIsIDE0LCAxNiwgMThdXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmluZFByb3BlcnRpZXNCeUlkcyhwcm9wZXJ0eUlkcykucGlwZShcbiAgICAgICAgICAgIG1hcCgocHJvcGVydGllczogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHJlcy5kYXRhPy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ1VzZXIgPSBfLmZpbmQocHJvcGVydGllcy5kYXRhLCB7IGlkOiBpdGVtLnByb3BlcnR5SWQgfSk7XG4gICAgICAgICAgICAgICAgaXRlbS5wcm9wZXJ0eSA9IG1hdGNoaW5nVXNlcjtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cbiAgZmluZE9mZmVyc0J5VXNlcihvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vb2ZmZXJzL2J5L3VzZXJgLCB7XG4gICAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHJlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb3BlcnR5SWRzID0gXy51bmlxKF8ubWFwKHJlcy5kYXRhLCAncHJvcGVydHlJZCcpKTsgLy8gWzEyLCAxNCwgMTYsIDE4XVxuICAgICAgICAgIHJldHVybiB0aGlzLmZpbmRQcm9wZXJ0aWVzQnlJZHMocHJvcGVydHlJZHMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHByb3BlcnRpZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICByZXMuZGF0YT8uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdVc2VyID0gXy5maW5kKHByb3BlcnRpZXMuZGF0YSwgeyBpZDogaXRlbS5wcm9wZXJ0eUlkIH0pO1xuICAgICAgICAgICAgICAgIGl0ZW0ucHJvcGVydHkgPSBtYXRjaGluZ1VzZXI7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG4gIGZpbmRPZmZlcnNCeUFnZW50KG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9vZmZlcnMvYnkvYWdlbnRgLCB7XG4gICAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHJlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb3BlcnR5SWRzID0gXy51bmlxKF8ubWFwKHJlcy5kYXRhLCAncHJvcGVydHlJZCcpKTsgLy8gWzEyLCAxNCwgMTYsIDE4XVxuICAgICAgICAgIHJldHVybiB0aGlzLmZpbmRQcm9wZXJ0aWVzQnlJZHMocHJvcGVydHlJZHMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHByb3BlcnRpZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICByZXMuZGF0YT8uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdVc2VyID0gXy5maW5kKHByb3BlcnRpZXMuZGF0YSwgeyBpZDogaXRlbS5wcm9wZXJ0eUlkIH0pO1xuICAgICAgICAgICAgICAgIGl0ZW0ucHJvcGVydHkgPSBtYXRjaGluZ1VzZXI7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG4gIGZpbmRQcm9wZXJ0aWVzQnlJZHMoaWRzOiBBcnJheTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB7IGlkczogaWRzLmpvaW4oJywnKSB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9YCwge1xuICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgfSk7XG4gIH1cbiAgZ2V0T2ZmZXIob2ZmZXJJZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9vZmZlcnMvJHtvZmZlcklkfWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGNhbmNlbE9mZmVyKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9L29mZmVycy8ke2lkfS9jYW5jZWxgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICBhY2NlcHRPZmZlcihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9L29mZmVycy8ke2lkfS9hY2NlcHRgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICByZWplY3RPZmZlcihpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L29mZmVycy8ke2lkfS9yZWplY3RgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGVIb2xkaW5nRGVwb3NpdENoZWNrb3V0KG9mZmVySWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vb2ZmZXJzLyR7b2ZmZXJJZH0vcGF5L2hvbGRpbmctZGVwb3NpdGAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBjcmVhdGVTZWN1cml0eURlcG9zaXRDaGVja291dChvZmZlcklkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L29mZmVycy8ke29mZmVySWR9L3BheS9zZWN1cml0eS1kZXBvc2l0YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGNoZWNrT2ZmZXJQYXltZW50U3RhdHVzKG9mZmVySWQ6IGFueSwgc2Vzc2lvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBzZXNzaW9uSWQsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9vZmZlcnMvJHtvZmZlcklkfS9zZXNzaW9uYCwgeyBwYXJhbXM6IG9wdGlvbnMsIHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuXG4gIG9mZmVyVGltZWxpbmUob2ZmZXJJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9vZmZlcnMvJHtvZmZlcklkfS90aW1lbGluZWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBnZXRIaWdobGlnaHRzPFQ+KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vaGlnaGxpZ2h0c2AsIHsgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSB9KTtcbiAgfVxuICBmaW5kRmVhdHVyZXM8VD4oaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9mZWF0dXJlc2AsIHsgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSB9KTtcbiAgfVxuICB1cGRhdGVGZWF0dXJlczxUPihpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2ZlYXR1cmVzYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgdXBkYXRlTG9jYXRpb248VD4oaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9sb2NhdGlvbmAsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIHVwZGF0ZUFnZW50PFQ+KGlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vYWdlbnRzYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgLy8gVmlkZW9zXG4gIGdldFZpZGVvczxUPihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3ZpZGVvc2AsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGFkZFZpZGVvPFQ+KGlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vdmlkZW9zYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgdXBkYXRlVmlkZW88VD4oaWQ6IHN0cmluZywgdmlkZW9JZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUPihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vdmlkZW9zLyR7dmlkZW9JZH1gLCBkYXRhLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBkZWxldGVWaWRlbzxUPihpZDogc3RyaW5nLCB2aWRlb0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxUPihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vdmlkZW9zLyR7dmlkZW9JZH1gLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICB1cGxvYWRWaWRlb1RodW1ibmFpbCh2aWRlb0lkOiBhbnksIGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hY3Rpb25Vcmx9L3ZpZGVvcy8ke3ZpZGVvSWR9L3RodW1ibmFpbGAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFRlbmFudHNcbiAgZmluZFRlbmFudHM8VD4ob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9L3RlbmFudHNgLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSwgcGFyYW1zOiBvcHRpb25zLCB9KTtcbiAgfVxuICBnZXRUZW5hbnQ8VD4oaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KGAke3RoaXMuYWN0aW9uVXJsfS90ZW5hbnRzLyR7aWR9YCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgY3JlYXRlVGVuYW50PFQ+KGRhdGE6IGFueSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPihgJHt0aGlzLmFjdGlvblVybH0vdGVuYW50c2AsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIHVwZGF0ZVRlbmFudDxUPihpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUPihgJHt0aGlzLmFjdGlvblVybH0vdGVuYW50cy8ke2lkfWAsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGRlbGV0ZVRlbmFudDxUPihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9L3RlbmFudHMvJHtpZH1gLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8vQ09TXG4gIHVwbG9hZFZpZGVvc0luaXQocHJvcGVydHlJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3ZpZGVvcy9pbml0YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwbG9hZFZpZGVvc1BhcnRzVG9Qcm9wZXJ0eShwcm9wZXJ0eUlkOiBzdHJpbmcsIGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS92aWRlb3MvcGFydHNgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgY29tcGxldGVQYXJ0VXBsb2FkKHZpZGVvSWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS92aWRlb3MvJHt2aWRlb0lkfS9wYXJ0c2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGxvYWRWaWRlb1RvUHJvcGVydHkocHJvcGVydHlJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3ZpZGVvc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVQcm9wZXJ0eVZpZGVvKHByb3BlcnR5SWQ6IHN0cmluZywgdmlkZW9JZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS92aWRlb3MvJHt2aWRlb0lkfWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIHVwbG9hZFByb3BlcnR5VmlkZW9UaHVtYm5haWwodmlkZW9JZDogYW55LCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYWN0aW9uVXJsfS92aWRlb3MvJHt2aWRlb0lkfS90aHVtYm5haWxgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgLy8gZXBjXG4gIGdldEVwYzxUPihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2VwY2AsIHsgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSB9KTtcbiAgfVxuICBhZGRFcGM8VD4oaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9lcGNgLCBkYXRhLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICB1cGRhdGVFcGM8VD4oaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2VwY2AsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGRlbGV0ZUVwYzxUPihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2VwY2AsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class FeatureService extends BaseService {\n init() {\n this.endpoint = 'properties/features';\n super.init();\n }\n addFeature(data) {\n return this.http.post(`${this.actionUrl}`, data, {\n withCredentials: true,\n });\n }\n updateFeature(featureId, data) {\n return this.http.put(`${this.actionUrl}/${featureId}`, data, {\n withCredentials: true,\n });\n }\n deleteFeature(featureId) {\n return this.http.delete(`${this.actionUrl}/${featureId}`, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FeatureService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FeatureService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FeatureService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL2ZlYXR1cmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFNN0MsTUFBTSxPQUFPLGNBQWUsU0FBUSxXQUFXO0lBQ3BDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLHFCQUFxQixDQUFDO1FBQ3RDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFDRCxVQUFVLENBQUMsSUFBUztRQUNsQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRTtZQUNwRCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLFNBQWlCLEVBQUUsSUFBUztRQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDaEUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGFBQWEsQ0FBQyxTQUFpQjtRQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTLEVBQUUsRUFBRTtZQUM3RCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQW5CVSxjQUFjOzJHQUFkLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZVNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIG92ZXJyaWRlIGluaXQoKSB7XG4gICAgdGhpcy5lbmRwb2ludCA9ICdwcm9wZXJ0aWVzL2ZlYXR1cmVzJztcbiAgICBzdXBlci5pbml0KCk7XG4gIH1cbiAgYWRkRmVhdHVyZShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVGZWF0dXJlKGZlYXR1cmVJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7ZmVhdHVyZUlkfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVGZWF0dXJlKGZlYXR1cmVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2ZlYXR1cmVJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class PaymentService extends BaseService {\n init() {\n this.endpoint = 'payments';\n super.init();\n }\n createPaymentIntent(data) {\n return this.http.post(`${this.actionUrl}/intents`, data, {\n withCredentials: true,\n });\n }\n createPayment(data) {\n return this.http.post(`${this.actionUrl}`, data, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PaymentService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PaymentService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PaymentService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL3BheW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLN0MsTUFBTSxPQUFPLGNBQWUsU0FBUSxXQUFXO0lBQ3BDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsbUJBQW1CLENBQUMsSUFBUztRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsVUFBVSxFQUFFLElBQUksRUFBRTtZQUM1RCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLElBQVM7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDcEQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FkVSxjQUFjOzJHQUFkLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGF5bWVudFNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIG92ZXJyaWRlIGluaXQoKSB7XG4gICAgdGhpcy5lbmRwb2ludCA9ICdwYXltZW50cyc7XG4gICAgc3VwZXIuaW5pdCgpO1xuICB9XG4gIGNyZWF0ZVBheW1lbnRJbnRlbnQoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vaW50ZW50c2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBjcmVhdGVQYXltZW50KGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { map, switchMap } from 'rxjs';\nimport { BaseService } from './base.service';\nimport _ from 'lodash';\nimport * as i0 from \"@angular/core\";\nexport class OfferingService extends BaseService {\n init() {\n this.endpoint = 'offerings';\n super.init();\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n findByIds(ids) {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}/by`, {\n params: params,\n withCredentials: true,\n });\n }\n publish(propertyId) {\n return this.http.post(`${this.actionUrl}/${propertyId}/publish`, {}, {\n withCredentials: true,\n });\n }\n submitForReview(propertyId) {\n return this.http.post(`${this.actionUrl}/${propertyId}/review`, {}, {\n withCredentials: true,\n });\n }\n reviewApprove(id) {\n return this.http.post(`${this.actionUrl}/${id}/reviews/approve`, {}, {\n withCredentials: true,\n });\n }\n reviewReject(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/reviews/accept`, data, {\n withCredentials: true,\n });\n }\n archived(propertyId) {\n return this.http.post(`${this.actionUrl}/${propertyId}/archived`, {}, {\n withCredentials: true,\n });\n }\n findWishlist(options) {\n return this.http.get(`${this.actionUrl}/wishlist`, { params: options, withCredentials: true });\n }\n addToWishlist(propertyId) {\n return this.http.post(`${this.actionUrl}/${propertyId}/wishlist`, {}, { withCredentials: true });\n }\n removeFromWishlist(propertyId) {\n return this.http.delete(`${this.actionUrl}/${propertyId}/wishlist`, { withCredentials: true });\n }\n wishListCheck(propertyId) {\n return this.http.get(`${this.actionUrl}/${propertyId}/wishlist/check`, { withCredentials: true });\n }\n findPurchasedByPropertyId(propertyId) {\n return this.http.get(`${this.actionUrl}/users/me/by?propertyId=${propertyId}`, {\n withCredentials: true,\n });\n }\n // Media\n uploadMedia(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id, mediaId) {\n return this.http.delete(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n // Pricing\n addPricing(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/pricing`, data, {\n withCredentials: true,\n });\n }\n updatePricing(pricingId, data) {\n return this.http.put(`${this.actionUrl}/pricing/${pricingId}`, data, {\n withCredentials: true,\n });\n }\n deletePricing(pricingId) {\n return this.http.delete(`${this.actionUrl}/pricing/${pricingId}`, {\n withCredentials: true,\n });\n }\n // Section\n addSection(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/sections`, data, {\n withCredentials: true,\n });\n }\n addBatchSections(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/sections/batch`, data, {\n withCredentials: true,\n });\n }\n findSections(propertyId) {\n return this.http.get(`${this.actionUrl}/${propertyId}/sections`, {\n withCredentials: true,\n });\n }\n updateSection(sectionId, data) {\n return this.http.put(`${this.actionUrl}/sections/${sectionId}`, data, {\n withCredentials: true,\n });\n }\n deleteSection(sectionId) {\n return this.http.delete(`${this.actionUrl}/sections/${sectionId}`, {\n withCredentials: true,\n });\n }\n uploadSectionMedia(sectionId, data) {\n return this.http.post(`${this.actionUrl}/sections/${sectionId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteSectionMedia(sectionId, mediaId) {\n return this.http.delete(`${this.actionUrl}/sections/${sectionId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n addOption(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/options`, data, {\n withCredentials: true,\n });\n }\n findOptions(propertyId) {\n return this.http.get(`${this.actionUrl}/${propertyId}/options`);\n }\n updateOption(optionId, data) {\n return this.http.put(`${this.actionUrl}/options/${optionId}`, data, {\n withCredentials: true,\n });\n }\n deleteOption(optionId) {\n return this.http.delete(`${this.actionUrl}/options/${optionId}`, {\n withCredentials: true,\n });\n }\n // variants\n updateVariantPrice(propertyId, status) {\n return this.http.put(`${this.actionUrl}/${propertyId}/variants/by?status=${status}`, {}, {\n withCredentials: true,\n });\n }\n createVariants(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/variants`, data, {\n withCredentials: true,\n });\n }\n getVariant(variantId) {\n return this.http.get(`${this.actionUrl}/variants/${variantId}`);\n }\n findVariants(propertyId) {\n return this.http.get(`${this.actionUrl}/${propertyId}/variants`);\n }\n findVariantsByIds(ids) {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}/variants/by`, {\n params: params,\n withCredentials: true,\n });\n }\n updateVariants(propertyId, data) {\n return this.http.put(`${this.actionUrl}/${propertyId}/variants`, data, {\n withCredentials: true,\n });\n }\n uploadVariantMedia(variantId, data) {\n return this.http.post(`${this.actionUrl}/variants/${variantId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteVariantMedia(variantId, mediaId) {\n return this.http.delete(`${this.actionUrl}/variants/${variantId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n findViewingsByUser(options) {\n return this.http\n .get(`${this.actionUrl}/viewings/by/user`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingProperty = _.find(properties.data, { id: item.propertyId });\n item.property = matchingProperty;\n });\n return res;\n }));\n }));\n }\n findViewingsByAgent(options) {\n return this.http\n .get(`${this.actionUrl}/viewings/by/agent`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingProperty = _.find(properties.data, { id: item.propertyId });\n item.property = matchingProperty;\n });\n return res;\n }));\n }));\n }\n requestViewing(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/viewings`, data, {\n withCredentials: true,\n });\n }\n confirmViewing(viewingId, slotId) {\n return this.http.post(`${this.actionUrl}/viewings/${viewingId}/confirm?slotId=${slotId}`, {}, {\n withCredentials: true,\n });\n }\n getViewing(viewingId) {\n return this.http.get(`${this.actionUrl}/viewings/${viewingId}`, { withCredentials: true });\n }\n cancelViewing(id) {\n return this.http.post(`${this.actionUrl}/viewings/${id}/cancel`, {}, {\n withCredentials: true,\n });\n }\n makeOffer(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/offers`, data, {\n withCredentials: true,\n });\n }\n findOffers(options) {\n return this.http\n .get(`${this.actionUrl}/offers`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }));\n }));\n }\n findOffersByUser(options) {\n return this.http\n .get(`${this.actionUrl}/offers/by/user`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }));\n }));\n }\n findOffersByAgent(options) {\n return this.http\n .get(`${this.actionUrl}/offers/by/agent`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }));\n }));\n }\n findPropertiesByIds(ids) {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}`, {\n params: params,\n });\n }\n getOffer(offerId) {\n return this.http.get(`${this.actionUrl}/offers/${offerId}`, { withCredentials: true });\n }\n cancelOffer(id) {\n return this.http.post(`${this.actionUrl}/offers/${id}/cancel`, {}, {\n withCredentials: true,\n });\n }\n acceptOffer(id) {\n return this.http.put(`${this.actionUrl}/offers/${id}/accept`, {}, {\n withCredentials: true,\n });\n }\n rejectOffer(id, data) {\n return this.http.put(`${this.actionUrl}/offers/${id}/reject`, data, {\n withCredentials: true,\n });\n }\n createHoldingDepositCheckout(offerId, data) {\n return this.http.post(`${this.actionUrl}/offers/${offerId}/pay/holding-deposit`, data, {\n withCredentials: true,\n });\n }\n createSecurityDepositCheckout(offerId, data) {\n return this.http.post(`${this.actionUrl}/offers/${offerId}/pay/security-deposit`, data, {\n withCredentials: true,\n });\n }\n checkOfferPaymentStatus(offerId, sessionId) {\n const options = {\n sessionId,\n };\n return this.http.get(`${this.actionUrl}/offers/${offerId}/session`, { params: options, withCredentials: true });\n }\n offerTimeline(offerId) {\n return this.http.get(`${this.actionUrl}/offers/${offerId}/timeline`, {\n withCredentials: true,\n });\n }\n findFeatures(id) {\n return this.http.get(`${this.actionUrl}/${id}/features`, { withCredentials: false });\n }\n updateFeatures(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/features`, data, { withCredentials: true });\n }\n updateLocation(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/location`, data, { withCredentials: true });\n }\n // Videos\n getVideos(id) {\n return this.http.get(`${this.actionUrl}/${id}/videos`, { withCredentials: true });\n }\n addVideo(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/videos`, data, { withCredentials: true });\n }\n updateVideo(id, data) {\n return this.http.put(`${this.actionUrl}/${id}/videos`, data, { withCredentials: true });\n }\n deleteVideo(id, videoId, y) {\n return this.http.delete(`${this.actionUrl}/${id}/videos/${videoId}`, { withCredentials: true });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: OfferingService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: OfferingService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: OfferingService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmZXJpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9vZmZlcmluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7QUFLdkIsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBVztJQUNyQyxJQUFJO1FBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7UUFDNUIsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELEVBQUUsQ0FBQyxPQUFZO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRTtZQUNoRCxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxTQUFTLENBQUMsR0FBa0I7UUFDMUIsTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUU7WUFDaEQsTUFBTSxFQUFFLE1BQU07WUFDZCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxDQUFDLFVBQWtCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUks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QUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBPZmZlcmluZ1NlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIG92ZXJyaWRlIGluaXQoKSB7XG4gICAgdGhpcy5lbmRwb2ludCA9ICdvZmZlcmluZ3MnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuXG4gIG1lKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vbWVgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZmluZEJ5SWRzKGlkczogQXJyYXk8c3RyaW5nPik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgcGFyYW1zID0geyBpZHM6IGlkcy5qb2luKCcsJykgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9ieWAsIHtcbiAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHB1Ymxpc2gocHJvcGVydHlJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3B1Ymxpc2hgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICBzdWJtaXRGb3JSZXZpZXcocHJvcGVydHlJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3Jldmlld2AsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHJldmlld0FwcHJvdmUoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vcmV2aWV3cy9hcHByb3ZlYCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbiAgcmV2aWV3UmVqZWN0KGlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3Jldmlld3MvYWNjZXB0YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGFyY2hpdmVkKHByb3BlcnR5SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS9hcmNoaXZlZGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIGZpbmRXaXNobGlzdChvcHRpb25zOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vd2lzaGxpc3RgLCB7IHBhcmFtczogb3B0aW9ucywgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGFkZFRvV2lzaGxpc3QocHJvcGVydHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3dpc2hsaXN0YCwge30sIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIHJlbW92ZUZyb21XaXNobGlzdChwcm9wZXJ0eUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS93aXNobGlzdGAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIHdpc2hMaXN0Q2hlY2socHJvcGVydHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vd2lzaGxpc3QvY2hlY2tgLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBmaW5kUHVyY2hhc2VkQnlQcm9wZXJ0eUlkKHByb3BlcnR5SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYWN0aW9uVXJsfS91c2Vycy9tZS9ieT9wcm9wZXJ0eUlkPSR7cHJvcGVydHlJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgLy8gTWVkaWFcbiAgdXBsb2FkTWVkaWEocHJvcGVydHlJZDogc3RyaW5nLCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vbWVkaWFgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlTWVkaWEoaWQ6IHN0cmluZywgbWVkaWFJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9tZWRpYS8ke21lZGlhSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIC8vIFByaWNpbmdcbiAgYWRkUHJpY2luZyhwcm9wZXJ0eUlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vcHJpY2luZ2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVQcmljaW5nKHByaWNpbmdJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ByaWNpbmcvJHtwcmljaW5nSWR9YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZVByaWNpbmcocHJpY2luZ0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ByaWNpbmcvJHtwcmljaW5nSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIC8vIFNlY3Rpb25cbiAgYWRkU2VjdGlvbihwcm9wZXJ0eUlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vc2VjdGlvbnNgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgYWRkQmF0Y2hTZWN0aW9ucyhwcm9wZXJ0eUlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vc2VjdGlvbnMvYmF0Y2hgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZmluZFNlY3Rpb25zKHByb3BlcnR5SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS9zZWN0aW9uc2AsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVTZWN0aW9uKHNlY3Rpb25JZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3NlY3Rpb25zLyR7c2VjdGlvbklkfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVTZWN0aW9uKHNlY3Rpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9zZWN0aW9ucy8ke3NlY3Rpb25JZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBsb2FkU2VjdGlvbk1lZGlhKHNlY3Rpb25JZDogc3RyaW5nLCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3NlY3Rpb25zLyR7c2VjdGlvbklkfS9tZWRpYWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVTZWN0aW9uTWVkaWEoc2VjdGlvbklkOiBzdHJpbmcsIG1lZGlhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vc2VjdGlvbnMvJHtzZWN0aW9uSWR9L21lZGlhLyR7bWVkaWFJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgYWRkT3B0aW9uKHByb3BlcnR5SWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS9vcHRpb25zYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRPcHRpb25zKHByb3BlcnR5SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS9vcHRpb25zYCk7XG4gIH1cbiAgdXBkYXRlT3B0aW9uKG9wdGlvbklkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vb3B0aW9ucy8ke29wdGlvbklkfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVPcHRpb24ob3B0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vb3B0aW9ucy8ke29wdGlvbklkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICAvLyB2YXJpYW50c1xuICB1cGRhdGVWYXJpYW50UHJpY2UocHJvcGVydHlJZDogc3RyaW5nLCBzdGF0dXM6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS92YXJpYW50cy9ieT9zdGF0dXM9JHtzdGF0dXN9YCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbiAgY3JlYXRlVmFyaWFudHMocHJvcGVydHlJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3ZhcmlhbnRzYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGdldFZhcmlhbnQodmFyaWFudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ZhcmlhbnRzLyR7dmFyaWFudElkfWApO1xuICB9XG4gIGZpbmRWYXJpYW50cyhwcm9wZXJ0eUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vdmFyaWFudHNgKTtcbiAgfVxuICBmaW5kVmFyaWFudHNCeUlkcyhpZHM6IEFycmF5PHN0cmluZz4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IHsgaWRzOiBpZHMuam9pbignLCcpIH07XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vdmFyaWFudHMvYnlgLCB7XG4gICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVWYXJpYW50cyhwcm9wZXJ0eUlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS92YXJpYW50c2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGxvYWRWYXJpYW50TWVkaWEodmFyaWFudElkOiBzdHJpbmcsIGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vdmFyaWFudHMvJHt2YXJpYW50SWR9L21lZGlhYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZVZhcmlhbnRNZWRpYSh2YXJpYW50SWQ6IHN0cmluZywgbWVkaWFJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS92YXJpYW50cy8ke3ZhcmlhbnRJZH0vbWVkaWEvJHttZWRpYUlkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kVmlld2luZ3NCeVVzZXIob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ZpZXdpbmdzL2J5L3VzZXJgLCB7XG4gICAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHJlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb3BlcnR5SWRzID0gXy51bmlxKF8ubWFwKHJlcy5kYXRhLCAncHJvcGVydHlJZCcpKTsgLy8gWzEyLCAxNCwgMTYsIDE4XVxuICAgICAgICAgIHJldHVybiB0aGlzLmZpbmRQcm9wZXJ0aWVzQnlJZHMocHJvcGVydHlJZHMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHByb3BlcnRpZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICByZXMuZGF0YT8uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdQcm9wZXJ0eSA9IF8uZmluZChwcm9wZXJ0aWVzLmRhdGEsIHsgaWQ6IGl0ZW0ucHJvcGVydHlJZCB9KTtcbiAgICAgICAgICAgICAgICBpdGVtLnByb3BlcnR5ID0gbWF0Y2hpbmdQcm9wZXJ0eTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cbiAgZmluZFZpZXdpbmdzQnlBZ2VudChvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vdmlld2luZ3MvYnkvYWdlbnRgLCB7XG4gICAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHJlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb3BlcnR5SWRzID0gXy51bmlxKF8ubWFwKHJlcy5kYXRhLCAncHJvcGVydHlJZCcpKTsgLy8gWzEyLCAxNCwgMTYsIDE4XVxuICAgICAgICAgIHJldHVybiB0aGlzLmZpbmRQcm9wZXJ0aWVzQnlJZHMocHJvcGVydHlJZHMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHByb3BlcnRpZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICByZXMuZGF0YT8uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdQcm9wZXJ0eSA9IF8uZmluZChwcm9wZXJ0aWVzLmRhdGEsIHsgaWQ6IGl0ZW0ucHJvcGVydHlJZCB9KTtcbiAgICAgICAgICAgICAgICBpdGVtLnByb3BlcnR5ID0gbWF0Y2hpbmdQcm9wZXJ0eTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cbiAgcmVxdWVzdFZpZXdpbmcocHJvcGVydHlJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3ZpZXdpbmdzYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGNvbmZpcm1WaWV3aW5nKHZpZXdpbmdJZDogc3RyaW5nLCBzbG90SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vdmlld2luZ3MvJHt2aWV3aW5nSWR9L2NvbmZpcm0/c2xvdElkPSR7c2xvdElkfWAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIGdldFZpZXdpbmcodmlld2luZ0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ZpZXdpbmdzLyR7dmlld2luZ0lkfWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGNhbmNlbFZpZXdpbmcoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vdmlld2luZ3MvJHtpZH0vY2FuY2VsYCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbiAgbWFrZU9mZmVyKHByb3BlcnR5SWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS9vZmZlcnNgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZmluZE9mZmVycyhvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vb2ZmZXJzYCwge1xuICAgICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChyZXMpID0+IHtcbiAgICAgICAgICBjb25zdCBwcm9wZXJ0eUlkcyA9IF8udW5pcShfLm1hcChyZXMuZGF0YSwgJ3Byb3BlcnR5SWQnKSk7IC8vIFsxMiwgMTQsIDE2LCAxOF1cbiAgICAgICAgICByZXR1cm4gdGhpcy5maW5kUHJvcGVydGllc0J5SWRzKHByb3BlcnR5SWRzKS5waXBlKFxuICAgICAgICAgICAgbWFwKChwcm9wZXJ0aWVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmVzLmRhdGE/LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nVXNlciA9IF8uZmluZChwcm9wZXJ0aWVzLmRhdGEsIHsgaWQ6IGl0ZW0ucHJvcGVydHlJZCB9KTtcbiAgICAgICAgICAgICAgICBpdGVtLnByb3BlcnR5ID0gbWF0Y2hpbmdVc2VyO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuICBmaW5kT2ZmZXJzQnlVc2VyKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9vZmZlcnMvYnkvdXNlcmAsIHtcbiAgICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJvcGVydHlJZHMgPSBfLnVuaXEoXy5tYXAocmVzLmRhdGEsICdwcm9wZXJ0eUlkJykpOyAvLyBbMTIsIDE0LCAxNiwgMThdXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmluZFByb3BlcnRpZXNCeUlkcyhwcm9wZXJ0eUlkcykucGlwZShcbiAgICAgICAgICAgIG1hcCgocHJvcGVydGllczogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHJlcy5kYXRhPy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ1VzZXIgPSBfLmZpbmQocHJvcGVydGllcy5kYXRhLCB7IGlkOiBpdGVtLnByb3BlcnR5SWQgfSk7XG4gICAgICAgICAgICAgICAgaXRlbS5wcm9wZXJ0eSA9IG1hdGNoaW5nVXNlcjtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cbiAgZmluZE9mZmVyc0J5QWdlbnQob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L29mZmVycy9ieS9hZ2VudGAsIHtcbiAgICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJvcGVydHlJZHMgPSBfLnVuaXEoXy5tYXAocmVzLmRhdGEsICdwcm9wZXJ0eUlkJykpOyAvLyBbMTIsIDE0LCAxNiwgMThdXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmluZFByb3BlcnRpZXNCeUlkcyhwcm9wZXJ0eUlkcykucGlwZShcbiAgICAgICAgICAgIG1hcCgocHJvcGVydGllczogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHJlcy5kYXRhPy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ1VzZXIgPSBfLmZpbmQocHJvcGVydGllcy5kYXRhLCB7IGlkOiBpdGVtLnByb3BlcnR5SWQgfSk7XG4gICAgICAgICAgICAgICAgaXRlbS5wcm9wZXJ0eSA9IG1hdGNoaW5nVXNlcjtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cbiAgZmluZFByb3BlcnRpZXNCeUlkcyhpZHM6IEFycmF5PHN0cmluZz4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IHsgaWRzOiBpZHMuam9pbignLCcpIH07XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH1gLCB7XG4gICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICB9KTtcbiAgfVxuICBnZXRPZmZlcihvZmZlcklkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L29mZmVycy8ke29mZmVySWR9YCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgY2FuY2VsT2ZmZXIoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vb2ZmZXJzLyR7aWR9L2NhbmNlbGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIGFjY2VwdE9mZmVyKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vb2ZmZXJzLyR7aWR9L2FjY2VwdGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHJlamVjdE9mZmVyKGlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vb2ZmZXJzLyR7aWR9L3JlamVjdGAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZUhvbGRpbmdEZXBvc2l0Q2hlY2tvdXQob2ZmZXJJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9vZmZlcnMvJHtvZmZlcklkfS9wYXkvaG9sZGluZy1kZXBvc2l0YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGNyZWF0ZVNlY3VyaXR5RGVwb3NpdENoZWNrb3V0KG9mZmVySWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vb2ZmZXJzLyR7b2ZmZXJJZH0vcGF5L3NlY3VyaXR5LWRlcG9zaXRgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgY2hlY2tPZmZlclBheW1lbnRTdGF0dXMob2ZmZXJJZDogYW55LCBzZXNzaW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHNlc3Npb25JZCxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L29mZmVycy8ke29mZmVySWR9L3Nlc3Npb25gLCB7IHBhcmFtczogb3B0aW9ucywgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG5cbiAgb2ZmZXJUaW1lbGluZShvZmZlcklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L29mZmVycy8ke29mZmVySWR9L3RpbWVsaW5lYCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRGZWF0dXJlczxUPihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2ZlYXR1cmVzYCwgeyB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlIH0pO1xuICB9XG4gIHVwZGF0ZUZlYXR1cmVzPFQ+KGlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vZmVhdHVyZXNgLCBkYXRhLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICB1cGRhdGVMb2NhdGlvbjxUPihpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2xvY2F0aW9uYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgLy8gVmlkZW9zXG4gIGdldFZpZGVvczxUPihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3ZpZGVvc2AsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGFkZFZpZGVvPFQ+KGlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vdmlkZW9zYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgdXBkYXRlVmlkZW88VD4oaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3ZpZGVvc2AsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGRlbGV0ZVZpZGVvPFQ+KGlkOiBzdHJpbmcsIHZpZGVvSWQ6IHN0cmluZywgeSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPFQ+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS92aWRlb3MvJHt2aWRlb0lkfWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class MembershipService extends BaseService {\n init() {\n this.endpoint = 'memberships';\n super.init();\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n createPlan(data) {\n return this.http.post(`${this.actionUrl}/plans`, data, {\n withCredentials: true,\n });\n }\n findPlans(options) {\n return this.http.get(`${this.actionUrl}/plans`, {\n params: options,\n withCredentials: true,\n });\n }\n getPlan(id) {\n return this.http.get(`${this.actionUrl}/plans/${id}`, {\n withCredentials: true,\n });\n }\n updatePlan(id, data) {\n return this.http.put(`${this.actionUrl}/plans/${id}`, data, {\n withCredentials: true,\n });\n }\n findBenefits(options) {\n return this.http.get(`${this.actionUrl}/benefits`, {\n withCredentials: true,\n });\n }\n addBenefit(data) {\n return this.http.post(`${this.actionUrl}/benefits`, data, {\n withCredentials: true,\n });\n }\n updateBenefit(id, data) {\n return this.http.put(`${this.actionUrl}/benefits/${id}`, data, {\n withCredentials: true,\n });\n }\n deleteBenefit(id) {\n return this.http.delete(`${this.actionUrl}/benefits/${id}`, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: MembershipService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: MembershipService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: MembershipService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyc2hpcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL21lbWJlcnNoaXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFNN0MsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFdBQVc7SUFDdkMsSUFBSTtRQUNYLElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDO1FBQzlCLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxFQUFFLENBQUMsT0FBWTtRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUU7WUFDaEQsTUFBTSxFQUFFLE9BQU87WUFDZixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsVUFBVSxDQUFDLElBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDMUQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFNBQVMsQ0FBQyxPQUFZO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxRQUFRLEVBQUU7WUFDbkQsTUFBTSxFQUFFLE9BQU87WUFDZixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEVBQVU7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFVBQVUsRUFBRSxFQUFFLEVBQUU7WUFDekQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVUsQ0FBQyxFQUFVLEVBQUUsSUFBUztRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsVUFBVSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDL0QsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFlBQVksQ0FBQyxPQUFZO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxXQUFXLEVBQUU7WUFDdEQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVUsQ0FBQyxJQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBQzdELGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxhQUFhLENBQUMsRUFBVSxFQUFFLElBQVM7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFO1lBQ2xFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxhQUFhLENBQUMsRUFBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsYUFBYSxFQUFFLEVBQUUsRUFBRTtZQUMvRCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQXBEVSxpQkFBaUI7MkdBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1lbWJlcnNoaXBTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAnbWVtYmVyc2hpcHMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuXG4gIG1lKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vbWVgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgY3JlYXRlUGxhbihkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9wbGFuc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kUGxhbnMob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9wbGFuc2AsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBnZXRQbGFuKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3BsYW5zLyR7aWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZVBsYW4oaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9wbGFucy8ke2lkfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kQmVuZWZpdHMob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9iZW5lZml0c2AsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBhZGRCZW5lZml0KGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2JlbmVmaXRzYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZUJlbmVmaXQoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9iZW5lZml0cy8ke2lkfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVCZW5lZml0KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2JlbmVmaXRzLyR7aWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class CategoryService extends BaseService {\n init() {\n this.endpoint = 'categories';\n super.init();\n }\n uploadMedia(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id, mediaId) {\n return this.http.delete(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n importFromExcel(data) {\n return this.http.post(`${this.actionUrl}/excel`, data, {\n withCredentials: true,\n });\n }\n createFromExcel(data) {\n return this.http.post(`${this.actionUrl}/list`, data, {\n withCredentials: true,\n });\n }\n findProductCategory(options) {\n return this.http.get(`${this.environment.baseUrl}/products/categories`, { params: options });\n }\n getProductCategory(id) {\n return this.http.get(`${this.environment.baseUrl}/products/categories/${id}`);\n }\n createProductCategory(data) {\n return this.http.post(`${this.environment.baseUrl}/products/categories`, data, {\n withCredentials: true,\n });\n }\n updateProductCategory(data) {\n return this.http.put(`${this.environment.baseUrl}/products/categories`, data, {\n withCredentials: true,\n });\n }\n uploadProductCategoryMedia(id, data) {\n return this.http.post(`${this.environment.baseUrl}/products/categories/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteProductCategoryMedia(id, mediaId) {\n return this.http.delete(`${this.environment.baseUrl}/products/categories/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: CategoryService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: CategoryService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: CategoryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9jYXRlZ29yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUs3QyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBQ3JDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQztRQUM3QixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVUsRUFBRSxJQUFjO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUNoRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVUsRUFBRSxPQUFlO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsVUFBVSxPQUFPLEVBQUUsRUFBRTtZQUN2RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsZUFBZSxDQUFDLElBQWM7UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDMUQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGVBQWUsQ0FBQyxJQUFTO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxPQUFPLEVBQUUsSUFBSSxFQUFFO1lBQ3pELGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxPQUFZO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsRUFBVTtRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLHdCQUF3QixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFDRCxxQkFBcUIsQ0FBQyxJQUFTO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sc0JBQXNCLEVBQUUsSUFBSSxFQUFFO1lBQ2xGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxxQkFBcUIsQ0FBQyxJQUFTO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sc0JBQXNCLEVBQUUsSUFBSSxFQUFFO1lBQ2pGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCwwQkFBMEIsQ0FBQyxFQUFVLEVBQUUsSUFBYztRQUNuRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDOUYsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELDBCQUEwQixDQUFDLEVBQVUsRUFBRSxPQUFlO1FBQ3BELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sd0JBQXdCLEVBQUUsVUFBVSxPQUFPLEVBQUUsRUFBRTtZQUNyRyxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQWxEVSxlQUFlOzJHQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAnY2F0ZWdvcmllcyc7XG4gICAgc3VwZXIuaW5pdCgpO1xuICB9XG4gIHVwbG9hZE1lZGlhKGlkOiBzdHJpbmcsIGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vbWVkaWFgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlTWVkaWEoaWQ6IHN0cmluZywgbWVkaWFJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9tZWRpYS8ke21lZGlhSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGltcG9ydEZyb21FeGNlbChkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2V4Y2VsYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGNyZWF0ZUZyb21FeGNlbChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9saXN0YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRQcm9kdWN0Q2F0ZWdvcnkob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vcHJvZHVjdHMvY2F0ZWdvcmllc2AsIHsgcGFyYW1zOiBvcHRpb25zIH0pO1xuICB9XG4gIGdldFByb2R1Y3RDYXRlZ29yeShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vcHJvZHVjdHMvY2F0ZWdvcmllcy8ke2lkfWApO1xuICB9XG4gIGNyZWF0ZVByb2R1Y3RDYXRlZ29yeShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vcHJvZHVjdHMvY2F0ZWdvcmllc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVQcm9kdWN0Q2F0ZWdvcnkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vcHJvZHVjdHMvY2F0ZWdvcmllc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGxvYWRQcm9kdWN0Q2F0ZWdvcnlNZWRpYShpZDogc3RyaW5nLCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9wcm9kdWN0cy9jYXRlZ29yaWVzLyR7aWR9L21lZGlhYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZVByb2R1Y3RDYXRlZ29yeU1lZGlhKGlkOiBzdHJpbmcsIG1lZGlhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L3Byb2R1Y3RzL2NhdGVnb3JpZXMvJHtpZH0vbWVkaWEvJHttZWRpYUlkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { inject, Injectable } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { Observable } from 'rxjs';\nimport * as i0 from \"@angular/core\";\n/* ========= Service ========= */\nexport class AssistantStreamService {\n environment = inject(APP_CONFIG);\n /**\n * POST + SSE streaming via fetch + ReadableStream\n */\n stream(req, init) {\n return new Observable((subscriber) => {\n const ctrl = new AbortController();\n const headers = {\n 'Content-Type': 'application/json',\n 'Accept': 'text/event-stream',\n 'client-id': this.environment.clientId,\n ...(init?.headers ?? {}),\n };\n fetch(`${this.environment.baseUrl}/conversations`, {\n method: 'POST',\n body: JSON.stringify(req),\n headers,\n signal: ctrl.signal,\n keepalive: true,\n mode: 'cors',\n credentials: 'include',\n ...init,\n })\n .then(async (res) => {\n if (!res.ok || !res.body) {\n subscriber.error({\n type: 'error',\n message: `HTTP ${res.status} ${res.statusText}`,\n });\n return;\n }\n const reader = res.body.getReader();\n const decoder = new TextDecoder('utf-8');\n let buffer = '';\n try {\n for (;;) {\n const { value, done } = await reader.read();\n if (done)\n break;\n buffer += decoder.decode(value, { stream: true });\n // SSE blocks are separated by blank lines\n let idx;\n while ((idx = buffer.indexOf('\\n\\n')) !== -1) {\n const rawBlock = buffer.slice(0, idx);\n buffer = buffer.slice(idx + 2);\n const events = this.parseSSEBlock(rawBlock);\n for (const e of events) {\n const typed = this.toStreamEvent(e);\n if (!typed)\n continue;\n subscriber.next(typed);\n if (typed.type === 'done') {\n ctrl.abort();\n subscriber.complete();\n return;\n }\n }\n }\n }\n // Flush any trailing data\n if (buffer.trim().length) {\n const events = this.parseSSEBlock(buffer);\n for (const e of events) {\n const typed = this.toStreamEvent(e);\n if (typed)\n subscriber.next(typed);\n }\n }\n subscriber.complete();\n }\n catch (err) {\n if (err?.name === 'AbortError') {\n subscriber.complete();\n }\n else {\n subscriber.error({\n type: 'error',\n message: 'Stream read error',\n cause: err,\n });\n }\n }\n })\n .catch((err) => {\n console.log(err);\n subscriber.error({\n type: 'error',\n message: 'Fetch error',\n cause: err,\n });\n });\n // teardown\n return () => ctrl.abort();\n });\n }\n /* ========= SSE parsing ========= */\n /**\n * Parse one SSE \"block\" (between blank lines). Supports multi-line `data:` and optional `event:`.\n * Returns a list because some servers pack multiple JSON items in the data.\n */\n parseSSEBlock(block) {\n const lines = block.split(/\\r?\\n/);\n let eventName;\n const dataLines = [];\n for (const line of lines) {\n if (!line)\n continue;\n if (line.startsWith(':'))\n continue; // comment\n if (line.startsWith('event:')) {\n eventName = line.slice(6).trim();\n }\n else if (line.startsWith('data:')) {\n dataLines.push(line.slice(5).trimStart());\n }\n else {\n // fallback: some servers may omit \"data:\"\n dataLines.push(line);\n }\n }\n const dataStr = dataLines.join('\\n').trim();\n if (!dataStr)\n return [];\n // Handle possible JSONL\n const parts = this.splitPossibleJSONL(dataStr);\n return parts.map((d) => ({ event: eventName, data: d }));\n }\n splitPossibleJSONL(s) {\n const lines = s.split(/\\r?\\n/);\n if (lines.length > 1 && lines.every((ln) => /^[[{\"\\-0-9tfn]/.test(ln.trim()))) {\n return lines;\n }\n return [s];\n }\n /**\n * Convert raw SSE payload into our typed StreamEvent union.\n * - honors `event:` header names: start, message, group, json, tool, done, error\n * - normalizes conversationId -> sessionId on start\n * - falls back to JsonEvent on unknown shapes\n */\n toStreamEvent(raw) {\n const { event, data } = raw;\n if (!data || data.length === 0)\n return null;\n // explicit \"done\" or OpenAI-style [DONE]\n if (event?.toLowerCase() === 'done' || data === '[DONE]') {\n return { type: 'done' };\n }\n // Try JSON\n let parsed;\n try {\n parsed = JSON.parse(data);\n }\n catch {\n // Not JSON -> treat as assistant text delta for streaming\n return {\n type: 'message',\n role: 'assistant',\n text: data,\n delta: true,\n };\n }\n // If server already includes a `type`, trust it\n if (parsed && typeof parsed === 'object' && 'type' in parsed) {\n return parsed;\n }\n switch ((event ?? '').toLowerCase()) {\n case 'start': {\n const sessionId = parsed.sessionId ?? parsed.conversationId ?? parsed.id;\n if (!sessionId)\n return { type: 'json', data: parsed };\n const start = {\n type: 'start',\n sessionId,\n conversationId: parsed.conversationId,\n at: parsed.at,\n };\n return start;\n }\n case 'message': {\n const role = parsed.role === 'user' || parsed.role === 'assistant' ? parsed.role : 'assistant';\n const text = typeof parsed.text === 'string' ? parsed.text : '';\n const delta = !!parsed.delta;\n return { type: 'message', role, text, delta };\n }\n case 'group': {\n return { type: 'group', ...parsed };\n }\n case 'json': {\n return { type: 'json', data: parsed };\n }\n case 'tool': {\n return { type: 'tool', ...parsed };\n }\n case 'error': {\n const msg = typeof parsed?.message === 'string' ? parsed.message : 'Unknown error';\n return { type: 'error', message: msg };\n }\n }\n // Fallback: unknown event name -> json wrapper\n return { type: 'json', data: parsed };\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: AssistantStreamService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: AssistantStreamService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: AssistantStreamService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaXN0YW50LXN0cmVhbS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL2Fzc2lzdGFudC1zdHJlYW0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFxRWxDLGlDQUFpQztBQUdqQyxNQUFNLE9BQU8sc0JBQXNCO0lBQ3ZCLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFM0M7O09BRUc7SUFDSCxNQUFNLENBQUMsR0FBa0IsRUFBRSxJQUFrQjtRQUMzQyxPQUFPLElBQUksVUFBVSxDQUFjLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDaEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUVuQyxNQUFNLE9BQU8sR0FBZ0I7Z0JBQzNCLGNBQWMsRUFBRSxrQkFBa0I7Z0JBQ2xDLFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVE7Z0JBQ3RDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQzthQUN6QixDQUFDO1lBRUYsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLGdCQUFnQixFQUFFO2dCQUNqRCxNQUFNLEVBQUUsTUFBTTtnQkFDZCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7Z0JBQ3pCLE9BQU87Z0JBQ1AsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixTQUFTLEVBQUUsSUFBSTtnQkFD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LENBQUMsZUFBZSxDQUFDO2dCQUNuRixPQUFtQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ3JELENBQUM7UUFDSCxDQUFDO1FBRUQsK0NBQStDO1FBQy9DLE9BQWtCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDbkQsQ0FBQzt1R0EzTlUsc0JBQXNCOzJHQUF0QixzQkFBc0IsY0FEVCxNQUFNOzsyRkFDbkIsc0JBQXNCO2tCQURsQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVBQX0NPTkZJRyB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qID09PT09PT09PSBTdHJlYW1FdmVudCBVbmlvbiA9PT09PT09PT0gKi9cblxuZXhwb3J0IHR5cGUgU3RyZWFtRXZlbnQgPVxuICB8IFN0YXJ0RXZlbnRcbiAgfCBNZXNzYWdlRXZlbnRcbiAgfCBKc29uRXZlbnRcbiAgfCBHcm91cEV2ZW50XG4gIHwgVG9vbEV2ZW50XG4gIHwgRG9uZUV2ZW50XG4gIHwgRXJyb3JFdmVudDtcblxuZXhwb3J0IGludGVyZmFjZSBTdGFydEV2ZW50IHtcbiAgdHlwZTogJ3N0YXJ0JztcbiAgc2Vzc2lvbklkOiBzdHJpbmc7ICAgICAgICAgIC8vIG5vcm1hbGl6ZWQgaWQgdXNlZCBieSB0aGUgYXBwXG4gIGNvbnZlcnNhdGlvbklkPzogc3RyaW5nOyAgICAvLyBvcmlnaW5hbCBzZXJ2ZXIgaWQgaWYgcHJlc2VudFxuICBhdD86IHN0cmluZzsgICAgICAgICAgICAgICAgLy8gb3B0aW9uYWwgc2VydmVyIHRpbWVzdGFtcFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VFdmVudCB7XG4gIHR5cGU6ICdtZXNzYWdlJztcbiAgcm9sZTogJ3VzZXInIHwgJ2Fzc2lzdGFudCc7XG4gIHRleHQ6IHN0cmluZztcbiAgZGVsdGE/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEpzb25FdmVudCB7XG4gIHR5cGU6ICdqc29uJztcbiAgZGF0YTogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcm91cEV2ZW50IHtcbiAgdHlwZTogJ2dyb3VwJztcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgbWVkaWFVcmw/OiBzdHJpbmc7XG4gIGxpbms/OiBzdHJpbmc7XG4gIHByaWNlPzogbnVtYmVyO1xuICBhZGRyZXNzPzogc3RyaW5nO1xuICBwaG9uZT86IHN0cmluZztcbiAgLy8gYWRkIG1vcmUgY2FyZCBmaWVsZHMgYXMgbmVlZGVkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9vbEV2ZW50IHtcbiAgdHlwZTogJ3Rvb2wnO1xuICB0b29sOiBzdHJpbmc7XG4gIGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICByZXN1bHRzPzogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb25lRXZlbnQge1xuICB0eXBlOiAnZG9uZSc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JFdmVudCB7XG4gIHR5cGU6ICdlcnJvcic7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgY2F1c2U/OiB1bmtub3duO1xufVxuXG4vKiA9PT09PT09PT0gUmVxdWVzdCA9PT09PT09PT0gKi9cblxuZXhwb3J0IGludGVyZmFjZSBTdHJlYW1SZXF1ZXN0IHtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBjb252ZXJzYXRpb25JZD86IHN0cmluZztcbiAgLy8gYWRkIGFueSBvdGhlciBmaWVsZHMgeW91ciBiYWNrZW5kIGV4cGVjdHNcbn1cblxuLyogPT09PT09PT09IFNlcnZpY2UgPT09PT09PT09ICovXG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQXNzaXN0YW50U3RyZWFtU2VydmljZSB7XG4gIHByb3RlY3RlZCBlbnZpcm9ubWVudCA9IGluamVjdChBUFBfQ09ORklHKTtcblxuICAvKipcbiAgICogUE9TVCArIFNTRSBzdHJlYW1pbmcgdmlhIGZldGNoICsgUmVhZGFibGVTdHJlYW1cbiAgICovXG4gIHN0cmVhbShyZXE6IFN0cmVhbVJlcXVlc3QsIGluaXQ/OiBSZXF1ZXN0SW5pdCk6IE9ic2VydmFibGU8U3RyZWFtRXZlbnQ+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8U3RyZWFtRXZlbnQ+KChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICBjb25zdCBjdHJsID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgICBjb25zdCBoZWFkZXJzOiBIZWFkZXJzSW5pdCA9IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgJ0FjY2VwdCc6ICd0ZXh0L2V2ZW50LXN0cmVhbScsXG4gICAgICAgICdjbGllbnQtaWQnOiB0aGlzLmVudmlyb25tZW50LmNsaWVudElkLFxuICAgICAgICAuLi4oaW5pdD8uaGVhZGVycyA/PyB7fSksXG4gICAgICB9O1xuXG4gICAgICBmZXRjaChgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L2NvbnZlcnNhdGlvbnNgLCB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShyZXEpLFxuICAgICAgICBoZWFkZXJzLFxuICAgICAgICBzaWduYWw6IGN0cmwuc2lnbmFsLFxuICAgICAgICBrZWVwYWxpdmU6IHRydWUsXG4gICAgICAgIG1vZGU6ICdjb3JzJyxcbiAgICAgICAgY3JlZGVudGlhbHM6ICdpbmNsdWRlJyxcbiAgICAgICAgLi4uaW5pdCxcbiAgICAgIH0pXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXMpID0+IHtcbiAgICAgICAgICBpZiAoIXJlcy5vayB8fCAhcmVzLmJvZHkpIHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoPEVycm9yRXZlbnQ+e1xuICAgICAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBgSFRUUCAke3Jlcy5zdGF0dXN9ICR7cmVzLnN0YXR1c1RleHR9YCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHJlYWRlciA9IHJlcy5ib2R5LmdldFJlYWRlcigpO1xuICAgICAgICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoJ3V0Zi04Jyk7XG4gICAgICAgICAgbGV0IGJ1ZmZlciA9ICcnO1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGZvciAoOyA7KSB7XG4gICAgICAgICAgICAgIGNvbnN0IHsgdmFsdWUsIGRvbmUgfSA9IGF3YWl0IHJlYWRlci5yZWFkKCk7XG4gICAgICAgICAgICAgIGlmIChkb25lKSBicmVhaztcblxuICAgICAgICAgICAgICBidWZmZXIgKz0gZGVjb2Rlci5kZWNvZGUodmFsdWUsIHsgc3RyZWFtOiB0cnVlIH0pO1xuXG4gICAgICAgICAgICAgIC8vIFNTRSBibG9ja3MgYXJlIHNlcGFyYXRlZCBieSBibGFuayBsaW5lc1xuICAgICAgICAgICAgICBsZXQgaWR4OiBudW1iZXI7XG4gICAgICAgICAgICAgIHdoaWxlICgoaWR4ID0gYnVmZmVyLmluZGV4T2YoJ1xcblxcbicpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByYXdCbG9jayA9IGJ1ZmZlci5zbGljZSgwLCBpZHgpO1xuICAgICAgICAgICAgICAgIGJ1ZmZlciA9IGJ1ZmZlci5zbGljZShpZHggKyAyKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50cyA9IHRoaXMucGFyc2VTU0VCbG9jayhyYXdCbG9jayk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlIG9mIGV2ZW50cykge1xuICAgICAgICAgICAgICAgICAgY29uc3QgdHlwZWQgPSB0aGlzLnRvU3RyZWFtRXZlbnQoZSk7XG4gICAgICAgICAgICAgICAgICBpZiAoIXR5cGVkKSBjb250aW51ZTtcblxuICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHR5cGVkKTtcbiAgICAgICAgICAgICAgICAgIGlmICh0eXBlZC50eXBlID09PSAnZG9uZScpIHtcbiAgICAgICAgICAgICAgICAgICAgY3RybC5hYm9ydCgpO1xuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRmx1c2ggYW55IHRyYWlsaW5nIGRhdGFcbiAgICAgICAgICAgIGlmIChidWZmZXIudHJpbSgpLmxlbmd0aCkge1xuICAgICAgICAgICAgICBjb25zdCBldmVudHMgPSB0aGlzLnBhcnNlU1NFQmxvY2soYnVmZmVyKTtcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBlIG9mIGV2ZW50cykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGVkID0gdGhpcy50b1N0cmVhbUV2ZW50KGUpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlZCkgc3Vic2NyaWJlci5uZXh0KHR5cGVkKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG4gICAgICAgICAgICBpZiAoKGVyciBhcyBhbnkpPy5uYW1lID09PSAnQWJvcnRFcnJvcicpIHtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcig8RXJyb3JFdmVudD57XG4gICAgICAgICAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnU3RyZWFtIHJlYWQgZXJyb3InLFxuICAgICAgICAgICAgICAgIGNhdXNlOiBlcnIsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpXG4gICAgICAgICAgc3Vic2NyaWJlci5lcnJvcig8RXJyb3JFdmVudD57XG4gICAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgbWVzc2FnZTogJ0ZldGNoIGVycm9yJyxcbiAgICAgICAgICAgIGNhdXNlOiBlcnIsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAvLyB0ZWFyZG93blxuICAgICAgcmV0dXJuICgpID0+IGN0cmwuYWJvcnQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qID09PT09PT09PSBTU0UgcGFyc2luZyA9PT09PT09PT0gKi9cblxuICAvKipcbiAgICogUGFyc2Ugb25lIFNTRSBcImJsb2NrXCIgKGJldHdlZW4gYmxhbmsgbGluZXMpLiBTdXBwb3J0cyBtdWx0aS1saW5lIGBkYXRhOmAgYW5kIG9wdGlvbmFsIGBldmVudDpgLlxuICAgKiBSZXR1cm5zIGEgbGlzdCBiZWNhdXNlIHNvbWUgc2VydmVycyBwYWNrIG11bHRpcGxlIEpTT04gaXRlbXMgaW4gdGhlIGRhdGEuXG4gICAqL1xuICBwcml2YXRlIHBhcnNlU1NFQmxvY2soYmxvY2s6IHN0cmluZyk6IEFycmF5PHsgZXZlbnQ/OiBzdHJpbmc7IGRhdGE/OiBzdHJpbmcgfT4ge1xuICAgIGNvbnN0IGxpbmVzID0gYmxvY2suc3BsaXQoL1xccj9cXG4vKTtcbiAgICBsZXQgZXZlbnROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgZGF0YUxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICBpZiAoIWxpbmUpIGNvbnRpbnVlO1xuICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aCgnOicpKSBjb250aW51ZTsgLy8gY29tbWVudFxuICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aCgnZXZlbnQ6JykpIHtcbiAgICAgICAgZXZlbnROYW1lID0gbGluZS5zbGljZSg2KS50cmltKCk7XG4gICAgICB9IGVsc2UgaWYgKGxpbmUuc3RhcnRzV2l0aCgnZGF0YTonKSkge1xuICAgICAgICBkYXRhTGluZXMucHVzaChsaW5lLnNsaWNlKDUpLnRyaW1TdGFydCgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGZhbGxiYWNrOiBzb21lIHNlcnZlcnMgbWF5IG9taXQgXCJkYXRhOlwiXG4gICAgICAgIGRhdGFMaW5lcy5wdXNoKGxpbmUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGRhdGFTdHIgPSBkYXRhTGluZXMuam9pbignXFxuJykudHJpbSgpO1xuICAgIGlmICghZGF0YVN0cikgcmV0dXJuIFtdO1xuXG4gICAgLy8gSGFuZGxlIHBvc3NpYmxlIEpTT05MXG4gICAgY29uc3QgcGFydHMgPSB0aGlzLnNwbGl0UG9zc2libGVKU09OTChkYXRhU3RyKTtcbiAgICByZXR1cm4gcGFydHMubWFwKChkKSA9PiAoeyBldmVudDogZXZlbnROYW1lLCBkYXRhOiBkIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgc3BsaXRQb3NzaWJsZUpTT05MKHM6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBsaW5lcyA9IHMuc3BsaXQoL1xccj9cXG4vKTtcbiAgICBpZiAobGluZXMubGVuZ3RoID4gMSAmJiBsaW5lcy5ldmVyeSgobG4pID0+IC9eW1t7XCJcXC0wLTl0Zm5dLy50ZXN0KGxuLnRyaW0oKSkpKSB7XG4gICAgICByZXR1cm4gbGluZXM7XG4gICAgfVxuICAgIHJldHVybiBbc107XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCByYXcgU1NFIHBheWxvYWQgaW50byBvdXIgdHlwZWQgU3RyZWFtRXZlbnQgdW5pb24uXG4gICAqIC0gaG9ub3JzIGBldmVudDpgIGhlYWRlciBuYW1lczogc3RhcnQsIG1lc3NhZ2UsIGdyb3VwLCBqc29uLCB0b29sLCBkb25lLCBlcnJvclxuICAgKiAtIG5vcm1hbGl6ZXMgY29udmVyc2F0aW9uSWQgLT4gc2Vzc2lvbklkIG9uIHN0YXJ0XG4gICAqIC0gZmFsbHMgYmFjayB0byBKc29uRXZlbnQgb24gdW5rbm93biBzaGFwZXNcbiAgICovXG4gIHByaXZhdGUgdG9TdHJlYW1FdmVudChyYXc6IHsgZXZlbnQ/OiBzdHJpbmc7IGRhdGE/OiBzdHJpbmcgfSk6IFN0cmVhbUV2ZW50IHwgbnVsbCB7XG4gICAgY29uc3QgeyBldmVudCwgZGF0YSB9ID0gcmF3O1xuICAgIGlmICghZGF0YSB8fCBkYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGw7XG5cbiAgICAvLyBleHBsaWNpdCBcImRvbmVcIiBvciBPcGVuQUktc3R5bGUgW0RPTkVdXG4gICAgaWYgKGV2ZW50Py50b0xvd2VyQ2FzZSgpID09PSAnZG9uZScgfHwgZGF0YSA9PT0gJ1tET05FXScpIHtcbiAgICAgIHJldHVybiB7IHR5cGU6ICdkb25lJyB9O1xuICAgIH1cblxuICAgIC8vIFRyeSBKU09OXG4gICAgbGV0IHBhcnNlZDogYW55O1xuICAgIHRyeSB7XG4gICAgICBwYXJzZWQgPSBKU09OLnBhcnNlKGRhdGEpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gTm90IEpTT04gLT4gdHJlYXQgYXMgYXNzaXN0YW50IHRleHQgZGVsdGEgZm9yIHN0cmVhbWluZ1xuICAgICAgcmV0dXJuIDxNZXNzYWdlRXZlbnQ+e1xuICAgICAgICB0eXBlOiAnbWVzc2FnZScsXG4gICAgICAgIHJvbGU6ICdhc3Npc3RhbnQnLFxuICAgICAgICB0ZXh0OiBkYXRhLFxuICAgICAgICBkZWx0YTogdHJ1ZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gSWYgc2VydmVyIGFscmVhZHkgaW5jbHVkZXMgYSBgdHlwZWAsIHRydXN0IGl0XG4gICAgaWYgKHBhcnNlZCAmJiB0eXBlb2YgcGFyc2VkID09PSAnb2JqZWN0JyAmJiAndHlwZScgaW4gcGFyc2VkKSB7XG4gICAgICByZXR1cm4gcGFyc2VkIGFzIFN0cmVhbUV2ZW50O1xuICAgIH1cblxuICAgIHN3aXRjaCAoKGV2ZW50ID8/ICcnKS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICBjYXNlICdzdGFydCc6IHtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbklkID0gcGFyc2VkLnNlc3Npb25JZCA/PyBwYXJzZWQuY29udmVyc2F0aW9uSWQgPz8gcGFyc2VkLmlkO1xuICAgICAgICBpZiAoIXNlc3Npb25JZCkgcmV0dXJuIDxKc29uRXZlbnQ+eyB0eXBlOiAnanNvbicsIGRhdGE6IHBhcnNlZCB9O1xuICAgICAgICBjb25zdCBzdGFydDogU3RhcnRFdmVudCA9IHtcbiAgICAgICAgICB0eXBlOiAnc3RhcnQnLFxuICAgICAgICAgIHNlc3Npb25JZCxcbiAgICAgICAgICBjb252ZXJzYXRpb25JZDogcGFyc2VkLmNvbnZlcnNhdGlvbklkLFxuICAgICAgICAgIGF0OiBwYXJzZWQuYXQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBzdGFydDtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnbWVzc2FnZSc6IHtcbiAgICAgICAgY29uc3Qgcm9sZTogJ3VzZXInIHwgJ2Fzc2lzdGFudCcgPVxuICAgICAgICAgIHBhcnNlZC5yb2xlID09PSAndXNlcicgfHwgcGFyc2VkLnJvbGUgPT09ICdhc3Npc3RhbnQnID8gcGFyc2VkLnJvbGUgOiAnYXNzaXN0YW50JztcbiAgICAgICAgY29uc3QgdGV4dCA9IHR5cGVvZiBwYXJzZWQudGV4dCA9PT0gJ3N0cmluZycgPyBwYXJzZWQudGV4dCA6ICcnO1xuICAgICAgICBjb25zdCBkZWx0YSA9ICEhcGFyc2VkLmRlbHRhO1xuICAgICAgICByZXR1cm4gPE1lc3NhZ2VFdmVudD57IHR5cGU6ICdtZXNzYWdlJywgcm9sZSwgdGV4dCwgZGVsdGEgfTtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnZ3JvdXAnOiB7XG4gICAgICAgIHJldHVybiA8R3JvdXBFdmVudD57IHR5cGU6ICdncm91cCcsIC4uLnBhcnNlZCB9O1xuICAgICAgfVxuXG4gICAgICBjYXNlICdqc29uJzoge1xuICAgICAgICByZXR1cm4gPEpzb25FdmVudD57IHR5cGU6ICdqc29uJywgZGF0YTogcGFyc2VkIH07XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3Rvb2wnOiB7XG4gICAgICAgIHJldHVybiA8VG9vbEV2ZW50PnsgdHlwZTogJ3Rvb2wnLCAuLi5wYXJzZWQgfTtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnZXJyb3InOiB7XG4gICAgICAgIGNvbnN0IG1zZyA9IHR5cGVvZiBwYXJzZWQ/Lm1lc3NhZ2UgPT09ICdzdHJpbmcnID8gcGFyc2VkLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcic7XG4gICAgICAgIHJldHVybiA8RXJyb3JFdmVudD57IHR5cGU6ICdlcnJvcicsIG1lc3NhZ2U6IG1zZyB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZhbGxiYWNrOiB1bmtub3duIGV2ZW50IG5hbWUgLT4ganNvbiB3cmFwcGVyXG4gICAgcmV0dXJuIDxKc29uRXZlbnQ+eyB0eXBlOiAnanNvbicsIGRhdGE6IHBhcnNlZCB9O1xuICB9XG59XG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { AssistantStreamService, } from './assistant-stream.service';\nimport * as i0 from \"@angular/core\";\nexport class ConversationService {\n assistant = inject(AssistantStreamService);\n conversationId;\n _messages$ = new BehaviorSubject([]);\n messages$ = this._messages$.asObservable();\n _typing$ = new BehaviorSubject(false);\n typing$ = this._typing$.asObservable();\n // ✅ new: streaming$\n _streaming$ = new BehaviorSubject(false);\n streaming$ = this._streaming$.asObservable();\n streamSub;\n currentAssistantMsgId;\n // Accumulation state for streaming assistant text deltas\n pendingDelta = '';\n rafId = null;\n timeoutId = null;\n // Control how consecutive \"message\" events are split\n // false = coalesce streaming chunks (delta:true), start new segment when delta === false\n // true = split every message event into its own text segment\n strictMessageSegmentation = false;\n // lightweight UI signals (snackbar, etc.)\n events$ = new Subject();\n /** Set known conversationId id (optional). */\n setConversationId(conversationId) {\n this.conversationId = conversationId;\n }\n /** Clear current conversation state. */\n dispose() {\n this.cancel();\n this._messages$.next([]);\n this.currentAssistantMsgId = undefined;\n this.clearSchedulers();\n }\n /** Stop current stream (e.g., user pressed Stop). */\n cancel() {\n if (this.streamSub) {\n this.streamSub.unsubscribe();\n this.streamSub = undefined;\n this._typing$.next(false);\n this._streaming$.next(false); // ✅ stop spinner immediately\n this.flushPending();\n }\n }\n /** Send a user message and start streaming an assistant response. */\n send(message) {\n const trimmed = message?.trim();\n if (!trimmed)\n return;\n // Append user message to timeline\n this._messages$.next([\n ...this._messages$.value,\n { id: this.nextId(), role: 'user', text: trimmed, createdAt: Date.now() },\n ]);\n // Start/continue assistant stream\n this.cancel();\n this._typing$.next(true);\n this._streaming$.next(true); // ✅ start spinner as soon as we stream\n this.streamSub = this.assistant\n .stream({ message: trimmed, conversationId: this.conversationId })\n .subscribe({\n next: (ev) => this.handleStreamEvent(ev),\n error: (e) => {\n this._typing$.next(false);\n this._streaming$.next(false); // ✅ stop spinner\n this.flushPending();\n this.pushAssistantError(e?.message ?? 'Stream failed');\n this.events$.next({ kind: 'error', text: e?.message ?? 'Stream failed' });\n },\n complete: () => {\n this._typing$.next(false);\n this._streaming$.next(false); // ✅ stop spinner\n this.flushPending();\n this.markAssistantDone();\n },\n });\n }\n /* ========== Internals ========== */\n handleStreamEvent(ev) {\n switch (ev.type) {\n case 'start': {\n const s = ev;\n if (s.conversationId)\n this.conversationId = s.conversationId;\n this.ensureAssistantMessage();\n this._streaming$.next(true); // ✅ ensure spinner even if we begin on 'start'\n break;\n }\n case 'message': {\n const m = ev;\n // Most apps avoid echoing server \"user\" messages to prevent duplicates\n if (m.role !== 'assistant')\n break;\n this.bufferAssistantMessage(m);\n break;\n }\n case 'group': {\n this.flushPending();\n const g = ev;\n this.pushAssistantSegment({ kind: 'group', item: g });\n break;\n }\n case 'json': {\n this.flushPending();\n const j = ev;\n this.pushAssistantSegment({ kind: 'json', data: j.data });\n break;\n }\n case 'tool': {\n this.flushPending();\n const t = ev;\n this.pushAssistantSegment({ kind: 'tool', tool: t });\n break;\n }\n case 'error': {\n this.flushPending();\n const e = ev;\n this.pushAssistantError(e.message);\n this._streaming$.next(false); // ✅ stop spinner on error\n break;\n }\n case 'done': {\n this.flushPending();\n this.markAssistantDone();\n this._streaming$.next(false); // ✅ stop spinner on done\n this._typing$.next(false);\n break;\n }\n }\n }\n ensureAssistantMessage() {\n if (!this.currentAssistantMsgId) {\n const msg = {\n id: this.nextId(),\n role: 'assistant',\n segments: [],\n createdAt: Date.now(),\n };\n this.currentAssistantMsgId = msg.id;\n this._messages$.next([...this._messages$.value, msg]);\n }\n }\n withCurrentAssistant(mut) {\n if (!this.currentAssistantMsgId)\n this.ensureAssistantMessage();\n const id = this.currentAssistantMsgId;\n const list = this._messages$.value;\n const idx = list.findIndex((m) => m.id === id);\n if (idx === -1)\n return;\n const updated = mut(list[idx]);\n const newList = [...list];\n newList[idx] = updated;\n this._messages$.next(newList);\n }\n /* ========== Segment helpers (ordered) ========== */\n pushAssistantSegment(seg) {\n this.ensureAssistantMessage();\n this.withCurrentAssistant((m) => ({\n ...m,\n segments: [...(m.segments ?? []), seg],\n }));\n }\n appendToLastTextSegment(delta) {\n this.withCurrentAssistant((m) => {\n const segs = [...(m.segments ?? [])];\n if (segs.length && segs[segs.length - 1].kind === 'text') {\n const last = segs[segs.length - 1];\n segs[segs.length - 1] = { kind: 'text', text: last.text + delta };\n }\n else {\n segs.push({ kind: 'text', text: delta });\n }\n return { ...m, segments: segs };\n });\n }\n /* ========== Message buffering / accumulation ========== */\n bufferAssistantMessage(m) {\n const text = m.text ?? '';\n if (!text)\n return;\n if (this.strictMessageSegmentation) {\n // Split every message as its own segment\n this.flushPending();\n this.pushAssistantSegment({ kind: 'text', text });\n return;\n }\n // Default: coalesce streaming chunks (delta:true);\n // if delta === false, start a new segment\n if (m.delta === false) {\n this.flushPending();\n this.pushAssistantSegment({ kind: 'text', text });\n }\n else {\n this.bufferAssistantDelta(text);\n }\n }\n bufferAssistantDelta(chunk) {\n if (!chunk)\n return;\n this.pendingDelta += chunk;\n this.scheduleFlush();\n }\n scheduleFlush() {\n if (this.rafId != null || this.timeoutId != null)\n return;\n const raf = globalThis.requestAnimationFrame?.bind(globalThis);\n if (raf) {\n this.rafId = raf(() => {\n this.rafId = null;\n this.flushPending();\n });\n }\n else {\n this.timeoutId = setTimeout(() => {\n this.timeoutId = null;\n this.flushPending();\n }, 33); // ~30fps\n }\n }\n clearSchedulers() {\n const caf = globalThis.cancelAnimationFrame?.bind(globalThis);\n if (this.rafId != null && caf)\n caf(this.rafId);\n if (this.timeoutId != null)\n clearTimeout(this.timeoutId);\n this.rafId = null;\n this.timeoutId = null;\n }\n flushPending() {\n if (!this.pendingDelta)\n return;\n const delta = this.pendingDelta;\n this.pendingDelta = '';\n this.clearSchedulers();\n this.appendToLastTextSegment(delta);\n }\n /* ========== Finalization / error ========== */\n pushAssistantError(message) {\n this.ensureAssistantMessage();\n this.withCurrentAssistant((m) => ({\n ...m,\n segments: [\n ...(m.segments ?? []),\n { kind: 'text', text: `⚠️ ${message || 'Unknown error'}` },\n ],\n error: message || 'Unknown error',\n }));\n }\n markAssistantDone() {\n if (!this.currentAssistantMsgId)\n return;\n this.withCurrentAssistant((m) => ({ ...m, done: true }));\n this.currentAssistantMsgId = undefined;\n }\n /* ========== Utils ========== */\n nextId() {\n return Math.random().toString(36).slice(2) + Date.now().toString(36);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ConversationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ConversationService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ConversationService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvc2VydmljZXMvY29udmVyc2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFDTCxzQkFBc0IsR0FRdkIsTUFBTSw0QkFBNEIsQ0FBQzs7QUFvQnBDLE1BQU0sT0FBTyxtQkFBbUI7SUFDdEIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO0lBQzFDLGNBQWMsQ0FBVTtJQUVmLFVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsRUFBRSxDQUFDLENBQUM7SUFDNUQsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFbkMsUUFBUSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRWhELG9CQUFvQjtJQUNILFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUMxRCxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUU5QyxTQUFTLENBQWdCO0lBQ3pCLHFCQUFxQixDQUFVO0lBRXZDLHlEQUF5RDtJQUNqRCxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLEtBQUssR0FBa0IsSUFBSSxDQUFDO0lBQzVCLFNBQVMsR0FBUSxJQUFJLENBQUM7SUFFOUIscURBQXFEO0lBQ3JELHlGQUF5RjtJQUN6Riw4REFBOEQ7SUFDN0MseUJBQXlCLEdB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QyxHQUFHLENBQUM7WUFDSixRQUFRLEVBQUU7Z0JBQ1IsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO2dCQUNyQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sT0FBTyxJQUFJLGVBQWUsRUFBRSxFQUFFO2FBQzNEO1lBQ0QsS0FBSyxFQUFFLE9BQU8sSUFBSSxlQUFlO1NBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQjtZQUFFLE9BQU87UUFDeEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxpQ0FBaUM7SUFFekIsTUFBTTtRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO3VHQWhTVSxtQkFBbUI7MkdBQW5CLG1CQUFtQixjQUROLE1BQU07OzJGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQXNzaXN0YW50U3RyZWFtU2VydmljZSxcbiAgU3RyZWFtRXZlbnQsXG4gIE1lc3NhZ2VFdmVudCxcbiAgR3JvdXBFdmVudCxcbiAgSnNvbkV2ZW50LFxuICBUb29sRXZlbnQsXG4gIFN0YXJ0RXZlbnQsXG4gIEVycm9yRXZlbnQsXG59IGZyb20gJy4vYXNzaXN0YW50LXN0cmVhbS5zZXJ2aWNlJztcblxuLyoqIE9yZGVyZWQgYXNzaXN0YW50IHR1cm4gc2VnbWVudHMgKHByZXNlcnZlIGV4YWN0IHNlcnZlciBvcmRlcikuICovXG5leHBvcnQgdHlwZSBBc3Npc3RhbnRTZWdtZW50ID1cbiAgfCB7IGtpbmQ6ICd0ZXh0JzsgdGV4dDogc3RyaW5nIH1cbiAgfCB7IGtpbmQ6ICdncm91cCc7IGl0ZW06IEdyb3VwRXZlbnQgfVxuICB8IHsga2luZDogJ2pzb24nOyBkYXRhOiB1bmtub3duIH1cbiAgfCB7IGtpbmQ6ICd0b29sJzsgdG9vbDogVG9vbEV2ZW50IH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdE1lc3NhZ2Uge1xuICBpZDogc3RyaW5nO1xuICByb2xlOiAndXNlcicgfCAnYXNzaXN0YW50JztcbiAgdGV4dD86IHN0cmluZzsgICAgICAgICAgICAgICAgIC8vIGZvciB1c2VyIG1lc3NhZ2VzOyBub3QgdXNlZCBmb3IgYXNzaXN0YW50IHR1cm5zXG4gIHNlZ21lbnRzPzogQXNzaXN0YW50U2VnbWVudFtdOyAvLyBhc3Npc3RhbnQgb25seTogb3JkZXJlZCBzdHJlYW0gcGllY2VzXG4gIGVycm9yPzogc3RyaW5nO1xuICBkb25lPzogYm9vbGVhbjtcbiAgY3JlYXRlZEF0OiBudW1iZXI7XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ29udmVyc2F0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgYXNzaXN0YW50ID0gaW5qZWN0KEFzc2lzdGFudFN0cmVhbVNlcnZpY2UpXG4gIHByaXZhdGUgY29udmVyc2F0aW9uSWQ/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbWVzc2FnZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDaGF0TWVzc2FnZVtdPihbXSk7XG4gIHJlYWRvbmx5IG1lc3NhZ2VzJCA9IHRoaXMuX21lc3NhZ2VzJC5hc09ic2VydmFibGUoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF90eXBpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHR5cGluZyQgPSB0aGlzLl90eXBpbmckLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIC8vIOKchSBuZXc6IHN0cmVhbWluZyRcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RyZWFtaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzdHJlYW1pbmckID0gdGhpcy5fc3RyZWFtaW5nJC5hc09ic2VydmFibGUoKTtcblxuICBwcml2YXRlIHN0cmVhbVN1Yj86IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBjdXJyZW50QXNzaXN0YW50TXNnSWQ/OiBzdHJpbmc7XG5cbiAgLy8gQWNjdW11bGF0aW9uIHN0YXRlIGZvciBzdHJlYW1pbmcgYXNzaXN0YW50IHRleHQgZGVsdGFzXG4gIHByaXZhdGUgcGVuZGluZ0RlbHRhID0gJyc7XG4gIHByaXZhdGUgcmFmSWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHRpbWVvdXRJZDogYW55ID0gbnVsbDtcblxuICAvLyBDb250cm9sIGhvdyBjb25zZWN1dGl2ZSBcIm1lc3NhZ2VcIiBldmVudHMgYXJlIHNwbGl0XG4gIC8vIGZhbHNlID0gY29hbGVzY2Ugc3RyZWFtaW5nIGNodW5rcyAoZGVsdGE6dHJ1ZSksIHN0YXJ0IG5ldyBzZWdtZW50IHdoZW4gZGVsdGEgPT09IGZhbHNlXG4gIC8vIHRydWUgID0gc3BsaXQgZXZlcnkgbWVzc2FnZSBldmVudCBpbnRvIGl0cyBvd24gdGV4dCBzZWdtZW50XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RyaWN0TWVzc2FnZVNlZ21lbnRhdGlvbiA9IGZhbHNlO1xuXG4gIC8vIGxpZ2h0d2VpZ2h0IFVJIHNpZ25hbHMgKHNuYWNrYmFyLCBldGMuKVxuICByZWFkb25seSBldmVudHMkID0gbmV3IFN1YmplY3Q8eyBraW5kOiAnZXJyb3InIHwgJ2luZm8nOyB0ZXh0OiBzdHJpbmcgfT4oKTtcblxuICAvKiogU2V0IGtub3duIGNvbnZlcnNhdGlvbklkIGlkIChvcHRpb25hbCkuICovXG4gIHNldENvbnZlcnNhdGlvbklkKGNvbnZlcnNhdGlvbklkPzogc3RyaW5nKSB7XG4gICAgdGhpcy5jb252ZXJzYXRpb25JZCA9IGNvbnZlcnNhdGlvbklkO1xuICB9XG5cbiAgLyoqIENsZWFyIGN1cnJlbnQgY29udmVyc2F0aW9uIHN0YXRlLiAqL1xuICBkaXNwb3NlKCkge1xuICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgdGhpcy5fbWVzc2FnZXMkLm5leHQoW10pO1xuICAgIHRoaXMuY3VycmVudEFzc2lzdGFudE1zZ0lkID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY2xlYXJTY2hlZHVsZXJzKCk7XG4gIH1cblxuICAvKiogU3RvcCBjdXJyZW50IHN0cmVhbSAoZS5nLiwgdXNlciBwcmVzc2VkIFN0b3ApLiAqL1xuICBjYW5jZWwoKSB7XG4gICAgaWYgKHRoaXMuc3RyZWFtU3ViKSB7XG4gICAgICB0aGlzLnN0cmVhbVN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5zdHJlYW1TdWIgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLl90eXBpbmckLm5leHQoZmFsc2UpO1xuICAgICAgdGhpcy5fc3RyZWFtaW5nJC5uZXh0KGZhbHNlKTsgICAgIC8vIOKchSBzdG9wIHNwaW5uZXIgaW1tZWRpYXRlbHlcbiAgICAgIHRoaXMuZmx1c2hQZW5kaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFNlbmQgYSB1c2VyIG1lc3NhZ2UgYW5kIHN0YXJ0IHN0cmVhbWluZyBhbiBhc3Npc3RhbnQgcmVzcG9uc2UuICovXG4gIHNlbmQobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgY29uc3QgdHJpbW1lZCA9IG1lc3NhZ2U/LnRyaW0oKTtcbiAgICBpZiAoIXRyaW1tZWQpIHJldHVybjtcblxuICAgIC8vIEFwcGVuZCB1c2VyIG1lc3NhZ2UgdG8gdGltZWxpbmVcbiAgICB0aGlzLl9tZXNzYWdlcyQubmV4dChbXG4gICAgICAuLi50aGlzLl9tZXNzYWdlcyQudmFsdWUsXG4gICAgICB7IGlkOiB0aGlzLm5leHRJZCgpLCByb2xlOiAndXNlcicsIHRleHQ6IHRyaW1tZWQsIGNyZWF0ZWRBdDogRGF0ZS5ub3coKSB9LFxuICAgIF0pO1xuXG4gICAgLy8gU3RhcnQvY29udGludWUgYXNzaXN0YW50IHN0cmVhbVxuICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgdGhpcy5fdHlwaW5nJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuX3N0cmVhbWluZyQubmV4dCh0cnVlKTsgICAgICAvLyDinIUgc3RhcnQgc3Bpbm5lciBhcyBzb29uIGFzIHdlIHN0cmVhbVxuXG4gICAgdGhpcy5zdHJlYW1TdWIgPSB0aGlzLmFzc2lzdGFudFxuICAgICAgLnN0cmVhbSh7IG1lc3NhZ2U6IHRyaW1tZWQsIGNvbnZlcnNhdGlvbklkOiB0aGlzLmNvbnZlcnNhdGlvbklkIH0pXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGV2KSA9PiB0aGlzLmhhbmRsZVN0cmVhbUV2ZW50KGV2KSxcbiAgICAgICAgZXJyb3I6IChlOiBFcnJvckV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5fdHlwaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLl9zdHJlYW1pbmckLm5leHQoZmFsc2UpOyAgIC8vIOKchSBzdG9wIHNwaW5uZXJcbiAgICAgICAgICB0aGlzLmZsdXNoUGVuZGluZygpO1xuICAgICAgICAgIHRoaXMucHVzaEFzc2lzdGFudEVycm9yKGU/Lm1lc3NhZ2UgPz8gJ1N0cmVhbSBmYWlsZWQnKTtcbiAgICAgICAgICB0aGlzLmV2ZW50cyQubmV4dCh7IGtpbmQ6ICdlcnJvcicsIHRleHQ6IGU/Lm1lc3NhZ2UgPz8gJ1N0cmVhbSBmYWlsZWQnIH0pO1xuICAgICAgICB9LFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3R5cGluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5fc3RyZWFtaW5nJC5uZXh0KGZhbHNlKTsgICAvLyDinIUgc3RvcCBzcGlubmVyXG4gICAgICAgICAgdGhpcy5mbHVzaFBlbmRpbmcoKTtcbiAgICAgICAgICB0aGlzLm1hcmtBc3Npc3RhbnREb25lKCk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIC8qID09PT09PT09PT0gSW50ZXJuYWxzID09PT09PT09PT0gKi9cblxuICBwcml2YXRlIGhhbmRsZVN0cmVhbUV2ZW50KGV2OiBTdHJlYW1FdmVudCkge1xuICAgIHN3aXRjaCAoZXYudHlwZSkge1xuICAgICAgY2FzZSAnc3RhcnQnOiB7XG4gICAgICAgIGNvbnN0IHMgPSBldiBhcyBTdGFydEV2ZW50O1xuICAgICAgICBpZiAocy5jb252ZXJzYXRpb25JZCkgdGhpcy5jb252ZXJzYXRpb25JZCA9IHMuY29udmVyc2F0aW9uSWQ7XG4gICAgICAgIHRoaXMuZW5zdXJlQXNzaXN0YW50TWVzc2FnZSgpO1xuICAgICAgICB0aGlzLl9zdHJlYW1pbmckLm5leHQodHJ1ZSk7ICAgICAgLy8g4pyFIGVuc3VyZSBzcGlubmVyIGV2ZW4gaWYgd2UgYmVnaW4gb24gJ3N0YXJ0J1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSAnbWVzc2FnZSc6IHtcbiAgICAgICAgY29uc3QgbSA9IGV2IGFzIE1lc3NhZ2VFdmVudDtcblxuICAgICAgICAvLyBNb3N0IGFwcHMgYXZvaWQgZWNob2luZyBzZXJ2ZXIgXCJ1c2VyXCIgbWVzc2FnZXMgdG8gcHJldmVudCBkdXBsaWNhdGVzXG4gICAgICAgIGlmIChtLnJvbGUgIT09ICdhc3Npc3RhbnQnKSBicmVhaztcblxuICAgICAgICB0aGlzLmJ1ZmZlckFzc2lzdGFudE1lc3NhZ2UobSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlICdncm91cCc6IHtcbiAgICAgICAgdGhpcy5mbHVzaFBlbmRpbmcoKTtcbiAgICAgICAgY29uc3QgZyA9IGV2IGFzIEdyb3VwRXZlbnQ7XG4gICAgICAgIHRoaXMucHVzaEFzc2lzdGFudFNlZ21lbnQoeyBraW5kOiAnZ3JvdXAnLCBpdGVtOiBnIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSAnanNvbic6IHtcbiAgICAgICAgdGhpcy5mbHVzaFBlbmRpbmcoKTtcbiAgICAgICAgY29uc3QgaiA9IGV2IGFzIEpzb25FdmVudDtcbiAgICAgICAgdGhpcy5wdXNoQXNzaXN0YW50U2VnbWVudCh7IGtpbmQ6ICdqc29uJywgZGF0YTogai5kYXRhIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSAndG9vbCc6IHtcbiAgICAgICAgdGhpcy5mbHVzaFBlbmRpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9IGV2IGFzIFRvb2xFdmVudDtcbiAgICAgICAgdGhpcy5wdXNoQXNzaXN0YW50U2VnbWVudCh7IGtpbmQ6ICd0b29sJywgdG9vbDogdCB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2Vycm9yJzoge1xuICAgICAgICB0aGlzLmZsdXNoUGVuZGluZygpO1xuICAgICAgICBjb25zdCBlID0gZXYgYXMgRXJyb3JFdmVudDtcbiAgICAgICAgdGhpcy5wdXNoQXNzaXN0YW50RXJyb3IoZS5tZXNzYWdlKTtcbiAgICAgICAgdGhpcy5fc3RyZWFtaW5nJC5uZXh0KGZhbHNlKTsgICAgIC8vIOKchSBzdG9wIHNwaW5uZXIgb24gZXJyb3JcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2RvbmUnOiB7XG4gICAgICAgIHRoaXMuZmx1c2hQZW5kaW5nKCk7XG4gICAgICAgIHRoaXMubWFya0Fzc2lzdGFudERvbmUoKTtcbiAgICAgICAgdGhpcy5fc3RyZWFtaW5nJC5uZXh0KGZhbHNlKTsgICAgIC8vIOKchSBzdG9wIHNwaW5uZXIgb24gZG9uZVxuICAgICAgICB0aGlzLl90eXBpbmckLm5leHQoZmFsc2UpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlQXNzaXN0YW50TWVzc2FnZSgpIHtcbiAgICBpZiAoIXRoaXMuY3VycmVudEFzc2lzdGFudE1zZ0lkKSB7XG4gICAgICBjb25zdCBtc2c6IENoYXRNZXNzYWdlID0ge1xuICAgICAgICBpZDogdGhpcy5uZXh0SWQoKSxcbiAgICAgICAgcm9sZTogJ2Fzc2lzdGFudCcsXG4gICAgICAgIHNlZ21lbnRzOiBbXSxcbiAgICAgICAgY3JlYXRlZEF0OiBEYXRlLm5vdygpLFxuICAgICAgfTtcbiAgICAgIHRoaXMuY3VycmVudEFzc2lzdGFudE1zZ0lkID0gbXNnLmlkO1xuICAgICAgdGhpcy5fbWVzc2FnZXMkLm5leHQoWy4uLnRoaXMuX21lc3NhZ2VzJC52YWx1ZSwgbXNnXSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB3aXRoQ3VycmVudEFzc2lzdGFudChtdXQ6IChtOiBDaGF0TWVzc2FnZSkgPT4gQ2hhdE1lc3NhZ2UpIHtcbiAgICBpZiAoIXRoaXMuY3VycmVudEFzc2lzdGFudE1zZ0lkKSB0aGlzLmVuc3VyZUFzc2lzdGFudE1lc3NhZ2UoKTtcbiAgICBjb25zdCBpZCA9IHRoaXMuY3VycmVudEFzc2lzdGFudE1zZ0lkITtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5fbWVzc2FnZXMkLnZhbHVlO1xuICAgIGNvbnN0IGlkeCA9IGxpc3QuZmluZEluZGV4KChtKSA9PiBtLmlkID09PSBpZCk7XG4gICAgaWYgKGlkeCA9PT0gLTEpIHJldHVybjtcblxuICAgIGNvbnN0IHVwZGF0ZWQgPSBtdXQobGlzdFtpZHhdKTtcbiAgICBjb25zdCBuZXdMaXN0ID0gWy4uLmxpc3RdO1xuICAgIG5ld0xpc3RbaWR4XSA9IHVwZGF0ZWQ7XG4gICAgdGhpcy5fbWVzc2FnZXMkLm5leHQobmV3TGlzdCk7XG4gIH1cblxuICAvKiA9PT09PT09PT09IFNlZ21lbnQgaGVscGVycyAob3JkZXJlZCkgPT09PT09PT09PSAqL1xuXG4gIHByaXZhdGUgcHVzaEFzc2lzdGFudFNlZ21lbnQoc2VnOiBBc3Npc3RhbnRTZWdtZW50KSB7XG4gICAgdGhpcy5lbnN1cmVBc3Npc3RhbnRNZXNzYWdlKCk7XG4gICAgdGhpcy53aXRoQ3VycmVudEFzc2lzdGFudCgobSkgPT4gKHtcbiAgICAgIC4uLm0sXG4gICAgICBzZWdtZW50czogWy4uLihtLnNlZ21lbnRzID8/IFtdKSwgc2VnXSxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGVuZFRvTGFzdFRleHRTZWdtZW50KGRlbHRhOiBzdHJpbmcpIHtcbiAgICB0aGlzLndpdGhDdXJyZW50QXNzaXN0YW50KChtKSA9PiB7XG4gICAgICBjb25zdCBzZWdzID0gWy4uLihtLnNlZ21lbnRzID8/IFtdKV07XG4gICAgICBpZiAoc2Vncy5sZW5ndGggJiYgc2Vnc1tzZWdzLmxlbmd0aCAtIDFdLmtpbmQgPT09ICd0ZXh0Jykge1xuICAgICAgICBjb25zdCBsYXN0ID0gc2Vnc1tzZWdzLmxlbmd0aCAtIDFdIGFzIHsga2luZDogJ3RleHQnOyB0ZXh0OiBzdHJpbmcgfTtcbiAgICAgICAgc2Vnc1tzZWdzLmxlbmd0aCAtIDFdID0geyBraW5kOiAndGV4dCcsIHRleHQ6IGxhc3QudGV4dCArIGRlbHRhIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWdzLnB1c2goeyBraW5kOiAndGV4dCcsIHRleHQ6IGRlbHRhIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgLi4ubSwgc2VnbWVudHM6IHNlZ3MgfTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qID09PT09PT09PT0gTWVzc2FnZSBidWZmZXJpbmcgLyBhY2N1bXVsYXRpb24gPT09PT09PT09PSAqL1xuXG4gIHByaXZhdGUgYnVmZmVyQXNzaXN0YW50TWVzc2FnZShtOiBNZXNzYWdlRXZlbnQpIHtcbiAgICBjb25zdCB0ZXh0ID0gbS50ZXh0ID8/ICcnO1xuICAgIGlmICghdGV4dCkgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMuc3RyaWN0TWVzc2FnZVNlZ21lbnRhdGlvbikge1xuICAgICAgLy8gU3BsaXQgZXZlcnkgbWVzc2FnZSBhcyBpdHMgb3duIHNlZ21lbnRcbiAgICAgIHRoaXMuZmx1c2hQZW5kaW5nKCk7XG4gICAgICB0aGlzLnB1c2hBc3Npc3RhbnRTZWdtZW50KHsga2luZDogJ3RleHQnLCB0ZXh0IH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIERlZmF1bHQ6IGNvYWxlc2NlIHN0cmVhbWluZyBjaHVua3MgKGRlbHRhOnRydWUpO1xuICAgIC8vIGlmIGRlbHRhID09PSBmYWxzZSwgc3RhcnQgYSBuZXcgc2VnbWVudFxuICAgIGlmIChtLmRlbHRhID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5mbHVzaFBlbmRpbmcoKTtcbiAgICAgIHRoaXMucHVzaEFzc2lzdGFudFNlZ21lbnQoeyBraW5kOiAndGV4dCcsIHRleHQgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYnVmZmVyQXNzaXN0YW50RGVsdGEodGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBidWZmZXJBc3Npc3RhbnREZWx0YShjaHVuazogc3RyaW5nKSB7XG4gICAgaWYgKCFjaHVuaykgcmV0dXJuO1xuICAgIHRoaXMucGVuZGluZ0RlbHRhICs9IGNodW5rO1xuICAgIHRoaXMuc2NoZWR1bGVGbHVzaCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzY2hlZHVsZUZsdXNoKCkge1xuICAgIGlmICh0aGlzLnJhZklkICE9IG51bGwgfHwgdGhpcy50aW1lb3V0SWQgIT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgY29uc3QgcmFmID0gKGdsb2JhbFRoaXMgYXMgYW55KS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/LmJpbmQoZ2xvYmFsVGhpcyk7XG4gICAgaWYgKHJhZikge1xuICAgICAgdGhpcy5yYWZJZCA9IHJhZigoKSA9PiB7XG4gICAgICAgIHRoaXMucmFmSWQgPSBudWxsO1xuICAgICAgICB0aGlzLmZsdXNoUGVuZGluZygpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMudGltZW91dElkID0gbnVsbDtcbiAgICAgICAgdGhpcy5mbHVzaFBlbmRpbmcoKTtcbiAgICAgIH0sIDMzKTsgLy8gfjMwZnBzXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjbGVhclNjaGVkdWxlcnMoKSB7XG4gICAgY29uc3QgY2FmID0gKGdsb2JhbFRoaXMgYXMgYW55KS5jYW5jZWxBbmltYXRpb25GcmFtZT8uYmluZChnbG9iYWxUaGlzKTtcbiAgICBpZiAodGhpcy5yYWZJZCAhPSBudWxsICYmIGNhZikgY2FmKHRoaXMucmFmSWQpO1xuICAgIGlmICh0aGlzLnRpbWVvdXRJZCAhPSBudWxsKSBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0SWQpO1xuICAgIHRoaXMucmFmSWQgPSBudWxsO1xuICAgIHRoaXMudGltZW91dElkID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZmx1c2hQZW5kaW5nKCkge1xuICAgIGlmICghdGhpcy5wZW5kaW5nRGVsdGEpIHJldHVybjtcbiAgICBjb25zdCBkZWx0YSA9IHRoaXMucGVuZGluZ0RlbHRhO1xuICAgIHRoaXMucGVuZGluZ0RlbHRhID0gJyc7XG4gICAgdGhpcy5jbGVhclNjaGVkdWxlcnMoKTtcblxuICAgIHRoaXMuYXBwZW5kVG9MYXN0VGV4dFNlZ21lbnQoZGVsdGEpO1xuICB9XG5cbiAgLyogPT09PT09PT09PSBGaW5hbGl6YXRpb24gLyBlcnJvciA9PT09PT09PT09ICovXG5cbiAgcHJpdmF0ZSBwdXNoQXNzaXN0YW50RXJyb3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgdGhpcy5lbnN1cmVBc3Npc3RhbnRNZXNzYWdlKCk7XG4gICAgdGhpcy53aXRoQ3VycmVudEFzc2lzdGFudCgobSkgPT4gKHtcbiAgICAgIC4uLm0sXG4gICAgICBzZWdtZW50czogW1xuICAgICAgICAuLi4obS5zZWdtZW50cyA/PyBbXSksXG4gICAgICAgIHsga2luZDogJ3RleHQnLCB0ZXh0OiBg4pqg77iPICR7bWVzc2FnZSB8fCAnVW5rbm93biBlcnJvcid9YCB9LFxuICAgICAgXSxcbiAgICAgIGVycm9yOiBtZXNzYWdlIHx8ICdVbmtub3duIGVycm9yJyxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIG1hcmtBc3Npc3RhbnREb25lKCkge1xuICAgIGlmICghdGhpcy5jdXJyZW50QXNzaXN0YW50TXNnSWQpIHJldHVybjtcbiAgICB0aGlzLndpdGhDdXJyZW50QXNzaXN0YW50KChtKSA9PiAoeyAuLi5tLCBkb25lOiB0cnVlIH0pKTtcbiAgICB0aGlzLmN1cnJlbnRBc3Npc3RhbnRNc2dJZCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qID09PT09PT09PT0gVXRpbHMgPT09PT09PT09PSAqL1xuXG4gIHByaXZhdGUgbmV4dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpICsgRGF0ZS5ub3coKS50b1N0cmluZygzNik7XG4gIH1cbn1cbiJdfQ==","// src/app/services/conversation-init.service.ts\nimport { Injectable, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { firstValueFrom } from 'rxjs';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport * as i0 from \"@angular/core\";\nexport class ConversationInitService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n init(message) {\n return firstValueFrom(this.http.post(`${this.environment.baseUrl}/conversations/init`, { message }, { withCredentials: true }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ConversationInitService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ConversationInitService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ConversationInitService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLWluaXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9jb252ZXJzYXRpb24taW5pdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdEQUFnRDtBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBT3RELE1BQU0sT0FBTyx1QkFBdUI7SUFDeEIsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRWxDLElBQUksQ0FBQyxPQUFlO1FBQ2xCLE9BQU8sY0FBYyxDQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBMkIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8scUJBQXFCLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUNuSSxDQUFDO0lBQ0osQ0FBQzt1R0FSVSx1QkFBdUI7MkdBQXZCLHVCQUF1QixjQURWLE1BQU07OzJGQUNuQix1QkFBdUI7a0JBRG5DLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2FwcC9zZXJ2aWNlcy9jb252ZXJzYXRpb24taW5pdC5zZXJ2aWNlLnRzXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVBQX0NPTkZJRyB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udmVyc2F0aW9uSW5pdFJlc3BvbnNlIHtcbiAgY29udmVyc2F0aW9uSWQ6IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDb252ZXJzYXRpb25Jbml0U2VydmljZSB7XG4gIHByb3RlY3RlZCBlbnZpcm9ubWVudCA9IGluamVjdChBUFBfQ09ORklHKTtcbiAgcHJpdmF0ZSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuXG4gIGluaXQobWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTxDb252ZXJzYXRpb25Jbml0UmVzcG9uc2U+IHtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmh0dHAucG9zdDxDb252ZXJzYXRpb25Jbml0UmVzcG9uc2U+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vY29udmVyc2F0aW9ucy9pbml0YCwgeyBtZXNzYWdlIH0sIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgKTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class PropertySearchService extends BaseService {\n init() {\n this.endpoint = 'properties/search';\n super.init();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertySearchService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertySearchService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertySearchService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktc2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvc2VydmljZXMvcHJvcGVydHktc2VhcmNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBSzdDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxXQUFXO0lBQzNDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLG1CQUFtQixDQUFDO1FBQ3BDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7dUdBSlUscUJBQXFCOzJHQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlTZWFyY2hTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAncHJvcGVydGllcy9zZWFyY2gnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuXG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { finalize } from 'rxjs/operators';\nimport { LoadingService } from '../services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../services\";\nexport class LoadingInterceptor {\n loadingService;\n activeRequests = 0;\n constructor(loadingService) {\n this.loadingService = loadingService;\n }\n intercept(request, next) {\n if (this.activeRequests === 0) {\n this.loadingService.start();\n }\n this.activeRequests++;\n return next.handle(request).pipe(finalize(() => {\n this.activeRequests--;\n if (this.activeRequests === 0) {\n this.loadingService.stop();\n }\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LoadingInterceptor, deps: [{ token: i1.LoadingService }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LoadingInterceptor, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LoadingInterceptor, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [{ type: i1.LoadingService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9pbnRlcmNlcHRvci9sb2FkaW5nLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQUs3QyxNQUFNLE9BQU8sa0JBQWtCO0lBR1Q7SUFGcEIsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUVuQixZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBRyxDQUFDO0lBRXRELFNBQVMsQ0FDUCxPQUF5QixFQUN6QixJQUFpQjtRQUVqQixJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzlCLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzt1R0F2QlUsa0JBQWtCOzJHQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEh0dHBJbnRlcmNlcHRvcixcbiAgSHR0cFJlcXVlc3QsXG4gIEh0dHBIYW5kbGVyLFxuICBIdHRwRXZlbnQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTG9hZGluZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMb2FkaW5nSW50ZXJjZXB0b3Ige1xuICBhY3RpdmVSZXF1ZXN0cyA9IDA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2FkaW5nU2VydmljZTogTG9hZGluZ1NlcnZpY2UpIHt9XG5cbiAgaW50ZXJjZXB0KFxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcbiAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIGlmICh0aGlzLmFjdGl2ZVJlcXVlc3RzID09PSAwKSB7XG4gICAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLnN0YXJ0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5hY3RpdmVSZXF1ZXN0cysrO1xuXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpLnBpcGUoXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZlUmVxdWVzdHMtLTtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlUmVxdWVzdHMgPT09IDApIHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=","import { Directive, HostListener, inject } from '@angular/core';\nimport { NavigationService } from '../services';\nimport * as i0 from \"@angular/core\";\nexport class BackButtonDirective {\n navigation = inject(NavigationService);\n constructor() { }\n onClick() {\n this.navigation.back();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BackButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.2.0\", type: BackButtonDirective, isStandalone: true, selector: \"[rolatechBackButton]\", host: { listeners: { \"click\": \"onClick()\" } }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BackButtonDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rolatechBackButton]',\n }]\n }], ctorParameters: () => [], propDecorators: { onClick: [{\n type: HostListener,\n args: ['click']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay1idXR0b24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL2RpcmVjdGl2ZS9iYWNrLWJ1dHRvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFLaEQsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixVQUFVLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsZ0JBQWUsQ0FBQztJQUVoQixPQUFPO1FBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO3VHQU5VLG1CQUFtQjsyRkFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2pDO3dEQUtDLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tyb2xhdGVjaEJhY2tCdXR0b25dJyxcbn0pXG5leHBvcnQgY2xhc3MgQmFja0J1dHRvbkRpcmVjdGl2ZSB7XG4gIG5hdmlnYXRpb24gPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuICBjb25zdHJ1Y3RvcigpIHt9XG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgb25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLm5hdmlnYXRpb24uYmFjaygpO1xuICB9XG59XG4iXX0=","import { Directive, inject } from '@angular/core';\nimport { LayoutService } from '../services';\nimport * as i0 from \"@angular/core\";\nexport class HideFooterDirective {\n layout = inject(LayoutService);\n ngOnInit() { this.layout.setHideFooter(true); }\n ngOnDestroy() { this.layout.setHideFooter(false); }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: HideFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.2.0\", type: HideFooterDirective, isStandalone: true, selector: \"[rolatechHideFooter]\", ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: HideFooterDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rolatechHideFooter]',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlkZS1mb290ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL2RpcmVjdGl2ZS9oaWRlLWZvb3Rlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBSzVDLE1BQU0sT0FBTyxtQkFBbUI7SUFDdEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2QyxRQUFRLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9DLFdBQVcsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7dUdBSHhDLG1CQUFtQjsyRkFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkRlc3Ryb3ksIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcm9sYXRlY2hIaWRlRm9vdGVyXScsXG59KVxuZXhwb3J0IGNsYXNzIEhpZGVGb290ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgbGF5b3V0ID0gaW5qZWN0KExheW91dFNlcnZpY2UpO1xuICBuZ09uSW5pdCgpIHsgdGhpcy5sYXlvdXQuc2V0SGlkZUZvb3Rlcih0cnVlKTsgfVxuICBuZ09uRGVzdHJveSgpIHsgdGhpcy5sYXlvdXQuc2V0SGlkZUZvb3RlcihmYWxzZSk7IH1cbn1cbiJdfQ==","import { BackButtonDirective } from './back-button.directive';\nexport { HideFooterDirective } from './hide-footer.directive';\nexport { BackButtonDirective, } from './back-button.directive';\nexport const SERVICE_DIRECTIVES = [BackButtonDirective];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvZGlyZWN0aXZlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsR0FBRyxNQUFNLHlCQUF5QixDQUFDO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYWNrQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi9iYWNrLWJ1dHRvbi5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgSGlkZUZvb3RlckRpcmVjdGl2ZSB9IGZyb20gJy4vaGlkZS1mb290ZXIuZGlyZWN0aXZlJztcbmV4cG9ydCB7IEJhY2tCdXR0b25EaXJlY3RpdmUsIH0gZnJvbSAnLi9iYWNrLWJ1dHRvbi5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgU0VSVklDRV9ESVJFQ1RJVkVTOiBQcm92aWRlcltdID0gW0JhY2tCdXR0b25EaXJlY3RpdmVdO1xuIl19","import { APP_INITIALIZER, makeEnvironmentProviders } from '@angular/core';\nimport { BaseService, LoadingService, MediaService, LayoutService, DialogService, SnackBarService, NavigationService, SupportService, BreadcrumbService, SidenavService, CartService, ProductService, OrderService, } from './lib/services';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { LoadingInterceptor } from './lib/interceptor';\nimport { BackButtonDirective } from './lib/directive';\nexport function provideAngularServices() {\n const providers = [\n BaseService,\n LoadingService,\n MediaService,\n LayoutService,\n DialogService,\n SnackBarService,\n NavigationService,\n SupportService,\n BreadcrumbService,\n SidenavService,\n BackButtonDirective,\n CartService,\n ProductService,\n OrderService,\n { provide: HTTP_INTERCEPTORS, useClass: LoadingInterceptor, multi: true },\n {\n provide: APP_INITIALIZER,\n useFactory: () => () => null,\n deps: [NavigationService],\n multi: true,\n },\n ];\n return makeEnvironmentProviders(providers);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFrQyx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQ0wsV0FBVyxFQUNYLGNBQWMsRUFDZCxZQUFZLEVBQ1osYUFBYSxFQUNiLGFBQWEsRUFDYixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxpQkFBaUIsRUFDakIsY0FBYyxFQUNkLFdBQVcsRUFDWCxjQUFjLEVBQ2QsWUFBWSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdEQsTUFBTSxVQUFVLHNCQUFzQjtJQUNwQyxNQUFNLFNBQVMsR0FBd0M7UUFDckQsV0FBVztRQUNYLGNBQWM7UUFDZCxZQUFZO1FBQ1osYUFBYTtRQUNiLGFBQWE7UUFDYixlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsY0FBYztRQUNkLG1CQUFtQjtRQUNuQixXQUFXO1FBQ1gsY0FBYztRQUNkLFlBQVk7UUFDWixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtRQUN6RTtZQUNFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJO1lBQzVCLElBQUksRUFBRSxDQUFDLGlCQUFpQixDQUFDO1lBQ3pCLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixDQUFDO0lBRUYsT0FBTyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBFbnZpcm9ubWVudFByb3ZpZGVycywgUHJvdmlkZXIsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmFzZVNlcnZpY2UsXG4gIExvYWRpbmdTZXJ2aWNlLFxuICBNZWRpYVNlcnZpY2UsXG4gIExheW91dFNlcnZpY2UsXG4gIERpYWxvZ1NlcnZpY2UsXG4gIFNuYWNrQmFyU2VydmljZSxcbiAgTmF2aWdhdGlvblNlcnZpY2UsXG4gIFN1cHBvcnRTZXJ2aWNlLFxuICBCcmVhZGNydW1iU2VydmljZSxcbiAgU2lkZW5hdlNlcnZpY2UsXG4gIENhcnRTZXJ2aWNlLFxuICBQcm9kdWN0U2VydmljZSxcbiAgT3JkZXJTZXJ2aWNlLFxufSBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IExvYWRpbmdJbnRlcmNlcHRvciB9IGZyb20gJy4vbGliL2ludGVyY2VwdG9yJztcbmltcG9ydCB7IEJhY2tCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuL2xpYi9kaXJlY3RpdmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUFuZ3VsYXJTZXJ2aWNlcygpOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIGNvbnN0IHByb3ZpZGVyczogKFByb3ZpZGVyIHwgRW52aXJvbm1lbnRQcm92aWRlcnMpW10gPSBbXG4gICAgQmFzZVNlcnZpY2UsXG4gICAgTG9hZGluZ1NlcnZpY2UsXG4gICAgTWVkaWFTZXJ2aWNlLFxuICAgIExheW91dFNlcnZpY2UsXG4gICAgRGlhbG9nU2VydmljZSxcbiAgICBTbmFja0JhclNlcnZpY2UsXG4gICAgTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgU3VwcG9ydFNlcnZpY2UsXG4gICAgQnJlYWRjcnVtYlNlcnZpY2UsXG4gICAgU2lkZW5hdlNlcnZpY2UsXG4gICAgQmFja0J1dHRvbkRpcmVjdGl2ZSxcbiAgICBDYXJ0U2VydmljZSxcbiAgICBQcm9kdWN0U2VydmljZSxcbiAgICBPcmRlclNlcnZpY2UsXG4gICAgeyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IExvYWRpbmdJbnRlcmNlcHRvciwgbXVsdGk6IHRydWUgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiAoKSA9PiBudWxsLFxuICAgICAgZGVwczogW05hdmlnYXRpb25TZXJ2aWNlXSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF07XG5cbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhwcm92aWRlcnMpO1xufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sYXRlY2gtYW5ndWxhci1zZXJ2aWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL3JvbGF0ZWNoLWFuZ3VsYXItc2VydmljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["map","i1.LoadingService"],"mappings":"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"}
1
+ {"version":3,"file":"rolatech-angular-services.mjs","sources":["../tmp-esm2022/lib/components/dialog/dialog.component.js","../tmp-esm2022/lib/services/base.service.js","../tmp-esm2022/lib/services/product.service.js","../tmp-esm2022/lib/services/cart.service.js","../tmp-esm2022/lib/services/navigation.service.js","../tmp-esm2022/lib/services/dialog.service.js","../tmp-esm2022/lib/services/loading.service.js","../tmp-esm2022/lib/services/media.service.js","../tmp-esm2022/lib/services/layout.service.js","../tmp-esm2022/lib/services/snack-bar.service.js","../tmp-esm2022/lib/services/support.service.js","../tmp-esm2022/lib/services/breadcrumb.service.js","../tmp-esm2022/lib/services/sidenav.service.js","../tmp-esm2022/lib/services/theme.service.js","../tmp-esm2022/lib/services/order.service.js","../tmp-esm2022/lib/services/inventory.service.js","../tmp-esm2022/lib/state/notification.store.js","../tmp-esm2022/lib/services/notification.service.js","../tmp-esm2022/lib/services/product-category.service.js","../tmp-esm2022/lib/services/notification-template.service.js","../tmp-esm2022/lib/services/fulfillment.service.js","../tmp-esm2022/lib/services/title.service.js","../tmp-esm2022/lib/services/post.service.js","../tmp-esm2022/lib/services/order-payout.service.js","../tmp-esm2022/lib/services/resource.service.js","../tmp-esm2022/lib/services/resource-category.service.js","../tmp-esm2022/lib/services/booking.service.js","../tmp-esm2022/lib/services/facility.service.js","../tmp-esm2022/lib/services/amenity.service.js","../tmp-esm2022/lib/services/property.service.js","../tmp-esm2022/lib/services/feature.service.js","../tmp-esm2022/lib/services/payment.service.js","../tmp-esm2022/lib/services/offering.service.js","../tmp-esm2022/lib/services/membership.service.js","../tmp-esm2022/lib/services/category.service.js","../tmp-esm2022/lib/services/assistant-stream.service.js","../tmp-esm2022/lib/services/conversation.service.js","../tmp-esm2022/lib/services/conversation-init.service.js","../tmp-esm2022/lib/services/property-search.service.js","../tmp-esm2022/lib/interceptor/loading.interceptor.js","../tmp-esm2022/lib/directive/back-button.directive.js","../tmp-esm2022/lib/directive/hide-footer.directive.js","../tmp-esm2022/lib/directive/index.js","../tmp-esm2022/provider.js","../tmp-esm2022/rolatech-angular-services.js"],"sourcesContent":["import { Component, EventEmitter, HostListener, inject, OutputEmitterRef, viewChild, ViewContainerRef, } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogActions, MatDialogContent, MatDialogRef, MatDialogTitle } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nexport class DialogComponent {\n onEsc() {\n this.close(false);\n }\n data = inject(MAT_DIALOG_DATA);\n result;\n dialogRef = inject((MatDialogRef));\n componentRef = viewChild.required('container', { read: ViewContainerRef });\n ngOnInit() {\n this.createComponent();\n }\n ngOnDestroy() {\n this.componentRef().clear();\n }\n createComponent() {\n this.componentRef().clear();\n if (this.data.component) {\n const componentRef = this.componentRef().createComponent(this.data.component);\n const hostedComponent = componentRef.instance;\n if (this.data.data) {\n Object.keys(this.data.data).forEach((inputName) => {\n // hostedComponent[inputName] = this.data.data[inputName];\n const signalInput = typeof hostedComponent[inputName] === 'function';\n if (signalInput) {\n // hostedComponent[inputName] = input(this.data.data[inputName]);\n hostedComponent[inputName].set(this.data.data[inputName]);\n }\n else {\n hostedComponent[inputName] = this.data.data[inputName];\n }\n // hostedComponent[inputName] = signalInput ? input<any>(this.data.data[inputName]) : this.data.data[inputName];\n });\n }\n Object.keys(hostedComponent)\n .filter((prop) => {\n return hostedComponent[prop] instanceof OutputEmitterRef;\n })\n .forEach((event) => {\n this[event] = new EventEmitter();\n hostedComponent[event].subscribe((data) => {\n this[event].emit(data);\n });\n });\n }\n this.dialogRef.afterOpened().subscribe(() => {\n if (this.dialogRef.componentInstance['output']) {\n this.dialogRef.componentInstance['output'].subscribe((res) => {\n this.result = res;\n });\n }\n });\n }\n close(value = false) {\n this.dialogRef.close(value);\n }\n confirm() {\n this.close(this.result || true);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: DialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.2.0\", type: DialogComponent, isStandalone: true, selector: \"rolatech-dialog\", host: { listeners: { \"keydown.esc\": \"onEsc()\" } }, viewQueries: [{ propertyName: \"componentRef\", first: true, predicate: [\"container\"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: \"<div class=\\\"min-w-[320px]\\\">\\n <h1 class=\\\"text-xl\\\" mat-dialog-title i18n>{{ data.title }}</h1>\\n <mat-dialog-content>\\n <div>\\n <p i18n>{{ data.message }}</p>\\n <ng-template #container></ng-template>\\n <!-- <ng-container #container></ng-container> -->\\n </div>\\n </mat-dialog-content>\\n <div class=\\\"flex-1\\\"></div>\\n <mat-dialog-actions>\\n <button mat-button (click)=\\\"close()\\\" i18n>{{ data.cancelText ? data.cancelText : 'Cancel' }}</button>\\n <button mat-flat-button class=\\\"w-20\\\" (click)=\\\"confirm()\\\" i18n>{{ data.confirmText ? data.confirmText : 'Ok' }}</button>\\n </mat-dialog-actions>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"directive\", type: MatDialogActions, selector: \"[mat-dialog-actions], mat-dialog-actions, [matDialogActions]\", inputs: [\"align\"] }, { kind: \"directive\", type: MatDialogTitle, selector: \"[mat-dialog-title], [matDialogTitle]\", inputs: [\"id\"], exportAs: [\"matDialogTitle\"] }, { kind: \"directive\", type: MatDialogContent, selector: \"[mat-dialog-content], mat-dialog-content, [matDialogContent]\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: DialogComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-dialog', imports: [MatButtonModule, MatDialogActions, MatDialogTitle, MatDialogContent], template: \"<div class=\\\"min-w-[320px]\\\">\\n <h1 class=\\\"text-xl\\\" mat-dialog-title i18n>{{ data.title }}</h1>\\n <mat-dialog-content>\\n <div>\\n <p i18n>{{ data.message }}</p>\\n <ng-template #container></ng-template>\\n <!-- <ng-container #container></ng-container> -->\\n </div>\\n </mat-dialog-content>\\n <div class=\\\"flex-1\\\"></div>\\n <mat-dialog-actions>\\n <button mat-button (click)=\\\"close()\\\" i18n>{{ data.cancelText ? data.cancelText : 'Cancel' }}</button>\\n <button mat-flat-button class=\\\"w-20\\\" (click)=\\\"confirm()\\\" i18n>{{ data.confirmText ? data.confirmText : 'Ok' }}</button>\\n </mat-dialog-actions>\\n</div>\\n\" }]\n }], propDecorators: { onEsc: [{\n type: HostListener,\n args: ['keydown.esc']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUdOLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTdILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBUTNELE1BQU0sT0FBTyxlQUFlO0lBRW5CLEtBQUs7UUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLEdBQWUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sQ0FBTTtJQUNaLFNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQSxZQUE2QixDQUFBLENBQUMsQ0FBQztJQUNsRCxZQUFZLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBSyxFQUFFLENB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LEVBQUUsZ0JBQWdCLENBQUM7OEJBSXZFLEtBQUs7c0JBRFgsWUFBWTt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0RW1pdHRlclJlZixcbiAgdmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nQWN0aW9ucywgTWF0RGlhbG9nQ29udGVudCwgTWF0RGlhbG9nUmVmLCBNYXREaWFsb2dUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBEaWFsb2dEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9kaWFsb2cuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW01hdEJ1dHRvbk1vZHVsZSwgTWF0RGlhbG9nQWN0aW9ucywgTWF0RGlhbG9nVGl0bGUsIE1hdERpYWxvZ0NvbnRlbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZXNjJylcbiAgcHVibGljIG9uRXNjKCkge1xuICAgIHRoaXMuY2xvc2UoZmFsc2UpO1xuICB9XG4gIGRhdGE6IERpYWxvZ0RhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKTtcbiAgcmVzdWx0OiBhbnk7XG4gIGRpYWxvZ1JlZiA9IGluamVjdChNYXREaWFsb2dSZWY8RGlhbG9nQ29tcG9uZW50Pik7XG4gIGNvbXBvbmVudFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZCgnY29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pO1xuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNyZWF0ZUNvbXBvbmVudCgpO1xuICB9XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuY29tcG9uZW50UmVmKCkuY2xlYXIoKTtcbiAgfVxuICBjcmVhdGVDb21wb25lbnQoKSB7XG4gICAgdGhpcy5jb21wb25lbnRSZWYoKS5jbGVhcigpO1xuICAgIGlmICh0aGlzLmRhdGEuY29tcG9uZW50KSB7XG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudFJlZigpLmNyZWF0ZUNvbXBvbmVudDxEaWFsb2dDb21wb25lbnQ+KHRoaXMuZGF0YS5jb21wb25lbnQpO1xuICAgICAgY29uc3QgaG9zdGVkQ29tcG9uZW50ID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xuICAgICAgaWYgKHRoaXMuZGF0YS5kYXRhKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuZGF0YS5kYXRhKS5mb3JFYWNoKChpbnB1dE5hbWUpID0+IHtcbiAgICAgICAgICAvLyBob3N0ZWRDb21wb25lbnRbaW5wdXROYW1lXSA9IHRoaXMuZGF0YS5kYXRhW2lucHV0TmFtZV07XG4gICAgICAgICAgY29uc3Qgc2lnbmFsSW5wdXQgPSB0eXBlb2YgaG9zdGVkQ29tcG9uZW50W2lucHV0TmFtZV0gPT09ICdmdW5jdGlvbic7XG4gICAgICAgICAgaWYgKHNpZ25hbElucHV0KSB7XG4gICAgICAgICAgICAvLyBob3N0ZWRDb21wb25lbnRbaW5wdXROYW1lXSA9IGlucHV0KHRoaXMuZGF0YS5kYXRhW2lucHV0TmFtZV0pO1xuICAgICAgICAgICAgaG9zdGVkQ29tcG9uZW50W2lucHV0TmFtZV0uc2V0KHRoaXMuZGF0YS5kYXRhW2lucHV0TmFtZV0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBob3N0ZWRDb21wb25lbnRbaW5wdXROYW1lXSA9IHRoaXMuZGF0YS5kYXRhW2lucHV0TmFtZV07XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGhvc3RlZENvbXBvbmVudFtpbnB1dE5hbWVdID0gc2lnbmFsSW5wdXQgPyBpbnB1dDxhbnk+KHRoaXMuZGF0YS5kYXRhW2lucHV0TmFtZV0pIDogdGhpcy5kYXRhLmRhdGFbaW5wdXROYW1lXTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBPYmplY3Qua2V5cyhob3N0ZWRDb21wb25lbnQpXG4gICAgICAgIC5maWx0ZXIoKHByb3ApID0+IHtcbiAgICAgICAgICByZXR1cm4gaG9zdGVkQ29tcG9uZW50W3Byb3BdIGluc3RhbmNlb2YgT3V0cHV0RW1pdHRlclJlZjtcbiAgICAgICAgfSlcbiAgICAgICAgLmZvckVhY2goKGV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpc1tldmVudF0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgICAgICAgaG9zdGVkQ29tcG9uZW50W2V2ZW50XS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHRoaXNbZXZlbnRdLmVtaXQoZGF0YSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZGlhbG9nUmVmLmFmdGVyT3BlbmVkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZVsnb3V0cHV0J10pIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2VbJ291dHB1dCddLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZXN1bHQgPSByZXM7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBjbG9zZSh2YWx1ZSA9IGZhbHNlKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodmFsdWUpO1xuICB9XG4gIHB1YmxpYyBjb25maXJtKCkge1xuICAgIHRoaXMuY2xvc2UodGhpcy5yZXN1bHQgfHwgdHJ1ZSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtaW4tdy1bMzIwcHhdXCI+XG4gIDxoMSBjbGFzcz1cInRleHQteGxcIiBtYXQtZGlhbG9nLXRpdGxlIGkxOG4+e3sgZGF0YS50aXRsZSB9fTwvaDE+XG4gIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgPGRpdj5cbiAgICAgIDxwIGkxOG4+e3sgZGF0YS5tZXNzYWdlIH19PC9wPlxuICAgICAgPG5nLXRlbXBsYXRlICNjb250YWluZXI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAjY29udGFpbmVyPjwvbmctY29udGFpbmVyPiAtLT5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LTFcIj48L2Rpdj5cbiAgPG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cImNsb3NlKClcIiBpMThuPnt7IGRhdGEuY2FuY2VsVGV4dCA/IGRhdGEuY2FuY2VsVGV4dCA6ICdDYW5jZWwnIH19PC9idXR0b24+XG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJ3LTIwXCIgKGNsaWNrKT1cImNvbmZpcm0oKVwiIGkxOG4+e3sgZGF0YS5jb25maXJtVGV4dCA/IGRhdGEuY29uZmlybVRleHQgOiAnT2snIH19PC9idXR0b24+XG4gIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuPC9kaXY+XG4iXX0=","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport * as i0 from \"@angular/core\";\nexport class BaseService {\n http = inject(HttpClient);\n environment = inject(APP_CONFIG);\n actionUrl;\n endpoint;\n constructor() {\n this.init();\n }\n init() {\n this.actionUrl = `${this.environment.baseUrl}/${this.endpoint}`;\n }\n find(options, withCredentials = true) {\n return this.http.get(this.actionUrl, {\n params: options,\n withCredentials,\n });\n }\n get(id, options, withCredentials = true) {\n return this.http.get(`${this.actionUrl}/${id}`, {\n params: options,\n withCredentials,\n });\n }\n create(item) {\n return this.http.post(`${this.actionUrl}`, item, {\n withCredentials: true,\n });\n }\n update(id, data) {\n return this.http.put(`${this.actionUrl}/${id}`, data, {\n withCredentials: true,\n });\n }\n delete(id) {\n return this.http.delete(`${this.actionUrl}/${id}`, {\n withCredentials: true,\n });\n }\n updateStatus(id, data) {\n return this.http.put(`${this.actionUrl}/${id}/status`, data, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BaseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BaseService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BaseService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL2Jhc2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU10RCxNQUFNLE9BQU8sV0FBVztJQUNaLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUIsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxTQUFTLENBQVU7SUFDdEIsUUFBUSxDQUFVO0lBRXpCO1FBQ0UsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUNELElBQUk7UUFDRixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFDRCxJQUFJLENBQUksT0FBYSxFQUFFLGVBQWUsR0FBRyxJQUFJO1FBQzNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN0QyxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWU7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELEdBQUcsQ0FBSSxFQUFVLEVBQUUsT0FBYSxFQUFFLGVBQWUsR0FBRyxJQUFJO1FBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQ2pELE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZTtTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTSxDQUFJLElBQU87UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRTtZQUNsRCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTSxDQUFJLEVBQVUsRUFBRSxJQUFPO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRTtZQUN2RCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTSxDQUFJLEVBQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDcEQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFlBQVksQ0FBSSxFQUFVLEVBQUUsSUFBTztRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUU7WUFDOUQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0EzQ1UsV0FBVzsyR0FBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBUFBfQ09ORklHIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEJhc2VTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIHByb3RlY3RlZCBlbnZpcm9ubWVudCA9IGluamVjdChBUFBfQ09ORklHKTtcbiAgcHJvdGVjdGVkIGFjdGlvblVybCE6IHN0cmluZztcbiAgcHVibGljIGVuZHBvaW50ITogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG4gIGluaXQoKSB7XG4gICAgdGhpcy5hY3Rpb25VcmwgPSBgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9LyR7dGhpcy5lbmRwb2ludH1gO1xuICB9XG4gIGZpbmQ8VD4ob3B0aW9ucz86IGFueSwgd2l0aENyZWRlbnRpYWxzID0gdHJ1ZSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHRoaXMuYWN0aW9uVXJsLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHMsXG4gICAgfSk7XG4gIH1cbiAgZ2V0PFQ+KGlkOiBzdHJpbmcsIG9wdGlvbnM/OiBhbnksIHdpdGhDcmVkZW50aWFscyA9IHRydWUpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH1gLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHMsXG4gICAgfSk7XG4gIH1cbiAgY3JlYXRlPFQ+KGl0ZW06IFQpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9YCwgaXRlbSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZTxUPihpZDogc3RyaW5nLCBkYXRhOiBUKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZTxUPihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZVN0YXR1czxUPihpZDogc3RyaW5nLCBkYXRhOiBUKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3N0YXR1c2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class ProductService extends BaseService {\n init() {\n this.endpoint = 'products';\n super.init();\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n findByIds(ids) {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}/by`, {\n params: params,\n withCredentials: true,\n });\n }\n publish(productId) {\n return this.http.post(`${this.actionUrl}/${productId}/publish`, {}, {\n withCredentials: true,\n });\n }\n archived(productId) {\n return this.http.post(`${this.actionUrl}/${productId}/archived`, {}, {\n withCredentials: true,\n });\n }\n findWishlist(options) {\n return this.http.get(`${this.actionUrl}/wishlist`, { params: options, withCredentials: true });\n }\n addToWishlist(productId) {\n return this.http.post(`${this.actionUrl}/${productId}/wishlist`, {}, { withCredentials: true });\n }\n removeFromWishlist(productId) {\n return this.http.delete(`${this.actionUrl}/${productId}/wishlist`, { withCredentials: true });\n }\n findWishlistBy(productId) {\n return this.http.get(`${this.actionUrl}/${productId}/wishlist/by`, { withCredentials: true });\n }\n findPurchasedByProductId(productId) {\n return this.http.get(`${this.actionUrl}/users/me/by?productId=${productId}`, {\n withCredentials: true,\n });\n }\n // Media\n uploadMedia(productId, data) {\n return this.http.post(`${this.actionUrl}/${productId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id, mediaId) {\n return this.http.delete(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n // Pricing\n addPricing(productId, data) {\n return this.http.post(`${this.actionUrl}/${productId}/pricing`, data, {\n withCredentials: true,\n });\n }\n updatePricing(pricingId, data) {\n return this.http.put(`${this.actionUrl}/pricing/${pricingId}`, data, {\n withCredentials: true,\n });\n }\n deletePricing(pricingId) {\n return this.http.delete(`${this.actionUrl}/pricing/${pricingId}`, {\n withCredentials: true,\n });\n }\n // Section\n addSection(productId, data) {\n return this.http.post(`${this.actionUrl}/${productId}/sections`, data, {\n withCredentials: true,\n });\n }\n addBatchSections(productId, data) {\n return this.http.post(`${this.actionUrl}/${productId}/sections/batch`, data, {\n withCredentials: true,\n });\n }\n findSections(productId) {\n return this.http.get(`${this.actionUrl}/${productId}/sections`, {\n withCredentials: true,\n });\n }\n updateSection(sectionId, data) {\n return this.http.put(`${this.actionUrl}/sections/${sectionId}`, data, {\n withCredentials: true,\n });\n }\n deleteSection(sectionId) {\n return this.http.delete(`${this.actionUrl}/sections/${sectionId}`, {\n withCredentials: true,\n });\n }\n uploadSectionMedia(sectionId, data) {\n return this.http.post(`${this.actionUrl}/sections/${sectionId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteSectionMedia(sectionId, mediaId) {\n return this.http.delete(`${this.actionUrl}/sections/${sectionId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n addOption(productId, data) {\n return this.http.post(`${this.actionUrl}/${productId}/options`, data, {\n withCredentials: true,\n });\n }\n findOptions(productId) {\n return this.http.get(`${this.actionUrl}/${productId}/options`);\n }\n updateOption(optionId, data) {\n return this.http.put(`${this.actionUrl}/options/${optionId}`, data, {\n withCredentials: true,\n });\n }\n deleteOption(optionId) {\n return this.http.delete(`${this.actionUrl}/options/${optionId}`, {\n withCredentials: true,\n });\n }\n // variants\n updateVariantPrice(productId, status) {\n return this.http.put(`${this.actionUrl}/${productId}/variants/by?status=${status}`, {}, {\n withCredentials: true,\n });\n }\n createVariants(productId, data) {\n return this.http.post(`${this.actionUrl}/${productId}/variants`, data, {\n withCredentials: true,\n });\n }\n getVariant(variantId) {\n return this.http.get(`${this.actionUrl}/variants/${variantId}`);\n }\n findVariants(productId) {\n return this.http.get(`${this.actionUrl}/${productId}/variants`);\n }\n findVariantsByIds(ids) {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}/variants/by`, {\n params: params,\n withCredentials: true,\n });\n }\n updateVariants(productId, data) {\n return this.http.put(`${this.actionUrl}/${productId}/variants`, data, {\n withCredentials: true,\n });\n }\n uploadVariantMedia(variantId, data) {\n return this.http.post(`${this.actionUrl}/variants/${variantId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteVariantMedia(variantId, mediaId) {\n return this.http.delete(`${this.actionUrl}/variants/${variantId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ProductService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ProductService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ProductService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL3Byb2R1Y3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLN0MsTUFBTSxPQUFPLGNBQWUsU0FBUSxXQUFXO0lBQ3BDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQsRUFBRSxDQUFDLE9BQVk7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxFQUFFO1lBQ2hELE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFNBQVMsQ0FBQyxHQUFrQjtRQUMxQixNQUFNLE1BQU0sR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRTtZQUNoRCxNQUFNLEVBQUUsTUFBTTtZQUNkLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLENBQUMsU0FBaUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFNBQVMsVUFBVSxFQUN4QyxFQUFFLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsUUFBUSxDQUFDLFNBQWlCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTLFdBQVcsRUFDekMsRUFBRSxFQUNGO1lBQ0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELFlBQVksQ0FBQyxPQUFZO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFDRCxhQUFhLENBQUMsU0FBaUI7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUNELGtCQUFrQixDQUFDLFNBQWlCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFNBQVMsV0FBVyxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUNELGNBQWMsQ0FBQyxTQUFpQjtRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTLGNBQWMsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFDRCx3QkFBd0IsQ0FBQyxTQUFpQjtRQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsMEJBQTBCLFNBQVMsRUFBRSxFQUFFO1lBQzNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxRQUFRO0lBQ1IsV0FBVyxDQUFDLFNBQWlCLEVBQUUsSUFBYztRQUMzQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDdkUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVcsQ0FBQyxFQUFVLEVBQUUsT0FBZTtRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFVBQVUsT0FBTyxFQUFFLEVBQUU7WUFDdkUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVU7SUFDVixVQUFVLENBQUMsU0FBaUIsRUFBRSxJQUFTO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFNBQVMsVUFBVSxFQUFFLElBQUksRUFBRTtZQUN6RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLFNBQWlCLEVBQUUsSUFBUztRQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWSxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDeEUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGFBQWEsQ0FBQyxTQUFpQjtRQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWSxTQUFTLEVBQUUsRUFBRTtZQUNyRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsVUFBVTtJQUNWLFVBQVUsQ0FBQyxTQUFpQixFQUFFLElBQVM7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBQzFFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxTQUFpQixFQUFFLElBQVM7UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxpQkFBaUIsRUFBRSxJQUFJLEVBQUU7WUFDaEYsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFlBQVksQ0FBQyxTQUFpQjtRQUM1QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTLFdBQVcsRUFBRTtZQUNuRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLFNBQWlCLEVBQUUsSUFBUztRQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsYUFBYSxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDekUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGFBQWEsQ0FBQyxTQUFpQjtRQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsYUFBYSxTQUFTLEVBQUUsRUFBRTtZQUN0RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsU0FBaUIsRUFBRSxJQUFjO1FBQ2xELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxhQUFhLFNBQVMsUUFBUSxFQUFFLElBQUksRUFBRTtZQUNoRixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsU0FBaUIsRUFBRSxPQUFlO1FBQ25ELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxhQUFhLFNBQVMsVUFBVSxPQUFPLEVBQUUsRUFBRTtZQUN2RixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsU0FBUyxDQUFDLFNBQWlCLEVBQUUsSUFBUztRQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTLFVBQVUsRUFBRSxJQUFJLEVBQUU7WUFDekUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVcsQ0FBQyxTQUFpQjtRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTLFVBQVUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFDRCxZQUFZLENBQUMsUUFBZ0IsRUFBRSxJQUFTO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxZQUFZLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRTtZQUN2RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsWUFBWSxDQUFDLFFBQWdCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxZQUFZLFFBQVEsRUFBRSxFQUFFO1lBQ3BFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXO0lBQ1gsa0JBQWtCLENBQUMsU0FBaUIsRUFBRSxNQUFlO1FBQ25ELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTLHVCQUF1QixNQUFNLEVBQUUsRUFDN0QsRUFBRSxFQUNGO1lBQ0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELGNBQWMsQ0FBQyxTQUFpQixFQUFFLElBQVM7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBQzFFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxVQUFVLENBQUMsU0FBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBQ0QsWUFBWSxDQUFDLFNBQWlCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFNBQVMsV0FBVyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUNELGlCQUFpQixDQUFDLEdBQWtCO1FBQ2xDLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsY0FBYyxFQUFFO1lBQ3pELE1BQU0sRUFBRSxNQUFNO1lBQ2QsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGNBQWMsQ0FBQyxTQUFpQixFQUFFLElBQVM7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBQ3pFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxTQUFpQixFQUFFLElBQWM7UUFDbEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsU0FBUyxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQ2hGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxTQUFpQixFQUFFLE9BQWU7UUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsU0FBUyxVQUFVLE9BQU8sRUFBRSxFQUFFO1lBQ3ZGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBakxVLGNBQWM7MkdBQWQsY0FBYyxjQUZiLE1BQU07OzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0U2VydmljZSBleHRlbmRzIEJhc2VTZXJ2aWNlIHtcbiAgb3ZlcnJpZGUgaW5pdCgpIHtcbiAgICB0aGlzLmVuZHBvaW50ID0gJ3Byb2R1Y3RzJztcbiAgICBzdXBlci5pbml0KCk7XG4gIH1cblxuICBtZShvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L21lYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRCeUlkcyhpZHM6IEFycmF5PHN0cmluZz4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IHsgaWRzOiBpZHMuam9pbignLCcpIH07XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vYnlgLCB7XG4gICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBwdWJsaXNoKHByb2R1Y3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb2R1Y3RJZH0vcHVibGlzaGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIGFyY2hpdmVkKHByb2R1Y3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb2R1Y3RJZH0vYXJjaGl2ZWRgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICBmaW5kV2lzaGxpc3Qob3B0aW9uczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hY3Rpb25Vcmx9L3dpc2hsaXN0YCwgeyBwYXJhbXM6IG9wdGlvbnMsIHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBhZGRUb1dpc2hsaXN0KHByb2R1Y3RJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb2R1Y3RJZH0vd2lzaGxpc3RgLCB7fSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgcmVtb3ZlRnJvbVdpc2hsaXN0KHByb2R1Y3RJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvZHVjdElkfS93aXNobGlzdGAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGZpbmRXaXNobGlzdEJ5KHByb2R1Y3RJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvZHVjdElkfS93aXNobGlzdC9ieWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGZpbmRQdXJjaGFzZWRCeVByb2R1Y3RJZChwcm9kdWN0SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYWN0aW9uVXJsfS91c2Vycy9tZS9ieT9wcm9kdWN0SWQ9JHtwcm9kdWN0SWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIC8vIE1lZGlhXG4gIHVwbG9hZE1lZGlhKHByb2R1Y3RJZDogc3RyaW5nLCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvZHVjdElkfS9tZWRpYWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVNZWRpYShpZDogc3RyaW5nLCBtZWRpYUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L21lZGlhLyR7bWVkaWFJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgLy8gUHJpY2luZ1xuICBhZGRQcmljaW5nKHByb2R1Y3RJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb2R1Y3RJZH0vcHJpY2luZ2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVQcmljaW5nKHByaWNpbmdJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ByaWNpbmcvJHtwcmljaW5nSWR9YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZVByaWNpbmcocHJpY2luZ0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ByaWNpbmcvJHtwcmljaW5nSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIC8vIFNlY3Rpb25cbiAgYWRkU2VjdGlvbihwcm9kdWN0SWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9kdWN0SWR9L3NlY3Rpb25zYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGFkZEJhdGNoU2VjdGlvbnMocHJvZHVjdElkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvZHVjdElkfS9zZWN0aW9ucy9iYXRjaGAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kU2VjdGlvbnMocHJvZHVjdElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvZHVjdElkfS9zZWN0aW9uc2AsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVTZWN0aW9uKHNlY3Rpb25JZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3NlY3Rpb25zLyR7c2VjdGlvbklkfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVTZWN0aW9uKHNlY3Rpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9zZWN0aW9ucy8ke3NlY3Rpb25JZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBsb2FkU2VjdGlvbk1lZGlhKHNlY3Rpb25JZDogc3RyaW5nLCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3NlY3Rpb25zLyR7c2VjdGlvbklkfS9tZWRpYWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVTZWN0aW9uTWVkaWEoc2VjdGlvbklkOiBzdHJpbmcsIG1lZGlhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vc2VjdGlvbnMvJHtzZWN0aW9uSWR9L21lZGlhLyR7bWVkaWFJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgYWRkT3B0aW9uKHByb2R1Y3RJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb2R1Y3RJZH0vb3B0aW9uc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kT3B0aW9ucyhwcm9kdWN0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9kdWN0SWR9L29wdGlvbnNgKTtcbiAgfVxuICB1cGRhdGVPcHRpb24ob3B0aW9uSWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9vcHRpb25zLyR7b3B0aW9uSWR9YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZU9wdGlvbihvcHRpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9vcHRpb25zLyR7b3B0aW9uSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIC8vIHZhcmlhbnRzXG4gIHVwZGF0ZVZhcmlhbnRQcmljZShwcm9kdWN0SWQ6IHN0cmluZywgc3RhdHVzOiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvZHVjdElkfS92YXJpYW50cy9ieT9zdGF0dXM9JHtzdGF0dXN9YCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbiAgY3JlYXRlVmFyaWFudHMocHJvZHVjdElkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvZHVjdElkfS92YXJpYW50c2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBnZXRWYXJpYW50KHZhcmlhbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS92YXJpYW50cy8ke3ZhcmlhbnRJZH1gKTtcbiAgfVxuICBmaW5kVmFyaWFudHMocHJvZHVjdElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvZHVjdElkfS92YXJpYW50c2ApO1xuICB9XG4gIGZpbmRWYXJpYW50c0J5SWRzKGlkczogQXJyYXk8c3RyaW5nPik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgcGFyYW1zID0geyBpZHM6IGlkcy5qb2luKCcsJykgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS92YXJpYW50cy9ieWAsIHtcbiAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZVZhcmlhbnRzKHByb2R1Y3RJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvZHVjdElkfS92YXJpYW50c2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGxvYWRWYXJpYW50TWVkaWEodmFyaWFudElkOiBzdHJpbmcsIGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vdmFyaWFudHMvJHt2YXJpYW50SWR9L21lZGlhYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZVZhcmlhbnRNZWRpYSh2YXJpYW50SWQ6IHN0cmluZywgbWVkaWFJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS92YXJpYW50cy8ke3ZhcmlhbnRJZH0vbWVkaWEvJHttZWRpYUlkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { EventEmitter, inject, Injectable } from '@angular/core';\nimport { map, switchMap } from 'rxjs';\nimport _ from 'lodash';\nimport { BaseService } from './base.service';\nimport { ProductService } from './product.service';\nimport * as i0 from \"@angular/core\";\nexport var CartEventType;\n(function (CartEventType) {\n CartEventType[CartEventType[\"CartAdd\"] = 0] = \"CartAdd\";\n CartEventType[CartEventType[\"CartRemove\"] = 1] = \"CartRemove\";\n})(CartEventType || (CartEventType = {}));\nexport class CartService extends BaseService {\n productService = inject(ProductService);\n cartEvent = new EventEmitter();\n init() {\n this.endpoint = 'carts';\n super.init();\n }\n findDetails(options) {\n return this.http\n .get(`${this.actionUrl}`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const productIds = _.uniq(_.map(res.data, 'productId')); // [12, 14, 16, 18]\n return this.findProductsByIds(productIds).pipe(map((products) => {\n res.data?.forEach((item) => {\n const matchingProduct = _.find(products.data, { id: item.productId });\n item.product = matchingProduct;\n });\n return res;\n }));\n }), switchMap((res) => {\n const variantIds = _.uniq(_.map(res.data, 'variantId')); // [12, 14, 16, 18]\n return this.findVariantsByIds(variantIds).pipe(map((variants) => {\n res.data?.forEach((item) => {\n const matchingVariant = _.find(variants.data, { id: item.variantId });\n item.variant = matchingVariant;\n });\n return res;\n }));\n }));\n }\n findProductsByIds(ids) {\n return this.productService.findByIds(ids);\n }\n findVariantsByIds(ids) {\n return this.productService.findVariantsByIds(ids);\n }\n by(options) {\n return this.http.get(`${this.actionUrl}/items/by`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n deleteByIds(ids) {\n return this.http.delete(`${this.actionUrl}/me`, {\n withCredentials: true,\n });\n }\n deleteAll() {\n return this.http.delete(`${this.actionUrl}/me`, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: CartService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: CartService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: CartService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL2NhcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBQ25ELE1BQU0sQ0FBTixJQUFZLGFBR1g7QUFIRCxXQUFZLGFBQWE7SUFDdkIsdURBQVcsQ0FBQTtJQUNYLDZEQUFjLENBQUE7QUFDaEIsQ0FBQyxFQUhXLGFBQWEsS0FBYixhQUFhLFFBR3hCO0FBSUQsTUFBTSxPQUFPLFdBQVksU0FBUSxXQUFXO0lBQzFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsU0FBUyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO0lBQ3JDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQVk7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUM3QixNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDRCxJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDckIsTUFB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VyxjQUZWLE1BQU07OzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdWN0U2VydmljZSB9IGZyb20gJy4vcHJvZHVjdC5zZXJ2aWNlJztcbmV4cG9ydCBlbnVtIENhcnRFdmVudFR5cGUge1xuICBDYXJ0QWRkID0gMCxcbiAgQ2FydFJlbW92ZSA9IDEsXG59XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2FydFNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIHByb2R1Y3RTZXJ2aWNlID0gaW5qZWN0KFByb2R1Y3RTZXJ2aWNlKTtcbiAgY2FydEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxDYXJ0RXZlbnRUeXBlPigpO1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAnY2FydHMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICBmaW5kRGV0YWlscyhvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH1gLCB7XG4gICAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJvZHVjdElkcyA9IF8udW5pcShfLm1hcChyZXMuZGF0YSwgJ3Byb2R1Y3RJZCcpKTsgLy8gWzEyLCAxNCwgMTYsIDE4XVxuICAgICAgICAgIHJldHVybiB0aGlzLmZpbmRQcm9kdWN0c0J5SWRzKHByb2R1Y3RJZHMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHByb2R1Y3RzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmVzLmRhdGE/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ1Byb2R1Y3QgPSBfLmZpbmQocHJvZHVjdHMuZGF0YSwgeyBpZDogaXRlbS5wcm9kdWN0SWQgfSk7XG4gICAgICAgICAgICAgICAgaXRlbS5wcm9kdWN0ID0gbWF0Y2hpbmdQcm9kdWN0O1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFyaWFudElkcyA9IF8udW5pcShfLm1hcChyZXMuZGF0YSwgJ3ZhcmlhbnRJZCcpKTsgLy8gWzEyLCAxNCwgMTYsIDE4XVxuICAgICAgICAgIHJldHVybiB0aGlzLmZpbmRWYXJpYW50c0J5SWRzKHZhcmlhbnRJZHMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHZhcmlhbnRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmVzLmRhdGE/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ1ZhcmlhbnQgPSBfLmZpbmQodmFyaWFudHMuZGF0YSwgeyBpZDogaXRlbS52YXJpYW50SWQgfSk7XG4gICAgICAgICAgICAgICAgaXRlbS52YXJpYW50ID0gbWF0Y2hpbmdWYXJpYW50O1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuICBmaW5kUHJvZHVjdHNCeUlkcyhpZHM6IEFycmF5PHN0cmluZz4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnByb2R1Y3RTZXJ2aWNlLmZpbmRCeUlkcyhpZHMpO1xuICB9XG4gIGZpbmRWYXJpYW50c0J5SWRzKGlkczogQXJyYXk8c3RyaW5nPik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucHJvZHVjdFNlcnZpY2UuZmluZFZhcmlhbnRzQnlJZHMoaWRzKTtcbiAgfVxuICBieShvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2l0ZW1zL2J5YCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIG1lKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vbWVgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlQnlJZHMoaWRzOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L21lYCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZUFsbCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L21lYCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { NavigationEnd, Router } from '@angular/router';\nimport * as i0 from \"@angular/core\";\nexport class NavigationService {\n history = [];\n router = inject(Router);\n location = inject(Location);\n constructor() {\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n this.history.push(event.urlAfterRedirects);\n }\n });\n }\n start() {\n // this.router.events.subscribe((event) => {\n // if (event instanceof NavigationEnd) {\n // this.history.push(event.urlAfterRedirects);\n // }\n // });\n }\n getHistory() {\n return this.history;\n }\n back() {\n this.history.pop();\n if (this.history.length > 0) {\n this.location.back();\n }\n else {\n this.router.navigateByUrl('/');\n }\n }\n next() {\n if (this.history.length > 0) {\n return this.history[this.history.length - 2];\n }\n return '';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NavigationService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NavigationService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFLeEQsTUFBTSxPQUFPLGlCQUFpQjtJQUNwQixPQUFPLEdBQWEsRUFBRSxDQUFDO0lBQy9CLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QjtRQUNFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3JDLElBQUksS0FBSyxZQUFZLGFBQWEsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUM3QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsS0FBSztRQUNILDRDQUE0QztRQUM1QywwQ0FBMEM7UUFDMUMsa0RBQWtEO1FBQ2xELE1BQU07UUFDTixNQUFNO0lBQ1IsQ0FBQztJQUNELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUNELElBQUk7UUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0lBQ0QsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7dUdBbENVLGlCQUFpQjsyR0FBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgaGlzdG9yeTogc3RyaW5nW10gPSBbXTtcbiAgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIGxvY2F0aW9uID0gaW5qZWN0KExvY2F0aW9uKTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgdGhpcy5oaXN0b3J5LnB1c2goZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHN0YXJ0KCkge1xuICAgIC8vIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgLy8gICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgLy8gICAgIHRoaXMuaGlzdG9yeS5wdXNoKGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKTtcbiAgICAvLyAgIH1cbiAgICAvLyB9KTtcbiAgfVxuICBnZXRIaXN0b3J5KCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5oaXN0b3J5O1xuICB9XG4gIGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5oaXN0b3J5LnBvcCgpO1xuICAgIGlmICh0aGlzLmhpc3RvcnkubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nKTtcbiAgICB9XG4gIH1cbiAgbmV4dCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmhpc3RvcnkubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuaGlzdG9yeVt0aGlzLmhpc3RvcnkubGVuZ3RoIC0gMl07XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxufVxuIl19","import { inject, Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { map, take } from 'rxjs';\nimport { DialogComponent } from '../components/dialog/dialog.component';\nimport * as i0 from \"@angular/core\";\nexport class DialogService {\n dialog = inject(MatDialog);\n dialogRef;\n open(options) {\n this.dialogRef = this.dialog.open(DialogComponent, {\n data: {\n ...options,\n },\n });\n }\n cancelled() {\n return this.dialogRef.beforeClosed().pipe(take(1), map((res) => res));\n }\n confirmed() {\n return this.dialogRef.afterClosed().pipe(take(1), map((res) => res));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: DialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: DialogService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: DialogService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvc2VydmljZXMvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsR0FBRyxFQUFjLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7O0FBSXhFLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsU0FBUyxDQUFpQztJQUVuQyxJQUFJLENBQUMsT0FBbUI7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBOEIsZUFBZSxFQUFFO1lBQzlFLElBQUksRUFBRTtnQkFDSixHQUFHLE9BQU87YUFDWDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FDdkMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQ2xCLENBQUM7SUFDSixDQUFDO0lBQ00sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQ3RDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUNsQixDQUFDO0lBQ0osQ0FBQzt1R0F0QlUsYUFBYTsyR0FBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlhbG9nRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGlhbG9nU2VydmljZSB7XG4gIGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICBkaWFsb2dSZWYhOiBNYXREaWFsb2dSZWY8RGlhbG9nQ29tcG9uZW50PjtcblxuICBwdWJsaWMgb3BlbihvcHRpb25zOiBEaWFsb2dEYXRhKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuPERpYWxvZ0NvbXBvbmVudCwgRGlhbG9nRGF0YT4oRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBjYW5jZWxsZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWYuYmVmb3JlQ2xvc2VkKCkucGlwZShcbiAgICAgIHRha2UoMSksXG4gICAgICBtYXAoKHJlcykgPT4gcmVzKSxcbiAgICApO1xuICB9XG4gIHB1YmxpYyBjb25maXJtZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKFxuICAgICAgdGFrZSgxKSxcbiAgICAgIG1hcCgocmVzKSA9PiByZXMpLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class LoadingService {\n loading$ = new BehaviorSubject(false);\n ratio$ = new BehaviorSubject(0);\n isLoading = false;\n constructor() { }\n start() {\n this.loading$.next(true);\n }\n stop() {\n this.loading$.next(false);\n }\n async present(text) {\n this.isLoading = true;\n }\n async dismiss() {\n this.isLoading = false;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LoadingService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LoadingService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL2xvYWRpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3ZDLE1BQU0sT0FBTyxjQUFjO0lBQ2xCLFFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUVsQixnQkFBZSxDQUFDO0lBRWhCLEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQWE7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPO1FBQ1gsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQzt1R0FwQlUsY0FBYzsyR0FBZCxjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExvYWRpbmdTZXJ2aWNlIHtcbiAgcHVibGljIGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHB1YmxpYyByYXRpbyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDApO1xuICBpc0xvYWRpbmcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgc3RhcnQoKSB7XG4gICAgdGhpcy5sb2FkaW5nJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgc3RvcCgpIHtcbiAgICB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpO1xuICB9XG4gIGFzeW5jIHByZXNlbnQodGV4dD86IHN0cmluZykge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIGRpc21pc3MoKSB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class MediaService extends BaseService {\n init() {\n this.endpoint = 'media';\n super.init();\n }\n upload(data) {\n return this.http.post(`${this.actionUrl}/upload`, data, {\n reportProgress: false,\n withCredentials: true,\n // headers: new HttpHeaders({\n // 'Content-Type': 'multipart/form-data',\n // }),\n });\n }\n uploadAndSave(data) {\n return this.http.post(`${this.actionUrl}/save`, data, {\n reportProgress: false,\n withCredentials: true,\n });\n }\n deleteBy(filename) {\n return this.http.delete(`${this.actionUrl}/${filename}`, {});\n }\n batchDelete(data) {\n return this.http.post(`${this.actionUrl}/batch`, data, { withCredentials: true });\n }\n moveToGroup(data) {\n return this.http.post(`${this.actionUrl}/move`, data, { withCredentials: true });\n }\n addGroup(data) {\n return this.http.post(`${this.actionUrl}/groups`, data, { withCredentials: true });\n }\n findGroup(id) {\n return this.http.get(`${this.actionUrl}/groups/${id}`, { withCredentials: true });\n }\n findGroups(options) {\n return this.http.get(`${this.actionUrl}/groups`, { withCredentials: true });\n }\n getImageInfo(url) {\n return this.http.get(`${url}?imageInfo`);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: MediaService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: MediaService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: MediaService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9tZWRpYS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUs3QyxNQUFNLE9BQU8sWUFBYSxTQUFRLFdBQVc7SUFDbEMsSUFBSTtRQUNYLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBYztRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsU0FBUyxFQUFFLElBQUksRUFBRTtZQUMzRCxjQUFjLEVBQUUsS0FBSztZQUNyQixlQUFlLEVBQUUsSUFBSTtZQUNyQiw2QkFBNkI7WUFDN0IsMkNBQTJDO1lBQzNDLE1BQU07U0FDUCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLElBQWM7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLE9BQU8sRUFBRSxJQUFJLEVBQUU7WUFDekQsY0FBYyxFQUFFLEtBQUs7WUFDckIsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVEsQ0FBQyxRQUFnQjtRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBQ0QsV0FBVyxDQUFDLElBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBQ0QsV0FBVyxDQUFDLElBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBQ0QsUUFBUSxDQUFDLElBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBQ0QsU0FBUyxDQUFDLEVBQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBQ0QsVUFBVSxDQUFDLE9BQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFNBQVMsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFDRCxZQUFZLENBQUMsR0FBVztRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUMsQ0FBQztJQUMzQyxDQUFDO3VHQXhDVSxZQUFZOzJHQUFaLFlBQVksY0FGWCxNQUFNOzsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTWVkaWFTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAnbWVkaWEnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICB1cGxvYWQoZGF0YTogRm9ybURhdGEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS91cGxvYWRgLCBkYXRhLCB7XG4gICAgICByZXBvcnRQcm9ncmVzczogZmFsc2UsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAvLyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgLy8gICAnQ29udGVudC1UeXBlJzogJ211bHRpcGFydC9mb3JtLWRhdGEnLFxuICAgICAgLy8gfSksXG4gICAgfSk7XG4gIH1cbiAgdXBsb2FkQW5kU2F2ZShkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3NhdmVgLCBkYXRhLCB7XG4gICAgICByZXBvcnRQcm9ncmVzczogZmFsc2UsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlQnkoZmlsZW5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtmaWxlbmFtZX1gLCB7fSk7XG4gIH1cbiAgYmF0Y2hEZWxldGUoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vYmF0Y2hgLCBkYXRhLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBtb3ZlVG9Hcm91cChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9tb3ZlYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgYWRkR3JvdXAoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vZ3JvdXBzYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgZmluZEdyb3VwKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2dyb3Vwcy8ke2lkfWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGZpbmRHcm91cHMob3B0aW9ucz86IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vZ3JvdXBzYCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgZ2V0SW1hZ2VJbmZvKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt1cmx9P2ltYWdlSW5mb2ApO1xuICB9XG59XG4iXX0=","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { computed, inject, Injectable, signal } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { map, shareReplay } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nexport class LayoutService {\n breakpointObserver = inject(BreakpointObserver);\n route = inject(ActivatedRoute);\n router = inject(Router);\n isHandset$;\n _hideFooter = signal(false, ...(ngDevMode ? [{ debugName: \"_hideFooter\" }] : []));\n hideFooter = computed(() => this._hideFooter(), ...(ngDevMode ? [{ debugName: \"hideFooter\" }] : []));\n constructor() {\n this.isHandset$ = this.breakpointObserver\n .observe([Breakpoints.Small, Breakpoints.HandsetPortrait])\n .pipe(map((result) => result.matches), shareReplay());\n this.router.events\n // .pipe(filter((e): e is NavigationEnd => e instanceof NavigationEnd))\n .subscribe(() => {\n let r = this.route;\n while (r.firstChild)\n r = r.firstChild;\n const hide = r.snapshot.data['hideFooter'] === true;\n this.setHideFooter(hide);\n });\n }\n setHideFooter(v) {\n this._hideFooter.set(v);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LayoutService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LayoutService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvc2VydmljZXMvbGF5b3V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFeEUsT0FBTyxFQUFVLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHMUQsTUFBTSxPQUFPLGFBQWE7SUFDeEIsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFDL0MsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUM5QixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3ZCLFVBQVUsQ0FBc0I7SUFDeEIsV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLHVEQUFDLENBQUM7SUFDcEMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLHNEQUFDLENBQUM7SUFFaEQ7UUFDRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0I7YUFDdEMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDekQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUMvQixXQUFXLEVBQUUsQ0FDZCxDQUFDO1FBRUosSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQ2hCLHVFQUF1RTthQUN0RSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBRWQsSUFBSSxDQUFDLEdBQW1CLElBQUksQ0FBQyxLQUFLLENBQUM7WUFFbkMsT0FBTyxDQUFDLENBQUMsVUFBVTtnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQztZQUN0QyxNQUFNLElBQUksR0FBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQWEsS0FBSyxJQUFJLENBQUM7WUFFakUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxhQUFhLENBQUMsQ0FBVTtRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQixDQUFDO3VHQTlCVSxhQUFhOzJHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBjb21wdXRlZCwgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTGF5b3V0U2VydmljZSB7XG4gIGJyZWFrcG9pbnRPYnNlcnZlciA9IGluamVjdChCcmVha3BvaW50T2JzZXJ2ZXIpXG4gIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKVxuICByb3V0ZXIgPSBpbmplY3QoUm91dGVyKVxuICBpc0hhbmRzZXQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwcml2YXRlIF9oaWRlRm9vdGVyID0gc2lnbmFsKGZhbHNlKTtcbiAgaGlkZUZvb3RlciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2hpZGVGb290ZXIoKSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pc0hhbmRzZXQkID0gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJcbiAgICAgIC5vYnNlcnZlKFtCcmVha3BvaW50cy5TbWFsbCwgQnJlYWtwb2ludHMuSGFuZHNldFBvcnRyYWl0XSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3VsdCkgPT4gcmVzdWx0Lm1hdGNoZXMpLFxuICAgICAgICBzaGFyZVJlcGxheSgpXG4gICAgICApO1xuXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAvLyAucGlwZShmaWx0ZXIoKGUpOiBlIGlzIE5hdmlnYXRpb25FbmQgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG5cbiAgICAgICAgbGV0IHI6IEFjdGl2YXRlZFJvdXRlID0gdGhpcy5yb3V0ZTtcblxuICAgICAgICB3aGlsZSAoci5maXJzdENoaWxkKSByID0gci5maXJzdENoaWxkO1xuICAgICAgICBjb25zdCBoaWRlID0gKHIuc25hcHNob3QuZGF0YVsnaGlkZUZvb3RlciddIGFzIGJvb2xlYW4pID09PSB0cnVlO1xuXG4gICAgICAgIHRoaXMuc2V0SGlkZUZvb3RlcihoaWRlKTtcbiAgICAgIH0pO1xuICB9XG4gIHNldEhpZGVGb290ZXIodjogYm9vbGVhbikge1xuICAgIHRoaXMuX2hpZGVGb290ZXIuc2V0KHYpO1xuICB9XG59XG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport * as i0 from \"@angular/core\";\nexport class SnackBarService {\n snackBar = inject(MatSnackBar);\n open(message) {\n this.snackBar.open(message);\n }\n dismiss() {\n this.snackBar.dismiss();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SnackBarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SnackBarService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SnackBarService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2stYmFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvc2VydmljZXMvc25hY2stYmFyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUcxRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixRQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9CLElBQUksQ0FBQyxPQUFPO1FBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELE9BQU87UUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7dUdBUFUsZUFBZTsyR0FBZixlQUFlOzsyRkFBZixlQUFlO2tCQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTbmFja0JhclNlcnZpY2Uge1xuICBzbmFja0JhciA9IGluamVjdChNYXRTbmFja0Jhcik7XG4gIG9wZW4obWVzc2FnZSkge1xuICAgIHRoaXMuc25hY2tCYXIub3BlbihtZXNzYWdlKTtcbiAgfVxuICBkaXNtaXNzKCkge1xuICAgIHRoaXMuc25hY2tCYXIuZGlzbWlzcygpO1xuICB9XG59XG4iXX0=","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport * as i0 from \"@angular/core\";\nexport class SupportService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n findAllBuckets(options) {\n return this.http.get(`${this.environment.baseUrl}/support/buckets`, {\n params: options,\n withCredentials: false,\n });\n }\n findAll(options) {\n return this.http.get(`${this.environment.baseUrl}/support/folders`, {\n params: options,\n withCredentials: false,\n });\n }\n findFolderBySlug(slug) {\n return this.http.get(`${this.environment.baseUrl}/support/folders/slug/${slug}`, {\n withCredentials: false,\n });\n }\n findByPath(path) {\n return this.http.get(`${this.environment.baseUrl}/support/folders/by?path=${path}`, {\n withCredentials: false,\n });\n }\n findAllFiles(options) {\n return this.http.get(`${this.environment.baseUrl}/support/files`, {\n params: options,\n withCredentials: false,\n });\n }\n findFileByFolder(folder) {\n return this.http.get(`${this.environment.baseUrl}/support/files/by?folder=${folder}`, {\n withCredentials: false,\n });\n }\n findFileBySlug(slug) {\n return this.http.get(`${this.environment.baseUrl}/support/files/slug/${slug}`, {\n withCredentials: false,\n });\n }\n uploadFile(data) {\n return this.http.post(`${this.environment.baseUrl}/support/files`, data, {\n withCredentials: true,\n });\n }\n createBucket(data) {\n return this.http.post(`${this.environment.baseUrl}/support/buckets`, data, {\n withCredentials: true,\n });\n }\n createFolderBySlug(slug, data) {\n return this.http.post(`${this.environment.baseUrl}/support/folders/slug/${slug}`, data, {\n withCredentials: true,\n });\n }\n uploadFileBySlug(slug, data) {\n return this.http.post(`${this.environment.baseUrl}/support/files/slug/${slug}`, data, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SupportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SupportService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SupportService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL3N1cHBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUt0RCxNQUFNLE9BQU8sY0FBYztJQUN6QixXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFMUIsY0FBYyxDQUFDLE9BQVk7UUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxrQkFBa0IsRUFBRTtZQUN2RSxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxLQUFLO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLENBQUMsT0FBWTtRQUNsQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLGtCQUFrQixFQUFFO1lBQ3ZFLE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLEtBQUs7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGdCQUFnQixDQUFDLElBQVk7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyx5QkFBeUIsSUFBSSxFQUFFLEVBQUU7WUFDcEYsZUFBZSxFQUFFLEtBQUs7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVUsQ0FBQyxJQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sNEJBQTRCLElBQUksRUFBRSxFQUFFO1lBQ3ZGLGVBQWUsRUFBRSxLQUFLO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxZQUFZLENBQUMsT0FBWTtRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLGdCQUFnQixFQUFFO1lBQ3JFLE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLEtBQUs7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGdCQUFnQixDQUFDLE1BQWM7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyw0QkFBNEIsTUFBTSxFQUFFLEVBQUU7WUFDekYsZUFBZSxFQUFFLEtBQUs7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sdUJBQXVCLElBQUksRUFBRSxFQUFFO1lBQ2xGLGVBQWUsRUFBRSxLQUFLO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxVQUFVLENBQUMsSUFBYztRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLGdCQUFnQixFQUFFLElBQUksRUFBRTtZQUM1RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsWUFBWSxDQUFDLElBQVM7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxrQkFBa0IsRUFBRSxJQUFJLEVBQUU7WUFDOUUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGtCQUFrQixDQUFDLElBQVksRUFBRSxJQUFTO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8seUJBQXlCLElBQUksRUFBRSxFQUFFLElBQUksRUFBRTtZQUMzRixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLElBQWM7UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyx1QkFBdUIsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFO1lBQ3pGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBN0RVLGNBQWM7MkdBQWQsY0FBYyxjQUZiLE1BQU07OzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVBQX0NPTkZJRyB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTdXBwb3J0U2VydmljZSB7XG4gIGVudmlyb25tZW50ID0gaW5qZWN0KEFQUF9DT05GSUcpO1xuICBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuXG4gIGZpbmRBbGxCdWNrZXRzKG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9zdXBwb3J0L2J1Y2tldHNgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRBbGwob3B0aW9uczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L3N1cHBvcnQvZm9sZGVyc2AsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gICAgfSk7XG4gIH1cbiAgZmluZEZvbGRlckJ5U2x1ZyhzbHVnOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vc3VwcG9ydC9mb2xkZXJzL3NsdWcvJHtzbHVnfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gICAgfSk7XG4gIH1cbiAgZmluZEJ5UGF0aChwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vc3VwcG9ydC9mb2xkZXJzL2J5P3BhdGg9JHtwYXRofWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gICAgfSk7XG4gIH1cbiAgZmluZEFsbEZpbGVzKG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9zdXBwb3J0L2ZpbGVzYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kRmlsZUJ5Rm9sZGVyKGZvbGRlcjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L3N1cHBvcnQvZmlsZXMvYnk/Zm9sZGVyPSR7Zm9sZGVyfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gICAgfSk7XG4gIH1cbiAgZmluZEZpbGVCeVNsdWcoc2x1Zzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L3N1cHBvcnQvZmlsZXMvc2x1Zy8ke3NsdWd9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuICB1cGxvYWRGaWxlKGRhdGE6IEZvcm1EYXRhKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9zdXBwb3J0L2ZpbGVzYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGNyZWF0ZUJ1Y2tldChkYXRhOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L3N1cHBvcnQvYnVja2V0c2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBjcmVhdGVGb2xkZXJCeVNsdWcoc2x1Zzogc3RyaW5nLCBkYXRhOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L3N1cHBvcnQvZm9sZGVycy9zbHVnLyR7c2x1Z31gLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBsb2FkRmlsZUJ5U2x1ZyhzbHVnOiBzdHJpbmcsIGRhdGE6IEZvcm1EYXRhKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9zdXBwb3J0L2ZpbGVzL3NsdWcvJHtzbHVnfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { Injectable, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport * as i0 from \"@angular/core\";\nexport class BreadcrumbService {\n router = inject(Router);\n breadcrumbs = [];\n add(label, slug) {\n const breadcrumb = {\n label: label,\n slug: slug,\n };\n this.breadcrumbs.push(breadcrumb);\n return this.breadcrumbs;\n }\n goTo(slug, route) {\n if (this.breadcrumbs.length === 1) {\n return;\n }\n const index = this.breadcrumbs.findIndex((item) => item.slug === slug);\n this.breadcrumbs.length = index;\n this.router.navigate([`${slug}`], {\n relativeTo: route,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BreadcrumbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BreadcrumbService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BreadcrumbService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL2JyZWFkY3J1bWIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFrQixNQUFNLGlCQUFpQixDQUFDOztBQUt6RCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEIsV0FBVyxHQUFpQixFQUFFLENBQUM7SUFFL0IsR0FBRyxDQUFDLEtBQWEsRUFBRSxJQUFZO1FBQzdCLE1BQU0sVUFBVSxHQUFlO1lBQzdCLEtBQUssRUFBRSxLQUFLO1lBQ1osSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLENBQUMsSUFBWSxFQUFFLEtBQXFCO1FBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUU7WUFDaEMsVUFBVSxFQUFFLEtBQUs7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FyQlUsaUJBQWlCOzJHQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iU2VydmljZSB7XG4gIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBicmVhZGNydW1iczogQnJlYWRjcnVtYltdID0gW107XG5cbiAgYWRkKGxhYmVsOiBzdHJpbmcsIHNsdWc6IHN0cmluZykge1xuICAgIGNvbnN0IGJyZWFkY3J1bWI6IEJyZWFkY3J1bWIgPSB7XG4gICAgICBsYWJlbDogbGFiZWwsXG4gICAgICBzbHVnOiBzbHVnLFxuICAgIH07XG4gICAgdGhpcy5icmVhZGNydW1icy5wdXNoKGJyZWFkY3J1bWIpO1xuICAgIHJldHVybiB0aGlzLmJyZWFkY3J1bWJzO1xuICB9XG4gIGdvVG8oc2x1Zzogc3RyaW5nLCByb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICBpZiAodGhpcy5icmVhZGNydW1icy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmJyZWFkY3J1bWJzLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5zbHVnID09PSBzbHVnKTtcbiAgICB0aGlzLmJyZWFkY3J1bWJzLmxlbmd0aCA9IGluZGV4O1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgJHtzbHVnfWBdLCB7XG4gICAgICByZWxhdGl2ZVRvOiByb3V0ZSxcbiAgICB9KTtcbiAgfVxufVxuXG5pbnRlcmZhY2UgQnJlYWRjcnVtYiB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHNsdWc6IHN0cmluZztcbn1cbiJdfQ==","import { MediaMatcher } from '@angular/cdk/layout';\nimport { Injectable, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class SidenavService {\n media = inject(MediaMatcher);\n sidenav;\n mobileQuery;\n isMobile = false;\n isCollaped = false;\n isExpanded = true;\n constructor() {\n this.mobileQuery = this.media.matchMedia('(max-width: 600px)');\n this.isMobile = this.mobileQuery.matches;\n }\n setSidenav(sidenav) {\n this.sidenav = sidenav;\n }\n open() {\n return this.sidenav.open();\n }\n close() {\n return this.sidenav.close();\n }\n toggle() {\n this.sidenav.toggle();\n this.isCollaped = !this.isMobile && !this.sidenav?.opened;\n }\n lists() { }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SidenavService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SidenavService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: SidenavService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL3NpZGVuYXYuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSW5ELE1BQU0sT0FBTyxjQUFjO0lBQ3pCLEtBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDN0IsT0FBTyxDQUFjO0lBQ2IsV0FBVyxDQUFrQjtJQUNyQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsVUFBVSxHQUFHLElBQUksQ0FBQztJQUNsQjtRQUNFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO0lBQzNDLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBbUI7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVNLElBQUk7UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLEtBQUs7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDNUQsQ0FBQztJQUNNLEtBQUssS0FBSSxDQUFDO3VHQTVCTixjQUFjOzJHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZWRpYU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U2lkZW5hdiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2lkZW5hdlNlcnZpY2Uge1xuICBtZWRpYSA9IGluamVjdChNZWRpYU1hdGNoZXIpO1xuICBzaWRlbmF2ITogTWF0U2lkZW5hdjtcbiAgcHJpdmF0ZSBtb2JpbGVRdWVyeSE6IE1lZGlhUXVlcnlMaXN0O1xuICBpc01vYmlsZSA9IGZhbHNlO1xuICBpc0NvbGxhcGVkID0gZmFsc2U7XG4gIGlzRXhwYW5kZWQgPSB0cnVlO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLm1vYmlsZVF1ZXJ5ID0gdGhpcy5tZWRpYS5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOiA2MDBweCknKTtcbiAgICB0aGlzLmlzTW9iaWxlID0gdGhpcy5tb2JpbGVRdWVyeS5tYXRjaGVzO1xuICB9XG5cbiAgcHVibGljIHNldFNpZGVuYXYoc2lkZW5hdjogTWF0U2lkZW5hdikge1xuICAgIHRoaXMuc2lkZW5hdiA9IHNpZGVuYXY7XG4gIH1cblxuICBwdWJsaWMgb3BlbigpIHtcbiAgICByZXR1cm4gdGhpcy5zaWRlbmF2Lm9wZW4oKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zaWRlbmF2LmNsb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgIHRoaXMuc2lkZW5hdi50b2dnbGUoKTtcbiAgICB0aGlzLmlzQ29sbGFwZWQgPSAhdGhpcy5pc01vYmlsZSAmJiAhdGhpcy5zaWRlbmF2Py5vcGVuZWQ7XG4gIH1cbiAgcHVibGljIGxpc3RzKCkge31cbn1cbiJdfQ==","import { isPlatformBrowser } from '@angular/common';\nimport { Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class ThemeService {\n platformId = inject(PLATFORM_ID);\n darkTheme = new BehaviorSubject(false);\n isDarkTheme = this.darkTheme.asObservable();\n constructor() {\n if (isPlatformBrowser(this.platformId)) {\n if (window.matchMedia) {\n // Check if the dark-mode Media-Query matches\n if (window.matchMedia('(prefers-color-scheme: dark)').matches) {\n this.setDarkTheme(true);\n // Dark\n }\n else {\n // Light\n this.setDarkTheme(false);\n }\n }\n else {\n // Default (when Media-Queries are not supported)\n }\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {\n const newColorScheme = e.matches ? 'dark' : 'light';\n if (newColorScheme === 'dark') {\n this.setDarkTheme(true);\n }\n else {\n this.setDarkTheme(false);\n }\n });\n }\n }\n setDarkTheme(isDarkTheme) {\n this.darkTheme.next(isDarkTheme);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ThemeService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ThemeService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUt2QyxNQUFNLE9BQU8sWUFBWTtJQUN2QixVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pDLFNBQVMsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDMUUsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUM7UUFDRSxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN0Qiw2Q0FBNkM7Z0JBQzdDLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUM5RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN4QixPQUFPO2dCQUNULENBQUM7cUJBQU0sQ0FBQztvQkFDTixRQUFRO29CQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04saURBQWlEO1lBQ25ELENBQUM7WUFDRCxNQUFNLENBQUMsVUFBVSxDQUFDLDhCQUE4QixDQUFDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2pGLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUNwRCxJQUFJLGNBQWMsS0FBSyxNQUFNLEVBQUUsQ0FBQztvQkFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDMUIsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLFdBQW9CO1FBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7dUdBL0JVLFlBQVk7MkdBQVosWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUaGVtZVNlcnZpY2Uge1xuICBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgZGFya1RoZW1lOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgaXNEYXJrVGhlbWUgPSB0aGlzLmRhcmtUaGVtZS5hc09ic2VydmFibGUoKTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIGlmICh3aW5kb3cubWF0Y2hNZWRpYSkge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgZGFyay1tb2RlIE1lZGlhLVF1ZXJ5IG1hdGNoZXNcbiAgICAgICAgaWYgKHdpbmRvdy5tYXRjaE1lZGlhKCcocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspJykubWF0Y2hlcykge1xuICAgICAgICAgIHRoaXMuc2V0RGFya1RoZW1lKHRydWUpO1xuICAgICAgICAgIC8vIERhcmtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBMaWdodFxuICAgICAgICAgIHRoaXMuc2V0RGFya1RoZW1lKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRGVmYXVsdCAod2hlbiBNZWRpYS1RdWVyaWVzIGFyZSBub3Qgc3VwcG9ydGVkKVxuICAgICAgfVxuICAgICAgd2luZG93Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZSkgPT4ge1xuICAgICAgICBjb25zdCBuZXdDb2xvclNjaGVtZSA9IGUubWF0Y2hlcyA/ICdkYXJrJyA6ICdsaWdodCc7XG4gICAgICAgIGlmIChuZXdDb2xvclNjaGVtZSA9PT0gJ2RhcmsnKSB7XG4gICAgICAgICAgdGhpcy5zZXREYXJrVGhlbWUodHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXREYXJrVGhlbWUoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzZXREYXJrVGhlbWUoaXNEYXJrVGhlbWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRhcmtUaGVtZS5uZXh0KGlzRGFya1RoZW1lKTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class OrderService extends BaseService {\n init() {\n this.endpoint = 'orders';\n super.init();\n }\n createPaymentIntent(id) {\n return this.http.post(`${this.actionUrl}/${id}/create-payment-intent`, {}, {\n withCredentials: true,\n });\n }\n by(options) {\n return this.http.get(`${this.actionUrl}/items/by`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n merchant(options) {\n return this.http.get(`${this.actionUrl}/merchant`, {\n params: options,\n withCredentials: true,\n });\n }\n timeline(id) {\n return this.http.get(`${this.actionUrl}/${id}/timeline`, {\n withCredentials: true,\n });\n }\n pay(id) {\n return this.http.post(`${this.actionUrl}/${id}/pay`, {}, {\n withCredentials: true,\n });\n }\n refund(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/refund`, data, {\n withCredentials: true,\n });\n }\n findAllReturns(options) {\n return this.http.get(`${this.actionUrl}/returns`, {\n params: options,\n withCredentials: true,\n });\n }\n findAllReturnsByInstructor(options) {\n return this.http.get(`${this.actionUrl}/returns/instructor`, {\n params: options,\n withCredentials: true,\n });\n }\n getReturn(id) {\n return this.http.get(`${this.actionUrl}/returns/${id}`, {\n withCredentials: true,\n });\n }\n returnApprove(id) {\n return this.http.post(`${this.actionUrl}/returns/${id}/approve`, {}, {\n withCredentials: true,\n });\n }\n returnReject(id, data) {\n return this.http.post(`${this.actionUrl}/returns/${id}/reject`, data, {\n withCredentials: true,\n });\n }\n cancel(id) {\n return this.http.post(`${this.actionUrl}/${id}/cancel`, {}, {\n withCredentials: true,\n });\n }\n countMeByStatus(options) {\n return this.http.get(`${this.actionUrl}/count/me/by`, {\n params: options,\n withCredentials: true,\n });\n }\n fulfill(orderId, data) {\n return this.http.post(`${this.actionUrl}/${orderId}/fulfillment`, data, {\n withCredentials: true,\n });\n }\n getMerchantOrder(orderId) {\n return this.http.get(`${this.actionUrl}/${orderId}/by/merchant`, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: OrderService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: OrderService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: OrderService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9vcmRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUs3QyxNQUFNLE9BQU8sWUFBYSxTQUFRLFdBQVc7SUFDbEMsSUFBSTtRQUNYLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxFQUFVO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLHdCQUF3QixFQUMvQyxFQUFFLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsRUFBRSxDQUFDLE9BQVk7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxFQUFFO1lBQ3RELE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELEVBQUUsQ0FBQyxPQUFZO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRTtZQUNoRCxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxRQUFRLENBQUMsT0FBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMs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QUUsSUFBSSxFQUFFO1lBQzNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxPQUFlO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLE9BQU8sY0FBYyxFQUFFO1lBQ3BFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBMUdVLFlBQVk7MkdBQVosWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBPcmRlclNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIG92ZXJyaWRlIGluaXQoKSB7XG4gICAgdGhpcy5lbmRwb2ludCA9ICdvcmRlcnMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICBjcmVhdGVQYXltZW50SW50ZW50KGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2NyZWF0ZS1wYXltZW50LWludGVudGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIGJ5KG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vaXRlbXMvYnlgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgbWUob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9tZWAsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBtZXJjaGFudChvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L21lcmNoYW50YCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHRpbWVsaW5lKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3RpbWVsaW5lYCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHBheShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9wYXlgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICByZWZ1bmQoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vcmVmdW5kYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRBbGxSZXR1cm5zKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vcmV0dXJuc2AsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kQWxsUmV0dXJuc0J5SW5zdHJ1Y3RvcihvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3JldHVybnMvaW5zdHJ1Y3RvcmAsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBnZXRSZXR1cm4oaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vcmV0dXJucy8ke2lkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICByZXR1cm5BcHByb3ZlKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9L3JldHVybnMvJHtpZH0vYXBwcm92ZWAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHJldHVyblJlamVjdChpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9yZXR1cm5zLyR7aWR9L3JlamVjdGAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBjYW5jZWwoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vY2FuY2VsYCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbiAgY291bnRNZUJ5U3RhdHVzKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vY291bnQvbWUvYnlgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZnVsZmlsbChvcmRlcklkOiBzdHJpbmcsIGRhdGE6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke29yZGVySWR9L2Z1bGZpbGxtZW50YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGdldE1lcmNoYW50T3JkZXIob3JkZXJJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtvcmRlcklkfS9ieS9tZXJjaGFudGAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class InventoryService extends BaseService {\n init() {\n this.endpoint = 'inventories';\n super.init();\n }\n getLocation(locationId) {\n return this.http.get(`${this.actionUrl}/locations/${locationId}`, { withCredentials: true });\n }\n findLocations(options) {\n return this.http.get(`${this.actionUrl}/locations`, { params: options, withCredentials: true });\n }\n addLocation(data) {\n return this.http.post(`${this.actionUrl}/locations`, data, { withCredentials: true });\n }\n updateLocation(locationId, data) {\n return this.http.put(`${this.actionUrl}/locations/${locationId}`, data, { withCredentials: true });\n }\n deleteLocation(locationId) {\n return this.http.delete(`${this.actionUrl}/locations/${locationId}`, { withCredentials: true });\n }\n initInventoryItems(data) {\n return this.http.post(`${this.actionUrl}/items/init`, data, { withCredentials: true });\n }\n findMyInventoryItems(options) {\n return this.http.get(`${this.actionUrl}/items/me`, { params: options, withCredentials: true });\n }\n addInventoryItem(data) {\n return this.http.post(`${this.actionUrl}/items`, data, { withCredentials: true });\n }\n updateInventoryItem(data) {\n return this.http.put(`${this.actionUrl}/items`, data, { withCredentials: true });\n }\n addInventoryByProductId(locationId, productId, data) {\n return this.http.post(`${this.actionUrl}/locations/${locationId}`, data, { withCredentials: true });\n }\n addInventoryByVariantId(locationId, variantId, data) {\n return this.http.post(`${this.actionUrl}/locations`, data, { withCredentials: true });\n }\n findInventoryItemsByProductId(productId) {\n return this.http.get(`${this.actionUrl}/products/${productId}`, { withCredentials: true });\n }\n findInventoryItemsByVariantId(variantId) {\n return this.http.get(`${this.actionUrl}/variants/${variantId}`, { withCredentials: true });\n }\n findInventoryLevelsByLocationIdAndVariantIds(locationId, ids) {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}/locations/${locationId}/variants/by`, { params: params, withCredentials: true });\n }\n deleteInventoryItemsByProductId(productId) {\n return this.http.delete(`${this.actionUrl}/products/${productId}`, { withCredentials: true });\n }\n deleteInventoryItemsByVariantId(variantId) {\n return this.http.delete(`${this.actionUrl}/variants/${variantId}`, { withCredentials: true });\n }\n deleteInventoryLevel(levelId) {\n return this.http.delete(`${this.actionUrl}/levels/${levelId}`, { withCredentials: true });\n }\n findProductsInLocation(locationId) {\n return this.http.get(`${this.actionUrl}/locations/${locationId}/products`, { withCredentials: true });\n }\n findLocationsByProductId(productId) {\n return this.http.get(`${this.actionUrl}/products/${productId}/locations`, { withCredentials: true });\n }\n findLocationsByVariantId(variantId) {\n return this.http.get(`${this.actionUrl}/variants/${variantId}/locations`, { withCredentials: true });\n }\n updateStockByLocationIdAndProductId(locationId, productId, data) {\n return this.http.put(`${this.actionUrl}/locations${locationId}/products/${productId}`, data, { withCredentials: true });\n }\n updateStockByLocationIdAndVariantId(locationId, variantId, data) {\n return this.http.put(`${this.actionUrl}/locations${locationId}/variants/${variantId}`, data, { withCredentials: true });\n }\n adjustStocksByLocationId(data) {\n return this.http.put(`${this.actionUrl}/levels/adjust`, data, { withCredentials: true });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: InventoryService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: InventoryService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: InventoryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52ZW50b3J5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvc2VydmljZXMvaW52ZW50b3J5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBTTdDLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBQ3RDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQztRQUM5QixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsV0FBVyxDQUFDLFVBQWtCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxjQUFjLFVBQVUsRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUNELGFBQWEsQ0FBQyxPQUFZO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFDRCxXQUFXLENBQUMsSUFBUztRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFDRCxjQUFjLENBQUMsVUFBa0IsRUFBRSxJQUFTO1FBQzFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFH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QUUsSUFBUztRQUNsRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsYUFBYSxVQUFVLGFBQWEsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUgsQ0FBQztJQUNELG1DQUFtQyxDQUFDLFVBQWtCLEVBQUUsU0FBaUIsRUFBRSxJQUFTO1FBQ2xGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxhQUFhLFVBQVUsYUFBYSxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxSCxDQUFDO0lBQ0Qsd0JBQXdCLENBQUMsSUFBUztRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0YsQ0FBQzt1R0E3RVUsZ0JBQWdCOzJHQUFoQixnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBJbnZlbnRvcnlTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAnaW52ZW50b3JpZXMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICBnZXRMb2NhdGlvbihsb2NhdGlvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYWN0aW9uVXJsfS9sb2NhdGlvbnMvJHtsb2NhdGlvbklkfWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGZpbmRMb2NhdGlvbnMob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vbG9jYXRpb25zYCwgeyBwYXJhbXM6IG9wdGlvbnMsIHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBhZGRMb2NhdGlvbihkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmFjdGlvblVybH0vbG9jYXRpb25zYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgdXBkYXRlTG9jYXRpb24obG9jYXRpb25JZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuYWN0aW9uVXJsfS9sb2NhdGlvbnMvJHtsb2NhdGlvbklkfWAsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGRlbGV0ZUxvY2F0aW9uKGxvY2F0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5hY3Rpb25Vcmx9L2xvY2F0aW9ucy8ke2xvY2F0aW9uSWR9YCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgaW5pdEludmVudG9yeUl0ZW1zKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYWN0aW9uVXJsfS9pdGVtcy9pbml0YCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgZmluZE15SW52ZW50b3J5SXRlbXMob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vaXRlbXMvbWVgLCB7IHBhcmFtczogb3B0aW9ucywgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGFkZEludmVudG9yeUl0ZW0oZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hY3Rpb25Vcmx9L2l0ZW1zYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgdXBkYXRlSW52ZW50b3J5SXRlbShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuYWN0aW9uVXJsfS9pdGVtc2AsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGFkZEludmVudG9yeUJ5UHJvZHVjdElkKGxvY2F0aW9uSWQ6IHN0cmluZywgcHJvZHVjdElkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYWN0aW9uVXJsfS9sb2NhdGlvbnMvJHtsb2NhdGlvbklkfWAsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGFkZEludmVudG9yeUJ5VmFyaWFudElkKGxvY2F0aW9uSWQ6IHN0cmluZywgdmFyaWFudElkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYWN0aW9uVXJsfS9sb2NhdGlvbnNgLCBkYXRhLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuXG4gIGZpbmRJbnZlbnRvcnlJdGVtc0J5UHJvZHVjdElkKHByb2R1Y3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vcHJvZHVjdHMvJHtwcm9kdWN0SWR9YCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgZmluZEludmVudG9yeUl0ZW1zQnlWYXJpYW50SWQodmFyaWFudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYWN0aW9uVXJsfS92YXJpYW50cy8ke3ZhcmlhbnRJZH1gLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBmaW5kSW52ZW50b3J5TGV2ZWxzQnlMb2NhdGlvbklkQW5kVmFyaWFudElkcyhsb2NhdGlvbklkOiBzdHJpbmcsIGlkczogQXJyYXk8c3RyaW5nPik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgcGFyYW1zID0geyBpZHM6IGlkcy5qb2luKCcsJykgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vbG9jYXRpb25zLyR7bG9jYXRpb25JZH0vdmFyaWFudHMvYnlgLCB7IHBhcmFtczogcGFyYW1zLCB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cblxuICBkZWxldGVJbnZlbnRvcnlJdGVtc0J5UHJvZHVjdElkKHByb2R1Y3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmFjdGlvblVybH0vcHJvZHVjdHMvJHtwcm9kdWN0SWR9YCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgZGVsZXRlSW52ZW50b3J5SXRlbXNCeVZhcmlhbnRJZCh2YXJpYW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5hY3Rpb25Vcmx9L3ZhcmlhbnRzLyR7dmFyaWFudElkfWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGRlbGV0ZUludmVudG9yeUxldmVsKGxldmVsSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5hY3Rpb25Vcmx9L2xldmVscy8ke2xldmVsSWR9YCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cblxuICBmaW5kUHJvZHVjdHNJbkxvY2F0aW9uKGxvY2F0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hY3Rpb25Vcmx9L2xvY2F0aW9ucy8ke2xvY2F0aW9uSWR9L3Byb2R1Y3RzYCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgZmluZExvY2F0aW9uc0J5UHJvZHVjdElkKHByb2R1Y3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vcHJvZHVjdHMvJHtwcm9kdWN0SWR9L2xvY2F0aW9uc2AsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGZpbmRMb2NhdGlvbnNCeVZhcmlhbnRJZCh2YXJpYW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hY3Rpb25Vcmx9L3ZhcmlhbnRzLyR7dmFyaWFudElkfS9sb2NhdGlvbnNgLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICB1cGRhdGVTdG9ja0J5TG9jYXRpb25JZEFuZFByb2R1Y3RJZChsb2NhdGlvbklkOiBzdHJpbmcsIHByb2R1Y3RJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuYWN0aW9uVXJsfS9sb2NhdGlvbnMke2xvY2F0aW9uSWR9L3Byb2R1Y3RzLyR7cHJvZHVjdElkfWAsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIHVwZGF0ZVN0b2NrQnlMb2NhdGlvbklkQW5kVmFyaWFudElkKGxvY2F0aW9uSWQ6IHN0cmluZywgdmFyaWFudElkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5hY3Rpb25Vcmx9L2xvY2F0aW9ucyR7bG9jYXRpb25JZH0vdmFyaWFudHMvJHt2YXJpYW50SWR9YCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgYWRqdXN0U3RvY2tzQnlMb2NhdGlvbklkKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5hY3Rpb25Vcmx9L2xldmVscy9hZGp1c3RgLCBkYXRhLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class NotificationStore {\n $count = new BehaviorSubject(0);\n getCount() {\n return this.$count.asObservable();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NotificationStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NotificationStore, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NotificationStore, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3N0YXRlL25vdGlmaWNhdGlvbi5zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3ZDLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDcEMsQ0FBQzt1R0FKVSxpQkFBaUI7MkdBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25TdG9yZSB7XG4gICRjb3VudCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG4gIGdldENvdW50KCkge1xuICAgIHJldHVybiB0aGlzLiRjb3VudC5hc09ic2VydmFibGUoKTtcbiAgfVxufVxuIl19","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { map } from 'rxjs';\nimport { NotificationStore } from '../state/notification.store';\nimport * as i0 from \"@angular/core\";\nexport class NotificationService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n storeService = inject(NotificationStore);\n find(options) {\n return this.http.get(`${this.environment.baseUrl}/notifications`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options) {\n return this.http.get(`${this.environment.baseUrl}/notifications/me`, {\n params: options,\n withCredentials: true,\n });\n }\n get(id) {\n return this.http.get(`${this.environment.baseUrl}/notifications/${id}`, {\n withCredentials: true,\n });\n }\n read(ids) {\n return this.http.get(`${this.environment.baseUrl}/notifications/${ids}`, {\n withCredentials: true,\n });\n }\n update(id) {\n return this.http\n .put(`${this.environment.baseUrl}/notifications/${id}`, { status: 'READ' }, {\n withCredentials: true,\n })\n .pipe(map((res) => {\n const value = this.storeService.$count.value - 1;\n this.storeService.$count.next(value);\n }));\n }\n readAll() {\n return this.http\n .put(`${this.environment.baseUrl}/notifications/status/all`, { status: 'READ' }, {\n withCredentials: true,\n })\n .pipe(map((res) => {\n this.storeService.$count.next(0);\n }));\n }\n delete(id) {\n return this.http.get(`${this.environment.baseUrl}/notifications/${id}`, {\n withCredentials: true,\n });\n }\n findByUserId(userId) {\n return this.http.get(`${this.environment.baseUrl}/notifications/by?userId=${userId}`, {\n withCredentials: true,\n });\n }\n countByStatus(status) {\n return this.http\n .get(`${this.environment.baseUrl}/notifications/count/by?status=${status}`, {\n withCredentials: true,\n })\n .pipe(map(({ data }) => {\n this.storeService.$count.next(data);\n return data;\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NotificationService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NotificationService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUloRSxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQixZQUFZLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFekMsSUFBSSxDQUFDLE9BQVk7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLGdCQUFnQixFQUFFO1lBQ3JFLE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELEVBQUUsQ0FBQyxPQUFZO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxtQkFBbUIsRUFBRTtZQUN4RSxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxHQUFHLENBQUMsRUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sa0JBQWtCLEVBQUUsRUFBRSxFQUFFO1lBQzNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLENBQUMsR0FBa0I7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxrQkFBa0IsR0FBRyxFQUFFLEVBQUU7WUFDNUUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sQ0FBQyxFQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FDRixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxrQkFBa0IsRUFBRSxFQUFFLEVBQ2pELEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUNsQjtZQUNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQ0Y7YUFDQSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDVixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUNELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUNGLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLDJCQUEyQixFQUN0RCxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFDbEI7WUFDRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUNGO2FBQ0EsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBQ0QsTUFBTSxDQUFDLEVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLGtCQUFrQixFQUFFLEVBQUUsRUFBRTtZQUMzRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsWUFBWSxDQUFDLE1BQWM7UUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyw0QkFBNEIsTUFBTSxFQUFFLEVBQUU7WUFDekYsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGFBQWEsQ0FBQyxNQUFjO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sa0NBQWtDLE1BQU0sRUFBRSxFQUFFO1lBQy9FLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7dUdBL0VVLG1CQUFtQjsyR0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBUFBfQ09ORklHIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU3RvcmUgfSBmcm9tICcuLi9zdGF0ZS9ub3RpZmljYXRpb24uc3RvcmUnO1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvblNlcnZpY2Uge1xuICBlbnZpcm9ubWVudCA9IGluamVjdChBUFBfQ09ORklHKTtcbiAgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgc3RvcmVTZXJ2aWNlID0gaW5qZWN0KE5vdGlmaWNhdGlvblN0b3JlKTtcblxuICBmaW5kKG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9ub3RpZmljYXRpb25zYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIG1lKG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9ub3RpZmljYXRpb25zL21lYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGdldChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L25vdGlmaWNhdGlvbnMvJHtpZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgcmVhZChpZHM6IEFycmF5PHN0cmluZz4pIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vbm90aWZpY2F0aW9ucy8ke2lkc31gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBkYXRlKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucHV0PGFueT4oXG4gICAgICAgIGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vbm90aWZpY2F0aW9ucy8ke2lkfWAsXG4gICAgICAgIHsgc3RhdHVzOiAnUkVBRCcgfSxcbiAgICAgICAge1xuICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5zdG9yZVNlcnZpY2UuJGNvdW50LnZhbHVlIC0gMTtcbiAgICAgICAgICB0aGlzLnN0b3JlU2VydmljZS4kY291bnQubmV4dCh2YWx1ZSk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuICByZWFkQWxsKCkge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wdXQ8YW55PihcbiAgICAgICAgYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9ub3RpZmljYXRpb25zL3N0YXR1cy9hbGxgLFxuICAgICAgICB7IHN0YXR1czogJ1JFQUQnIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLnN0b3JlU2VydmljZS4kY291bnQubmV4dCgwKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG4gIGRlbGV0ZShpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L25vdGlmaWNhdGlvbnMvJHtpZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZmluZEJ5VXNlcklkKHVzZXJJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L25vdGlmaWNhdGlvbnMvYnk/dXNlcklkPSR7dXNlcklkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBjb3VudEJ5U3RhdHVzKHN0YXR1czogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vbm90aWZpY2F0aW9ucy9jb3VudC9ieT9zdGF0dXM9JHtzdGF0dXN9YCwge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoeyBkYXRhIH0pID0+IHtcbiAgICAgICAgICB0aGlzLnN0b3JlU2VydmljZS4kY291bnQubmV4dChkYXRhKTtcbiAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class ProductCategoryService extends BaseService {\n init() {\n this.endpoint = 'products/categories';\n super.init();\n }\n uploadMedia(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id, mediaId) {\n return this.http.delete(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n importFromExcel(data) {\n return this.http.post(`${this.actionUrl}/excel`, data, {\n withCredentials: true,\n });\n }\n createFromExcel(data) {\n return this.http.post(`${this.actionUrl}/list`, data, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ProductCategoryService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ProductCategoryService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ProductCategoryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jYXRlZ29yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL3Byb2R1Y3QtY2F0ZWdvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLN0MsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFdBQVc7SUFDNUMsSUFBSTtRQUNYLElBQUksQ0FBQyxRQUFRLEdBQUcscUJBQXFCLENBQUM7UUFDdEMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUNELFdBQVcsQ0FBQyxFQUFVLEVBQUUsSUFBYztRQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDaEUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVcsQ0FBQyxFQUFVLEVBQUUsT0FBZTtRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFVBQVUsT0FBTyxFQUFFLEVBQUU7WUFDdkUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGVBQWUsQ0FBQyxJQUFjO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQzFELGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxlQUFlLENBQUMsSUFBUztRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsT0FBTyxFQUFFLElBQUksRUFBRTtZQUN6RCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQXhCVSxzQkFBc0I7MkdBQXRCLHNCQUFzQixjQUZyQixNQUFNOzsyRkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0Q2F0ZWdvcnlTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAncHJvZHVjdHMvY2F0ZWdvcmllcyc7XG4gICAgc3VwZXIuaW5pdCgpO1xuICB9XG4gIHVwbG9hZE1lZGlhKGlkOiBzdHJpbmcsIGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vbWVkaWFgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlTWVkaWEoaWQ6IHN0cmluZywgbWVkaWFJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9tZWRpYS8ke21lZGlhSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGltcG9ydEZyb21FeGNlbChkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2V4Y2VsYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGNyZWF0ZUZyb21FeGNlbChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9saXN0YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport * as i0 from \"@angular/core\";\nexport class NotificationTemplateService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n find(options) {\n return this.http.get(`${this.environment.baseUrl}/notifications`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options) {\n return this.http.get(`${this.environment.baseUrl}/notifications/me`, {\n params: options,\n withCredentials: true,\n });\n }\n get(id) {\n return this.http.get(`${this.environment.baseUrl}/notifications/${id}`, {\n withCredentials: true,\n });\n }\n read(ids) {\n return this.http.get(`${this.environment.baseUrl}/notifications/${ids}`, {\n withCredentials: true,\n });\n }\n delete(id) {\n return this.http.get(`${this.environment.baseUrl}/notifications/${id}`, {\n withCredentials: true,\n });\n }\n findByUserId(userId) {\n return this.http.get(`${this.environment.baseUrl}/notifications/by?userId=${userId}`, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NotificationTemplateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NotificationTemplateService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: NotificationTemplateService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXRlbXBsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvc2VydmljZXMvbm90aWZpY2F0aW9uLXRlbXBsYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFLdEQsTUFBTSxPQUFPLDJCQUEyQjtJQUN0QyxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFMUIsSUFBSSxDQUFDLE9BQVk7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLGdCQUFnQixFQUFFO1lBQ3JFLE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELEVBQUUsQ0FBQyxPQUFZO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxtQkFBbUIsRUFBRTtZQUN4RSxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxHQUFHLENBQUMsRUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sa0JBQWtCLEVBQUUsRUFBRSxFQUFFO1lBQzNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLENBQUMsR0FBa0I7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxrQkFBa0IsR0FBRyxFQUFFLEVBQUU7WUFDNUUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sQ0FBQyxFQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxrQkFBa0IsRUFBRSxFQUFFLEVBQUU7WUFDM0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFlBQVksQ0FBQyxNQUFjO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sNEJBQTRCLE1BQU0sRUFBRSxFQUFFO1lBQ3pGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBbkNVLDJCQUEyQjsyR0FBM0IsMkJBQTJCLGNBRjFCLE1BQU07OzJGQUVQLDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBUFBfQ09ORklHIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvblRlbXBsYXRlU2VydmljZSB7XG4gIGVudmlyb25tZW50ID0gaW5qZWN0KEFQUF9DT05GSUcpO1xuICBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuXG4gIGZpbmQob3B0aW9uczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L25vdGlmaWNhdGlvbnNgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgbWUob3B0aW9uczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L25vdGlmaWNhdGlvbnMvbWVgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZ2V0KGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vbm90aWZpY2F0aW9ucy8ke2lkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICByZWFkKGlkczogQXJyYXk8c3RyaW5nPikge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9ub3RpZmljYXRpb25zLyR7aWRzfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGUoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9ub3RpZmljYXRpb25zLyR7aWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRCeVVzZXJJZCh1c2VySWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9ub3RpZmljYXRpb25zL2J5P3VzZXJJZD0ke3VzZXJJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class FulfillmentService extends BaseService {\n init() {\n this.endpoint = 'fulfillments';\n super.init();\n }\n fulfill(orderId, data) {\n return this.http.post(`${this.actionUrl}/orders/${orderId}`, data, {\n withCredentials: true,\n });\n }\n tracking(orderId) {\n return this.http.get(`${this.actionUrl}/tracking/orders/${orderId}`, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FulfillmentService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FulfillmentService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FulfillmentService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsZmlsbG1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9mdWxmaWxsbWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU03QyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsV0FBVztJQUN4QyxJQUFJO1FBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUM7UUFDL0IsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sQ0FBQyxPQUFlLEVBQUUsSUFBUztRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDdEUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVEsQ0FBQyxPQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxvQkFBb0IsT0FBTyxFQUFFLEVBQUU7WUFDeEUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FkVSxrQkFBa0I7MkdBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGdWxmaWxsbWVudFNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIG92ZXJyaWRlIGluaXQoKSB7XG4gICAgdGhpcy5lbmRwb2ludCA9ICdmdWxmaWxsbWVudHMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICBmdWxmaWxsKG9yZGVySWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vb3JkZXJzLyR7b3JkZXJJZH1gLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdHJhY2tpbmcob3JkZXJJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS90cmFja2luZy9vcmRlcnMvJHtvcmRlcklkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { inject, Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport * as i0 from \"@angular/core\";\nexport class TitleService {\n environment = inject(APP_CONFIG);\n titleService = inject(Title);\n getTitle() {\n return this.titleService.getTitle();\n }\n setTitle(newTitle) {\n this.titleService.setTitle(`${newTitle} - ${this.environment.name}`);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: TitleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: TitleService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: TitleService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy90aXRsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBS3RELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU3QixRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFDRCxRQUFRLENBQUMsUUFBZ0I7UUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxRQUFRLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7dUdBVFUsWUFBWTsyR0FBWixZQUFZLGNBRlgsTUFBTTs7MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBBUFBfQ09ORklHIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRpdGxlU2VydmljZSB7XG4gIGVudmlyb25tZW50ID0gaW5qZWN0KEFQUF9DT05GSUcpO1xuICB0aXRsZVNlcnZpY2UgPSBpbmplY3QoVGl0bGUpO1xuXG4gIGdldFRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudGl0bGVTZXJ2aWNlLmdldFRpdGxlKCk7XG4gIH1cbiAgc2V0VGl0bGUobmV3VGl0bGU6IHN0cmluZykge1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKGAke25ld1RpdGxlfSAtICR7dGhpcy5lbnZpcm9ubWVudC5uYW1lfWApO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class PostService extends BaseService {\n init() {\n this.endpoint = 'posts';\n super.init();\n }\n by(options) {\n return this.http.get(`${this.actionUrl}/items/by`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n merchant(options) {\n return this.http.get(`${this.actionUrl}/merchant`, {\n params: options,\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PostService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PostService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PostService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL3Bvc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLN0MsTUFBTSxPQUFPLFdBQVksU0FBUSxXQUFXO0lBQ2pDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsRUFBRSxDQUFDLE9BQVk7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxFQUFFO1lBQ3RELE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELEVBQUUsQ0FBQyxPQUFZO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRTtZQUNoRCxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxRQUFRLENBQUMsT0FBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxFQUFFO1lBQ3RELE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0F0QlUsV0FBVzsyR0FBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBvc3RTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAncG9zdHMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICBieShvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2l0ZW1zL2J5YCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIG1lKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vbWVgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgbWVyY2hhbnQob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9tZXJjaGFudGAsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class OrderPayoutService extends BaseService {\n init() {\n this.endpoint = 'orders/payouts';\n super.init();\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n approve(id) {\n return this.http.post(`${this.actionUrl}/${id}/approve`, {}, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: OrderPayoutService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: OrderPayoutService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: OrderPayoutService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItcGF5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvc2VydmljZXMvb3JkZXItcGF5b3V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBSTdDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxXQUFXO0lBQ3hDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLGdCQUFnQixDQUFDO1FBQ2pDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFDRCxFQUFFLENBQUMsT0FBWTtRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUU7WUFDaEQsTUFBTSxFQUFFLE9BQU87WUFDZixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEVBQVU7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsVUFBVSxFQUNqQyxFQUFFLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUNGLENBQUM7SUFDSixDQUFDO3VHQW5CVSxrQkFBa0I7MkdBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgT3JkZXJQYXlvdXRTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAnb3JkZXJzL3BheW91dHMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICBtZShvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L21lYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGFwcHJvdmUoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vYXBwcm92ZWAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class ResourceService extends BaseService {\n init() {\n this.endpoint = 'resources';\n super.init();\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n findByIds(ids) {\n return this.http.get(`${this.actionUrl}/by`, {\n params: { ids },\n withCredentials: true,\n });\n }\n filter(options) {\n return this.http.get(`${this.actionUrl}/search`, {\n params: options,\n withCredentials: false,\n });\n }\n updateLocation(id, data) {\n return this.http.put(`${this.actionUrl}/${id}/location`, data, {\n withCredentials: true,\n });\n }\n updateAmenities(id, data) {\n return this.http.put(`${this.actionUrl}/${id}/amenities`, data, {\n withCredentials: true,\n });\n }\n addDetail(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/details`, data, {\n withCredentials: true,\n });\n }\n addBatchDetails(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/details/batch`, data, {\n withCredentials: true,\n });\n }\n findDetails(id) {\n return this.http.get(`${this.actionUrl}/${id}/details`, {\n withCredentials: true,\n });\n }\n updateDetail(id, detailId, data) {\n return this.http.put(`${this.actionUrl}/${id}/details/${detailId}`, data, {\n withCredentials: true,\n });\n }\n deleteDetail(id, detailId) {\n return this.http.delete(`${this.actionUrl}/${id}/details/${detailId}`, {\n withCredentials: true,\n });\n }\n uploadDetailMedia(id, detailId, data) {\n return this.http.post(`${this.actionUrl}/${id}/details/${detailId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteDetailMedia(id, detailId, mediaId) {\n return this.http.delete(`${this.actionUrl}/${id}/details/${detailId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n findSessions(id) {\n return this.http.get(`${this.actionUrl}/${id}/sessions`, {\n withCredentials: true,\n });\n }\n addSession(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/sessions`, data, {\n withCredentials: true,\n });\n }\n updateSession(id, sessionId, data) {\n return this.http.put(`${this.actionUrl}/${id}/sessions/${sessionId}`, data, {\n withCredentials: true,\n });\n }\n deleteSession(id, sessionId) {\n return this.http.delete(`${this.actionUrl}/${id}/sessions/${sessionId}`, {\n withCredentials: true,\n });\n }\n findPeriods(id) {\n return this.http.get(`${this.actionUrl}/${id}/periods`, {\n withCredentials: true,\n });\n }\n addPeriod(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/periods`, data, {\n withCredentials: true,\n });\n }\n updatePeriod(id, periodId, data) {\n return this.http.put(`${this.actionUrl}/${id}/periods/${periodId}`, data, {\n withCredentials: true,\n });\n }\n deletePeriod(id, periodId) {\n return this.http.delete(`${this.actionUrl}/${id}/periods/${periodId}`, {\n withCredentials: true,\n });\n }\n review(id) {\n return this.http.post(`${this.actionUrl}/${id}/review`, {}, {\n withCredentials: true,\n });\n }\n publish(id) {\n return this.http.post(`${this.actionUrl}/${id}/publish`, {}, {\n withCredentials: true,\n });\n }\n upload(data) {\n return this.http.post(`${this.actionUrl}/upload`, data, {\n withCredentials: true,\n });\n }\n uploadMedia(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id, mediaId) {\n return this.http.delete(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n accept(id) {\n return this.http.post(`${this.actionUrl}/${id}/reviews/accept`, {}, {\n withCredentials: true,\n });\n }\n reject(id, body) {\n return this.http.post(`${this.actionUrl}/${id}/reviews/reject`, body, {\n withCredentials: true,\n });\n }\n findByResourceId(id) {\n const options = {\n filter: `resourceId:${id}`,\n };\n return this.http.get(`${this.actionUrl}`, {\n params: options,\n withCredentials: false,\n });\n }\n findVariantsByResourceId(id) {\n return this.http.get(`${this.actionUrl}/${id}/variants`, {\n withCredentials: false,\n });\n }\n addVariants(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/variants`, data, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ResourceService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ResourceService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ResourceService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9yZXNvdXJjZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUs3QyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBQ3JDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQztRQUM1QixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsRUFBRSxDQUFDLE9BQVk7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxFQUFFO1lBQ2hELE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFNBQVMsQ0FBQyxHQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUU7WUFDaEQsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sQ0FBQyxPQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxTQUFTLEVBQUU7WUFDcEQsTUFBTSxFQUFFLE9BQU87WUFDZixlQUFlLEVBQUUsS0FBSztTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsY0FBYyxDQUFDLEVBQVUsRUFBRSxJQUFTO1FBQ2xDLE9B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LGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBL0tVLGVBQWU7MkdBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBSZXNvdXJjZVNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIG92ZXJyaWRlIGluaXQoKSB7XG4gICAgdGhpcy5lbmRwb2ludCA9ICdyZXNvdXJjZXMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICBtZShvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L21lYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRCeUlkcyhpZHM6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vYnlgLCB7XG4gICAgICBwYXJhbXM6IHsgaWRzIH0sXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZmlsdGVyKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vc2VhcmNoYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVMb2NhdGlvbihpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2xvY2F0aW9uYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZUFtZW5pdGllcyhpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2FtZW5pdGllc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBhZGREZXRhaWwoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vZGV0YWlsc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBhZGRCYXRjaERldGFpbHMoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vZGV0YWlscy9iYXRjaGAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kRGV0YWlscyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9kZXRhaWxzYCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZURldGFpbChpZDogc3RyaW5nLCBkZXRhaWxJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2RldGFpbHMvJHtkZXRhaWxJZH1gLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlRGV0YWlsKGlkOiBzdHJpbmcsIGRldGFpbElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2RldGFpbHMvJHtkZXRhaWxJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBsb2FkRGV0YWlsTWVkaWEoaWQ6IHN0cmluZywgZGV0YWlsSWQ6IHN0cmluZywgZGF0YTogRm9ybURhdGEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9kZXRhaWxzLyR7ZGV0YWlsSWR9L21lZGlhYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZURldGFpbE1lZGlhKGlkOiBzdHJpbmcsIGRldGFpbElkOiBzdHJpbmcsIG1lZGlhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vZGV0YWlscy8ke2RldGFpbElkfS9tZWRpYS8ke21lZGlhSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRTZXNzaW9ucyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9zZXNzaW9uc2AsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBhZGRTZXNzaW9uKGlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3Nlc3Npb25zYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZVNlc3Npb24oaWQ6IHN0cmluZywgc2Vzc2lvbklkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vc2Vzc2lvbnMvJHtzZXNzaW9uSWR9YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZVNlc3Npb24oaWQ6IHN0cmluZywgc2Vzc2lvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3Nlc3Npb25zLyR7c2Vzc2lvbklkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kUGVyaW9kcyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9wZXJpb2RzYCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGFkZFBlcmlvZChpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9wZXJpb2RzYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZVBlcmlvZChpZDogc3RyaW5nLCBwZXJpb2RJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3BlcmlvZHMvJHtwZXJpb2RJZH1gLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlUGVyaW9kKGlkOiBzdHJpbmcsIHBlcmlvZElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3BlcmlvZHMvJHtwZXJpb2RJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgcmV2aWV3KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3Jldmlld2AsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHB1Ymxpc2goaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vcHVibGlzaGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHVwbG9hZChkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3VwbG9hZGAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGxvYWRNZWRpYShpZDogc3RyaW5nLCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L21lZGlhYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZU1lZGlhKGlkOiBzdHJpbmcsIG1lZGlhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vbWVkaWEvJHttZWRpYUlkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBhY2NlcHQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vcmV2aWV3cy9hY2NlcHRgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICByZWplY3QoaWQ6IHN0cmluZywgYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vcmV2aWV3cy9yZWplY3RgLCBib2R5LCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBmaW5kQnlSZXNvdXJjZUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBmaWx0ZXI6IGByZXNvdXJjZUlkOiR7aWR9YCxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9YCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kVmFyaWFudHNCeVJlc291cmNlSWQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vdmFyaWFudHNgLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgYWRkVmFyaWFudHMoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vdmFyaWFudHNgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class ResourceCategoryService extends BaseService {\n init() {\n this.endpoint = 'resources/categories';\n super.init();\n }\n uploadMedia(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id, mediaId) {\n return this.http.delete(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ResourceCategoryService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ResourceCategoryService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ResourceCategoryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9yZXNvdXJjZS1jYXRlZ29yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUs3QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsV0FBVztJQUM3QyxJQUFJO1FBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQztRQUN2QyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVUsRUFBRSxJQUFjO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUNoRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVUsRUFBRSxPQUFlO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsVUFBVSxPQUFPLEVBQUUsRUFBRTtZQUN2RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQWRVLHVCQUF1QjsyR0FBdkIsdUJBQXVCLGNBRnRCLE1BQU07OzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFJlc291cmNlQ2F0ZWdvcnlTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAncmVzb3VyY2VzL2NhdGVnb3JpZXMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuICB1cGxvYWRNZWRpYShpZDogc3RyaW5nLCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L21lZGlhYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZU1lZGlhKGlkOiBzdHJpbmcsIG1lZGlhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vbWVkaWEvJHttZWRpYUlkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class BookingService extends BaseService {\n init() {\n this.endpoint = 'bookings';\n super.init();\n }\n by(options) {\n return this.http.get(`${this.actionUrl}/items/by`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n timeline(id) {\n return this.http.get(`${this.actionUrl}/${id}/timeline`, {\n withCredentials: true,\n });\n }\n items(options) {\n return this.http.get(`${this.actionUrl}/items`, {\n params: options,\n withCredentials: true,\n });\n }\n pay(id) {\n return this.http.post(`${this.actionUrl}/${id}/pay`, {}, {\n withCredentials: true,\n });\n }\n refund(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/items/refund`, data, {\n withCredentials: true,\n });\n }\n findAllReturns(options) {\n return this.http.get(`${this.actionUrl}/returns`, {\n params: options,\n withCredentials: true,\n });\n }\n getReturn(id) {\n return this.http.get(`${this.actionUrl}/returns/${id}`, {\n withCredentials: true,\n });\n }\n returnApprove(id) {\n return this.http.post(`${this.actionUrl}/returns/${id}/approve`, {}, {\n withCredentials: true,\n });\n }\n returnReject(id, data) {\n return this.http.post(`${this.actionUrl}/returns/${id}/reject`, data, {\n withCredentials: true,\n });\n }\n cancel(id) {\n return this.http.post(`${this.actionUrl}/${id}/cancel`, {}, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BookingService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BookingService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BookingService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va2luZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL2Jvb2tpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLN0MsTUFBTSxPQUFPLGNBQWUsU0FBUSxXQUFXO0lBQ3BDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsRUFBRSxDQUFDLE9BQVk7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxFQUFFO1lBQ3RELE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELEVBQUUsQ0FBQyxPQUFZO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRTtZQUNoRCxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxRQUFRLENBQUMsRUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUM1RCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsS0FBSyxDQUFDLE9BQVk7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFFBQVEsRUFBRTtZQUNuRCxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxHQUFHLENBQUMsRUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLE1BQU0sRUFDN0IsRUFBRSxFQUNGO1lBQ0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sQ0FBQyxFQUFVLEVBQUUsSUFBUztRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUU7WUFDdkUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGNBQWMsQ0FBQyxPQUFZO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxVQUFVLEVBQUU7WUFDckQsTUFBTSxFQUFFLE9BQU87WUFDZixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsU0FBUyxDQUFDLEVBQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFlBQVksRUFBRSxFQUFFLEVBQUU7WUFDM0QsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGFBQWEsQ0FBQyxFQUFVO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWSxFQUFFLFVBQVUsRUFDekMsRUFBRSxFQUNGO1lBQ0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELFlBQVksQ0FBQyxFQUFVLEVBQUUsSUFBUztRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUU7WUFDekUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sQ0FBQyxFQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsU0FBUyxFQUNoQyxFQUFFLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUNGLENBQUM7SUFDSixDQUFDO3VHQTNFVSxjQUFjOzJHQUFkLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQm9va2luZ1NlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIG92ZXJyaWRlIGluaXQoKSB7XG4gICAgdGhpcy5lbmRwb2ludCA9ICdib29raW5ncyc7XG4gICAgc3VwZXIuaW5pdCgpO1xuICB9XG4gIGJ5KG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vaXRlbXMvYnlgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgbWUob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9tZWAsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB0aW1lbGluZShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS90aW1lbGluZWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBpdGVtcyhvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2l0ZW1zYCwge1xuICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHBheShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9wYXlgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICByZWZ1bmQoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vaXRlbXMvcmVmdW5kYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRBbGxSZXR1cm5zKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vcmV0dXJuc2AsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBnZXRSZXR1cm4oaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vcmV0dXJucy8ke2lkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICByZXR1cm5BcHByb3ZlKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9L3JldHVybnMvJHtpZH0vYXBwcm92ZWAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHJldHVyblJlamVjdChpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9yZXR1cm5zLyR7aWR9L3JlamVjdGAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBjYW5jZWwoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vY2FuY2VsYCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class FacilityService extends BaseService {\n init() {\n this.endpoint = 'facilities';\n super.init();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FacilityService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FacilityService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FacilityService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjaWxpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9mYWNpbGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUs3QyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBQ3JDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQztRQUM3QixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO3VHQUpVLGVBQWU7MkdBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGYWNpbGl0eVNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIG92ZXJyaWRlIGluaXQoKSB7XG4gICAgdGhpcy5lbmRwb2ludCA9ICdmYWNpbGl0aWVzJztcbiAgICBzdXBlci5pbml0KCk7XG4gIH1cbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class AmenityService extends BaseService {\n init() {\n this.endpoint = 'resources/amenities';\n super.init();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: AmenityService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: AmenityService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: AmenityService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1lbml0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL2FtZW5pdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLN0MsTUFBTSxPQUFPLGNBQWUsU0FBUSxXQUFXO0lBQ3BDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLHFCQUFxQixDQUFDO1FBQ3RDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7dUdBSlUsY0FBYzsyR0FBZCxjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFtZW5pdHlTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAncmVzb3VyY2VzL2FtZW5pdGllcyc7XG4gICAgc3VwZXIuaW5pdCgpO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { map, switchMap } from 'rxjs';\nimport { BaseService } from './base.service';\nimport _ from 'lodash';\nimport * as i0 from \"@angular/core\";\nexport class PropertyService extends BaseService {\n init() {\n this.endpoint = 'properties';\n super.init();\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n findByIds(ids) {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}/by`, {\n params: params,\n withCredentials: true,\n });\n }\n publish(propertyId) {\n return this.http.post(`${this.actionUrl}/${propertyId}/publish`, {}, {\n withCredentials: true,\n });\n }\n submitForReview(propertyId) {\n return this.http.post(`${this.actionUrl}/${propertyId}/review`, {}, {\n withCredentials: true,\n });\n }\n reviewApprove(id) {\n return this.http.post(`${this.actionUrl}/${id}/reviews/approve`, {}, {\n withCredentials: true,\n });\n }\n reviewReject(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/reviews/accept`, data, {\n withCredentials: true,\n });\n }\n export() {\n return this.http.get(`${this.actionUrl}/export`, {\n observe: 'response',\n responseType: 'blob',\n withCredentials: true\n }).pipe(map((resp) => {\n const cd = resp.headers.get('Content-Disposition') || '';\n const match = /filename\\*?=(?:UTF-8''|\")?([^\";]+)/i.exec(cd);\n const raw = match?.[1] ?? 'properties.csv';\n // decode RFC5987 filenames\n const filename = decodeURIComponent(raw.replace(/\"/g, ''));\n return { blob: resp.body, filename };\n }));\n }\n archived(propertyId) {\n return this.http.post(`${this.actionUrl}/${propertyId}/archived`, {}, {\n withCredentials: true,\n });\n }\n findWishlist(options) {\n return this.http.get(`${this.actionUrl}/wishlist`, { params: options, withCredentials: true });\n }\n addToWishlist(propertyId) {\n return this.http.post(`${this.actionUrl}/${propertyId}/wishlist`, {}, { withCredentials: true });\n }\n removeFromWishlist(propertyId) {\n return this.http.delete(`${this.actionUrl}/${propertyId}/wishlist`, { withCredentials: true });\n }\n wishListCheck(propertyId) {\n return this.http.get(`${this.actionUrl}/${propertyId}/wishlist/check`, { withCredentials: true });\n }\n findPurchasedByPropertyId(propertyId) {\n return this.http.get(`${this.actionUrl}/users/me/by?propertyId=${propertyId}`, {\n withCredentials: true,\n });\n }\n // Media\n uploadMedia(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id, mediaId) {\n return this.http.delete(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n // Pricing\n addPricing(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/pricing`, data, {\n withCredentials: true,\n });\n }\n updatePricing(pricingId, data) {\n return this.http.put(`${this.actionUrl}/pricing/${pricingId}`, data, {\n withCredentials: true,\n });\n }\n deletePricing(pricingId) {\n return this.http.delete(`${this.actionUrl}/pricing/${pricingId}`, {\n withCredentials: true,\n });\n }\n // Section\n addSection(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/sections`, data, {\n withCredentials: true,\n });\n }\n addBatchSections(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/sections/batch`, data, {\n withCredentials: true,\n });\n }\n findSections(propertyId) {\n return this.http.get(`${this.actionUrl}/${propertyId}/sections`, {\n withCredentials: true,\n });\n }\n updateSection(sectionId, data) {\n return this.http.put(`${this.actionUrl}/sections/${sectionId}`, data, {\n withCredentials: true,\n });\n }\n deleteSection(sectionId) {\n return this.http.delete(`${this.actionUrl}/sections/${sectionId}`, {\n withCredentials: true,\n });\n }\n uploadSectionMedia(sectionId, data) {\n return this.http.post(`${this.actionUrl}/sections/${sectionId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteSectionMedia(sectionId, mediaId) {\n return this.http.delete(`${this.actionUrl}/sections/${sectionId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n addOption(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/options`, data, {\n withCredentials: true,\n });\n }\n findOptions(propertyId) {\n return this.http.get(`${this.actionUrl}/${propertyId}/options`);\n }\n updateOption(optionId, data) {\n return this.http.put(`${this.actionUrl}/options/${optionId}`, data, {\n withCredentials: true,\n });\n }\n deleteOption(optionId) {\n return this.http.delete(`${this.actionUrl}/options/${optionId}`, {\n withCredentials: true,\n });\n }\n // variants\n updateVariantPrice(propertyId, status) {\n return this.http.put(`${this.actionUrl}/${propertyId}/variants/by?status=${status}`, {}, {\n withCredentials: true,\n });\n }\n createVariants(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/variants`, data, {\n withCredentials: true,\n });\n }\n getVariant(variantId) {\n return this.http.get(`${this.actionUrl}/variants/${variantId}`);\n }\n findVariants(propertyId) {\n return this.http.get(`${this.actionUrl}/${propertyId}/variants`);\n }\n findVariantsByIds(ids) {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}/variants/by`, {\n params: params,\n withCredentials: true,\n });\n }\n updateVariants(propertyId, data) {\n return this.http.put(`${this.actionUrl}/${propertyId}/variants`, data, {\n withCredentials: true,\n });\n }\n uploadVariantMedia(variantId, data) {\n return this.http.post(`${this.actionUrl}/variants/${variantId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteVariantMedia(variantId, mediaId) {\n return this.http.delete(`${this.actionUrl}/variants/${variantId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n findViewingsByUser(options) {\n return this.http\n .get(`${this.actionUrl}/viewings/by/user`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingProperty = _.find(properties.data, { id: item.propertyId });\n item.property = matchingProperty;\n });\n return res;\n }));\n }));\n }\n findViewingsByAgent(options) {\n return this.http\n .get(`${this.actionUrl}/viewings/by/agent`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingProperty = _.find(properties.data, { id: item.propertyId });\n item.property = matchingProperty;\n });\n return res;\n }));\n }));\n }\n requestViewing(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/viewings`, data, {\n withCredentials: true,\n });\n }\n confirmViewing(viewingId, slotId) {\n return this.http.post(`${this.actionUrl}/viewings/${viewingId}/confirm?slotId=${slotId}`, {}, {\n withCredentials: true,\n });\n }\n getViewing(viewingId) {\n return this.http.get(`${this.actionUrl}/viewings/${viewingId}`, { withCredentials: true });\n }\n cancelViewing(id) {\n return this.http.post(`${this.actionUrl}/viewings/${id}/cancel`, {}, {\n withCredentials: true,\n });\n }\n makeOffer(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/offers`, data, {\n withCredentials: true,\n });\n }\n findOffers(options) {\n return this.http\n .get(`${this.actionUrl}/offers`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }));\n }));\n }\n findOffersByUser(options) {\n return this.http\n .get(`${this.actionUrl}/offers/by/user`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }));\n }));\n }\n findOffersByAgent(options) {\n return this.http\n .get(`${this.actionUrl}/offers/by/agent`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }));\n }));\n }\n findPropertiesByIds(ids) {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}`, {\n params: params,\n });\n }\n getOffer(offerId) {\n return this.http.get(`${this.actionUrl}/offers/${offerId}`, { withCredentials: true });\n }\n cancelOffer(id) {\n return this.http.post(`${this.actionUrl}/offers/${id}/cancel`, {}, {\n withCredentials: true,\n });\n }\n acceptOffer(id) {\n return this.http.put(`${this.actionUrl}/offers/${id}/accept`, {}, {\n withCredentials: true,\n });\n }\n rejectOffer(id, data) {\n return this.http.put(`${this.actionUrl}/offers/${id}/reject`, data, {\n withCredentials: true,\n });\n }\n createHoldingDepositCheckout(offerId, data) {\n return this.http.post(`${this.actionUrl}/offers/${offerId}/pay/holding-deposit`, data, {\n withCredentials: true,\n });\n }\n createSecurityDepositCheckout(offerId, data) {\n return this.http.post(`${this.actionUrl}/offers/${offerId}/pay/security-deposit`, data, {\n withCredentials: true,\n });\n }\n checkOfferPaymentStatus(offerId, sessionId) {\n const options = {\n sessionId,\n };\n return this.http.get(`${this.actionUrl}/offers/${offerId}/session`, { params: options, withCredentials: true });\n }\n offerTimeline(offerId) {\n return this.http.get(`${this.actionUrl}/offers/${offerId}/timeline`, {\n withCredentials: true,\n });\n }\n getHighlights(id) {\n return this.http.get(`${this.actionUrl}/${id}/highlights`, { withCredentials: false });\n }\n findFeatures(id) {\n return this.http.get(`${this.actionUrl}/${id}/features`, { withCredentials: false });\n }\n updateFeatures(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/features`, data, { withCredentials: true });\n }\n updateLocation(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/location`, data, { withCredentials: true });\n }\n updateAgent(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/agents`, data, { withCredentials: true });\n }\n // Videos\n getVideos(id) {\n return this.http.get(`${this.actionUrl}/${id}/videos`, { withCredentials: true });\n }\n addVideo(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/videos`, data, { withCredentials: true });\n }\n updateVideo(id, videoId, data) {\n return this.http.put(`${this.actionUrl}/${id}/videos/${videoId}`, data, { withCredentials: true });\n }\n deleteVideo(id, videoId) {\n return this.http.delete(`${this.actionUrl}/${id}/videos/${videoId}`, { withCredentials: true });\n }\n uploadVideoThumbnail(videoId, data) {\n return this.http.post(`${this.actionUrl}/videos/${videoId}/thumbnail`, data, {\n withCredentials: true,\n });\n }\n // Tenants\n findTenants(options) {\n return this.http.get(`${this.actionUrl}/tenants`, { withCredentials: true, params: options, });\n }\n getTenant(id) {\n return this.http.get(`${this.actionUrl}/tenants/${id}`, { withCredentials: true });\n }\n createTenant(data) {\n return this.http.post(`${this.actionUrl}/tenants`, data, { withCredentials: true });\n }\n updateTenant(id, data) {\n return this.http.put(`${this.actionUrl}/tenants/${id}`, data, { withCredentials: true });\n }\n deleteTenant(id) {\n return this.http.delete(`${this.actionUrl}/tenants/${id}`, { withCredentials: true });\n }\n //COS\n uploadVideosInit(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/videos/init`, data, {\n withCredentials: true,\n });\n }\n uploadVideosPartsToProperty(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/videos/parts`, data, {\n withCredentials: true,\n });\n }\n completePartUpload(videoId, data) {\n return this.http.put(`${this.actionUrl}/videos/${videoId}/parts`, data, {\n withCredentials: true,\n });\n }\n uploadVideoToProperty(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/videos`, data, {\n withCredentials: true,\n });\n }\n deletePropertyVideo(propertyId, videoId) {\n return this.http.delete(`${this.actionUrl}/${propertyId}/videos/${videoId}`, { withCredentials: true });\n }\n uploadPropertyVideoThumbnail(videoId, data) {\n return this.http.post(`${this.actionUrl}/videos/${videoId}/thumbnail`, data, {\n withCredentials: true,\n });\n }\n // epc\n getEpc(id) {\n return this.http.get(`${this.actionUrl}/${id}/epc`, { withCredentials: false });\n }\n addEpc(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/epc`, data, { withCredentials: true });\n }\n updateEpc(id, data) {\n return this.http.put(`${this.actionUrl}/${id}/epc`, data, { withCredentials: true });\n }\n deleteEpc(id) {\n return this.http.delete(`${this.actionUrl}/${id}/epc`, { withCredentials: true });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertyService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9wcm9wZXJ0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7QUFNdkIsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBVztJQUNyQyxJQUFJO1FBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7UUFDN0IsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELEVBQUUsQ0FBQyxPQUFZO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRTtZQUNoRCxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxTQUFTLENBQUMsR0FBa0I7UUFDMUIsTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUU7WUFDaEQsTUFBTSxFQUFFLE1BQU07WUFDZCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxDQUFDLFVBQWtCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFVBQVUsRUFDekMsRUFBRSxFQUNGO1lBQ0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELGVBQWUsQ0FBQyxVQUFrQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxTQUFTLEVBQ3hDLEVBQUUsRUFDRjtZQUNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxhQUFhLENBQUMsRUFBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxrQkFBa0IsRUFDekMsRUFBRSxFQUNGO1lBQ0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELFlBQVksQ0FBQyxFQUFVLEVBQUUsSUFBUztRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRTtZQUN6RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxTQUFTLEVBQUU7WUFDL0MsT0FBTyxFQUFFLFVBQVU7WUFDbkIsWUFBWSxFQUFFLE1BQU07WUFDcEIsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxJQUF3QixFQUFFLEVBQUU7WUFDL0IsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekQsTUFBTSxLQUFLLEdBQUcscUNBQXFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdELE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLGdCQUFnQixDQUFDO1lBQzNDLDJCQUEyQjtZQUMzQixNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNELE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQVksRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUNELFFBQVEsQ0FBQyxVQUFrQjtRQUN6QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxXQUFXLEVBQzFDLEVBQUUsRUFDRjtZQUNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxZQUFZLENBQUMsT0FBWTtRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBQ0QsYUFBYSxDQUFDLFVBQWtCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFVBQVUsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxVQUFrQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFdBQVcsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFDRCxhQUFhLENBQUMsVUFBa0I7UUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxpQkFBaUIsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFDRCx5QkFBeUIsQ0FBQyxVQUFrQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsMkJBQTJCLFVBQVUsRUFBRSxFQUFFO1lBQzdFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxRQUFRO0lBQ1IsV0FBVyxDQUFDLFVBQWtCLEVBQUUsSUFBYztRQUM1QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDeEUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVcsQ0FBQyxFQUFVLEVBQUUsT0FBZTtRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFVBQVUsT0FBTyxFQUFFLEVBQUU7WUFDdkUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVU7SUFDVixVQUFVLENBQUMsVUFBa0IsRUFBRSxJQUFTO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFVBQVUsVUFBVSxFQUFFLElBQUksRUFBRTtZQUMxRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLFNBQWlCLEVBQUUsSUFBUztRQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWSxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDeEUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGFBQWEsQ0FBQyxTQUFpQjtRQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWSxTQUFTLEVBQUUsRUFBRTtZQUNyRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsVUFBVTtJQUNWLFVBQVUsQ0FBQyxVQUFrQixFQUFFLElBQVM7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBQzNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxVQUFrQixFQUFFLElBQVM7UUFDNUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxpQkFBaUIsRUFBRSxJQUFJLEVBQUU7WUFDakYsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFlBQVksQ0FBQyxVQUFrQjtRQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFdBQVcsRUFBRTtZQUNwRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLFNBQWlCLEVBQUUsSUFBUztRQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsYUFBYSxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDekUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGFBQWEsQ0FBQyxTQUFpQjtRQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsYUFBYSxTQUFTLEVBQUUsRUFBRTtZQUN0RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsU0FBaUIsRUFBRSxJQUFjO1FBQ2xELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxhQUFhLFNBQVMsUUFBUSxFQUFFLElBQUksRUFBRTtZQUNoRixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsU0FBaUIsRUFBRSxPQUFlO1FBQ25ELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxhQUFhLFNBQVMsVUFBVSxPQUFPLEVBQUUsRUFBRTtZQUN2RixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsU0FBUyxDQUFDLFVBQWtCLEVBQUUsSUFBUztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFVBQVUsRUFBRSxJQUFJLEVBQUU7WUFDMUUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVcsQ0FBQyxVQUFrQjtRQUM1QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFDRCxZQUFZLENBQUMsUUFBZ0IsRUFBRSxJQUFTO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxZQUFZLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRTtZQUN2RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsWUFBWSxDQUFDLFFBQWdCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxZQUFZLFFBQVEsRUFBRSxFQUFFO1lBQ3BFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXO0lBQ1gsa0JBQWtCLENBQUMsVUFBa0IsRUFBRSxNQUFlO1FBQ3BELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLHVCQUF1QixNQUFNLEVBQUUsRUFDOUQsRUFBRSxFQUNGO1lBQ0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELGNBQWMsQ0FBQyxVQUFrQixFQUFFLElBQVM7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBQzNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxVQUFVLENBQUMsU0FBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBQ0QsWUFBWSxDQUFDLFVBQWtCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFVBQVUsV0FBVyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUNELGlCQUFpQixDQUFDLEdBQWtCO1FBQ2xDLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsY0FBYyxFQUFFO1lBQ3pELE1BQU0sRUFBRSxNQUFNO1lBQ2QsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGNBQWMsQ0FBQyxVQUFrQixFQUFFLElBQVM7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBQzFFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxTQUFpQixFQUFFLElBQWM7UUFDbEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsU0FBUyxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQ2hGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxTQUFpQixFQUFFLE9BQWU7UUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsU0FBUyxVQUFVLE9BQU8sRUFBRSxFQUFFO1lBQ3ZGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxPQUFZO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxtQkFBbUIsRUFBRTtZQUM5QyxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDRCxJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDaEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtZQUM5RSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQy9DLEdBQUcsQ0FBQyxDQUFDLFVBQWUsRUFBRSxFQUFFO2dCQUN0QixHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO29CQUM5QixNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztvQkFDMUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQztnQkFDbkMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxPQUFZO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxvQkFBb0IsRUFBRTtZQUMvQyxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDRCxJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDaEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtZQUM5RSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQy9DLEdBQUcsQ0FBQyxDQUFDLFVBQWUsRUFBRSxFQUFFO2dCQUN0QixHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO29CQUM5QixNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztvQkFDMUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQztnQkFDbkMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFDRCxjQUFjLENBQUMsVUFBa0IsRUFBRSxJQUFTO1FBQzFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFVBQVUsV0FBVyxFQUFFLElBQUksRUFBRTtZQUMzRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsY0FBYyxDQUFDLFNBQWlCLEVBQUUsTUFBYztRQUM5QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsU0FBUyxtQkFBbUIsTUFBTSxFQUFFLEVBQ2xFLEVBQUUsRUFDRjtZQUNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxVQUFVLENBQUMsU0FBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsU0FBUyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBQ0QsYUFBYSxDQUFDLEVBQVU7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsR0FBRyxJQUFJLENBQUMsU0FBUyxhQUFhLEVBQUUsU0FBUyxFQUN6QyxFQUFFLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsU0FBUyxDQUFDLFVBQWtCLEVBQUUsSUFBUztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFNBQVMsRUFBRSxJQUFJLEVBQUU7WUFDekUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVUsQ0FBQyxPQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxTQUFTLEVBQUU7WUFDcEMsTUFBTSxFQUFFLE9BQU87WUFDZixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDO2FBQ0QsSUFBSSxDQUNILFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2hCLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUI7WUFDOUUsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUMvQyxHQUFHLENBQUMsQ0FBQyxVQUFlLEVBQUUsRUFBRTtnQkFDdEIsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtvQkFDOUIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO29CQUN0RSxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxPQUFZO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxpQkFBaUIsRUFBRTtZQUM1QyxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDRCxJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDaEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtZQUM5RSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQy9DLEdBQUcsQ0FBQyxDQUFDLFVBQWUsRUFBRSxFQUFFO2dCQUN0QixHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO29CQUM5QixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7b0JBQ3RFLElBQUksQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDO2dCQUMvQixDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUNELGlCQUFpQixDQUFDLE9BQVk7UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGtCQUFrQixFQUFFO1lBQzdDLE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQzthQUNELElBQUksQ0FDSCxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNoQixNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CO1lBQzlFLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDL0MsR0FBRyxDQUFDLENBQUMsVUFBZSxFQUFFLEVBQUU7Z0JBQ3RCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7b0JBQzlCLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztvQkFDdEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxDQUFDO2dCQUNILE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBQ0QsbUJBQW1CLENBQUMsR0FBa0I7UUFDcEMsTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDN0MsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsUUFBUSxDQUFDLE9BQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFdBQVcsT0FBTyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsR0FBRyxJQUFJLENBQUMsU0FBUyxXQUFXLEVBQUUsU0FBUyxFQUN2QyxFQUFFLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsR0FBRyxJQUFJLENBQUMsU0FBUyxXQUFXLEVBQUUsU0FBUyxFQUN2QyxFQUFFLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVUsRUFBRSxJQUFTO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxXQUFXLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtZQUN2RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsNEJBQTRCLENBQUMsT0FBZSxFQUFFLElBQVM7UUFDckQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFdBQVcsT0FBTyxzQkFBc0IsRUFBRSxJQUFJLEVBQUU7WUFDMUYsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELDZCQUE2QixDQUFDLE9BQWUsRUFBRSxJQUFTO1FBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxXQUFXLE9BQU8sdUJBQXVCLEVBQUUsSUFBSSxFQUFFO1lBQzNGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCx1QkFBdUIsQ0FBQyxPQUFZLEVBQUUsU0FBaUI7UUFDckQsTUFBTSxPQUFPLEdBQUc7WUFDZCxTQUFTO1NBQ1YsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxXQUFXLE9BQU8sVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2SCxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQWU7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFdBQVcsT0FBTyxXQUFXLEVBQUU7WUFDeEUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGFBQWEsQ0FBSSxFQUFVO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsYUFBYSxFQUFFLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUNELFlBQVksQ0FBSSxFQUFVO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUNELGNBQWMsQ0FBSSxFQUFVLEVBQUUsSUFBUztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBQ0QsY0FBYyxDQUFJLEVBQVUsRUFBRSxJQUFTO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFDRCxXQUFXLENBQUksRUFBVSxFQUFFLElBQVM7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUNELFNBQVM7SUFDVCxTQUFTLENBQUksRUFBVTtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFDRCxRQUFRLENBQUksRUFBVSxFQUFFLElBQVM7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUNELFdBQVcsQ0FBSSxFQUFVLEVBQUUsT0FBZSxFQUFFLElBQVM7UUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxXQUFXLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFDRCxXQUFXLENBQUksRUFBVSxFQUFFLE9BQWU7UUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxXQUFXLE9BQU8sRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDckcsQ0FBQztJQUNELG9CQUFvQixDQUFDLE9BQVksRUFBRSxJQUFjO1FBQy9DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxXQUFXLE9BQU8sWUFBWSxFQUFFLElBQUksRUFBRTtZQUMzRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVTtJQUNWLFdBQVcsQ0FBSSxPQUFZO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxVQUFVLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFDRCxTQUFTLENBQUksRUFBVTtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWSxFQUFFLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFDRCxZQUFZLENBQUksSUFBUztRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsVUFBVSxFQUFFLElBQUksRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFDRCxZQUFZLENBQUksRUFBVSxFQUFFLElBQVM7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLFlBQVksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUNELFlBQVksQ0FBSSxFQUFVO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxZQUFZLEVBQUUsRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELEtBQUs7SUFDTCxnQkFBZ0IsQ0FBQyxVQUFrQixFQUFFLElBQVM7UUFDNUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxjQUFjLEVBQUUsSUFBSSxFQUFFO1lBQzlFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCwyQkFBMkIsQ0FBQyxVQUFrQixFQUFFLElBQWM7UUFDNUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxlQUFlLEVBQUUsSUFBSSxFQUFFO1lBQy9FLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxPQUFlLEVBQUUsSUFBUztRQUMzQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxPQUFPLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDM0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELHFCQUFxQixDQUFDLFVBQWtCLEVBQUUsSUFBUztRQUNqRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFNBQVMsRUFBRSxJQUFJLEVBQUU7WUFDekUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELG1CQUFtQixDQUFDLFVBQWtCLEVBQUUsT0FBWTtRQUNsRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFdBQVcsT0FBTyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxRyxDQUFDO0lBQ0QsNEJBQTRCLENBQUMsT0FBWSxFQUFFLElBQWM7UUFDdkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLFdBQVcsT0FBTyxZQUFZLEVBQUUsSUFBSSxFQUFFO1lBQzNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNO0lBQ04sTUFBTSxDQUFJLEVBQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBQ0QsTUFBTSxDQUFJLEVBQVUsRUFBRSxJQUFTO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFDRCxTQUFTLENBQUksRUFBVSxFQUFFLElBQVM7UUFDaEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUNELFNBQVMsQ0FBSSxFQUFVO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkYsQ0FBQzt1R0FwZlUsZUFBZTsyR0FBZixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAncHJvcGVydGllcyc7XG4gICAgc3VwZXIuaW5pdCgpO1xuICB9XG5cbiAgbWUob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9tZWAsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kQnlJZHMoaWRzOiBBcnJheTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB7IGlkczogaWRzLmpvaW4oJywnKSB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2J5YCwge1xuICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgcHVibGlzaChwcm9wZXJ0eUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vcHVibGlzaGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHN1Ym1pdEZvclJldmlldyhwcm9wZXJ0eUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vcmV2aWV3YCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbiAgcmV2aWV3QXBwcm92ZShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9yZXZpZXdzL2FwcHJvdmVgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICByZXZpZXdSZWplY3QoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vcmV2aWV3cy9hY2NlcHRgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZXhwb3J0KCk6IE9ic2VydmFibGU8eyBibG9iOiBCbG9iOyBmaWxlbmFtZTogc3RyaW5nIH0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vZXhwb3J0YCwge1xuICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgocmVzcDogSHR0cFJlc3BvbnNlPEJsb2I+KSA9PiB7XG4gICAgICAgIGNvbnN0IGNkID0gcmVzcC5oZWFkZXJzLmdldCgnQ29udGVudC1EaXNwb3NpdGlvbicpIHx8ICcnO1xuICAgICAgICBjb25zdCBtYXRjaCA9IC9maWxlbmFtZVxcKj89KD86VVRGLTgnJ3xcIik/KFteXCI7XSspL2kuZXhlYyhjZCk7XG4gICAgICAgIGNvbnN0IHJhdyA9IG1hdGNoPy5bMV0gPz8gJ3Byb3BlcnRpZXMuY3N2JztcbiAgICAgICAgLy8gZGVjb2RlIFJGQzU5ODcgZmlsZW5hbWVzXG4gICAgICAgIGNvbnN0IGZpbGVuYW1lID0gZGVjb2RlVVJJQ29tcG9uZW50KHJhdy5yZXBsYWNlKC9cIi9nLCAnJykpO1xuICAgICAgICByZXR1cm4geyBibG9iOiByZXNwLmJvZHkgYXMgQmxvYiwgZmlsZW5hbWUgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuICBhcmNoaXZlZChwcm9wZXJ0eUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vYXJjaGl2ZWRgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICBmaW5kV2lzaGxpc3Qob3B0aW9uczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hY3Rpb25Vcmx9L3dpc2hsaXN0YCwgeyBwYXJhbXM6IG9wdGlvbnMsIHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBhZGRUb1dpc2hsaXN0KHByb3BlcnR5SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS93aXNobGlzdGAsIHt9LCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICByZW1vdmVGcm9tV2lzaGxpc3QocHJvcGVydHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vd2lzaGxpc3RgLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICB3aXNoTGlzdENoZWNrKHByb3BlcnR5SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3dpc2hsaXN0L2NoZWNrYCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgZmluZFB1cmNoYXNlZEJ5UHJvcGVydHlJZChwcm9wZXJ0eUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vdXNlcnMvbWUvYnk/cHJvcGVydHlJZD0ke3Byb3BlcnR5SWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIC8vIE1lZGlhXG4gIHVwbG9hZE1lZGlhKHByb3BlcnR5SWQ6IHN0cmluZywgZGF0YTogRm9ybURhdGEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L21lZGlhYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZU1lZGlhKGlkOiBzdHJpbmcsIG1lZGlhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vbWVkaWEvJHttZWRpYUlkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICAvLyBQcmljaW5nXG4gIGFkZFByaWNpbmcocHJvcGVydHlJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3ByaWNpbmdgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBkYXRlUHJpY2luZyhwcmljaW5nSWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9wcmljaW5nLyR7cHJpY2luZ0lkfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVQcmljaW5nKHByaWNpbmdJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9wcmljaW5nLyR7cHJpY2luZ0lkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICAvLyBTZWN0aW9uXG4gIGFkZFNlY3Rpb24ocHJvcGVydHlJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3NlY3Rpb25zYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGFkZEJhdGNoU2VjdGlvbnMocHJvcGVydHlJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3NlY3Rpb25zL2JhdGNoYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRTZWN0aW9ucyhwcm9wZXJ0eUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vc2VjdGlvbnNgLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBkYXRlU2VjdGlvbihzZWN0aW9uSWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9zZWN0aW9ucy8ke3NlY3Rpb25JZH1gLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlU2VjdGlvbihzZWN0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vc2VjdGlvbnMvJHtzZWN0aW9uSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwbG9hZFNlY3Rpb25NZWRpYShzZWN0aW9uSWQ6IHN0cmluZywgZGF0YTogRm9ybURhdGEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9zZWN0aW9ucy8ke3NlY3Rpb25JZH0vbWVkaWFgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlU2VjdGlvbk1lZGlhKHNlY3Rpb25JZDogc3RyaW5nLCBtZWRpYUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3NlY3Rpb25zLyR7c2VjdGlvbklkfS9tZWRpYS8ke21lZGlhSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGFkZE9wdGlvbihwcm9wZXJ0eUlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vb3B0aW9uc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kT3B0aW9ucyhwcm9wZXJ0eUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vb3B0aW9uc2ApO1xuICB9XG4gIHVwZGF0ZU9wdGlvbihvcHRpb25JZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L29wdGlvbnMvJHtvcHRpb25JZH1gLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlT3B0aW9uKG9wdGlvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L29wdGlvbnMvJHtvcHRpb25JZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgLy8gdmFyaWFudHNcbiAgdXBkYXRlVmFyaWFudFByaWNlKHByb3BlcnR5SWQ6IHN0cmluZywgc3RhdHVzOiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vdmFyaWFudHMvYnk/c3RhdHVzPSR7c3RhdHVzfWAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIGNyZWF0ZVZhcmlhbnRzKHByb3BlcnR5SWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS92YXJpYW50c2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBnZXRWYXJpYW50KHZhcmlhbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS92YXJpYW50cy8ke3ZhcmlhbnRJZH1gKTtcbiAgfVxuICBmaW5kVmFyaWFudHMocHJvcGVydHlJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3ZhcmlhbnRzYCk7XG4gIH1cbiAgZmluZFZhcmlhbnRzQnlJZHMoaWRzOiBBcnJheTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB7IGlkczogaWRzLmpvaW4oJywnKSB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ZhcmlhbnRzL2J5YCwge1xuICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBkYXRlVmFyaWFudHMocHJvcGVydHlJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vdmFyaWFudHNgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBsb2FkVmFyaWFudE1lZGlhKHZhcmlhbnRJZDogc3RyaW5nLCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ZhcmlhbnRzLyR7dmFyaWFudElkfS9tZWRpYWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVWYXJpYW50TWVkaWEodmFyaWFudElkOiBzdHJpbmcsIG1lZGlhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vdmFyaWFudHMvJHt2YXJpYW50SWR9L21lZGlhLyR7bWVkaWFJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZmluZFZpZXdpbmdzQnlVc2VyKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS92aWV3aW5ncy9ieS91c2VyYCwge1xuICAgICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChyZXMpID0+IHtcbiAgICAgICAgICBjb25zdCBwcm9wZXJ0eUlkcyA9IF8udW5pcShfLm1hcChyZXMuZGF0YSwgJ3Byb3BlcnR5SWQnKSk7IC8vIFsxMiwgMTQsIDE2LCAxOF1cbiAgICAgICAgICByZXR1cm4gdGhpcy5maW5kUHJvcGVydGllc0J5SWRzKHByb3BlcnR5SWRzKS5waXBlKFxuICAgICAgICAgICAgbWFwKChwcm9wZXJ0aWVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmVzLmRhdGE/LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nUHJvcGVydHkgPSBfLmZpbmQocHJvcGVydGllcy5kYXRhLCB7IGlkOiBpdGVtLnByb3BlcnR5SWQgfSk7XG4gICAgICAgICAgICAgICAgaXRlbS5wcm9wZXJ0eSA9IG1hdGNoaW5nUHJvcGVydHk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG4gIGZpbmRWaWV3aW5nc0J5QWdlbnQob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ZpZXdpbmdzL2J5L2FnZW50YCwge1xuICAgICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChyZXMpID0+IHtcbiAgICAgICAgICBjb25zdCBwcm9wZXJ0eUlkcyA9IF8udW5pcShfLm1hcChyZXMuZGF0YSwgJ3Byb3BlcnR5SWQnKSk7IC8vIFsxMiwgMTQsIDE2LCAxOF1cbiAgICAgICAgICByZXR1cm4gdGhpcy5maW5kUHJvcGVydGllc0J5SWRzKHByb3BlcnR5SWRzKS5waXBlKFxuICAgICAgICAgICAgbWFwKChwcm9wZXJ0aWVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmVzLmRhdGE/LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nUHJvcGVydHkgPSBfLmZpbmQocHJvcGVydGllcy5kYXRhLCB7IGlkOiBpdGVtLnByb3BlcnR5SWQgfSk7XG4gICAgICAgICAgICAgICAgaXRlbS5wcm9wZXJ0eSA9IG1hdGNoaW5nUHJvcGVydHk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG4gIHJlcXVlc3RWaWV3aW5nKHByb3BlcnR5SWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS92aWV3aW5nc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBjb25maXJtVmlld2luZyh2aWV3aW5nSWQ6IHN0cmluZywgc2xvdElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9L3ZpZXdpbmdzLyR7dmlld2luZ0lkfS9jb25maXJtP3Nsb3RJZD0ke3Nsb3RJZH1gLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICBnZXRWaWV3aW5nKHZpZXdpbmdJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS92aWV3aW5ncy8ke3ZpZXdpbmdJZH1gLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBjYW5jZWxWaWV3aW5nKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9L3ZpZXdpbmdzLyR7aWR9L2NhbmNlbGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIG1ha2VPZmZlcihwcm9wZXJ0eUlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vb2ZmZXJzYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRPZmZlcnMob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L29mZmVyc2AsIHtcbiAgICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJvcGVydHlJZHMgPSBfLnVuaXEoXy5tYXAocmVzLmRhdGEsICdwcm9wZXJ0eUlkJykpOyAvLyBbMTIsIDE0LCAxNiwgMThdXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmluZFByb3BlcnRpZXNCeUlkcyhwcm9wZXJ0eUlkcykucGlwZShcbiAgICAgICAgICAgIG1hcCgocHJvcGVydGllczogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHJlcy5kYXRhPy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ1VzZXIgPSBfLmZpbmQocHJvcGVydGllcy5kYXRhLCB7IGlkOiBpdGVtLnByb3BlcnR5SWQgfSk7XG4gICAgICAgICAgICAgICAgaXRlbS5wcm9wZXJ0eSA9IG1hdGNoaW5nVXNlcjtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cbiAgZmluZE9mZmVyc0J5VXNlcihvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vb2ZmZXJzL2J5L3VzZXJgLCB7XG4gICAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHJlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb3BlcnR5SWRzID0gXy51bmlxKF8ubWFwKHJlcy5kYXRhLCAncHJvcGVydHlJZCcpKTsgLy8gWzEyLCAxNCwgMTYsIDE4XVxuICAgICAgICAgIHJldHVybiB0aGlzLmZpbmRQcm9wZXJ0aWVzQnlJZHMocHJvcGVydHlJZHMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHByb3BlcnRpZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICByZXMuZGF0YT8uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdVc2VyID0gXy5maW5kKHByb3BlcnRpZXMuZGF0YSwgeyBpZDogaXRlbS5wcm9wZXJ0eUlkIH0pO1xuICAgICAgICAgICAgICAgIGl0ZW0ucHJvcGVydHkgPSBtYXRjaGluZ1VzZXI7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG4gIGZpbmRPZmZlcnNCeUFnZW50KG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9vZmZlcnMvYnkvYWdlbnRgLCB7XG4gICAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHJlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb3BlcnR5SWRzID0gXy51bmlxKF8ubWFwKHJlcy5kYXRhLCAncHJvcGVydHlJZCcpKTsgLy8gWzEyLCAxNCwgMTYsIDE4XVxuICAgICAgICAgIHJldHVybiB0aGlzLmZpbmRQcm9wZXJ0aWVzQnlJZHMocHJvcGVydHlJZHMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHByb3BlcnRpZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICByZXMuZGF0YT8uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdVc2VyID0gXy5maW5kKHByb3BlcnRpZXMuZGF0YSwgeyBpZDogaXRlbS5wcm9wZXJ0eUlkIH0pO1xuICAgICAgICAgICAgICAgIGl0ZW0ucHJvcGVydHkgPSBtYXRjaGluZ1VzZXI7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG4gIGZpbmRQcm9wZXJ0aWVzQnlJZHMoaWRzOiBBcnJheTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB7IGlkczogaWRzLmpvaW4oJywnKSB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9YCwge1xuICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgfSk7XG4gIH1cbiAgZ2V0T2ZmZXIob2ZmZXJJZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9vZmZlcnMvJHtvZmZlcklkfWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGNhbmNlbE9mZmVyKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9L29mZmVycy8ke2lkfS9jYW5jZWxgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICBhY2NlcHRPZmZlcihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9L29mZmVycy8ke2lkfS9hY2NlcHRgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICByZWplY3RPZmZlcihpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L29mZmVycy8ke2lkfS9yZWplY3RgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGVIb2xkaW5nRGVwb3NpdENoZWNrb3V0KG9mZmVySWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vb2ZmZXJzLyR7b2ZmZXJJZH0vcGF5L2hvbGRpbmctZGVwb3NpdGAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBjcmVhdGVTZWN1cml0eURlcG9zaXRDaGVja291dChvZmZlcklkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L29mZmVycy8ke29mZmVySWR9L3BheS9zZWN1cml0eS1kZXBvc2l0YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGNoZWNrT2ZmZXJQYXltZW50U3RhdHVzKG9mZmVySWQ6IGFueSwgc2Vzc2lvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBzZXNzaW9uSWQsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9vZmZlcnMvJHtvZmZlcklkfS9zZXNzaW9uYCwgeyBwYXJhbXM6IG9wdGlvbnMsIHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuXG4gIG9mZmVyVGltZWxpbmUob2ZmZXJJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9vZmZlcnMvJHtvZmZlcklkfS90aW1lbGluZWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBnZXRIaWdobGlnaHRzPFQ+KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vaGlnaGxpZ2h0c2AsIHsgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSB9KTtcbiAgfVxuICBmaW5kRmVhdHVyZXM8VD4oaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9mZWF0dXJlc2AsIHsgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSB9KTtcbiAgfVxuICB1cGRhdGVGZWF0dXJlczxUPihpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2ZlYXR1cmVzYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgdXBkYXRlTG9jYXRpb248VD4oaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9sb2NhdGlvbmAsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIHVwZGF0ZUFnZW50PFQ+KGlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vYWdlbnRzYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgLy8gVmlkZW9zXG4gIGdldFZpZGVvczxUPihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3ZpZGVvc2AsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGFkZFZpZGVvPFQ+KGlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vdmlkZW9zYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgdXBkYXRlVmlkZW88VD4oaWQ6IHN0cmluZywgdmlkZW9JZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUPihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vdmlkZW9zLyR7dmlkZW9JZH1gLCBkYXRhLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBkZWxldGVWaWRlbzxUPihpZDogc3RyaW5nLCB2aWRlb0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxUPihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vdmlkZW9zLyR7dmlkZW9JZH1gLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICB1cGxvYWRWaWRlb1RodW1ibmFpbCh2aWRlb0lkOiBhbnksIGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hY3Rpb25Vcmx9L3ZpZGVvcy8ke3ZpZGVvSWR9L3RodW1ibmFpbGAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFRlbmFudHNcbiAgZmluZFRlbmFudHM8VD4ob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9L3RlbmFudHNgLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSwgcGFyYW1zOiBvcHRpb25zLCB9KTtcbiAgfVxuICBnZXRUZW5hbnQ8VD4oaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KGAke3RoaXMuYWN0aW9uVXJsfS90ZW5hbnRzLyR7aWR9YCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgY3JlYXRlVGVuYW50PFQ+KGRhdGE6IGFueSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPihgJHt0aGlzLmFjdGlvblVybH0vdGVuYW50c2AsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIHVwZGF0ZVRlbmFudDxUPihpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUPihgJHt0aGlzLmFjdGlvblVybH0vdGVuYW50cy8ke2lkfWAsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGRlbGV0ZVRlbmFudDxUPihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9L3RlbmFudHMvJHtpZH1gLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8vQ09TXG4gIHVwbG9hZFZpZGVvc0luaXQocHJvcGVydHlJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3ZpZGVvcy9pbml0YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwbG9hZFZpZGVvc1BhcnRzVG9Qcm9wZXJ0eShwcm9wZXJ0eUlkOiBzdHJpbmcsIGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS92aWRlb3MvcGFydHNgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgY29tcGxldGVQYXJ0VXBsb2FkKHZpZGVvSWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS92aWRlb3MvJHt2aWRlb0lkfS9wYXJ0c2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGxvYWRWaWRlb1RvUHJvcGVydHkocHJvcGVydHlJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3ZpZGVvc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVQcm9wZXJ0eVZpZGVvKHByb3BlcnR5SWQ6IHN0cmluZywgdmlkZW9JZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS92aWRlb3MvJHt2aWRlb0lkfWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIHVwbG9hZFByb3BlcnR5VmlkZW9UaHVtYm5haWwodmlkZW9JZDogYW55LCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYWN0aW9uVXJsfS92aWRlb3MvJHt2aWRlb0lkfS90aHVtYm5haWxgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgLy8gZXBjXG4gIGdldEVwYzxUPihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2VwY2AsIHsgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSB9KTtcbiAgfVxuICBhZGRFcGM8VD4oaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9lcGNgLCBkYXRhLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICB1cGRhdGVFcGM8VD4oaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2VwY2AsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGRlbGV0ZUVwYzxUPihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2VwY2AsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class FeatureService extends BaseService {\n init() {\n this.endpoint = 'properties/features';\n super.init();\n }\n addFeature(data) {\n return this.http.post(`${this.actionUrl}`, data, {\n withCredentials: true,\n });\n }\n updateFeature(featureId, data) {\n return this.http.put(`${this.actionUrl}/${featureId}`, data, {\n withCredentials: true,\n });\n }\n deleteFeature(featureId) {\n return this.http.delete(`${this.actionUrl}/${featureId}`, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FeatureService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FeatureService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: FeatureService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL2ZlYXR1cmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFNN0MsTUFBTSxPQUFPLGNBQWUsU0FBUSxXQUFXO0lBQ3BDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLHFCQUFxQixDQUFDO1FBQ3RDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFDRCxVQUFVLENBQUMsSUFBUztRQUNsQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRTtZQUNwRCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLFNBQWlCLEVBQUUsSUFBUztRQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDaEUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGFBQWEsQ0FBQyxTQUFpQjtRQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTLEVBQUUsRUFBRTtZQUM3RCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQW5CVSxjQUFjOzJHQUFkLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZVNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIG92ZXJyaWRlIGluaXQoKSB7XG4gICAgdGhpcy5lbmRwb2ludCA9ICdwcm9wZXJ0aWVzL2ZlYXR1cmVzJztcbiAgICBzdXBlci5pbml0KCk7XG4gIH1cbiAgYWRkRmVhdHVyZShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVGZWF0dXJlKGZlYXR1cmVJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7ZmVhdHVyZUlkfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVGZWF0dXJlKGZlYXR1cmVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2ZlYXR1cmVJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class PaymentService extends BaseService {\n init() {\n this.endpoint = 'payments';\n super.init();\n }\n createPaymentIntent(data) {\n return this.http.post(`${this.actionUrl}/intents`, data, {\n withCredentials: true,\n });\n }\n createPayment(data) {\n return this.http.post(`${this.actionUrl}`, data, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PaymentService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PaymentService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PaymentService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL3BheW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLN0MsTUFBTSxPQUFPLGNBQWUsU0FBUSxXQUFXO0lBQ3BDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsbUJBQW1CLENBQUMsSUFBUztRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsVUFBVSxFQUFFLElBQUksRUFBRTtZQUM1RCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLElBQVM7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDcEQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FkVSxjQUFjOzJHQUFkLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGF5bWVudFNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIG92ZXJyaWRlIGluaXQoKSB7XG4gICAgdGhpcy5lbmRwb2ludCA9ICdwYXltZW50cyc7XG4gICAgc3VwZXIuaW5pdCgpO1xuICB9XG4gIGNyZWF0ZVBheW1lbnRJbnRlbnQoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vaW50ZW50c2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBjcmVhdGVQYXltZW50KGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { map, switchMap } from 'rxjs';\nimport { BaseService } from './base.service';\nimport _ from 'lodash';\nimport * as i0 from \"@angular/core\";\nexport class OfferingService extends BaseService {\n init() {\n this.endpoint = 'offerings';\n super.init();\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n findByIds(ids) {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}/by`, {\n params: params,\n withCredentials: true,\n });\n }\n publish(propertyId) {\n return this.http.post(`${this.actionUrl}/${propertyId}/publish`, {}, {\n withCredentials: true,\n });\n }\n submitForReview(propertyId) {\n return this.http.post(`${this.actionUrl}/${propertyId}/review`, {}, {\n withCredentials: true,\n });\n }\n reviewApprove(id) {\n return this.http.post(`${this.actionUrl}/${id}/reviews/approve`, {}, {\n withCredentials: true,\n });\n }\n reviewReject(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/reviews/accept`, data, {\n withCredentials: true,\n });\n }\n archived(propertyId) {\n return this.http.post(`${this.actionUrl}/${propertyId}/archived`, {}, {\n withCredentials: true,\n });\n }\n findWishlist(options) {\n return this.http.get(`${this.actionUrl}/wishlist`, { params: options, withCredentials: true });\n }\n addToWishlist(propertyId) {\n return this.http.post(`${this.actionUrl}/${propertyId}/wishlist`, {}, { withCredentials: true });\n }\n removeFromWishlist(propertyId) {\n return this.http.delete(`${this.actionUrl}/${propertyId}/wishlist`, { withCredentials: true });\n }\n wishListCheck(propertyId) {\n return this.http.get(`${this.actionUrl}/${propertyId}/wishlist/check`, { withCredentials: true });\n }\n findPurchasedByPropertyId(propertyId) {\n return this.http.get(`${this.actionUrl}/users/me/by?propertyId=${propertyId}`, {\n withCredentials: true,\n });\n }\n // Media\n uploadMedia(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id, mediaId) {\n return this.http.delete(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n // Pricing\n addPricing(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/pricing`, data, {\n withCredentials: true,\n });\n }\n updatePricing(pricingId, data) {\n return this.http.put(`${this.actionUrl}/pricing/${pricingId}`, data, {\n withCredentials: true,\n });\n }\n deletePricing(pricingId) {\n return this.http.delete(`${this.actionUrl}/pricing/${pricingId}`, {\n withCredentials: true,\n });\n }\n // Section\n addSection(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/sections`, data, {\n withCredentials: true,\n });\n }\n addBatchSections(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/sections/batch`, data, {\n withCredentials: true,\n });\n }\n findSections(propertyId) {\n return this.http.get(`${this.actionUrl}/${propertyId}/sections`, {\n withCredentials: true,\n });\n }\n updateSection(sectionId, data) {\n return this.http.put(`${this.actionUrl}/sections/${sectionId}`, data, {\n withCredentials: true,\n });\n }\n deleteSection(sectionId) {\n return this.http.delete(`${this.actionUrl}/sections/${sectionId}`, {\n withCredentials: true,\n });\n }\n uploadSectionMedia(sectionId, data) {\n return this.http.post(`${this.actionUrl}/sections/${sectionId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteSectionMedia(sectionId, mediaId) {\n return this.http.delete(`${this.actionUrl}/sections/${sectionId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n addOption(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/options`, data, {\n withCredentials: true,\n });\n }\n findOptions(propertyId) {\n return this.http.get(`${this.actionUrl}/${propertyId}/options`);\n }\n updateOption(optionId, data) {\n return this.http.put(`${this.actionUrl}/options/${optionId}`, data, {\n withCredentials: true,\n });\n }\n deleteOption(optionId) {\n return this.http.delete(`${this.actionUrl}/options/${optionId}`, {\n withCredentials: true,\n });\n }\n // variants\n updateVariantPrice(propertyId, status) {\n return this.http.put(`${this.actionUrl}/${propertyId}/variants/by?status=${status}`, {}, {\n withCredentials: true,\n });\n }\n createVariants(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/variants`, data, {\n withCredentials: true,\n });\n }\n getVariant(variantId) {\n return this.http.get(`${this.actionUrl}/variants/${variantId}`);\n }\n findVariants(propertyId) {\n return this.http.get(`${this.actionUrl}/${propertyId}/variants`);\n }\n findVariantsByIds(ids) {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}/variants/by`, {\n params: params,\n withCredentials: true,\n });\n }\n updateVariants(propertyId, data) {\n return this.http.put(`${this.actionUrl}/${propertyId}/variants`, data, {\n withCredentials: true,\n });\n }\n uploadVariantMedia(variantId, data) {\n return this.http.post(`${this.actionUrl}/variants/${variantId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteVariantMedia(variantId, mediaId) {\n return this.http.delete(`${this.actionUrl}/variants/${variantId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n findViewingsByUser(options) {\n return this.http\n .get(`${this.actionUrl}/viewings/by/user`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingProperty = _.find(properties.data, { id: item.propertyId });\n item.property = matchingProperty;\n });\n return res;\n }));\n }));\n }\n findViewingsByAgent(options) {\n return this.http\n .get(`${this.actionUrl}/viewings/by/agent`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingProperty = _.find(properties.data, { id: item.propertyId });\n item.property = matchingProperty;\n });\n return res;\n }));\n }));\n }\n requestViewing(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/viewings`, data, {\n withCredentials: true,\n });\n }\n confirmViewing(viewingId, slotId) {\n return this.http.post(`${this.actionUrl}/viewings/${viewingId}/confirm?slotId=${slotId}`, {}, {\n withCredentials: true,\n });\n }\n getViewing(viewingId) {\n return this.http.get(`${this.actionUrl}/viewings/${viewingId}`, { withCredentials: true });\n }\n cancelViewing(id) {\n return this.http.post(`${this.actionUrl}/viewings/${id}/cancel`, {}, {\n withCredentials: true,\n });\n }\n makeOffer(propertyId, data) {\n return this.http.post(`${this.actionUrl}/${propertyId}/offers`, data, {\n withCredentials: true,\n });\n }\n findOffers(options) {\n return this.http\n .get(`${this.actionUrl}/offers`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }));\n }));\n }\n findOffersByUser(options) {\n return this.http\n .get(`${this.actionUrl}/offers/by/user`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }));\n }));\n }\n findOffersByAgent(options) {\n return this.http\n .get(`${this.actionUrl}/offers/by/agent`, {\n params: options,\n withCredentials: true,\n })\n .pipe(switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(map((properties) => {\n res.data?.forEach((item) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }));\n }));\n }\n findPropertiesByIds(ids) {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}`, {\n params: params,\n });\n }\n getOffer(offerId) {\n return this.http.get(`${this.actionUrl}/offers/${offerId}`, { withCredentials: true });\n }\n cancelOffer(id) {\n return this.http.post(`${this.actionUrl}/offers/${id}/cancel`, {}, {\n withCredentials: true,\n });\n }\n acceptOffer(id) {\n return this.http.put(`${this.actionUrl}/offers/${id}/accept`, {}, {\n withCredentials: true,\n });\n }\n rejectOffer(id, data) {\n return this.http.put(`${this.actionUrl}/offers/${id}/reject`, data, {\n withCredentials: true,\n });\n }\n createHoldingDepositCheckout(offerId, data) {\n return this.http.post(`${this.actionUrl}/offers/${offerId}/pay/holding-deposit`, data, {\n withCredentials: true,\n });\n }\n createSecurityDepositCheckout(offerId, data) {\n return this.http.post(`${this.actionUrl}/offers/${offerId}/pay/security-deposit`, data, {\n withCredentials: true,\n });\n }\n checkOfferPaymentStatus(offerId, sessionId) {\n const options = {\n sessionId,\n };\n return this.http.get(`${this.actionUrl}/offers/${offerId}/session`, { params: options, withCredentials: true });\n }\n offerTimeline(offerId) {\n return this.http.get(`${this.actionUrl}/offers/${offerId}/timeline`, {\n withCredentials: true,\n });\n }\n findFeatures(id) {\n return this.http.get(`${this.actionUrl}/${id}/features`, { withCredentials: false });\n }\n updateFeatures(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/features`, data, { withCredentials: true });\n }\n updateLocation(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/location`, data, { withCredentials: true });\n }\n // Videos\n getVideos(id) {\n return this.http.get(`${this.actionUrl}/${id}/videos`, { withCredentials: true });\n }\n addVideo(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/videos`, data, { withCredentials: true });\n }\n updateVideo(id, data) {\n return this.http.put(`${this.actionUrl}/${id}/videos`, data, { withCredentials: true });\n }\n deleteVideo(id, videoId, y) {\n return this.http.delete(`${this.actionUrl}/${id}/videos/${videoId}`, { withCredentials: true });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: OfferingService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: OfferingService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: OfferingService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmZXJpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9vZmZlcmluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7QUFLdkIsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBVztJQUNyQyxJQUFJO1FBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7UUFDNUIsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELEVBQUUsQ0FBQyxPQUFZO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRTtZQUNoRCxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxTQUFTLENBQUMsR0FBa0I7UUFDMUIsTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUU7WUFDaEQsTUFBTSxFQUFFLE1BQU07WUFDZCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxDQUFDLFVBQWtCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFVBQVUsRUFDekMsRUFBRSxFQUNGO1lBQ0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELGVBQWUsQ0FBQyxVQUFrQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxTQUFTLEVBQ3hDLEVBQUUsRUFDRjtZQUNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxhQUFhLENBQUMsRUFBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxrQkFBa0IsRUFDekMsRUFBRSxFQUNGO1lBQ0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELFlBQVksQ0FBQyxFQUFVLEVBQUUsSUFBUztRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRTtZQUN6RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsUUFBUSxDQUFDLFVBQWtCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFdBQVcsRUFDMUMsRUFBRSxFQUNGO1lBQ0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELFlBQVksQ0FBQyxPQUFZO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFDRCxhQUFhLENBQUMsVUFBa0I7UUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUNELGtCQUFrQixDQUFDLFVBQWtCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFVBQVUsV0FBVyxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUNELGFBQWEsQ0FBQyxVQUFrQjtRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLGlCQUFpQixFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUNELHlCQUF5QixDQUFDLFVBQWtCO1FBQzFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUywyQkFBMkIsVUFBVSxFQUFFLEVBQUU7WUFDN0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVE7SUFDUixXQUFXLENBQUMsVUFBa0IsRUFBRSxJQUFjO1FBQzVDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFVBQVUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUN4RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVUsRUFBRSxPQUFlO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsVUFBVSxPQUFPLEVBQUUsRUFBRTtZQUN2RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsVUFBVTtJQUNWLFVBQVUsQ0FBQyxVQUFrQixFQUFFLElBQVM7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxVQUFVLEVBQUUsSUFBSSxFQUFFO1lBQzFFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxhQUFhLENBQUMsU0FBaUIsRUFBRSxJQUFTO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxZQUFZLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRTtZQUN4RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLFNBQWlCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxZQUFZLFNBQVMsRUFBRSxFQUFFO1lBQ3JFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxVQUFVO0lBQ1YsVUFBVSxDQUFDLFVBQWtCLEVBQUUsSUFBUztRQUN0QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFdBQVcsRUFBRSxJQUFJLEVBQUU7WUFDM0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGdCQUFnQixDQUFDLFVBQWtCLEVBQUUsSUFBUztRQUM1QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLGlCQUFpQixFQUFFLElBQUksRUFBRTtZQUNqRixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsWUFBWSxDQUFDLFVBQWtCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFVBQVUsV0FBVyxFQUFFO1lBQ3BFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxhQUFhLENBQUMsU0FBaUIsRUFBRSxJQUFTO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxhQUFhLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRTtZQUN6RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLFNBQWlCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxhQUFhLFNBQVMsRUFBRSxFQUFFO1lBQ3RFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxTQUFpQixFQUFFLElBQWM7UUFDbEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsU0FBUyxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQ2hGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxTQUFpQixFQUFFLE9BQWU7UUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsU0FBUyxVQUFVLE9BQU8sRUFBRSxFQUFFO1lBQ3ZGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxTQUFTLENBQUMsVUFBa0IsRUFBRSxJQUFTO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFVBQVUsVUFBVSxFQUFFLElBQUksRUFBRTtZQUMxRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLFVBQWtCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFVBQVUsVUFBVSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUNELFlBQVksQ0FBQyxRQUFnQixFQUFFLElBQVM7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFlBQVksUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFO1lBQ3ZFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxZQUFZLENBQUMsUUFBZ0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFlBQVksUUFBUSxFQUFFLEVBQUU7WUFDcEUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVc7SUFDWCxrQkFBa0IsQ0FBQyxVQUFrQixFQUFFLE1BQWU7UUFDcEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFVBQVUsdUJBQXVCLE1BQU0sRUFBRSxFQUM5RCxFQUFFLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsY0FBYyxDQUFDLFVBQWtCLEVBQUUsSUFBUztRQUMxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFdBQVcsRUFBRSxJQUFJLEVBQUU7WUFDM0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVUsQ0FBQyxTQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsYUFBYSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFDRCxZQUFZLENBQUMsVUFBa0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxXQUFXLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBQ0QsaUJBQWlCLENBQUMsR0FBa0I7UUFDbEMsTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxjQUFjLEVBQUU7WUFDekQsTUFBTSxFQUFFLE1BQU07WUFDZCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsY0FBYyxDQUFDLFVBQWtCLEVBQUUsSUFBUztRQUMxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLFdBQVcsRUFBRSxJQUFJLEVBQUU7WUFDMUUsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGtCQUFrQixDQUFDLFNBQWlCLEVBQUUsSUFBYztRQUNsRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsYUFBYSxTQUFTLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDaEYsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGtCQUFrQixDQUFDLFNBQWlCLEVBQUUsT0FBZTtRQUNuRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsYUFBYSxTQUFTLFVBQVUsT0FBTyxFQUFFLEVBQUU7WUFDdkYsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGtCQUFrQixDQUFDLE9BQVk7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLG1CQUFtQixFQUFFO1lBQzlDLE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQzthQUNELElBQUksQ0FDSCxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNoQixNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CO1lBQzlFLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDL0MsR0FBRyxDQUFDLENBQUMsVUFBZSxFQUFFLEVBQUU7Z0JBQ3RCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7b0JBQzlCLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO29CQUMxRSxJQUFJLENBQUMsUUFBUSxHQUFHLGdCQUFnQixDQUFDO2dCQUNuQyxDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUNELG1CQUFtQixDQUFDLE9BQVk7UUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLG9CQUFvQixFQUFFO1lBQy9DLE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQzthQUNELElBQUksQ0FDSCxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNoQixNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CO1lBQzlFLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDL0MsR0FBRyxDQUFDLENBQUMsVUFBZSxFQUFFLEVBQUU7Z0JBQ3RCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7b0JBQzlCLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO29CQUMxRSxJQUFJLENBQUMsUUFBUSxHQUFHLGdCQUFnQixDQUFDO2dCQUNuQyxDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUNELGNBQWMsQ0FBQyxVQUFrQixFQUFFLElBQVM7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBQzNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxjQUFjLENBQUMsU0FBaUIsRUFBRSxNQUFjO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLFNBQVMsYUFBYSxTQUFTLG1CQUFtQixNQUFNLEVBQUUsRUFDbEUsRUFBRSxFQUNGO1lBQ0UsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELFVBQVUsQ0FBQyxTQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsYUFBYSxTQUFTLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFDRCxhQUFhLENBQUMsRUFBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsRUFBRSxTQUFTLEVBQ3pDLEVBQUUsRUFDRjtZQUNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxTQUFTLENBQUMsVUFBa0IsRUFBRSxJQUFTO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFVBQVUsU0FBUyxFQUFFLElBQUksRUFBRTtZQUN6RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsVUFBVSxDQUFDLE9BQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFNBQVMsRUFBRTtZQUNwQyxNQUFNLEVBQUUsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDRCxJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDaEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtZQUM5RSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQy9DLEdBQUcsQ0FBQyxDQUFDLFVBQWUsRUFBRSxFQUFFO2dCQUN0QixHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO29CQUM5QixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7b0JBQ3RFLElBQUksQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDO2dCQUMvQixDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUNELGdCQUFnQixDQUFDLE9BQVk7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGlCQUFpQixFQUFFO1lBQzVDLE1BQU0sRUFBRSxPQUFPO1lBQ2YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQzthQUNELElBQUksQ0FDSCxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNoQixNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CO1lBQzlFLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDL0MsR0FBRyxDQUFDLENBQUMsVUFBZSxFQUFFLEVBQUU7Z0JBQ3RCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7b0JBQzlCLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztvQkFDdEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxDQUFDO2dCQUNILE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsT0FBWTtRQUM1QixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsa0JBQWtCLEVBQUU7WUFDN0MsTUFBTSxFQUFFLE9BQU87WUFDZixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDO2FBQ0QsSUFBSSxDQUNILFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2hCLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUI7WUFDOUUsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUMvQyxHQUFHLENBQUMsQ0FBQyxVQUFlLEVBQUUsRUFBRTtnQkFDdEIsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtvQkFDOUIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO29CQUN0RSxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxHQUFrQjtRQUNwQyxNQUFNLE1BQU0sR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUM3QyxNQUFNLEVBQUUsTUFBTTtTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxRQUFRLENBQUMsT0FBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxPQUFPLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFDRCxXQUFXLENBQUMsRUFBVTtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxTQUFTLFdBQVcsRUFBRSxTQUFTLEVBQ3ZDLEVBQUUsRUFDRjtZQUNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxXQUFXLENBQUMsRUFBVTtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixHQUFHLElBQUksQ0FBQyxTQUFTLFdBQVcsRUFBRSxTQUFTLEVBQ3ZDLEVBQUUsRUFDRjtZQUNFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxXQUFXLENBQUMsRUFBVSxFQUFFLElBQVM7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFdBQVcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFO1lBQ3ZFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCw0QkFBNEIsQ0FBQyxPQUFlLEVBQUUsSUFBUztRQUNyRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxPQUFPLHNCQUFzQixFQUFFLElBQUksRUFBRTtZQUMxRixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsNkJBQTZCLENBQUMsT0FBZSxFQUFFLElBQVM7UUFDdEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFdBQVcsT0FBTyx1QkFBdUIsRUFBRSxJQUFJLEVBQUU7WUFDM0YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELHVCQUF1QixDQUFDLE9BQVksRUFBRSxTQUFpQjtRQUNyRCxNQUFNLE9BQU8sR0FBRztZQUNkLFNBQVM7U0FDVixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFdBQVcsT0FBTyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZILENBQUM7SUFFRCxhQUFhLENBQUMsT0FBZTtRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxPQUFPLFdBQVcsRUFBRTtZQUN4RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsWUFBWSxDQUFJLEVBQVU7UUFDeEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxXQUFXLEVBQUUsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBQ0QsY0FBYyxDQUFJLEVBQVUsRUFBRSxJQUFTO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFDRCxjQUFjLENBQUksRUFBVSxFQUFFLElBQVM7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUNELFNBQVM7SUFDVCxTQUFTLENBQUksRUFBVTtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFDRCxRQUFRLENBQUksRUFBVSxFQUFFLElBQVM7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUNELFdBQVcsQ0FBSSxFQUFVLEVBQUUsSUFBUztRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBQ0QsV0FBVyxDQUFJLEVBQVUsRUFBRSxPQUFlLEVBQUUsQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLFdBQVcsT0FBTyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNyRyxDQUFDO3VHQTdaVSxlQUFlOzJHQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBPZmZlcmluZ1NlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gIG92ZXJyaWRlIGluaXQoKSB7XG4gICAgdGhpcy5lbmRwb2ludCA9ICdvZmZlcmluZ3MnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuXG4gIG1lKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vbWVgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZmluZEJ5SWRzKGlkczogQXJyYXk8c3RyaW5nPik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgcGFyYW1zID0geyBpZHM6IGlkcy5qb2luKCcsJykgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9ieWAsIHtcbiAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHB1Ymxpc2gocHJvcGVydHlJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3B1Ymxpc2hgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICBzdWJtaXRGb3JSZXZpZXcocHJvcGVydHlJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3Jldmlld2AsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHJldmlld0FwcHJvdmUoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vcmV2aWV3cy9hcHByb3ZlYCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbiAgcmV2aWV3UmVqZWN0KGlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3Jldmlld3MvYWNjZXB0YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGFyY2hpdmVkKHByb3BlcnR5SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS9hcmNoaXZlZGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIGZpbmRXaXNobGlzdChvcHRpb25zOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vd2lzaGxpc3RgLCB7IHBhcmFtczogb3B0aW9ucywgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGFkZFRvV2lzaGxpc3QocHJvcGVydHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3dpc2hsaXN0YCwge30sIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIHJlbW92ZUZyb21XaXNobGlzdChwcm9wZXJ0eUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS93aXNobGlzdGAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIHdpc2hMaXN0Q2hlY2socHJvcGVydHlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vd2lzaGxpc3QvY2hlY2tgLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICBmaW5kUHVyY2hhc2VkQnlQcm9wZXJ0eUlkKHByb3BlcnR5SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYWN0aW9uVXJsfS91c2Vycy9tZS9ieT9wcm9wZXJ0eUlkPSR7cHJvcGVydHlJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgLy8gTWVkaWFcbiAgdXBsb2FkTWVkaWEocHJvcGVydHlJZDogc3RyaW5nLCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vbWVkaWFgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlTWVkaWEoaWQ6IHN0cmluZywgbWVkaWFJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9tZWRpYS8ke21lZGlhSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIC8vIFByaWNpbmdcbiAgYWRkUHJpY2luZyhwcm9wZXJ0eUlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vcHJpY2luZ2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVQcmljaW5nKHByaWNpbmdJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ByaWNpbmcvJHtwcmljaW5nSWR9YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZVByaWNpbmcocHJpY2luZ0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ByaWNpbmcvJHtwcmljaW5nSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIC8vIFNlY3Rpb25cbiAgYWRkU2VjdGlvbihwcm9wZXJ0eUlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vc2VjdGlvbnNgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgYWRkQmF0Y2hTZWN0aW9ucyhwcm9wZXJ0eUlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vc2VjdGlvbnMvYmF0Y2hgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZmluZFNlY3Rpb25zKHByb3BlcnR5SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS9zZWN0aW9uc2AsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVTZWN0aW9uKHNlY3Rpb25JZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3NlY3Rpb25zLyR7c2VjdGlvbklkfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVTZWN0aW9uKHNlY3Rpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9zZWN0aW9ucy8ke3NlY3Rpb25JZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgdXBsb2FkU2VjdGlvbk1lZGlhKHNlY3Rpb25JZDogc3RyaW5nLCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3NlY3Rpb25zLyR7c2VjdGlvbklkfS9tZWRpYWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVTZWN0aW9uTWVkaWEoc2VjdGlvbklkOiBzdHJpbmcsIG1lZGlhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vc2VjdGlvbnMvJHtzZWN0aW9uSWR9L21lZGlhLyR7bWVkaWFJZH1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgYWRkT3B0aW9uKHByb3BlcnR5SWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS9vcHRpb25zYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRPcHRpb25zKHByb3BlcnR5SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS9vcHRpb25zYCk7XG4gIH1cbiAgdXBkYXRlT3B0aW9uKG9wdGlvbklkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vb3B0aW9ucy8ke29wdGlvbklkfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVPcHRpb24ob3B0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmFjdGlvblVybH0vb3B0aW9ucy8ke29wdGlvbklkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICAvLyB2YXJpYW50c1xuICB1cGRhdGVWYXJpYW50UHJpY2UocHJvcGVydHlJZDogc3RyaW5nLCBzdGF0dXM6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS92YXJpYW50cy9ieT9zdGF0dXM9JHtzdGF0dXN9YCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbiAgY3JlYXRlVmFyaWFudHMocHJvcGVydHlJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3ZhcmlhbnRzYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGdldFZhcmlhbnQodmFyaWFudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ZhcmlhbnRzLyR7dmFyaWFudElkfWApO1xuICB9XG4gIGZpbmRWYXJpYW50cyhwcm9wZXJ0eUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cHJvcGVydHlJZH0vdmFyaWFudHNgKTtcbiAgfVxuICBmaW5kVmFyaWFudHNCeUlkcyhpZHM6IEFycmF5PHN0cmluZz4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IHsgaWRzOiBpZHMuam9pbignLCcpIH07XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vdmFyaWFudHMvYnlgLCB7XG4gICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVWYXJpYW50cyhwcm9wZXJ0eUlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS92YXJpYW50c2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGxvYWRWYXJpYW50TWVkaWEodmFyaWFudElkOiBzdHJpbmcsIGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vdmFyaWFudHMvJHt2YXJpYW50SWR9L21lZGlhYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZVZhcmlhbnRNZWRpYSh2YXJpYW50SWQ6IHN0cmluZywgbWVkaWFJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS92YXJpYW50cy8ke3ZhcmlhbnRJZH0vbWVkaWEvJHttZWRpYUlkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kVmlld2luZ3NCeVVzZXIob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ZpZXdpbmdzL2J5L3VzZXJgLCB7XG4gICAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHJlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb3BlcnR5SWRzID0gXy51bmlxKF8ubWFwKHJlcy5kYXRhLCAncHJvcGVydHlJZCcpKTsgLy8gWzEyLCAxNCwgMTYsIDE4XVxuICAgICAgICAgIHJldHVybiB0aGlzLmZpbmRQcm9wZXJ0aWVzQnlJZHMocHJvcGVydHlJZHMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHByb3BlcnRpZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICByZXMuZGF0YT8uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdQcm9wZXJ0eSA9IF8uZmluZChwcm9wZXJ0aWVzLmRhdGEsIHsgaWQ6IGl0ZW0ucHJvcGVydHlJZCB9KTtcbiAgICAgICAgICAgICAgICBpdGVtLnByb3BlcnR5ID0gbWF0Y2hpbmdQcm9wZXJ0eTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cbiAgZmluZFZpZXdpbmdzQnlBZ2VudChvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vdmlld2luZ3MvYnkvYWdlbnRgLCB7XG4gICAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHJlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb3BlcnR5SWRzID0gXy51bmlxKF8ubWFwKHJlcy5kYXRhLCAncHJvcGVydHlJZCcpKTsgLy8gWzEyLCAxNCwgMTYsIDE4XVxuICAgICAgICAgIHJldHVybiB0aGlzLmZpbmRQcm9wZXJ0aWVzQnlJZHMocHJvcGVydHlJZHMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHByb3BlcnRpZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICByZXMuZGF0YT8uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdQcm9wZXJ0eSA9IF8uZmluZChwcm9wZXJ0aWVzLmRhdGEsIHsgaWQ6IGl0ZW0ucHJvcGVydHlJZCB9KTtcbiAgICAgICAgICAgICAgICBpdGVtLnByb3BlcnR5ID0gbWF0Y2hpbmdQcm9wZXJ0eTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cbiAgcmVxdWVzdFZpZXdpbmcocHJvcGVydHlJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke3Byb3BlcnR5SWR9L3ZpZXdpbmdzYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGNvbmZpcm1WaWV3aW5nKHZpZXdpbmdJZDogc3RyaW5nLCBzbG90SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vdmlld2luZ3MvJHt2aWV3aW5nSWR9L2NvbmZpcm0/c2xvdElkPSR7c2xvdElkfWAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIGdldFZpZXdpbmcodmlld2luZ0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3ZpZXdpbmdzLyR7dmlld2luZ0lkfWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGNhbmNlbFZpZXdpbmcoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vdmlld2luZ3MvJHtpZH0vY2FuY2VsYCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbiAgbWFrZU9mZmVyKHByb3BlcnR5SWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtwcm9wZXJ0eUlkfS9vZmZlcnNgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZmluZE9mZmVycyhvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vb2ZmZXJzYCwge1xuICAgICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChyZXMpID0+IHtcbiAgICAgICAgICBjb25zdCBwcm9wZXJ0eUlkcyA9IF8udW5pcShfLm1hcChyZXMuZGF0YSwgJ3Byb3BlcnR5SWQnKSk7IC8vIFsxMiwgMTQsIDE2LCAxOF1cbiAgICAgICAgICByZXR1cm4gdGhpcy5maW5kUHJvcGVydGllc0J5SWRzKHByb3BlcnR5SWRzKS5waXBlKFxuICAgICAgICAgICAgbWFwKChwcm9wZXJ0aWVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmVzLmRhdGE/LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nVXNlciA9IF8uZmluZChwcm9wZXJ0aWVzLmRhdGEsIHsgaWQ6IGl0ZW0ucHJvcGVydHlJZCB9KTtcbiAgICAgICAgICAgICAgICBpdGVtLnByb3BlcnR5ID0gbWF0Y2hpbmdVc2VyO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuICBmaW5kT2ZmZXJzQnlVc2VyKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9vZmZlcnMvYnkvdXNlcmAsIHtcbiAgICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJvcGVydHlJZHMgPSBfLnVuaXEoXy5tYXAocmVzLmRhdGEsICdwcm9wZXJ0eUlkJykpOyAvLyBbMTIsIDE0LCAxNiwgMThdXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmluZFByb3BlcnRpZXNCeUlkcyhwcm9wZXJ0eUlkcykucGlwZShcbiAgICAgICAgICAgIG1hcCgocHJvcGVydGllczogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHJlcy5kYXRhPy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ1VzZXIgPSBfLmZpbmQocHJvcGVydGllcy5kYXRhLCB7IGlkOiBpdGVtLnByb3BlcnR5SWQgfSk7XG4gICAgICAgICAgICAgICAgaXRlbS5wcm9wZXJ0eSA9IG1hdGNoaW5nVXNlcjtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cbiAgZmluZE9mZmVyc0J5QWdlbnQob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L29mZmVycy9ieS9hZ2VudGAsIHtcbiAgICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJvcGVydHlJZHMgPSBfLnVuaXEoXy5tYXAocmVzLmRhdGEsICdwcm9wZXJ0eUlkJykpOyAvLyBbMTIsIDE0LCAxNiwgMThdXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmluZFByb3BlcnRpZXNCeUlkcyhwcm9wZXJ0eUlkcykucGlwZShcbiAgICAgICAgICAgIG1hcCgocHJvcGVydGllczogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHJlcy5kYXRhPy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ1VzZXIgPSBfLmZpbmQocHJvcGVydGllcy5kYXRhLCB7IGlkOiBpdGVtLnByb3BlcnR5SWQgfSk7XG4gICAgICAgICAgICAgICAgaXRlbS5wcm9wZXJ0eSA9IG1hdGNoaW5nVXNlcjtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cbiAgZmluZFByb3BlcnRpZXNCeUlkcyhpZHM6IEFycmF5PHN0cmluZz4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IHsgaWRzOiBpZHMuam9pbignLCcpIH07XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH1gLCB7XG4gICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICB9KTtcbiAgfVxuICBnZXRPZmZlcihvZmZlcklkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L29mZmVycy8ke29mZmVySWR9YCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgY2FuY2VsT2ZmZXIoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vb2ZmZXJzLyR7aWR9L2NhbmNlbGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIGFjY2VwdE9mZmVyKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vb2ZmZXJzLyR7aWR9L2FjY2VwdGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHJlamVjdE9mZmVyKGlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vb2ZmZXJzLyR7aWR9L3JlamVjdGAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZUhvbGRpbmdEZXBvc2l0Q2hlY2tvdXQob2ZmZXJJZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9vZmZlcnMvJHtvZmZlcklkfS9wYXkvaG9sZGluZy1kZXBvc2l0YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGNyZWF0ZVNlY3VyaXR5RGVwb3NpdENoZWNrb3V0KG9mZmVySWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vb2ZmZXJzLyR7b2ZmZXJJZH0vcGF5L3NlY3VyaXR5LWRlcG9zaXRgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgY2hlY2tPZmZlclBheW1lbnRTdGF0dXMob2ZmZXJJZDogYW55LCBzZXNzaW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHNlc3Npb25JZCxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L29mZmVycy8ke29mZmVySWR9L3Nlc3Npb25gLCB7IHBhcmFtczogb3B0aW9ucywgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG5cbiAgb2ZmZXJUaW1lbGluZShvZmZlcklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L29mZmVycy8ke29mZmVySWR9L3RpbWVsaW5lYCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRGZWF0dXJlczxUPihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2ZlYXR1cmVzYCwgeyB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlIH0pO1xuICB9XG4gIHVwZGF0ZUZlYXR1cmVzPFQ+KGlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vZmVhdHVyZXNgLCBkYXRhLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KTtcbiAgfVxuICB1cGRhdGVMb2NhdGlvbjxUPihpZDogc3RyaW5nLCBkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L2xvY2F0aW9uYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgLy8gVmlkZW9zXG4gIGdldFZpZGVvczxUPihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3ZpZGVvc2AsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGFkZFZpZGVvPFQ+KGlkOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vdmlkZW9zYCwgZGF0YSwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XG4gIH1cbiAgdXBkYXRlVmlkZW88VD4oaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8VD4oYCR7dGhpcy5hY3Rpb25Vcmx9LyR7aWR9L3ZpZGVvc2AsIGRhdGEsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG4gIGRlbGV0ZVZpZGVvPFQ+KGlkOiBzdHJpbmcsIHZpZGVvSWQ6IHN0cmluZywgeSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPFQ+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS92aWRlb3MvJHt2aWRlb0lkfWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class MembershipService extends BaseService {\n init() {\n this.endpoint = 'memberships';\n super.init();\n }\n me(options) {\n return this.http.get(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n createPlan(data) {\n return this.http.post(`${this.actionUrl}/plans`, data, {\n withCredentials: true,\n });\n }\n findPlans(options) {\n return this.http.get(`${this.actionUrl}/plans`, {\n params: options,\n withCredentials: true,\n });\n }\n getPlan(id) {\n return this.http.get(`${this.actionUrl}/plans/${id}`, {\n withCredentials: true,\n });\n }\n updatePlan(id, data) {\n return this.http.put(`${this.actionUrl}/plans/${id}`, data, {\n withCredentials: true,\n });\n }\n findBenefits(options) {\n return this.http.get(`${this.actionUrl}/benefits`, {\n withCredentials: true,\n });\n }\n addBenefit(data) {\n return this.http.post(`${this.actionUrl}/benefits`, data, {\n withCredentials: true,\n });\n }\n updateBenefit(id, data) {\n return this.http.put(`${this.actionUrl}/benefits/${id}`, data, {\n withCredentials: true,\n });\n }\n deleteBenefit(id) {\n return this.http.delete(`${this.actionUrl}/benefits/${id}`, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: MembershipService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: MembershipService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: MembershipService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyc2hpcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL21lbWJlcnNoaXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFNN0MsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFdBQVc7SUFDdkMsSUFBSTtRQUNYLElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDO1FBQzlCLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxFQUFFLENBQUMsT0FBWTtRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUU7WUFDaEQsTUFBTSxFQUFFLE9BQU87WUFDZixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsVUFBVSxDQUFDLElBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDMUQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFNBQVMsQ0FBQyxPQUFZO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxRQUFRLEVBQUU7WUFDbkQsTUFBTSxFQUFFLE9BQU87WUFDZixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEVBQVU7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFVBQVUsRUFBRSxFQUFFLEVBQUU7WUFDekQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVUsQ0FBQyxFQUFVLEVBQUUsSUFBUztRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsVUFBVSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDL0QsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFlBQVksQ0FBQyxPQUFZO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxXQUFXLEVBQUU7WUFDdEQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVUsQ0FBQyxJQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBQzdELGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxhQUFhLENBQUMsRUFBVSxFQUFFLElBQVM7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFO1lBQ2xFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxhQUFhLENBQUMsRUFBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsYUFBYSxFQUFFLEVBQUUsRUFBRTtZQUMvRCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQXBEVSxpQkFBaUI7MkdBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1lbWJlcnNoaXBTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAnbWVtYmVyc2hpcHMnO1xuICAgIHN1cGVyLmluaXQoKTtcbiAgfVxuXG4gIG1lKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLmFjdGlvblVybH0vbWVgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgY3JlYXRlUGxhbihkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9wbGFuc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kUGxhbnMob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9wbGFuc2AsIHtcbiAgICAgIHBhcmFtczogb3B0aW9ucyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBnZXRQbGFuKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L3BsYW5zLyR7aWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZVBsYW4oaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9wbGFucy8ke2lkfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kQmVuZWZpdHMob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9iZW5lZml0c2AsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBhZGRCZW5lZml0KGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2JlbmVmaXRzYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZUJlbmVmaXQoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9iZW5lZml0cy8ke2lkfWAsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVCZW5lZml0KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2JlbmVmaXRzLyR7aWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport * as i0 from \"@angular/core\";\nexport class CategoryService extends BaseService {\n init() {\n this.endpoint = 'categories';\n super.init();\n }\n uploadMedia(id, data) {\n return this.http.post(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id, mediaId) {\n return this.http.delete(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n importFromExcel(data) {\n return this.http.post(`${this.actionUrl}/excel`, data, {\n withCredentials: true,\n });\n }\n createFromExcel(data) {\n return this.http.post(`${this.actionUrl}/list`, data, {\n withCredentials: true,\n });\n }\n findProductCategory(options) {\n return this.http.get(`${this.environment.baseUrl}/products/categories`, { params: options });\n }\n getProductCategory(id) {\n return this.http.get(`${this.environment.baseUrl}/products/categories/${id}`);\n }\n createProductCategory(data) {\n return this.http.post(`${this.environment.baseUrl}/products/categories`, data, {\n withCredentials: true,\n });\n }\n updateProductCategory(data) {\n return this.http.put(`${this.environment.baseUrl}/products/categories`, data, {\n withCredentials: true,\n });\n }\n uploadProductCategoryMedia(id, data) {\n return this.http.post(`${this.environment.baseUrl}/products/categories/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteProductCategoryMedia(id, mediaId) {\n return this.http.delete(`${this.environment.baseUrl}/products/categories/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: CategoryService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: CategoryService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: CategoryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9jYXRlZ29yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUs3QyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBQ3JDLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQztRQUM3QixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVUsRUFBRSxJQUFjO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUNoRSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVUsRUFBRSxPQUFlO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsVUFBVSxPQUFPLEVBQUUsRUFBRTtZQUN2RSxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsZUFBZSxDQUFDLElBQWM7UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDMUQsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGVBQWUsQ0FBQyxJQUFTO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxPQUFPLEVBQUUsSUFBSSxFQUFFO1lBQ3pELGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxPQUFZO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsRUFBVTtRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLHdCQUF3QixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFDRCxxQkFBcUIsQ0FBQyxJQUFTO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sc0JBQXNCLEVBQUUsSUFBSSxFQUFFO1lBQ2xGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxxQkFBcUIsQ0FBQyxJQUFTO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sc0JBQXNCLEVBQUUsSUFBSSxFQUFFO1lBQ2pGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCwwQkFBMEIsQ0FBQyxFQUFVLEVBQUUsSUFBYztRQUNuRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDOUYsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELDBCQUEwQixDQUFDLEVBQVUsRUFBRSxPQUFlO1FBQ3BELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sd0JBQXdCLEVBQUUsVUFBVSxPQUFPLEVBQUUsRUFBRTtZQUNyRyxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQWxEVSxlQUFlOzJHQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAnY2F0ZWdvcmllcyc7XG4gICAgc3VwZXIuaW5pdCgpO1xuICB9XG4gIHVwbG9hZE1lZGlhKGlkOiBzdHJpbmcsIGRhdGE6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vbWVkaWFgLCBkYXRhLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlTWVkaWEoaWQ6IHN0cmluZywgbWVkaWFJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS8ke2lkfS9tZWRpYS8ke21lZGlhSWR9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGltcG9ydEZyb21FeGNlbChkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2V4Y2VsYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGNyZWF0ZUZyb21FeGNlbChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9saXN0YCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGZpbmRQcm9kdWN0Q2F0ZWdvcnkob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vcHJvZHVjdHMvY2F0ZWdvcmllc2AsIHsgcGFyYW1zOiBvcHRpb25zIH0pO1xuICB9XG4gIGdldFByb2R1Y3RDYXRlZ29yeShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vcHJvZHVjdHMvY2F0ZWdvcmllcy8ke2lkfWApO1xuICB9XG4gIGNyZWF0ZVByb2R1Y3RDYXRlZ29yeShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vcHJvZHVjdHMvY2F0ZWdvcmllc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGRhdGVQcm9kdWN0Q2F0ZWdvcnkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vcHJvZHVjdHMvY2F0ZWdvcmllc2AsIGRhdGEsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICB1cGxvYWRQcm9kdWN0Q2F0ZWdvcnlNZWRpYShpZDogc3RyaW5nLCBkYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9wcm9kdWN0cy9jYXRlZ29yaWVzLyR7aWR9L21lZGlhYCwgZGF0YSwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZVByb2R1Y3RDYXRlZ29yeU1lZGlhKGlkOiBzdHJpbmcsIG1lZGlhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L3Byb2R1Y3RzL2NhdGVnb3JpZXMvJHtpZH0vbWVkaWEvJHttZWRpYUlkfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { inject, Injectable } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { Observable } from 'rxjs';\nimport * as i0 from \"@angular/core\";\n/* ========= Service ========= */\nexport class AssistantStreamService {\n environment = inject(APP_CONFIG);\n /**\n * POST + SSE streaming via fetch + ReadableStream\n */\n stream(req, init) {\n return new Observable((subscriber) => {\n const ctrl = new AbortController();\n const headers = {\n 'Content-Type': 'application/json',\n 'Accept': 'text/event-stream',\n 'client-id': this.environment.clientId,\n ...(init?.headers ?? {}),\n };\n fetch(`${this.environment.baseUrl}/conversations`, {\n method: 'POST',\n body: JSON.stringify(req),\n headers,\n signal: ctrl.signal,\n keepalive: true,\n mode: 'cors',\n credentials: 'include',\n ...init,\n })\n .then(async (res) => {\n if (!res.ok || !res.body) {\n subscriber.error({\n type: 'error',\n message: `HTTP ${res.status} ${res.statusText}`,\n });\n return;\n }\n const reader = res.body.getReader();\n const decoder = new TextDecoder('utf-8');\n let buffer = '';\n try {\n for (;;) {\n const { value, done } = await reader.read();\n if (done)\n break;\n buffer += decoder.decode(value, { stream: true });\n // SSE blocks are separated by blank lines\n let idx;\n while ((idx = buffer.indexOf('\\n\\n')) !== -1) {\n const rawBlock = buffer.slice(0, idx);\n buffer = buffer.slice(idx + 2);\n const events = this.parseSSEBlock(rawBlock);\n for (const e of events) {\n const typed = this.toStreamEvent(e);\n if (!typed)\n continue;\n subscriber.next(typed);\n if (typed.type === 'done') {\n ctrl.abort();\n subscriber.complete();\n return;\n }\n }\n }\n }\n // Flush any trailing data\n if (buffer.trim().length) {\n const events = this.parseSSEBlock(buffer);\n for (const e of events) {\n const typed = this.toStreamEvent(e);\n if (typed)\n subscriber.next(typed);\n }\n }\n subscriber.complete();\n }\n catch (err) {\n if (err?.name === 'AbortError') {\n subscriber.complete();\n }\n else {\n subscriber.error({\n type: 'error',\n message: 'Stream read error',\n cause: err,\n });\n }\n }\n })\n .catch((err) => {\n console.log(err);\n subscriber.error({\n type: 'error',\n message: 'Fetch error',\n cause: err,\n });\n });\n // teardown\n return () => ctrl.abort();\n });\n }\n /* ========= SSE parsing ========= */\n /**\n * Parse one SSE \"block\" (between blank lines). Supports multi-line `data:` and optional `event:`.\n * Returns a list because some servers pack multiple JSON items in the data.\n */\n parseSSEBlock(block) {\n const lines = block.split(/\\r?\\n/);\n let eventName;\n const dataLines = [];\n for (const line of lines) {\n if (!line)\n continue;\n if (line.startsWith(':'))\n continue; // comment\n if (line.startsWith('event:')) {\n eventName = line.slice(6).trim();\n }\n else if (line.startsWith('data:')) {\n dataLines.push(line.slice(5).trimStart());\n }\n else {\n // fallback: some servers may omit \"data:\"\n dataLines.push(line);\n }\n }\n const dataStr = dataLines.join('\\n').trim();\n if (!dataStr)\n return [];\n // Handle possible JSONL\n const parts = this.splitPossibleJSONL(dataStr);\n return parts.map((d) => ({ event: eventName, data: d }));\n }\n splitPossibleJSONL(s) {\n const lines = s.split(/\\r?\\n/);\n if (lines.length > 1 && lines.every((ln) => /^[[{\"\\-0-9tfn]/.test(ln.trim()))) {\n return lines;\n }\n return [s];\n }\n /**\n * Convert raw SSE payload into our typed StreamEvent union.\n * - honors `event:` header names: start, message, group, json, tool, done, error\n * - normalizes conversationId -> sessionId on start\n * - falls back to JsonEvent on unknown shapes\n */\n toStreamEvent(raw) {\n const { event, data } = raw;\n if (!data || data.length === 0)\n return null;\n // explicit \"done\" or OpenAI-style [DONE]\n if (event?.toLowerCase() === 'done' || data === '[DONE]') {\n return { type: 'done' };\n }\n // Try JSON\n let parsed;\n try {\n parsed = JSON.parse(data);\n }\n catch {\n // Not JSON -> treat as assistant text delta for streaming\n return {\n type: 'message',\n role: 'assistant',\n text: data,\n delta: true,\n };\n }\n // If server already includes a `type`, trust it\n if (parsed && typeof parsed === 'object' && 'type' in parsed) {\n return parsed;\n }\n switch ((event ?? '').toLowerCase()) {\n case 'start': {\n const sessionId = parsed.sessionId ?? parsed.conversationId ?? parsed.id;\n if (!sessionId)\n return { type: 'json', data: parsed };\n const start = {\n type: 'start',\n sessionId,\n conversationId: parsed.conversationId,\n at: parsed.at,\n };\n return start;\n }\n case 'message': {\n const role = parsed.role === 'user' || parsed.role === 'assistant' ? parsed.role : 'assistant';\n const text = typeof parsed.text === 'string' ? parsed.text : '';\n const delta = !!parsed.delta;\n return { type: 'message', role, text, delta };\n }\n case 'group': {\n return { type: 'group', ...parsed };\n }\n case 'json': {\n return { type: 'json', data: parsed };\n }\n case 'tool': {\n return { type: 'tool', ...parsed };\n }\n case 'error': {\n const msg = typeof parsed?.message === 'string' ? parsed.message : 'Unknown error';\n return { type: 'error', message: msg };\n }\n }\n // Fallback: unknown event name -> json wrapper\n return { type: 'json', data: parsed };\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: AssistantStreamService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: AssistantStreamService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: AssistantStreamService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaXN0YW50LXN0cmVhbS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL3NlcnZpY2VzL2Fzc2lzdGFudC1zdHJlYW0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFxRWxDLGlDQUFpQztBQUdqQyxNQUFNLE9BQU8sc0JBQXNCO0lBQ3ZCLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFM0M7O09BRUc7SUFDSCxNQUFNLENBQUMsR0FBa0IsRUFBRSxJQUFrQjtRQUMzQyxPQUFPLElBQUksVUFBVSxDQUFjLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDaEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUVuQyxNQUFNLE9BQU8sR0FBZ0I7Z0JBQzNCLGNBQWMsRUFBRSxrQkFBa0I7Z0JBQ2xDLFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVE7Z0JBQ3RDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQzthQUN6QixDQUFDO1lBRUYsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLGdCQUFnQixFQUFFO2dCQUNqRCxNQUFNLEVBQUUsTUFBTTtnQkFDZCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7Z0JBQ3pCLE9BQU87Z0JBQ1AsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixTQUFTLEVBQUUsSUFBSTtnQkFD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LENBQUMsZUFBZSxDQUFDO2dCQUNuRixPQUFtQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ3JELENBQUM7UUFDSCxDQUFDO1FBRUQsK0NBQStDO1FBQy9DLE9BQWtCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDbkQsQ0FBQzt1R0EzTlUsc0JBQXNCOzJHQUF0QixzQkFBc0IsY0FEVCxNQUFNOzsyRkFDbkIsc0JBQXNCO2tCQURsQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVBQX0NPTkZJRyB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qID09PT09PT09PSBTdHJlYW1FdmVudCBVbmlvbiA9PT09PT09PT0gKi9cblxuZXhwb3J0IHR5cGUgU3RyZWFtRXZlbnQgPVxuICB8IFN0YXJ0RXZlbnRcbiAgfCBNZXNzYWdlRXZlbnRcbiAgfCBKc29uRXZlbnRcbiAgfCBHcm91cEV2ZW50XG4gIHwgVG9vbEV2ZW50XG4gIHwgRG9uZUV2ZW50XG4gIHwgRXJyb3JFdmVudDtcblxuZXhwb3J0IGludGVyZmFjZSBTdGFydEV2ZW50IHtcbiAgdHlwZTogJ3N0YXJ0JztcbiAgc2Vzc2lvbklkOiBzdHJpbmc7ICAgICAgICAgIC8vIG5vcm1hbGl6ZWQgaWQgdXNlZCBieSB0aGUgYXBwXG4gIGNvbnZlcnNhdGlvbklkPzogc3RyaW5nOyAgICAvLyBvcmlnaW5hbCBzZXJ2ZXIgaWQgaWYgcHJlc2VudFxuICBhdD86IHN0cmluZzsgICAgICAgICAgICAgICAgLy8gb3B0aW9uYWwgc2VydmVyIHRpbWVzdGFtcFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VFdmVudCB7XG4gIHR5cGU6ICdtZXNzYWdlJztcbiAgcm9sZTogJ3VzZXInIHwgJ2Fzc2lzdGFudCc7XG4gIHRleHQ6IHN0cmluZztcbiAgZGVsdGE/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEpzb25FdmVudCB7XG4gIHR5cGU6ICdqc29uJztcbiAgZGF0YTogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcm91cEV2ZW50IHtcbiAgdHlwZTogJ2dyb3VwJztcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgbWVkaWFVcmw/OiBzdHJpbmc7XG4gIGxpbms/OiBzdHJpbmc7XG4gIHByaWNlPzogbnVtYmVyO1xuICBhZGRyZXNzPzogc3RyaW5nO1xuICBwaG9uZT86IHN0cmluZztcbiAgLy8gYWRkIG1vcmUgY2FyZCBmaWVsZHMgYXMgbmVlZGVkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9vbEV2ZW50IHtcbiAgdHlwZTogJ3Rvb2wnO1xuICB0b29sOiBzdHJpbmc7XG4gIGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICByZXN1bHRzPzogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb25lRXZlbnQge1xuICB0eXBlOiAnZG9uZSc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JFdmVudCB7XG4gIHR5cGU6ICdlcnJvcic7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgY2F1c2U/OiB1bmtub3duO1xufVxuXG4vKiA9PT09PT09PT0gUmVxdWVzdCA9PT09PT09PT0gKi9cblxuZXhwb3J0IGludGVyZmFjZSBTdHJlYW1SZXF1ZXN0IHtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBjb252ZXJzYXRpb25JZD86IHN0cmluZztcbiAgLy8gYWRkIGFueSBvdGhlciBmaWVsZHMgeW91ciBiYWNrZW5kIGV4cGVjdHNcbn1cblxuLyogPT09PT09PT09IFNlcnZpY2UgPT09PT09PT09ICovXG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQXNzaXN0YW50U3RyZWFtU2VydmljZSB7XG4gIHByb3RlY3RlZCBlbnZpcm9ubWVudCA9IGluamVjdChBUFBfQ09ORklHKTtcblxuICAvKipcbiAgICogUE9TVCArIFNTRSBzdHJlYW1pbmcgdmlhIGZldGNoICsgUmVhZGFibGVTdHJlYW1cbiAgICovXG4gIHN0cmVhbShyZXE6IFN0cmVhbVJlcXVlc3QsIGluaXQ/OiBSZXF1ZXN0SW5pdCk6IE9ic2VydmFibGU8U3RyZWFtRXZlbnQ+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8U3RyZWFtRXZlbnQ+KChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICBjb25zdCBjdHJsID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgICBjb25zdCBoZWFkZXJzOiBIZWFkZXJzSW5pdCA9IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgJ0FjY2VwdCc6ICd0ZXh0L2V2ZW50LXN0cmVhbScsXG4gICAgICAgICdjbGllbnQtaWQnOiB0aGlzLmVudmlyb25tZW50LmNsaWVudElkLFxuICAgICAgICAuLi4oaW5pdD8uaGVhZGVycyA/PyB7fSksXG4gICAgICB9O1xuXG4gICAgICBmZXRjaChgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L2NvbnZlcnNhdGlvbnNgLCB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShyZXEpLFxuICAgICAgICBoZWFkZXJzLFxuICAgICAgICBzaWduYWw6IGN0cmwuc2lnbmFsLFxuICAgICAgICBrZWVwYWxpdmU6IHRydWUsXG4gICAgICAgIG1vZGU6ICdjb3JzJyxcbiAgICAgICAgY3JlZGVudGlhbHM6ICdpbmNsdWRlJyxcbiAgICAgICAgLi4uaW5pdCxcbiAgICAgIH0pXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXMpID0+IHtcbiAgICAgICAgICBpZiAoIXJlcy5vayB8fCAhcmVzLmJvZHkpIHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoPEVycm9yRXZlbnQ+e1xuICAgICAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBgSFRUUCAke3Jlcy5zdGF0dXN9ICR7cmVzLnN0YXR1c1RleHR9YCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHJlYWRlciA9IHJlcy5ib2R5LmdldFJlYWRlcigpO1xuICAgICAgICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoJ3V0Zi04Jyk7XG4gICAgICAgICAgbGV0IGJ1ZmZlciA9ICcnO1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGZvciAoOyA7KSB7XG4gICAgICAgICAgICAgIGNvbnN0IHsgdmFsdWUsIGRvbmUgfSA9IGF3YWl0IHJlYWRlci5yZWFkKCk7XG4gICAgICAgICAgICAgIGlmIChkb25lKSBicmVhaztcblxuICAgICAgICAgICAgICBidWZmZXIgKz0gZGVjb2Rlci5kZWNvZGUodmFsdWUsIHsgc3RyZWFtOiB0cnVlIH0pO1xuXG4gICAgICAgICAgICAgIC8vIFNTRSBibG9ja3MgYXJlIHNlcGFyYXRlZCBieSBibGFuayBsaW5lc1xuICAgICAgICAgICAgICBsZXQgaWR4OiBudW1iZXI7XG4gICAgICAgICAgICAgIHdoaWxlICgoaWR4ID0gYnVmZmVyLmluZGV4T2YoJ1xcblxcbicpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByYXdCbG9jayA9IGJ1ZmZlci5zbGljZSgwLCBpZHgpO1xuICAgICAgICAgICAgICAgIGJ1ZmZlciA9IGJ1ZmZlci5zbGljZShpZHggKyAyKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50cyA9IHRoaXMucGFyc2VTU0VCbG9jayhyYXdCbG9jayk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlIG9mIGV2ZW50cykge1xuICAgICAgICAgICAgICAgICAgY29uc3QgdHlwZWQgPSB0aGlzLnRvU3RyZWFtRXZlbnQoZSk7XG4gICAgICAgICAgICAgICAgICBpZiAoIXR5cGVkKSBjb250aW51ZTtcblxuICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHR5cGVkKTtcbiAgICAgICAgICAgICAgICAgIGlmICh0eXBlZC50eXBlID09PSAnZG9uZScpIHtcbiAgICAgICAgICAgICAgICAgICAgY3RybC5hYm9ydCgpO1xuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRmx1c2ggYW55IHRyYWlsaW5nIGRhdGFcbiAgICAgICAgICAgIGlmIChidWZmZXIudHJpbSgpLmxlbmd0aCkge1xuICAgICAgICAgICAgICBjb25zdCBldmVudHMgPSB0aGlzLnBhcnNlU1NFQmxvY2soYnVmZmVyKTtcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBlIG9mIGV2ZW50cykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGVkID0gdGhpcy50b1N0cmVhbUV2ZW50KGUpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlZCkgc3Vic2NyaWJlci5uZXh0KHR5cGVkKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG4gICAgICAgICAgICBpZiAoKGVyciBhcyBhbnkpPy5uYW1lID09PSAnQWJvcnRFcnJvcicpIHtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcig8RXJyb3JFdmVudD57XG4gICAgICAgICAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnU3RyZWFtIHJlYWQgZXJyb3InLFxuICAgICAgICAgICAgICAgIGNhdXNlOiBlcnIsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpXG4gICAgICAgICAgc3Vic2NyaWJlci5lcnJvcig8RXJyb3JFdmVudD57XG4gICAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgbWVzc2FnZTogJ0ZldGNoIGVycm9yJyxcbiAgICAgICAgICAgIGNhdXNlOiBlcnIsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAvLyB0ZWFyZG93blxuICAgICAgcmV0dXJuICgpID0+IGN0cmwuYWJvcnQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qID09PT09PT09PSBTU0UgcGFyc2luZyA9PT09PT09PT0gKi9cblxuICAvKipcbiAgICogUGFyc2Ugb25lIFNTRSBcImJsb2NrXCIgKGJldHdlZW4gYmxhbmsgbGluZXMpLiBTdXBwb3J0cyBtdWx0aS1saW5lIGBkYXRhOmAgYW5kIG9wdGlvbmFsIGBldmVudDpgLlxuICAgKiBSZXR1cm5zIGEgbGlzdCBiZWNhdXNlIHNvbWUgc2VydmVycyBwYWNrIG11bHRpcGxlIEpTT04gaXRlbXMgaW4gdGhlIGRhdGEuXG4gICAqL1xuICBwcml2YXRlIHBhcnNlU1NFQmxvY2soYmxvY2s6IHN0cmluZyk6IEFycmF5PHsgZXZlbnQ/OiBzdHJpbmc7IGRhdGE/OiBzdHJpbmcgfT4ge1xuICAgIGNvbnN0IGxpbmVzID0gYmxvY2suc3BsaXQoL1xccj9cXG4vKTtcbiAgICBsZXQgZXZlbnROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgZGF0YUxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICBpZiAoIWxpbmUpIGNvbnRpbnVlO1xuICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aCgnOicpKSBjb250aW51ZTsgLy8gY29tbWVudFxuICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aCgnZXZlbnQ6JykpIHtcbiAgICAgICAgZXZlbnROYW1lID0gbGluZS5zbGljZSg2KS50cmltKCk7XG4gICAgICB9IGVsc2UgaWYgKGxpbmUuc3RhcnRzV2l0aCgnZGF0YTonKSkge1xuICAgICAgICBkYXRhTGluZXMucHVzaChsaW5lLnNsaWNlKDUpLnRyaW1TdGFydCgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGZhbGxiYWNrOiBzb21lIHNlcnZlcnMgbWF5IG9taXQgXCJkYXRhOlwiXG4gICAgICAgIGRhdGFMaW5lcy5wdXNoKGxpbmUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGRhdGFTdHIgPSBkYXRhTGluZXMuam9pbignXFxuJykudHJpbSgpO1xuICAgIGlmICghZGF0YVN0cikgcmV0dXJuIFtdO1xuXG4gICAgLy8gSGFuZGxlIHBvc3NpYmxlIEpTT05MXG4gICAgY29uc3QgcGFydHMgPSB0aGlzLnNwbGl0UG9zc2libGVKU09OTChkYXRhU3RyKTtcbiAgICByZXR1cm4gcGFydHMubWFwKChkKSA9PiAoeyBldmVudDogZXZlbnROYW1lLCBkYXRhOiBkIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgc3BsaXRQb3NzaWJsZUpTT05MKHM6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBsaW5lcyA9IHMuc3BsaXQoL1xccj9cXG4vKTtcbiAgICBpZiAobGluZXMubGVuZ3RoID4gMSAmJiBsaW5lcy5ldmVyeSgobG4pID0+IC9eW1t7XCJcXC0wLTl0Zm5dLy50ZXN0KGxuLnRyaW0oKSkpKSB7XG4gICAgICByZXR1cm4gbGluZXM7XG4gICAgfVxuICAgIHJldHVybiBbc107XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCByYXcgU1NFIHBheWxvYWQgaW50byBvdXIgdHlwZWQgU3RyZWFtRXZlbnQgdW5pb24uXG4gICAqIC0gaG9ub3JzIGBldmVudDpgIGhlYWRlciBuYW1lczogc3RhcnQsIG1lc3NhZ2UsIGdyb3VwLCBqc29uLCB0b29sLCBkb25lLCBlcnJvclxuICAgKiAtIG5vcm1hbGl6ZXMgY29udmVyc2F0aW9uSWQgLT4gc2Vzc2lvbklkIG9uIHN0YXJ0XG4gICAqIC0gZmFsbHMgYmFjayB0byBKc29uRXZlbnQgb24gdW5rbm93biBzaGFwZXNcbiAgICovXG4gIHByaXZhdGUgdG9TdHJlYW1FdmVudChyYXc6IHsgZXZlbnQ/OiBzdHJpbmc7IGRhdGE/OiBzdHJpbmcgfSk6IFN0cmVhbUV2ZW50IHwgbnVsbCB7XG4gICAgY29uc3QgeyBldmVudCwgZGF0YSB9ID0gcmF3O1xuICAgIGlmICghZGF0YSB8fCBkYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGw7XG5cbiAgICAvLyBleHBsaWNpdCBcImRvbmVcIiBvciBPcGVuQUktc3R5bGUgW0RPTkVdXG4gICAgaWYgKGV2ZW50Py50b0xvd2VyQ2FzZSgpID09PSAnZG9uZScgfHwgZGF0YSA9PT0gJ1tET05FXScpIHtcbiAgICAgIHJldHVybiB7IHR5cGU6ICdkb25lJyB9O1xuICAgIH1cblxuICAgIC8vIFRyeSBKU09OXG4gICAgbGV0IHBhcnNlZDogYW55O1xuICAgIHRyeSB7XG4gICAgICBwYXJzZWQgPSBKU09OLnBhcnNlKGRhdGEpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gTm90IEpTT04gLT4gdHJlYXQgYXMgYXNzaXN0YW50IHRleHQgZGVsdGEgZm9yIHN0cmVhbWluZ1xuICAgICAgcmV0dXJuIDxNZXNzYWdlRXZlbnQ+e1xuICAgICAgICB0eXBlOiAnbWVzc2FnZScsXG4gICAgICAgIHJvbGU6ICdhc3Npc3RhbnQnLFxuICAgICAgICB0ZXh0OiBkYXRhLFxuICAgICAgICBkZWx0YTogdHJ1ZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gSWYgc2VydmVyIGFscmVhZHkgaW5jbHVkZXMgYSBgdHlwZWAsIHRydXN0IGl0XG4gICAgaWYgKHBhcnNlZCAmJiB0eXBlb2YgcGFyc2VkID09PSAnb2JqZWN0JyAmJiAndHlwZScgaW4gcGFyc2VkKSB7XG4gICAgICByZXR1cm4gcGFyc2VkIGFzIFN0cmVhbUV2ZW50O1xuICAgIH1cblxuICAgIHN3aXRjaCAoKGV2ZW50ID8/ICcnKS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICBjYXNlICdzdGFydCc6IHtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbklkID0gcGFyc2VkLnNlc3Npb25JZCA/PyBwYXJzZWQuY29udmVyc2F0aW9uSWQgPz8gcGFyc2VkLmlkO1xuICAgICAgICBpZiAoIXNlc3Npb25JZCkgcmV0dXJuIDxKc29uRXZlbnQ+eyB0eXBlOiAnanNvbicsIGRhdGE6IHBhcnNlZCB9O1xuICAgICAgICBjb25zdCBzdGFydDogU3RhcnRFdmVudCA9IHtcbiAgICAgICAgICB0eXBlOiAnc3RhcnQnLFxuICAgICAgICAgIHNlc3Npb25JZCxcbiAgICAgICAgICBjb252ZXJzYXRpb25JZDogcGFyc2VkLmNvbnZlcnNhdGlvbklkLFxuICAgICAgICAgIGF0OiBwYXJzZWQuYXQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBzdGFydDtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnbWVzc2FnZSc6IHtcbiAgICAgICAgY29uc3Qgcm9sZTogJ3VzZXInIHwgJ2Fzc2lzdGFudCcgPVxuICAgICAgICAgIHBhcnNlZC5yb2xlID09PSAndXNlcicgfHwgcGFyc2VkLnJvbGUgPT09ICdhc3Npc3RhbnQnID8gcGFyc2VkLnJvbGUgOiAnYXNzaXN0YW50JztcbiAgICAgICAgY29uc3QgdGV4dCA9IHR5cGVvZiBwYXJzZWQudGV4dCA9PT0gJ3N0cmluZycgPyBwYXJzZWQudGV4dCA6ICcnO1xuICAgICAgICBjb25zdCBkZWx0YSA9ICEhcGFyc2VkLmRlbHRhO1xuICAgICAgICByZXR1cm4gPE1lc3NhZ2VFdmVudD57IHR5cGU6ICdtZXNzYWdlJywgcm9sZSwgdGV4dCwgZGVsdGEgfTtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnZ3JvdXAnOiB7XG4gICAgICAgIHJldHVybiA8R3JvdXBFdmVudD57IHR5cGU6ICdncm91cCcsIC4uLnBhcnNlZCB9O1xuICAgICAgfVxuXG4gICAgICBjYXNlICdqc29uJzoge1xuICAgICAgICByZXR1cm4gPEpzb25FdmVudD57IHR5cGU6ICdqc29uJywgZGF0YTogcGFyc2VkIH07XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3Rvb2wnOiB7XG4gICAgICAgIHJldHVybiA8VG9vbEV2ZW50PnsgdHlwZTogJ3Rvb2wnLCAuLi5wYXJzZWQgfTtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnZXJyb3InOiB7XG4gICAgICAgIGNvbnN0IG1zZyA9IHR5cGVvZiBwYXJzZWQ/Lm1lc3NhZ2UgPT09ICdzdHJpbmcnID8gcGFyc2VkLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcic7XG4gICAgICAgIHJldHVybiA8RXJyb3JFdmVudD57IHR5cGU6ICdlcnJvcicsIG1lc3NhZ2U6IG1zZyB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZhbGxiYWNrOiB1bmtub3duIGV2ZW50IG5hbWUgLT4ganNvbiB3cmFwcGVyXG4gICAgcmV0dXJuIDxKc29uRXZlbnQ+eyB0eXBlOiAnanNvbicsIGRhdGE6IHBhcnNlZCB9O1xuICB9XG59XG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { AssistantStreamService, } from './assistant-stream.service';\nimport * as i0 from \"@angular/core\";\nexport class ConversationService {\n assistant = inject(AssistantStreamService);\n conversationId;\n _messages$ = new BehaviorSubject([]);\n messages$ = this._messages$.asObservable();\n _typing$ = new BehaviorSubject(false);\n typing$ = this._typing$.asObservable();\n // ✅ new: streaming$\n _streaming$ = new BehaviorSubject(false);\n streaming$ = this._streaming$.asObservable();\n streamSub;\n currentAssistantMsgId;\n // Accumulation state for streaming assistant text deltas\n pendingDelta = '';\n rafId = null;\n timeoutId = null;\n // Control how consecutive \"message\" events are split\n // false = coalesce streaming chunks (delta:true), start new segment when delta === false\n // true = split every message event into its own text segment\n strictMessageSegmentation = false;\n // lightweight UI signals (snackbar, etc.)\n events$ = new Subject();\n /** Set known conversationId id (optional). */\n setConversationId(conversationId) {\n this.conversationId = conversationId;\n }\n /** Clear current conversation state. */\n dispose() {\n this.cancel();\n this._messages$.next([]);\n this.currentAssistantMsgId = undefined;\n this.clearSchedulers();\n }\n /** Stop current stream (e.g., user pressed Stop). */\n cancel() {\n if (this.streamSub) {\n this.streamSub.unsubscribe();\n this.streamSub = undefined;\n this._typing$.next(false);\n this._streaming$.next(false); // ✅ stop spinner immediately\n this.flushPending();\n }\n }\n /** Send a user message and start streaming an assistant response. */\n send(message) {\n const trimmed = message?.trim();\n if (!trimmed)\n return;\n // Append user message to timeline\n this._messages$.next([\n ...this._messages$.value,\n { id: this.nextId(), role: 'user', text: trimmed, createdAt: Date.now() },\n ]);\n // Start/continue assistant stream\n this.cancel();\n this._typing$.next(true);\n this._streaming$.next(true); // ✅ start spinner as soon as we stream\n this.streamSub = this.assistant\n .stream({ message: trimmed, conversationId: this.conversationId })\n .subscribe({\n next: (ev) => this.handleStreamEvent(ev),\n error: (e) => {\n this._typing$.next(false);\n this._streaming$.next(false); // ✅ stop spinner\n this.flushPending();\n this.pushAssistantError(e?.message ?? 'Stream failed');\n this.events$.next({ kind: 'error', text: e?.message ?? 'Stream failed' });\n },\n complete: () => {\n this._typing$.next(false);\n this._streaming$.next(false); // ✅ stop spinner\n this.flushPending();\n this.markAssistantDone();\n },\n });\n }\n /* ========== Internals ========== */\n handleStreamEvent(ev) {\n switch (ev.type) {\n case 'start': {\n const s = ev;\n if (s.conversationId)\n this.conversationId = s.conversationId;\n this.ensureAssistantMessage();\n this._streaming$.next(true); // ✅ ensure spinner even if we begin on 'start'\n break;\n }\n case 'message': {\n const m = ev;\n // Most apps avoid echoing server \"user\" messages to prevent duplicates\n if (m.role !== 'assistant')\n break;\n this.bufferAssistantMessage(m);\n break;\n }\n case 'group': {\n this.flushPending();\n const g = ev;\n this.pushAssistantSegment({ kind: 'group', item: g });\n break;\n }\n case 'json': {\n this.flushPending();\n const j = ev;\n this.pushAssistantSegment({ kind: 'json', data: j.data });\n break;\n }\n case 'tool': {\n this.flushPending();\n const t = ev;\n this.pushAssistantSegment({ kind: 'tool', tool: t });\n break;\n }\n case 'error': {\n this.flushPending();\n const e = ev;\n this.pushAssistantError(e.message);\n this._streaming$.next(false); // ✅ stop spinner on error\n break;\n }\n case 'done': {\n this.flushPending();\n this.markAssistantDone();\n this._streaming$.next(false); // ✅ stop spinner on done\n this._typing$.next(false);\n break;\n }\n }\n }\n ensureAssistantMessage() {\n if (!this.currentAssistantMsgId) {\n const msg = {\n id: this.nextId(),\n role: 'assistant',\n segments: [],\n createdAt: Date.now(),\n };\n this.currentAssistantMsgId = msg.id;\n this._messages$.next([...this._messages$.value, msg]);\n }\n }\n withCurrentAssistant(mut) {\n if (!this.currentAssistantMsgId)\n this.ensureAssistantMessage();\n const id = this.currentAssistantMsgId;\n const list = this._messages$.value;\n const idx = list.findIndex((m) => m.id === id);\n if (idx === -1)\n return;\n const updated = mut(list[idx]);\n const newList = [...list];\n newList[idx] = updated;\n this._messages$.next(newList);\n }\n /* ========== Segment helpers (ordered) ========== */\n pushAssistantSegment(seg) {\n this.ensureAssistantMessage();\n this.withCurrentAssistant((m) => ({\n ...m,\n segments: [...(m.segments ?? []), seg],\n }));\n }\n appendToLastTextSegment(delta) {\n this.withCurrentAssistant((m) => {\n const segs = [...(m.segments ?? [])];\n if (segs.length && segs[segs.length - 1].kind === 'text') {\n const last = segs[segs.length - 1];\n segs[segs.length - 1] = { kind: 'text', text: last.text + delta };\n }\n else {\n segs.push({ kind: 'text', text: delta });\n }\n return { ...m, segments: segs };\n });\n }\n /* ========== Message buffering / accumulation ========== */\n bufferAssistantMessage(m) {\n const text = m.text ?? '';\n if (!text)\n return;\n if (this.strictMessageSegmentation) {\n // Split every message as its own segment\n this.flushPending();\n this.pushAssistantSegment({ kind: 'text', text });\n return;\n }\n // Default: coalesce streaming chunks (delta:true);\n // if delta === false, start a new segment\n if (m.delta === false) {\n this.flushPending();\n this.pushAssistantSegment({ kind: 'text', text });\n }\n else {\n this.bufferAssistantDelta(text);\n }\n }\n bufferAssistantDelta(chunk) {\n if (!chunk)\n return;\n this.pendingDelta += chunk;\n this.scheduleFlush();\n }\n scheduleFlush() {\n if (this.rafId != null || this.timeoutId != null)\n return;\n const raf = globalThis.requestAnimationFrame?.bind(globalThis);\n if (raf) {\n this.rafId = raf(() => {\n this.rafId = null;\n this.flushPending();\n });\n }\n else {\n this.timeoutId = setTimeout(() => {\n this.timeoutId = null;\n this.flushPending();\n }, 33); // ~30fps\n }\n }\n clearSchedulers() {\n const caf = globalThis.cancelAnimationFrame?.bind(globalThis);\n if (this.rafId != null && caf)\n caf(this.rafId);\n if (this.timeoutId != null)\n clearTimeout(this.timeoutId);\n this.rafId = null;\n this.timeoutId = null;\n }\n flushPending() {\n if (!this.pendingDelta)\n return;\n const delta = this.pendingDelta;\n this.pendingDelta = '';\n this.clearSchedulers();\n this.appendToLastTextSegment(delta);\n }\n /* ========== Finalization / error ========== */\n pushAssistantError(message) {\n this.ensureAssistantMessage();\n this.withCurrentAssistant((m) => ({\n ...m,\n segments: [\n ...(m.segments ?? []),\n { kind: 'text', text: `⚠️ ${message || 'Unknown error'}` },\n ],\n error: message || 'Unknown error',\n }));\n }\n markAssistantDone() {\n if (!this.currentAssistantMsgId)\n return;\n this.withCurrentAssistant((m) => ({ ...m, done: true }));\n this.currentAssistantMsgId = undefined;\n }\n /* ========== Utils ========== */\n nextId() {\n return Math.random().toString(36).slice(2) + Date.now().toString(36);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ConversationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ConversationService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ConversationService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvc2VydmljZXMvY29udmVyc2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFDTCxzQkFBc0IsR0FRdkIsTUFBTSw0QkFBNEIsQ0FBQzs7QUFvQnBDLE1BQU0sT0FBTyxtQkFBbUI7SUFDdEIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO0lBQzFDLGNBQWMsQ0FBVTtJQUVmLFVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsRUFBRSxDQUFDLENBQUM7SUFDNUQsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFbkMsUUFBUSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRWhELG9CQUFvQjtJQUNILFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUMxRCxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUU5QyxTQUFTLENBQWdCO0lBQ3pCLHFCQUFxQixDQUFVO0lBRXZDLHlEQUF5RDtJQUNqRCxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLEtBQUssR0FBa0IsSUFBSSxDQUFDO0lBQzVCLFNBQVMsR0FBUSxJQUFJLENBQUM7SUFFOUIscURBQXFEO0lBQ3JELHlGQUF5RjtJQUN6Riw4REFBOEQ7SUFDN0MseUJBQXlCLEdB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QyxHQUFHLENBQUM7WUFDSixRQUFRLEVBQUU7Z0JBQ1IsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO2dCQUNyQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sT0FBTyxJQUFJLGVBQWUsRUFBRSxFQUFFO2FBQzNEO1lBQ0QsS0FBSyxFQUFFLE9BQU8sSUFBSSxlQUFlO1NBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQjtZQUFFLE9BQU87UUFDeEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxpQ0FBaUM7SUFFekIsTUFBTTtRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO3VHQWhTVSxtQkFBbUI7MkdBQW5CLG1CQUFtQixjQUROLE1BQU07OzJGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQXNzaXN0YW50U3RyZWFtU2VydmljZSxcbiAgU3RyZWFtRXZlbnQsXG4gIE1lc3NhZ2VFdmVudCxcbiAgR3JvdXBFdmVudCxcbiAgSnNvbkV2ZW50LFxuICBUb29sRXZlbnQsXG4gIFN0YXJ0RXZlbnQsXG4gIEVycm9yRXZlbnQsXG59IGZyb20gJy4vYXNzaXN0YW50LXN0cmVhbS5zZXJ2aWNlJztcblxuLyoqIE9yZGVyZWQgYXNzaXN0YW50IHR1cm4gc2VnbWVudHMgKHByZXNlcnZlIGV4YWN0IHNlcnZlciBvcmRlcikuICovXG5leHBvcnQgdHlwZSBBc3Npc3RhbnRTZWdtZW50ID1cbiAgfCB7IGtpbmQ6ICd0ZXh0JzsgdGV4dDogc3RyaW5nIH1cbiAgfCB7IGtpbmQ6ICdncm91cCc7IGl0ZW06IEdyb3VwRXZlbnQgfVxuICB8IHsga2luZDogJ2pzb24nOyBkYXRhOiB1bmtub3duIH1cbiAgfCB7IGtpbmQ6ICd0b29sJzsgdG9vbDogVG9vbEV2ZW50IH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdE1lc3NhZ2Uge1xuICBpZDogc3RyaW5nO1xuICByb2xlOiAndXNlcicgfCAnYXNzaXN0YW50JztcbiAgdGV4dD86IHN0cmluZzsgICAgICAgICAgICAgICAgIC8vIGZvciB1c2VyIG1lc3NhZ2VzOyBub3QgdXNlZCBmb3IgYXNzaXN0YW50IHR1cm5zXG4gIHNlZ21lbnRzPzogQXNzaXN0YW50U2VnbWVudFtdOyAvLyBhc3Npc3RhbnQgb25seTogb3JkZXJlZCBzdHJlYW0gcGllY2VzXG4gIGVycm9yPzogc3RyaW5nO1xuICBkb25lPzogYm9vbGVhbjtcbiAgY3JlYXRlZEF0OiBudW1iZXI7XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ29udmVyc2F0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgYXNzaXN0YW50ID0gaW5qZWN0KEFzc2lzdGFudFN0cmVhbVNlcnZpY2UpXG4gIHByaXZhdGUgY29udmVyc2F0aW9uSWQ/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbWVzc2FnZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDaGF0TWVzc2FnZVtdPihbXSk7XG4gIHJlYWRvbmx5IG1lc3NhZ2VzJCA9IHRoaXMuX21lc3NhZ2VzJC5hc09ic2VydmFibGUoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF90eXBpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHR5cGluZyQgPSB0aGlzLl90eXBpbmckLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIC8vIOKchSBuZXc6IHN0cmVhbWluZyRcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RyZWFtaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzdHJlYW1pbmckID0gdGhpcy5fc3RyZWFtaW5nJC5hc09ic2VydmFibGUoKTtcblxuICBwcml2YXRlIHN0cmVhbVN1Yj86IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBjdXJyZW50QXNzaXN0YW50TXNnSWQ/OiBzdHJpbmc7XG5cbiAgLy8gQWNjdW11bGF0aW9uIHN0YXRlIGZvciBzdHJlYW1pbmcgYXNzaXN0YW50IHRleHQgZGVsdGFzXG4gIHByaXZhdGUgcGVuZGluZ0RlbHRhID0gJyc7XG4gIHByaXZhdGUgcmFmSWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHRpbWVvdXRJZDogYW55ID0gbnVsbDtcblxuICAvLyBDb250cm9sIGhvdyBjb25zZWN1dGl2ZSBcIm1lc3NhZ2VcIiBldmVudHMgYXJlIHNwbGl0XG4gIC8vIGZhbHNlID0gY29hbGVzY2Ugc3RyZWFtaW5nIGNodW5rcyAoZGVsdGE6dHJ1ZSksIHN0YXJ0IG5ldyBzZWdtZW50IHdoZW4gZGVsdGEgPT09IGZhbHNlXG4gIC8vIHRydWUgID0gc3BsaXQgZXZlcnkgbWVzc2FnZSBldmVudCBpbnRvIGl0cyBvd24gdGV4dCBzZWdtZW50XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RyaWN0TWVzc2FnZVNlZ21lbnRhdGlvbiA9IGZhbHNlO1xuXG4gIC8vIGxpZ2h0d2VpZ2h0IFVJIHNpZ25hbHMgKHNuYWNrYmFyLCBldGMuKVxuICByZWFkb25seSBldmVudHMkID0gbmV3IFN1YmplY3Q8eyBraW5kOiAnZXJyb3InIHwgJ2luZm8nOyB0ZXh0OiBzdHJpbmcgfT4oKTtcblxuICAvKiogU2V0IGtub3duIGNvbnZlcnNhdGlvbklkIGlkIChvcHRpb25hbCkuICovXG4gIHNldENvbnZlcnNhdGlvbklkKGNvbnZlcnNhdGlvbklkPzogc3RyaW5nKSB7XG4gICAgdGhpcy5jb252ZXJzYXRpb25JZCA9IGNvbnZlcnNhdGlvbklkO1xuICB9XG5cbiAgLyoqIENsZWFyIGN1cnJlbnQgY29udmVyc2F0aW9uIHN0YXRlLiAqL1xuICBkaXNwb3NlKCkge1xuICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgdGhpcy5fbWVzc2FnZXMkLm5leHQoW10pO1xuICAgIHRoaXMuY3VycmVudEFzc2lzdGFudE1zZ0lkID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY2xlYXJTY2hlZHVsZXJzKCk7XG4gIH1cblxuICAvKiogU3RvcCBjdXJyZW50IHN0cmVhbSAoZS5nLiwgdXNlciBwcmVzc2VkIFN0b3ApLiAqL1xuICBjYW5jZWwoKSB7XG4gICAgaWYgKHRoaXMuc3RyZWFtU3ViKSB7XG4gICAgICB0aGlzLnN0cmVhbVN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5zdHJlYW1TdWIgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLl90eXBpbmckLm5leHQoZmFsc2UpO1xuICAgICAgdGhpcy5fc3RyZWFtaW5nJC5uZXh0KGZhbHNlKTsgICAgIC8vIOKchSBzdG9wIHNwaW5uZXIgaW1tZWRpYXRlbHlcbiAgICAgIHRoaXMuZmx1c2hQZW5kaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFNlbmQgYSB1c2VyIG1lc3NhZ2UgYW5kIHN0YXJ0IHN0cmVhbWluZyBhbiBhc3Npc3RhbnQgcmVzcG9uc2UuICovXG4gIHNlbmQobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgY29uc3QgdHJpbW1lZCA9IG1lc3NhZ2U/LnRyaW0oKTtcbiAgICBpZiAoIXRyaW1tZWQpIHJldHVybjtcblxuICAgIC8vIEFwcGVuZCB1c2VyIG1lc3NhZ2UgdG8gdGltZWxpbmVcbiAgICB0aGlzLl9tZXNzYWdlcyQubmV4dChbXG4gICAgICAuLi50aGlzLl9tZXNzYWdlcyQudmFsdWUsXG4gICAgICB7IGlkOiB0aGlzLm5leHRJZCgpLCByb2xlOiAndXNlcicsIHRleHQ6IHRyaW1tZWQsIGNyZWF0ZWRBdDogRGF0ZS5ub3coKSB9LFxuICAgIF0pO1xuXG4gICAgLy8gU3RhcnQvY29udGludWUgYXNzaXN0YW50IHN0cmVhbVxuICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgdGhpcy5fdHlwaW5nJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuX3N0cmVhbWluZyQubmV4dCh0cnVlKTsgICAgICAvLyDinIUgc3RhcnQgc3Bpbm5lciBhcyBzb29uIGFzIHdlIHN0cmVhbVxuXG4gICAgdGhpcy5zdHJlYW1TdWIgPSB0aGlzLmFzc2lzdGFudFxuICAgICAgLnN0cmVhbSh7IG1lc3NhZ2U6IHRyaW1tZWQsIGNvbnZlcnNhdGlvbklkOiB0aGlzLmNvbnZlcnNhdGlvbklkIH0pXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGV2KSA9PiB0aGlzLmhhbmRsZVN0cmVhbUV2ZW50KGV2KSxcbiAgICAgICAgZXJyb3I6IChlOiBFcnJvckV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5fdHlwaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLl9zdHJlYW1pbmckLm5leHQoZmFsc2UpOyAgIC8vIOKchSBzdG9wIHNwaW5uZXJcbiAgICAgICAgICB0aGlzLmZsdXNoUGVuZGluZygpO1xuICAgICAgICAgIHRoaXMucHVzaEFzc2lzdGFudEVycm9yKGU/Lm1lc3NhZ2UgPz8gJ1N0cmVhbSBmYWlsZWQnKTtcbiAgICAgICAgICB0aGlzLmV2ZW50cyQubmV4dCh7IGtpbmQ6ICdlcnJvcicsIHRleHQ6IGU/Lm1lc3NhZ2UgPz8gJ1N0cmVhbSBmYWlsZWQnIH0pO1xuICAgICAgICB9LFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3R5cGluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5fc3RyZWFtaW5nJC5uZXh0KGZhbHNlKTsgICAvLyDinIUgc3RvcCBzcGlubmVyXG4gICAgICAgICAgdGhpcy5mbHVzaFBlbmRpbmcoKTtcbiAgICAgICAgICB0aGlzLm1hcmtBc3Npc3RhbnREb25lKCk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIC8qID09PT09PT09PT0gSW50ZXJuYWxzID09PT09PT09PT0gKi9cblxuICBwcml2YXRlIGhhbmRsZVN0cmVhbUV2ZW50KGV2OiBTdHJlYW1FdmVudCkge1xuICAgIHN3aXRjaCAoZXYudHlwZSkge1xuICAgICAgY2FzZSAnc3RhcnQnOiB7XG4gICAgICAgIGNvbnN0IHMgPSBldiBhcyBTdGFydEV2ZW50O1xuICAgICAgICBpZiAocy5jb252ZXJzYXRpb25JZCkgdGhpcy5jb252ZXJzYXRpb25JZCA9IHMuY29udmVyc2F0aW9uSWQ7XG4gICAgICAgIHRoaXMuZW5zdXJlQXNzaXN0YW50TWVzc2FnZSgpO1xuICAgICAgICB0aGlzLl9zdHJlYW1pbmckLm5leHQodHJ1ZSk7ICAgICAgLy8g4pyFIGVuc3VyZSBzcGlubmVyIGV2ZW4gaWYgd2UgYmVnaW4gb24gJ3N0YXJ0J1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSAnbWVzc2FnZSc6IHtcbiAgICAgICAgY29uc3QgbSA9IGV2IGFzIE1lc3NhZ2VFdmVudDtcblxuICAgICAgICAvLyBNb3N0IGFwcHMgYXZvaWQgZWNob2luZyBzZXJ2ZXIgXCJ1c2VyXCIgbWVzc2FnZXMgdG8gcHJldmVudCBkdXBsaWNhdGVzXG4gICAgICAgIGlmIChtLnJvbGUgIT09ICdhc3Npc3RhbnQnKSBicmVhaztcblxuICAgICAgICB0aGlzLmJ1ZmZlckFzc2lzdGFudE1lc3NhZ2UobSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlICdncm91cCc6IHtcbiAgICAgICAgdGhpcy5mbHVzaFBlbmRpbmcoKTtcbiAgICAgICAgY29uc3QgZyA9IGV2IGFzIEdyb3VwRXZlbnQ7XG4gICAgICAgIHRoaXMucHVzaEFzc2lzdGFudFNlZ21lbnQoeyBraW5kOiAnZ3JvdXAnLCBpdGVtOiBnIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSAnanNvbic6IHtcbiAgICAgICAgdGhpcy5mbHVzaFBlbmRpbmcoKTtcbiAgICAgICAgY29uc3QgaiA9IGV2IGFzIEpzb25FdmVudDtcbiAgICAgICAgdGhpcy5wdXNoQXNzaXN0YW50U2VnbWVudCh7IGtpbmQ6ICdqc29uJywgZGF0YTogai5kYXRhIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSAndG9vbCc6IHtcbiAgICAgICAgdGhpcy5mbHVzaFBlbmRpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9IGV2IGFzIFRvb2xFdmVudDtcbiAgICAgICAgdGhpcy5wdXNoQXNzaXN0YW50U2VnbWVudCh7IGtpbmQ6ICd0b29sJywgdG9vbDogdCB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2Vycm9yJzoge1xuICAgICAgICB0aGlzLmZsdXNoUGVuZGluZygpO1xuICAgICAgICBjb25zdCBlID0gZXYgYXMgRXJyb3JFdmVudDtcbiAgICAgICAgdGhpcy5wdXNoQXNzaXN0YW50RXJyb3IoZS5tZXNzYWdlKTtcbiAgICAgICAgdGhpcy5fc3RyZWFtaW5nJC5uZXh0KGZhbHNlKTsgICAgIC8vIOKchSBzdG9wIHNwaW5uZXIgb24gZXJyb3JcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2RvbmUnOiB7XG4gICAgICAgIHRoaXMuZmx1c2hQZW5kaW5nKCk7XG4gICAgICAgIHRoaXMubWFya0Fzc2lzdGFudERvbmUoKTtcbiAgICAgICAgdGhpcy5fc3RyZWFtaW5nJC5uZXh0KGZhbHNlKTsgICAgIC8vIOKchSBzdG9wIHNwaW5uZXIgb24gZG9uZVxuICAgICAgICB0aGlzLl90eXBpbmckLm5leHQoZmFsc2UpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlQXNzaXN0YW50TWVzc2FnZSgpIHtcbiAgICBpZiAoIXRoaXMuY3VycmVudEFzc2lzdGFudE1zZ0lkKSB7XG4gICAgICBjb25zdCBtc2c6IENoYXRNZXNzYWdlID0ge1xuICAgICAgICBpZDogdGhpcy5uZXh0SWQoKSxcbiAgICAgICAgcm9sZTogJ2Fzc2lzdGFudCcsXG4gICAgICAgIHNlZ21lbnRzOiBbXSxcbiAgICAgICAgY3JlYXRlZEF0OiBEYXRlLm5vdygpLFxuICAgICAgfTtcbiAgICAgIHRoaXMuY3VycmVudEFzc2lzdGFudE1zZ0lkID0gbXNnLmlkO1xuICAgICAgdGhpcy5fbWVzc2FnZXMkLm5leHQoWy4uLnRoaXMuX21lc3NhZ2VzJC52YWx1ZSwgbXNnXSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB3aXRoQ3VycmVudEFzc2lzdGFudChtdXQ6IChtOiBDaGF0TWVzc2FnZSkgPT4gQ2hhdE1lc3NhZ2UpIHtcbiAgICBpZiAoIXRoaXMuY3VycmVudEFzc2lzdGFudE1zZ0lkKSB0aGlzLmVuc3VyZUFzc2lzdGFudE1lc3NhZ2UoKTtcbiAgICBjb25zdCBpZCA9IHRoaXMuY3VycmVudEFzc2lzdGFudE1zZ0lkITtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5fbWVzc2FnZXMkLnZhbHVlO1xuICAgIGNvbnN0IGlkeCA9IGxpc3QuZmluZEluZGV4KChtKSA9PiBtLmlkID09PSBpZCk7XG4gICAgaWYgKGlkeCA9PT0gLTEpIHJldHVybjtcblxuICAgIGNvbnN0IHVwZGF0ZWQgPSBtdXQobGlzdFtpZHhdKTtcbiAgICBjb25zdCBuZXdMaXN0ID0gWy4uLmxpc3RdO1xuICAgIG5ld0xpc3RbaWR4XSA9IHVwZGF0ZWQ7XG4gICAgdGhpcy5fbWVzc2FnZXMkLm5leHQobmV3TGlzdCk7XG4gIH1cblxuICAvKiA9PT09PT09PT09IFNlZ21lbnQgaGVscGVycyAob3JkZXJlZCkgPT09PT09PT09PSAqL1xuXG4gIHByaXZhdGUgcHVzaEFzc2lzdGFudFNlZ21lbnQoc2VnOiBBc3Npc3RhbnRTZWdtZW50KSB7XG4gICAgdGhpcy5lbnN1cmVBc3Npc3RhbnRNZXNzYWdlKCk7XG4gICAgdGhpcy53aXRoQ3VycmVudEFzc2lzdGFudCgobSkgPT4gKHtcbiAgICAgIC4uLm0sXG4gICAgICBzZWdtZW50czogWy4uLihtLnNlZ21lbnRzID8/IFtdKSwgc2VnXSxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGVuZFRvTGFzdFRleHRTZWdtZW50KGRlbHRhOiBzdHJpbmcpIHtcbiAgICB0aGlzLndpdGhDdXJyZW50QXNzaXN0YW50KChtKSA9PiB7XG4gICAgICBjb25zdCBzZWdzID0gWy4uLihtLnNlZ21lbnRzID8/IFtdKV07XG4gICAgICBpZiAoc2Vncy5sZW5ndGggJiYgc2Vnc1tzZWdzLmxlbmd0aCAtIDFdLmtpbmQgPT09ICd0ZXh0Jykge1xuICAgICAgICBjb25zdCBsYXN0ID0gc2Vnc1tzZWdzLmxlbmd0aCAtIDFdIGFzIHsga2luZDogJ3RleHQnOyB0ZXh0OiBzdHJpbmcgfTtcbiAgICAgICAgc2Vnc1tzZWdzLmxlbmd0aCAtIDFdID0geyBraW5kOiAndGV4dCcsIHRleHQ6IGxhc3QudGV4dCArIGRlbHRhIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWdzLnB1c2goeyBraW5kOiAndGV4dCcsIHRleHQ6IGRlbHRhIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgLi4ubSwgc2VnbWVudHM6IHNlZ3MgfTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qID09PT09PT09PT0gTWVzc2FnZSBidWZmZXJpbmcgLyBhY2N1bXVsYXRpb24gPT09PT09PT09PSAqL1xuXG4gIHByaXZhdGUgYnVmZmVyQXNzaXN0YW50TWVzc2FnZShtOiBNZXNzYWdlRXZlbnQpIHtcbiAgICBjb25zdCB0ZXh0ID0gbS50ZXh0ID8/ICcnO1xuICAgIGlmICghdGV4dCkgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMuc3RyaWN0TWVzc2FnZVNlZ21lbnRhdGlvbikge1xuICAgICAgLy8gU3BsaXQgZXZlcnkgbWVzc2FnZSBhcyBpdHMgb3duIHNlZ21lbnRcbiAgICAgIHRoaXMuZmx1c2hQZW5kaW5nKCk7XG4gICAgICB0aGlzLnB1c2hBc3Npc3RhbnRTZWdtZW50KHsga2luZDogJ3RleHQnLCB0ZXh0IH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIERlZmF1bHQ6IGNvYWxlc2NlIHN0cmVhbWluZyBjaHVua3MgKGRlbHRhOnRydWUpO1xuICAgIC8vIGlmIGRlbHRhID09PSBmYWxzZSwgc3RhcnQgYSBuZXcgc2VnbWVudFxuICAgIGlmIChtLmRlbHRhID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5mbHVzaFBlbmRpbmcoKTtcbiAgICAgIHRoaXMucHVzaEFzc2lzdGFudFNlZ21lbnQoeyBraW5kOiAndGV4dCcsIHRleHQgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYnVmZmVyQXNzaXN0YW50RGVsdGEodGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBidWZmZXJBc3Npc3RhbnREZWx0YShjaHVuazogc3RyaW5nKSB7XG4gICAgaWYgKCFjaHVuaykgcmV0dXJuO1xuICAgIHRoaXMucGVuZGluZ0RlbHRhICs9IGNodW5rO1xuICAgIHRoaXMuc2NoZWR1bGVGbHVzaCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzY2hlZHVsZUZsdXNoKCkge1xuICAgIGlmICh0aGlzLnJhZklkICE9IG51bGwgfHwgdGhpcy50aW1lb3V0SWQgIT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgY29uc3QgcmFmID0gKGdsb2JhbFRoaXMgYXMgYW55KS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/LmJpbmQoZ2xvYmFsVGhpcyk7XG4gICAgaWYgKHJhZikge1xuICAgICAgdGhpcy5yYWZJZCA9IHJhZigoKSA9PiB7XG4gICAgICAgIHRoaXMucmFmSWQgPSBudWxsO1xuICAgICAgICB0aGlzLmZsdXNoUGVuZGluZygpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMudGltZW91dElkID0gbnVsbDtcbiAgICAgICAgdGhpcy5mbHVzaFBlbmRpbmcoKTtcbiAgICAgIH0sIDMzKTsgLy8gfjMwZnBzXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjbGVhclNjaGVkdWxlcnMoKSB7XG4gICAgY29uc3QgY2FmID0gKGdsb2JhbFRoaXMgYXMgYW55KS5jYW5jZWxBbmltYXRpb25GcmFtZT8uYmluZChnbG9iYWxUaGlzKTtcbiAgICBpZiAodGhpcy5yYWZJZCAhPSBudWxsICYmIGNhZikgY2FmKHRoaXMucmFmSWQpO1xuICAgIGlmICh0aGlzLnRpbWVvdXRJZCAhPSBudWxsKSBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0SWQpO1xuICAgIHRoaXMucmFmSWQgPSBudWxsO1xuICAgIHRoaXMudGltZW91dElkID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZmx1c2hQZW5kaW5nKCkge1xuICAgIGlmICghdGhpcy5wZW5kaW5nRGVsdGEpIHJldHVybjtcbiAgICBjb25zdCBkZWx0YSA9IHRoaXMucGVuZGluZ0RlbHRhO1xuICAgIHRoaXMucGVuZGluZ0RlbHRhID0gJyc7XG4gICAgdGhpcy5jbGVhclNjaGVkdWxlcnMoKTtcblxuICAgIHRoaXMuYXBwZW5kVG9MYXN0VGV4dFNlZ21lbnQoZGVsdGEpO1xuICB9XG5cbiAgLyogPT09PT09PT09PSBGaW5hbGl6YXRpb24gLyBlcnJvciA9PT09PT09PT09ICovXG5cbiAgcHJpdmF0ZSBwdXNoQXNzaXN0YW50RXJyb3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgdGhpcy5lbnN1cmVBc3Npc3RhbnRNZXNzYWdlKCk7XG4gICAgdGhpcy53aXRoQ3VycmVudEFzc2lzdGFudCgobSkgPT4gKHtcbiAgICAgIC4uLm0sXG4gICAgICBzZWdtZW50czogW1xuICAgICAgICAuLi4obS5zZWdtZW50cyA/PyBbXSksXG4gICAgICAgIHsga2luZDogJ3RleHQnLCB0ZXh0OiBg4pqg77iPICR7bWVzc2FnZSB8fCAnVW5rbm93biBlcnJvcid9YCB9LFxuICAgICAgXSxcbiAgICAgIGVycm9yOiBtZXNzYWdlIHx8ICdVbmtub3duIGVycm9yJyxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIG1hcmtBc3Npc3RhbnREb25lKCkge1xuICAgIGlmICghdGhpcy5jdXJyZW50QXNzaXN0YW50TXNnSWQpIHJldHVybjtcbiAgICB0aGlzLndpdGhDdXJyZW50QXNzaXN0YW50KChtKSA9PiAoeyAuLi5tLCBkb25lOiB0cnVlIH0pKTtcbiAgICB0aGlzLmN1cnJlbnRBc3Npc3RhbnRNc2dJZCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qID09PT09PT09PT0gVXRpbHMgPT09PT09PT09PSAqL1xuXG4gIHByaXZhdGUgbmV4dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpICsgRGF0ZS5ub3coKS50b1N0cmluZygzNik7XG4gIH1cbn1cbiJdfQ==","// src/app/services/conversation-init.service.ts\nimport { Injectable, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { firstValueFrom } from 'rxjs';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport * as i0 from \"@angular/core\";\nexport class ConversationInitService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n init(message) {\n return firstValueFrom(this.http.post(`${this.environment.baseUrl}/conversations/init`, { message }, { withCredentials: true }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ConversationInitService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ConversationInitService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: ConversationInitService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLWluaXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9jb252ZXJzYXRpb24taW5pdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdEQUFnRDtBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBT3RELE1BQU0sT0FBTyx1QkFBdUI7SUFDeEIsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRWxDLElBQUksQ0FBQyxPQUFlO1FBQ2xCLE9BQU8sY0FBYyxDQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBMkIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8scUJBQXFCLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUNuSSxDQUFDO0lBQ0osQ0FBQzt1R0FSVSx1QkFBdUI7MkdBQXZCLHVCQUF1QixjQURWLE1BQU07OzJGQUNuQix1QkFBdUI7a0JBRG5DLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2FwcC9zZXJ2aWNlcy9jb252ZXJzYXRpb24taW5pdC5zZXJ2aWNlLnRzXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVBQX0NPTkZJRyB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udmVyc2F0aW9uSW5pdFJlc3BvbnNlIHtcbiAgY29udmVyc2F0aW9uSWQ6IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDb252ZXJzYXRpb25Jbml0U2VydmljZSB7XG4gIHByb3RlY3RlZCBlbnZpcm9ubWVudCA9IGluamVjdChBUFBfQ09ORklHKTtcbiAgcHJpdmF0ZSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuXG4gIGluaXQobWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTxDb252ZXJzYXRpb25Jbml0UmVzcG9uc2U+IHtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmh0dHAucG9zdDxDb252ZXJzYXRpb25Jbml0UmVzcG9uc2U+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vY29udmVyc2F0aW9ucy9pbml0YCwgeyBtZXNzYWdlIH0sIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgKTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { HttpParams } from '@angular/common/http';\nimport * as i0 from \"@angular/core\";\nexport class PropertySearchService extends BaseService {\n init() {\n this.endpoint = 'properties';\n super.init();\n }\n search1(options) {\n return this.http.get(`${this.actionUrl}/search`, {\n params: options,\n });\n }\n search(rawParams) {\n const params = this.stripUndefined(rawParams);\n // Decide route: empty filter → DB list; else → Elasticsearch-backed search\n const isEmpty = this.isEmptyFilter(params);\n let httpParams = new HttpParams();\n for (const [k, v] of Object.entries(params)) {\n if (Array.isArray(v)) {\n v.forEach((item) => (httpParams = httpParams.append(k, String(item))));\n }\n else {\n httpParams = httpParams.set(k, String(v));\n }\n }\n return isEmpty\n ? this.http.get(`${this.actionUrl}`, { params: httpParams }) // DB list\n : this.http.get(`${this.actionUrl}/search`, { params: httpParams }); // ES search\n }\n stripUndefined(obj) {\n const out = {};\n for (const [k, v] of Object.entries(obj)) {\n if (v !== undefined && v !== null && !(Array.isArray(v) && v.length === 0) && v !== '') {\n out[k] = v;\n }\n }\n return out;\n }\n isEmptyFilter(params, ignoreKeys = ['page', 'limit', 'sort']) {\n return Object.entries(params).every(([k, v]) => ignoreKeys.includes(k) || v === undefined || v === null || v === '' || (Array.isArray(v) && v.length === 0));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertySearchService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertySearchService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: PropertySearchService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktc2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvc2VydmljZXMvcHJvcGVydHktc2VhcmNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQVVsRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsV0FBVztJQUMzQyxJQUFJO1FBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7UUFDN0IsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sQ0FBQyxPQUFZO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxTQUFTLEVBQUU7WUFDcEQsTUFBTSxFQUFFLE9BQU87U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sQ0FBVSxTQUE4QjtRQUM1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTlDLDJFQUEyRTtRQUMzRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTNDLElBQUksVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDbEMsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM1QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDckIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLENBQUM7aUJBQU0sQ0FBQztnQkFDTixVQUFVLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLE9BQU87WUFDWixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQVcsVUFBVTtZQUNsRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBRyxZQUFZO0lBQ3hHLENBQUM7SUFFRCxjQUFjLENBQWdDLEdBQU07UUFDbEQsTUFBTSxHQUFHLEdBQWUsRUFBRSxDQUFDO1FBQzNCLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ3RGLEdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxhQUFhLENBQ1gsTUFBMkIsRUFDM0IsYUFBdUIsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQztRQUVoRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUM3QyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUM1RyxDQUFDO0lBQ0osQ0FBQzt1R0E5Q1UscUJBQXFCOzJHQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hSZXN1bHQ8VD4ge1xuICBkYXRhOiBUW107XG4gIG1ldGE6IHsgcGFnaW5hdGlvbjogeyB0b3RhbDogbnVtYmVyOyBjb3VudDogbnVtYmVyOyBwYWdlOiBudW1iZXI7IGxpbWl0OiBudW1iZXIgfSB9O1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlTZWFyY2hTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSAncHJvcGVydGllcyc7XG4gICAgc3VwZXIuaW5pdCgpO1xuICB9XG4gIHNlYXJjaDEob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYWN0aW9uVXJsfS9zZWFyY2hgLCB7XG4gICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgfSk7XG4gIH1cbiAgc2VhcmNoPFQgPSBhbnk+KHJhd1BhcmFtczogUmVjb3JkPHN0cmluZywgYW55Pik6IE9ic2VydmFibGU8U2VhcmNoUmVzdWx0PFQ+PiB7XG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5zdHJpcFVuZGVmaW5lZChyYXdQYXJhbXMpO1xuXG4gICAgLy8gRGVjaWRlIHJvdXRlOiBlbXB0eSBmaWx0ZXIg4oaSIERCIGxpc3Q7IGVsc2Ug4oaSIEVsYXN0aWNzZWFyY2gtYmFja2VkIHNlYXJjaFxuICAgIGNvbnN0IGlzRW1wdHkgPSB0aGlzLmlzRW1wdHlGaWx0ZXIocGFyYW1zKTtcblxuICAgIGxldCBodHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhwYXJhbXMpKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2KSkge1xuICAgICAgICB2LmZvckVhY2goKGl0ZW0pID0+IChodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQoaywgU3RyaW5nKGl0ZW0pKSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuc2V0KGssIFN0cmluZyh2KSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpc0VtcHR5XG4gICAgICA/IHRoaXMuaHR0cC5nZXQ8U2VhcmNoUmVzdWx0PFQ+PihgJHt0aGlzLmFjdGlvblVybH1gLCB7IHBhcmFtczogaHR0cFBhcmFtcyB9KSAgICAgICAgICAgLy8gREIgbGlzdFxuICAgICAgOiB0aGlzLmh0dHAuZ2V0PFNlYXJjaFJlc3VsdDxUPj4oYCR7dGhpcy5hY3Rpb25Vcmx9L3NlYXJjaGAsIHsgcGFyYW1zOiBodHRwUGFyYW1zIH0pOyAgIC8vIEVTIHNlYXJjaFxuICB9XG5cbiAgc3RyaXBVbmRlZmluZWQ8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4+KG9iajogVCk6IFBhcnRpYWw8VD4ge1xuICAgIGNvbnN0IG91dDogUGFydGlhbDxUPiA9IHt9O1xuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKG9iaikpIHtcbiAgICAgIGlmICh2ICE9PSB1bmRlZmluZWQgJiYgdiAhPT0gbnVsbCAmJiAhKEFycmF5LmlzQXJyYXkodikgJiYgdi5sZW5ndGggPT09IDApICYmIHYgIT09ICcnKSB7XG4gICAgICAgIChvdXQgYXMgYW55KVtrXSA9IHY7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvdXQ7XG4gIH1cblxuICBpc0VtcHR5RmlsdGVyKFxuICAgIHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICBpZ25vcmVLZXlzOiBzdHJpbmdbXSA9IFsncGFnZScsICdsaW1pdCcsICdzb3J0J11cbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHBhcmFtcykuZXZlcnkoKFtrLCB2XSkgPT5cbiAgICAgIGlnbm9yZUtleXMuaW5jbHVkZXMoaykgfHwgdiA9PT0gdW5kZWZpbmVkIHx8IHYgPT09IG51bGwgfHwgdiA9PT0gJycgfHwgKEFycmF5LmlzQXJyYXkodikgJiYgdi5sZW5ndGggPT09IDApXG4gICAgKTtcbiAgfVxuXG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { finalize } from 'rxjs/operators';\nimport { LoadingService } from '../services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../services\";\nexport class LoadingInterceptor {\n loadingService;\n activeRequests = 0;\n constructor(loadingService) {\n this.loadingService = loadingService;\n }\n intercept(request, next) {\n if (this.activeRequests === 0) {\n this.loadingService.start();\n }\n this.activeRequests++;\n return next.handle(request).pipe(finalize(() => {\n this.activeRequests--;\n if (this.activeRequests === 0) {\n this.loadingService.stop();\n }\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LoadingInterceptor, deps: [{ token: i1.LoadingService }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LoadingInterceptor, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: LoadingInterceptor, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [{ type: i1.LoadingService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL2xpYi9pbnRlcmNlcHRvci9sb2FkaW5nLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQUs3QyxNQUFNLE9BQU8sa0JBQWtCO0lBR1Q7SUFGcEIsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUVuQixZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBRyxDQUFDO0lBRXRELFNBQVMsQ0FDUCxPQUF5QixFQUN6QixJQUFpQjtRQUVqQixJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzlCLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzt1R0F2QlUsa0JBQWtCOzJHQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEh0dHBJbnRlcmNlcHRvcixcbiAgSHR0cFJlcXVlc3QsXG4gIEh0dHBIYW5kbGVyLFxuICBIdHRwRXZlbnQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTG9hZGluZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMb2FkaW5nSW50ZXJjZXB0b3Ige1xuICBhY3RpdmVSZXF1ZXN0cyA9IDA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2FkaW5nU2VydmljZTogTG9hZGluZ1NlcnZpY2UpIHt9XG5cbiAgaW50ZXJjZXB0KFxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcbiAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIGlmICh0aGlzLmFjdGl2ZVJlcXVlc3RzID09PSAwKSB7XG4gICAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLnN0YXJ0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5hY3RpdmVSZXF1ZXN0cysrO1xuXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpLnBpcGUoXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZlUmVxdWVzdHMtLTtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlUmVxdWVzdHMgPT09IDApIHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=","import { Directive, HostListener, inject } from '@angular/core';\nimport { NavigationService } from '../services';\nimport * as i0 from \"@angular/core\";\nexport class BackButtonDirective {\n navigation = inject(NavigationService);\n constructor() { }\n onClick() {\n this.navigation.back();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BackButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.2.0\", type: BackButtonDirective, isStandalone: true, selector: \"[rolatechBackButton]\", host: { listeners: { \"click\": \"onClick()\" } }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: BackButtonDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rolatechBackButton]',\n }]\n }], ctorParameters: () => [], propDecorators: { onClick: [{\n type: HostListener,\n args: ['click']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay1idXR0b24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL2RpcmVjdGl2ZS9iYWNrLWJ1dHRvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFLaEQsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixVQUFVLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsZ0JBQWUsQ0FBQztJQUVoQixPQUFPO1FBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO3VHQU5VLG1CQUFtQjsyRkFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2pDO3dEQUtDLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tyb2xhdGVjaEJhY2tCdXR0b25dJyxcbn0pXG5leHBvcnQgY2xhc3MgQmFja0J1dHRvbkRpcmVjdGl2ZSB7XG4gIG5hdmlnYXRpb24gPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuICBjb25zdHJ1Y3RvcigpIHt9XG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgb25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLm5hdmlnYXRpb24uYmFjaygpO1xuICB9XG59XG4iXX0=","import { Directive, inject } from '@angular/core';\nimport { LayoutService } from '../services';\nimport * as i0 from \"@angular/core\";\nexport class HideFooterDirective {\n layout = inject(LayoutService);\n ngOnInit() { this.layout.setHideFooter(true); }\n ngOnDestroy() { this.layout.setHideFooter(false); }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: HideFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.2.0\", type: HideFooterDirective, isStandalone: true, selector: \"[rolatechHideFooter]\", ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.0\", ngImport: i0, type: HideFooterDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rolatechHideFooter]',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlkZS1mb290ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZXJ2aWNlcy9zcmMvbGliL2RpcmVjdGl2ZS9oaWRlLWZvb3Rlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBSzVDLE1BQU0sT0FBTyxtQkFBbUI7SUFDdEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2QyxRQUFRLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9DLFdBQVcsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7dUdBSHhDLG1CQUFtQjsyRkFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkRlc3Ryb3ksIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcm9sYXRlY2hIaWRlRm9vdGVyXScsXG59KVxuZXhwb3J0IGNsYXNzIEhpZGVGb290ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgbGF5b3V0ID0gaW5qZWN0KExheW91dFNlcnZpY2UpO1xuICBuZ09uSW5pdCgpIHsgdGhpcy5sYXlvdXQuc2V0SGlkZUZvb3Rlcih0cnVlKTsgfVxuICBuZ09uRGVzdHJveSgpIHsgdGhpcy5sYXlvdXQuc2V0SGlkZUZvb3RlcihmYWxzZSk7IH1cbn1cbiJdfQ==","import { BackButtonDirective } from './back-button.directive';\nexport { HideFooterDirective } from './hide-footer.directive';\nexport { BackButtonDirective, } from './back-button.directive';\nexport const SERVICE_DIRECTIVES = [BackButtonDirective];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9saWIvZGlyZWN0aXZlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsR0FBRyxNQUFNLHlCQUF5QixDQUFDO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYWNrQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi9iYWNrLWJ1dHRvbi5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgSGlkZUZvb3RlckRpcmVjdGl2ZSB9IGZyb20gJy4vaGlkZS1mb290ZXIuZGlyZWN0aXZlJztcbmV4cG9ydCB7IEJhY2tCdXR0b25EaXJlY3RpdmUsIH0gZnJvbSAnLi9iYWNrLWJ1dHRvbi5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgU0VSVklDRV9ESVJFQ1RJVkVTOiBQcm92aWRlcltdID0gW0JhY2tCdXR0b25EaXJlY3RpdmVdO1xuIl19","import { APP_INITIALIZER, makeEnvironmentProviders } from '@angular/core';\nimport { BaseService, LoadingService, MediaService, LayoutService, DialogService, SnackBarService, NavigationService, SupportService, BreadcrumbService, SidenavService, CartService, ProductService, OrderService, } from './lib/services';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { LoadingInterceptor } from './lib/interceptor';\nimport { BackButtonDirective } from './lib/directive';\nexport function provideAngularServices() {\n const providers = [\n BaseService,\n LoadingService,\n MediaService,\n LayoutService,\n DialogService,\n SnackBarService,\n NavigationService,\n SupportService,\n BreadcrumbService,\n SidenavService,\n BackButtonDirective,\n CartService,\n ProductService,\n OrderService,\n { provide: HTTP_INTERCEPTORS, useClass: LoadingInterceptor, multi: true },\n {\n provide: APP_INITIALIZER,\n useFactory: () => () => null,\n deps: [NavigationService],\n multi: true,\n },\n ];\n return makeEnvironmentProviders(providers);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNlcnZpY2VzL3NyYy9wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFrQyx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQ0wsV0FBVyxFQUNYLGNBQWMsRUFDZCxZQUFZLEVBQ1osYUFBYSxFQUNiLGFBQWEsRUFDYixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxpQkFBaUIsRUFDakIsY0FBYyxFQUNkLFdBQVcsRUFDWCxjQUFjLEVBQ2QsWUFBWSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdEQsTUFBTSxVQUFVLHNCQUFzQjtJQUNwQyxNQUFNLFNBQVMsR0FBd0M7UUFDckQsV0FBVztRQUNYLGNBQWM7UUFDZCxZQUFZO1FBQ1osYUFBYTtRQUNiLGFBQWE7UUFDYixlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsY0FBYztRQUNkLG1CQUFtQjtRQUNuQixXQUFXO1FBQ1gsY0FBYztRQUNkLFlBQVk7UUFDWixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtRQUN6RTtZQUNFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJO1lBQzVCLElBQUksRUFBRSxDQUFDLGlCQUFpQixDQUFDO1lBQ3pCLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixDQUFDO0lBRUYsT0FBTyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBFbnZpcm9ubWVudFByb3ZpZGVycywgUHJvdmlkZXIsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmFzZVNlcnZpY2UsXG4gIExvYWRpbmdTZXJ2aWNlLFxuICBNZWRpYVNlcnZpY2UsXG4gIExheW91dFNlcnZpY2UsXG4gIERpYWxvZ1NlcnZpY2UsXG4gIFNuYWNrQmFyU2VydmljZSxcbiAgTmF2aWdhdGlvblNlcnZpY2UsXG4gIFN1cHBvcnRTZXJ2aWNlLFxuICBCcmVhZGNydW1iU2VydmljZSxcbiAgU2lkZW5hdlNlcnZpY2UsXG4gIENhcnRTZXJ2aWNlLFxuICBQcm9kdWN0U2VydmljZSxcbiAgT3JkZXJTZXJ2aWNlLFxufSBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IExvYWRpbmdJbnRlcmNlcHRvciB9IGZyb20gJy4vbGliL2ludGVyY2VwdG9yJztcbmltcG9ydCB7IEJhY2tCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuL2xpYi9kaXJlY3RpdmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUFuZ3VsYXJTZXJ2aWNlcygpOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIGNvbnN0IHByb3ZpZGVyczogKFByb3ZpZGVyIHwgRW52aXJvbm1lbnRQcm92aWRlcnMpW10gPSBbXG4gICAgQmFzZVNlcnZpY2UsXG4gICAgTG9hZGluZ1NlcnZpY2UsXG4gICAgTWVkaWFTZXJ2aWNlLFxuICAgIExheW91dFNlcnZpY2UsXG4gICAgRGlhbG9nU2VydmljZSxcbiAgICBTbmFja0JhclNlcnZpY2UsXG4gICAgTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgU3VwcG9ydFNlcnZpY2UsXG4gICAgQnJlYWRjcnVtYlNlcnZpY2UsXG4gICAgU2lkZW5hdlNlcnZpY2UsXG4gICAgQmFja0J1dHRvbkRpcmVjdGl2ZSxcbiAgICBDYXJ0U2VydmljZSxcbiAgICBQcm9kdWN0U2VydmljZSxcbiAgICBPcmRlclNlcnZpY2UsXG4gICAgeyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IExvYWRpbmdJbnRlcmNlcHRvciwgbXVsdGk6IHRydWUgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiAoKSA9PiBudWxsLFxuICAgICAgZGVwczogW05hdmlnYXRpb25TZXJ2aWNlXSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF07XG5cbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhwcm92aWRlcnMpO1xufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sYXRlY2gtYW5ndWxhci1zZXJ2aWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2VydmljZXMvc3JjL3JvbGF0ZWNoLWFuZ3VsYXItc2VydmljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["map","i1.LoadingService"],"mappings":"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"}