{ "version": 3, "sources": ["src/app/root-store/object-tree-store/actions.ts", "src/app/shared/confirm-dialog/confirm-dialog.component.ts", "src/app/shared/confirm-dialog/confirm-dialog.component.html", "src/app/core/dialog.service.ts"], "sourcesContent": ["import { createAction, props } from '@ngrx/store';\r\nimport { SelectedTreeItem, TreeAndItems } from './object-tree.models';\r\n\r\nexport const SetTreeItemsLoading = createAction(\r\n '[Object Tree] Set Tree Items Loading'\r\n)\r\n\r\nexport const SetTreeItems = createAction(\r\n '[Object Tree] Set Tree Items',\r\n props<{ items: TreeAndItems }>()\r\n)\r\n\r\nexport const ClearTreeItems = createAction(\r\n '[Object Tree] Clear Tree Items'\r\n)\r\n\r\nexport const SetSelectedItems = createAction(\r\n '[Object Tree] Set Selected Items',\r\n props<{ items: SelectedTreeItem[] }>()\r\n)\r\n\r\nexport const SetSelectedItemIds = createAction(\r\n '[Object Tree] Set Selected ItemIds',\r\n props<{ items: number[] }>()\r\n)\r\n\r\nexport const SelectTreeItem = createAction(\r\n '[Object Tree] Select TreeItem',\r\n props<{ itemId: number }>()\r\n)\r\n\r\n\r\nexport const SetTreeErrors = createAction(\r\n '[Object Tree] Set Tree Errors',\r\n props<{ errors: { [key: string]: any } | null }>()\r\n)\r\n", "import { Component, HostListener, Inject, OnInit } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-confirm-dialog',\r\n templateUrl: './confirm-dialog.component.html',\r\n styleUrl: './confirm-dialog.component.scss',\r\n imports: [MatDialogModule, MatButtonModule, TranslateModule]\r\n})\r\nexport class ConfirmDialogComponent implements OnInit {\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: {\r\n cancelText: string,\r\n confirmText: string,\r\n message: string,\r\n title: string\r\n },\r\n private mdDialogRef: MatDialogRef) { }\r\n\r\n ngOnInit() { }\r\n\r\n public cancel(): void {\r\n this.close(false)\r\n }\r\n\r\n public close(value: boolean): void {\r\n this.mdDialogRef.close(value)\r\n }\r\n\r\n public confirm(): void {\r\n this.close(true)\r\n }\r\n\r\n @HostListener('keydown.esc')\r\n public onEsc(): void {\r\n this.close(false);\r\n }\r\n\r\n}\r\n", "

{{ data.title | translate }}

\r\n
{{ data.message | translate }}
\r\n
\r\n \r\n \r\n
\r\n", "import { Injectable, OnDestroy } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { Store } from '@ngrx/store';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { SubSink } from 'subsink';\r\nimport { EditReservationComponent } from '../cart/edit-reservation/edit-reservation.component';\r\nimport { EditReservation } from '../root-store/cart-store/actions';\r\nimport { SelectTreeItem } from '../root-store/object-tree-store/actions';\r\nimport { RootState } from '../root-store/root-state.model';\r\nimport { ConfirmDialogComponent } from '../shared/confirm-dialog/confirm-dialog.component';\r\nimport { ReservationDialogComponent, ReservationDialogData } from '../shared/reservation-dialog/reservation-dialog.component';\r\nimport { UserPasswordDialogData, UserPasswordFormMode } from '../user/user-password/user-password.component';\r\nimport { UserProfileDialogData, UserProfileFormMode } from '../user/user-profile/user-profile.component';\r\nimport { BackendService } from './backend.service';\r\n\r\nexport const panelClassMobileFullscreen = 'mobile-fullscreen'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DialogService implements OnDestroy {\r\n private subs = new SubSink()\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private store: Store,\r\n private backend: BackendService,\r\n ) { }\r\n\r\n async openObjectInfo(itemId: number, showBookingButton = false) {\r\n const [item, component] = await Promise.all([\r\n firstValueFrom(this.backend.getItemInfo(itemId)),\r\n import('../object-choice/object-info/object-info.component')\r\n ])\r\n\r\n const dialog = this.dialog.open(component.ObjectInfoComponent, {\r\n minWidth: '50vw',\r\n minHeight: '300px',\r\n maxWidth: '1000px',\r\n panelClass: panelClassMobileFullscreen,\r\n data: { id: itemId, item, showBookingButton },\r\n autoFocus: false,\r\n restoreFocus: false,\r\n })\r\n\r\n if (showBookingButton) {\r\n dialog.afterClosed().subscribe(res => {\r\n if (res?.bookNow)\r\n this.store.dispatch(SelectTreeItem({ itemId }))\r\n })\r\n }\r\n\r\n return dialog\r\n }\r\n\r\n async openEditProfile() {\r\n const component = (await import('../user/user-profile/user-profile.component')).UserProfileComponent\r\n return this.dialog.open(component, {\r\n width: '600px',\r\n data: { formMode: UserProfileFormMode.EditProfile } as UserProfileDialogData,\r\n autoFocus: false,\r\n panelClass: panelClassMobileFullscreen\r\n })\r\n }\r\n\r\n async openChangePassword() {\r\n const component = (await import('../user/user-password/user-password.component')).UserPasswordComponent\r\n return this.dialog.open(component, {\r\n data: { formMode: UserPasswordFormMode.Change } as UserPasswordDialogData,\r\n minWidth: 350\r\n })\r\n }\r\n\r\n async openEditReservation(): Promise> {\r\n const component = (await import('../cart/edit-reservation/edit-reservation.component')).EditReservationComponent\r\n const dialog = this.dialog.open(component, {\r\n width: '98vw',\r\n maxWidth: '98vw',\r\n height: 'calc(100vh - 80px)',\r\n panelClass: panelClassMobileFullscreen\r\n })\r\n\r\n // after the dialog is closed: unset the editingItem\r\n dialog.afterClosed().subscribe(() => {\r\n this.store.dispatch(EditReservation({ cartItem: null }))\r\n })\r\n\r\n return dialog\r\n }\r\n\r\n async openOrder(orderId: string, mode: ReservationDialogData['mode'] = 'cart'): Promise> {\r\n const component = await import('../shared/reservation-dialog/reservation-dialog.component').then(m => m.ReservationDialogComponent)\r\n return this.dialog.open(component, {\r\n width: '98vw',\r\n maxWidth: '98vw',\r\n height: 'calc(100vh - 80px)',\r\n panelClass: [panelClassMobileFullscreen],\r\n data: { orderId, mode } as ReservationDialogData,\r\n autoFocus: false\r\n })\r\n }\r\n\r\n // temporary disabled because of open-issue with material-dialogs and kendo recurrence-editor:\r\n // https://github.com/telerik/kendo-angular/issues/2883\r\n // openEditRecurrence(): void {\r\n // this.lazyLoader.load('scheduler', null, 'recurrenceDialog').then(res => this.dialog.open(res.component, this.getDialogSize()))\r\n // }\r\n\r\n confirm(title: string, message: string, cancelText: string, confirmText: string): MatDialogRef {\r\n return this.dialog.open(ConfirmDialogComponent, {\r\n data: { cancelText, confirmText, message, title },\r\n disableClose: true,\r\n autoFocus: false\r\n })\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subs.unsubscribe()\r\n }\r\n}\r\n"], "mappings": "0jBAGO,IAAMA,EAAsBC,EACjC,sCAAsC,EAG3BC,EAAeD,EAC1B,+BACAE,EAAK,CAA2B,EAGrBC,EAAiBH,EAC5B,gCAAgC,EAGrBI,EAAmBJ,EAC9B,mCACAE,EAAK,CAAiC,EAG3BG,EAAqBL,EAChC,qCACAE,EAAK,CAAuB,EAGjBI,EAAiBN,EAC5B,gCACAE,EAAK,CAAsB,EAIhBK,EAAgBP,EAC3B,gCACAE,EAAK,CAA6C,ECvBpD,IAAaM,GAAsB,IAAA,CAA7B,IAAOA,EAAP,MAAOA,CAAsB,CAEjCC,YACkCC,EAMxBC,EAAiD,CANzB,KAAAD,KAAAA,EAMxB,KAAAC,YAAAA,CAAqD,CAE/DC,UAAQ,CAAK,CAENC,QAAM,CACX,KAAKC,MAAM,EAAK,CAClB,CAEOA,MAAMC,EAAc,CACzB,KAAKJ,YAAYG,MAAMC,CAAK,CAC9B,CAEOC,SAAO,CACZ,KAAKF,MAAM,EAAI,CACjB,CAGOG,OAAK,CACV,KAAKH,MAAM,EAAK,CAClB,yCA5BWN,GAAsBU,EAGvBC,CAAe,EAAAD,EAAAE,CAAA,CAAA,CAAA,sBAHdZ,EAAsBa,UAAA,CAAA,CAAA,oBAAA,CAAA,EAAAC,aAAA,SAAAC,EAAAC,EAAA,CAAAD,EAAA,GAAtBE,EAAA,cAAA,UAAA,CAAA,OAAAD,EAAAP,MAAA,CAAO,CAAA,uLCXpBS,EAAA,EAAA,KAAA,CAAA,EAAqBC,EAAA,CAAA,mBAA4BC,EAAA,EACjDF,EAAA,EAAA,MAAA,CAAA,EAAwBC,EAAA,CAAA,mBAA8BC,EAAA,EACtDF,EAAA,EAAA,MAAA,CAAA,EAAoC,EAAA,SAAA,CAAA,EACRD,EAAA,QAAA,UAAA,CAAA,OAASD,EAAAX,OAAA,CAAQ,CAAA,EAAEc,EAAA,CAAA,mBAAiCC,EAAA,EAC9EF,EAAA,GAAA,SAAA,CAAA,EAA0BD,EAAA,QAAA,UAAA,CAAA,OAASD,EAAAR,QAAA,CAAS,CAAA,EAAEW,EAAA,EAAA,oBAAkCC,EAAA,EAAS,SAJtEC,EAAA,EAAAC,EAAAC,EAAA,EAAA,EAAAP,EAAAd,KAAAsB,KAAA,CAAA,EACGH,EAAA,CAAA,EAAAC,EAAAC,EAAA,EAAA,EAAAP,EAAAd,KAAAuB,OAAA,CAAA,EAEuBJ,EAAA,CAAA,EAAAC,EAAAC,EAAA,EAAA,EAAAP,EAAAd,KAAAwB,UAAA,CAAA,EACCL,EAAA,CAAA,EAAAC,EAAAC,EAAA,GAAA,GAAAP,EAAAd,KAAAyB,WAAA,CAAA,kBDKpCC,EAAeC,EAAAC,EAAAC,EAAEC,EAAeC,EAAEC,EAAeC,CAAA,EAAAC,cAAA,CAAA,CAAA,EAEvD,IAAOpC,EAAPqC,SAAOrC,CAAsB,GAAA,EEI5B,IAAMsC,EAA6B,oBAK7BC,IAAa,IAAA,CAApB,IAAOA,EAAP,MAAOA,CAAa,CAGxBC,YACUC,EACAC,EACAC,EAAuB,CAFvB,KAAAF,OAAAA,EACA,KAAAC,MAAAA,EACA,KAAAC,QAAAA,EALF,KAAAC,KAAO,IAAIC,CAMf,CAEEC,eAAeC,EAAgBC,EAAoB,GAAK,QAAAC,EAAA,sBAC5D,GAAM,CAACC,EAAMC,CAAS,EAAI,MAAMC,QAAQC,IAAI,CAC1CC,EAAe,KAAKX,QAAQY,YAAYR,CAAM,CAAC,EAC/C,OAAO,qBAAoD,CAAC,CAC7D,EAEKN,EAAS,KAAKA,OAAOe,KAAKL,EAAUM,oBAAqB,CAC7DC,SAAU,OACVC,UAAW,QACXC,SAAU,SACVC,WAAYvB,EACZwB,KAAM,CAAEC,GAAIhB,EAAQG,KAAAA,EAAMF,kBAAAA,CAAiB,EAC3CgB,UAAW,GACXC,aAAc,GACf,EAED,OAAIjB,GACFP,EAAOyB,YAAW,EAAGC,UAAUC,GAAM,CAC/BA,GAAKC,SACP,KAAK3B,MAAM4B,SAASC,EAAe,CAAExB,OAAAA,CAAM,CAAE,CAAC,CAClD,CAAC,EAGIN,CACT,GAEM+B,iBAAe,QAAAvB,EAAA,sBACnB,IAAME,GAAa,KAAM,QAAO,qBAA6C,GAAGsB,qBAChF,OAAO,KAAKhC,OAAOe,KAAKL,EAAW,CACjCuB,MAAO,QACPZ,KAAM,CAAEa,SAAUC,EAAoBC,WAAW,EACjDb,UAAW,GACXH,WAAYvB,EACb,CACH,GAEMwC,oBAAkB,QAAA7B,EAAA,sBACtB,IAAME,GAAa,KAAM,QAAO,qBAA+C,GAAG4B,sBAClF,OAAO,KAAKtC,OAAOe,KAAKL,EAAW,CACjCW,KAAM,CAAEa,SAAUK,EAAqBC,MAAM,EAC7CvB,SAAU,IACX,CACH,GAEMwB,qBAAmB,QAAAjC,EAAA,sBACvB,IAAME,GAAa,KAAM,QAAO,qBAAqD,GAAGgC,yBAClF1C,EAAS,KAAKA,OAAOe,KAAKL,EAAW,CACzCuB,MAAO,OACPd,SAAU,OACVwB,OAAQ,qBACRvB,WAAYvB,EACb,EAGDG,OAAAA,EAAOyB,YAAW,EAAGC,UAAU,IAAK,CAClC,KAAKzB,MAAM4B,SAASe,EAAgB,CAAEC,SAAU,IAAI,CAAE,CAAC,CACzD,CAAC,EAEM7C,CACT,GAEM8C,UAAUC,EAAiBC,EAAsC,OAAM,QAAAxC,EAAA,sBAC3E,IAAME,EAAY,KAAM,QAAO,qBAA2D,EAAEuC,KAAKC,GAAKA,EAAEC,0BAA0B,EAClI,OAAO,KAAKnD,OAAOe,KAAKL,EAAW,CACjCuB,MAAO,OACPd,SAAU,OACVwB,OAAQ,qBACRvB,WAAY,CAACvB,CAA0B,EACvCwB,KAAM,CAAE0B,QAAAA,EAASC,KAAAA,CAAI,EACrBzB,UAAW,GACZ,CACH,GAQA6B,QAAQC,EAAeC,EAAiBC,EAAoBC,EAAmB,CAC7E,OAAO,KAAKxD,OAAOe,KAAK0C,EAAwB,CAC9CpC,KAAM,CAAEkC,WAAAA,EAAYC,YAAAA,EAAaF,QAAAA,EAASD,MAAAA,CAAK,EAC/CK,aAAc,GACdnC,UAAW,GACZ,CACH,CAEAoC,aAAW,CACT,KAAKxD,KAAKyD,YAAW,CACvB,yCAlGW9D,GAAa+D,EAAAC,CAAA,EAAAD,EAAAE,CAAA,EAAAF,EAAAG,CAAA,CAAA,CAAA,wBAAblE,EAAamE,QAAbnE,EAAaoE,UAAAC,WAFZ,MAAM,CAAA,EAEd,IAAOrE,EAAPsE,SAAOtE,CAAa,GAAA", "names": ["SetTreeItemsLoading", "createAction", "SetTreeItems", "props", "ClearTreeItems", "SetSelectedItems", "SetSelectedItemIds", "SelectTreeItem", "SetTreeErrors", "ConfirmDialogComponent", "constructor", "data", "mdDialogRef", "ngOnInit", "cancel", "close", "value", "confirm", "onEsc", "\u0275\u0275directiveInject", "MAT_DIALOG_DATA", "MatDialogRef", "selectors", "hostBindings", "rf", "ctx", "\u0275\u0275listener", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "title", "message", "cancelText", "confirmText", "MatDialogModule", "MatDialogTitle", "MatDialogActions", "MatDialogContent", "MatButtonModule", "MatButton", "TranslateModule", "TranslatePipe", "encapsulation", "_ConfirmDialogComponent", "panelClassMobileFullscreen", "DialogService", "constructor", "dialog", "store", "backend", "subs", "SubSink", "openObjectInfo", "itemId", "showBookingButton", "__async", "item", "component", "Promise", "all", "firstValueFrom", "getItemInfo", "open", "ObjectInfoComponent", "minWidth", "minHeight", "maxWidth", "panelClass", "data", "id", "autoFocus", "restoreFocus", "afterClosed", "subscribe", "res", "bookNow", "dispatch", "SelectTreeItem", "openEditProfile", "UserProfileComponent", "width", "formMode", "UserProfileFormMode", "EditProfile", "openChangePassword", "UserPasswordComponent", "UserPasswordFormMode", "Change", "openEditReservation", "EditReservationComponent", "height", "EditReservation", "cartItem", "openOrder", "orderId", "mode", "then", "m", "ReservationDialogComponent", "confirm", "title", "message", "cancelText", "confirmText", "ConfirmDialogComponent", "disableClose", "ngOnDestroy", "unsubscribe", "\u0275\u0275inject", "MatDialog", "Store", "BackendService", "factory", "\u0275fac", "providedIn", "_DialogService"] }