@rolatech/angular-services 20.2.4-beta.2 → 20.2.6-beta.1
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":["../../../../packages/angular-services/src/lib/components/dialog/dialog.component.ts","../../../../packages/angular-services/src/lib/components/dialog/dialog.component.html","../../../../packages/angular-services/src/lib/services/base.service.ts","../../../../packages/angular-services/src/lib/services/product.service.ts","../../../../packages/angular-services/src/lib/services/cart.service.ts","../../../../packages/angular-services/src/lib/services/navigation.service.ts","../../../../packages/angular-services/src/lib/services/dialog.service.ts","../../../../packages/angular-services/src/lib/services/loading.service.ts","../../../../packages/angular-services/src/lib/services/media.service.ts","../../../../packages/angular-services/src/lib/services/layout.service.ts","../../../../packages/angular-services/src/lib/services/snack-bar.service.ts","../../../../packages/angular-services/src/lib/services/support.service.ts","../../../../packages/angular-services/src/lib/services/breadcrumb.service.ts","../../../../packages/angular-services/src/lib/services/sidenav.service.ts","../../../../packages/angular-services/src/lib/services/theme.service.ts","../../../../packages/angular-services/src/lib/services/order.service.ts","../../../../packages/angular-services/src/lib/services/inventory.service.ts","../../../../packages/angular-services/src/lib/state/notification.store.ts","../../../../packages/angular-services/src/lib/services/notification.service.ts","../../../../packages/angular-services/src/lib/services/product-category.service.ts","../../../../packages/angular-services/src/lib/services/notification-template.service.ts","../../../../packages/angular-services/src/lib/services/fulfillment.service.ts","../../../../packages/angular-services/src/lib/services/title.service.ts","../../../../packages/angular-services/src/lib/services/post.service.ts","../../../../packages/angular-services/src/lib/services/order-payout.service.ts","../../../../packages/angular-services/src/lib/services/resource.service.ts","../../../../packages/angular-services/src/lib/services/resource-category.service.ts","../../../../packages/angular-services/src/lib/services/booking.service.ts","../../../../packages/angular-services/src/lib/services/facility.service.ts","../../../../packages/angular-services/src/lib/services/amenity.service.ts","../../../../packages/angular-services/src/lib/services/property.service.ts","../../../../packages/angular-services/src/lib/services/feature.service.ts","../../../../packages/angular-services/src/lib/services/payment.service.ts","../../../../packages/angular-services/src/lib/services/offering.service.ts","../../../../packages/angular-services/src/lib/services/membership.service.ts","../../../../packages/angular-services/src/lib/services/category.service.ts","../../../../packages/angular-services/src/lib/services/assistant-stream.service.ts","../../../../packages/angular-services/src/lib/services/conversation.service.ts","../../../../packages/angular-services/src/lib/services/conversation-init.service.ts","../../../../packages/angular-services/src/lib/services/property-search.service.ts","../../../../packages/angular-services/src/lib/services/timezone.service.ts","../../../../packages/angular-services/src/lib/services/billing.service.ts","../../../../packages/angular-services/src/lib/services/invoice.service.ts","../../../../packages/angular-services/src/lib/services/property-highlights.service.ts","../../../../packages/angular-services/src/lib/services/floorplan.service.ts","../../../../packages/angular-services/src/lib/services/property-stats.service.ts","../../../../packages/angular-services/src/lib/services/invoice-stats.service.ts","../../../../packages/angular-services/src/lib/services/property-offer.service.ts","../../../../packages/angular-services/src/lib/services/property-viewing.service.ts","../../../../packages/angular-services/src/lib/interceptor/loading.interceptor.ts","../../../../packages/angular-services/src/lib/services/language.service.ts","../../../../packages/angular-services/src/lib/interceptor/accept-language.interceptor.ts","../../../../packages/angular-services/src/lib/directive/back-button.directive.ts","../../../../packages/angular-services/src/lib/directive/hide-footer.directive.ts","../../../../packages/angular-services/src/lib/directive/index.ts","../../../../packages/angular-services/src/provider.ts","../../../../packages/angular-services/src/rolatech-angular-services.ts"],"sourcesContent":["import {\n Component,\n EventEmitter,\n HostListener,\n inject,\n OnDestroy,\n OnInit,\n OutputEmitterRef,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogActions, MatDialogContent, MatDialogRef, MatDialogTitle } from '@angular/material/dialog';\nimport { DialogData } from '../../interfaces/dialog.interface';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'rolatech-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n imports: [MatButtonModule, MatDialogActions, MatDialogTitle, MatDialogContent],\n})\nexport class DialogComponent implements OnInit, OnDestroy {\n @HostListener('keydown.esc')\n public onEsc() {\n this.close(false);\n }\n data: DialogData = inject(MAT_DIALOG_DATA);\n result: any;\n dialogRef = inject(MatDialogRef<DialogComponent>);\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<DialogComponent>(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 } 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\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 public close(value = false) {\n this.dialogRef.close(value);\n }\n public confirm() {\n this.close(this.result || true);\n }\n}\n","<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","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BaseService {\n protected http = inject(HttpClient);\n protected environment = inject(APP_CONFIG);\n protected actionUrl!: string;\n public endpoint!: string;\n\n constructor() {\n this.init();\n }\n init() {\n this.actionUrl = `${this.environment.baseUrl}/${this.endpoint}`;\n }\n find<T>(options?: any, withCredentials = true): Observable<T> {\n return this.http.get<T>(this.actionUrl, {\n params: options,\n withCredentials,\n });\n }\n get<T>(id: string, options?: any, withCredentials = true): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/${id}`, {\n params: options,\n withCredentials,\n });\n }\n create<T>(item: T): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}`, item, {\n withCredentials: true,\n });\n }\n update<T>(id: string, data: T): Observable<T> {\n return this.http.put<T>(`${this.actionUrl}/${id}`, data, {\n withCredentials: true,\n });\n }\n delete<T>(id: string): Observable<T> {\n return this.http.delete<T>(`${this.actionUrl}/${id}`, {\n withCredentials: true,\n });\n }\n updateStatus<T>(id: string, data: T): Observable<T> {\n return this.http.put<T>(`${this.actionUrl}/${id}/status`, data, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductService extends BaseService {\n override init() {\n this.endpoint = 'products';\n super.init();\n }\n\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n findByIds(ids: Array<string>): Observable<any> {\n const params = { ids: ids.join(',') };\n return this.http.get<any>(`${this.actionUrl}/by`, {\n params: params,\n withCredentials: true,\n });\n }\n publish(productId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${productId}/publish`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n archived(productId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${productId}/archived`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n findWishlist(options: any) {\n return this.http.get(`${this.actionUrl}/wishlist`, { params: options, withCredentials: true });\n }\n addToWishlist(productId: string) {\n return this.http.post(`${this.actionUrl}/${productId}/wishlist`, {}, { withCredentials: true });\n }\n removeFromWishlist(productId: string) {\n return this.http.delete(`${this.actionUrl}/${productId}/wishlist`, { withCredentials: true });\n }\n findWishlistBy(productId: string) {\n return this.http.get(`${this.actionUrl}/${productId}/wishlist/by`, { withCredentials: true });\n }\n findPurchasedByProductId(productId: string) {\n return this.http.get(`${this.actionUrl}/users/me/by?productId=${productId}`, {\n withCredentials: true,\n });\n }\n // Media\n uploadMedia(productId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${productId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n // Pricing\n addPricing(productId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${productId}/pricing`, data, {\n withCredentials: true,\n });\n }\n updatePricing(pricingId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/pricing/${pricingId}`, data, {\n withCredentials: true,\n });\n }\n deletePricing(pricingId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/pricing/${pricingId}`, {\n withCredentials: true,\n });\n }\n // Section\n addSection(productId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${productId}/sections`, data, {\n withCredentials: true,\n });\n }\n addBatchSections(productId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${productId}/sections/batch`, data, {\n withCredentials: true,\n });\n }\n findSections(productId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${productId}/sections`, {\n withCredentials: true,\n });\n }\n updateSection(sectionId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/sections/${sectionId}`, data, {\n withCredentials: true,\n });\n }\n deleteSection(sectionId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/sections/${sectionId}`, {\n withCredentials: true,\n });\n }\n uploadSectionMedia(sectionId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/sections/${sectionId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteSectionMedia(sectionId: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/sections/${sectionId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n addOption(productId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${productId}/options`, data, {\n withCredentials: true,\n });\n }\n findOptions(productId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${productId}/options`);\n }\n updateOption(optionId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/options/${optionId}`, data, {\n withCredentials: true,\n });\n }\n deleteOption(optionId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/options/${optionId}`, {\n withCredentials: true,\n });\n }\n // variants\n updateVariantPrice(productId: string, status: boolean): Observable<any> {\n return this.http.put<any>(\n `${this.actionUrl}/${productId}/variants/by?status=${status}`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n createVariants(productId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${productId}/variants`, data, {\n withCredentials: true,\n });\n }\n getVariant(variantId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/variants/${variantId}`);\n }\n findVariants(productId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${productId}/variants`);\n }\n findVariantsByIds(ids: Array<string>): Observable<any> {\n const params = { ids: ids.join(',') };\n return this.http.get<any>(`${this.actionUrl}/variants/by`, {\n params: params,\n withCredentials: true,\n });\n }\n updateVariants(productId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${productId}/variants`, data, {\n withCredentials: true,\n });\n }\n uploadVariantMedia(variantId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/variants/${variantId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteVariantMedia(variantId: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/variants/${variantId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n}\n","import { EventEmitter, inject, Injectable } from '@angular/core';\nimport { map, Observable, switchMap } from 'rxjs';\nimport _ from 'lodash';\nimport { BaseService } from './base.service';\nimport { ProductService } from './product.service';\nexport enum CartEventType {\n CartAdd = 0,\n CartRemove = 1,\n}\n@Injectable({\n providedIn: 'root',\n})\nexport class CartService extends BaseService {\n productService = inject(ProductService);\n cartEvent = new EventEmitter<CartEventType>();\n override init() {\n this.endpoint = 'carts';\n super.init();\n }\n findDetails(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res: any) => {\n const productIds = _.uniq(_.map(res.data, 'productId')); // [12, 14, 16, 18]\n return this.findProductsByIds(productIds).pipe(\n map((products: any) => {\n res.data?.forEach((item) => {\n const matchingProduct = _.find(products.data, { id: item.productId });\n item.product = matchingProduct;\n });\n return res;\n }),\n );\n }),\n switchMap((res: any) => {\n const variantIds = _.uniq(_.map(res.data, 'variantId')); // [12, 14, 16, 18]\n return this.findVariantsByIds(variantIds).pipe(\n map((variants: any) => {\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 );\n }\n findProductsByIds(ids: Array<string>): Observable<any> {\n return this.productService.findByIds(ids);\n }\n findVariantsByIds(ids: Array<string>): Observable<any> {\n return this.productService.findVariantsByIds(ids);\n }\n by(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/items/by`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n deleteByIds(ids: any): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/me`, {\n withCredentials: true,\n });\n }\n deleteAll(): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/me`, {\n withCredentials: true,\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { NavigationEnd, Router } from '@angular/router';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NavigationService {\n private history: string[] = [];\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(): string[] {\n return this.history;\n }\n back(): void {\n this.history.pop();\n if (this.history.length > 0) {\n this.location.back();\n } else {\n this.router.navigateByUrl('/');\n }\n }\n next(): string {\n if (this.history.length > 0) {\n return this.history[this.history.length - 2];\n }\n return '';\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { map, Observable, take } from 'rxjs';\nimport { DialogComponent } from '../components/dialog/dialog.component';\nimport { DialogData } from '../interfaces';\n\n@Injectable()\nexport class DialogService {\n dialog = inject(MatDialog);\n dialogRef!: MatDialogRef<DialogComponent>;\n\n public open(options: DialogData) {\n this.dialogRef = this.dialog.open<DialogComponent, DialogData>(DialogComponent, {\n data: {\n ...options,\n },\n });\n }\n public cancelled(): Observable<any> {\n return this.dialogRef.beforeClosed().pipe(\n take(1),\n map((res) => res),\n );\n }\n public confirmed(): Observable<any> {\n return this.dialogRef.afterClosed().pipe(\n take(1),\n map((res) => res),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoadingService {\n public loading$ = new BehaviorSubject(false);\n public ratio$ = new BehaviorSubject(0);\n isLoading = false;\n\n constructor() {}\n\n start() {\n this.loading$.next(true);\n }\n\n stop() {\n this.loading$.next(false);\n }\n async present(text?: string) {\n this.isLoading = true;\n }\n\n async dismiss() {\n this.isLoading = false;\n }\n}\n","import { HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { Observable } from 'rxjs';\n@Injectable({\n providedIn: 'root',\n})\nexport class MediaService extends BaseService {\n override init() {\n this.endpoint = 'media';\n super.init();\n }\n upload(data: FormData): Observable<any> {\n return this.http.post<any>(`${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: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/save`, data, {\n reportProgress: false,\n withCredentials: true,\n });\n }\n deleteBy(filename: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${filename}`, {});\n }\n batchDelete(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/batch`, data, { withCredentials: true });\n }\n moveToGroup(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/move`, data, { withCredentials: true });\n }\n addGroup(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/groups`, data, { withCredentials: true });\n }\n findGroup(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/groups/${id}`, { withCredentials: true });\n }\n findGroups(options?: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/groups`, { withCredentials: true });\n }\n getImageInfo(url: string): Observable<any> {\n return this.http.get(`${url}?imageInfo`);\n }\n}\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { computed, inject, Injectable, signal } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { filter, map, shareReplay } from 'rxjs/operators';\n\n@Injectable()\nexport class LayoutService {\n breakpointObserver = inject(BreakpointObserver)\n route = inject(ActivatedRoute)\n router = inject(Router)\n isHandset$: Observable<boolean>;\n private _hideFooter = signal(false);\n hideFooter = computed(() => this._hideFooter());\n\n constructor() {\n this.isHandset$ = this.breakpointObserver\n .observe([Breakpoints.Small, Breakpoints.HandsetPortrait])\n .pipe(\n map((result) => result.matches),\n shareReplay()\n );\n\n this.router.events\n // .pipe(filter((e): e is NavigationEnd => e instanceof NavigationEnd))\n .subscribe(() => {\n\n let r: ActivatedRoute = this.route;\n\n while (r.firstChild) r = r.firstChild;\n const hide = (r.snapshot.data['hideFooter'] as boolean) === true;\n\n this.setHideFooter(hide);\n });\n }\n setHideFooter(v: boolean) {\n this._hideFooter.set(v);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\n@Injectable()\nexport class SnackBarService {\n snackBar = inject(MatSnackBar);\n open(message) {\n this.snackBar.open(message);\n }\n dismiss() {\n this.snackBar.dismiss();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SupportService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n\n findAllBuckets(options: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/support/buckets`, {\n params: options,\n withCredentials: false,\n });\n }\n findAll(options: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/support/folders`, {\n params: options,\n withCredentials: false,\n });\n }\n findFolderBySlug(slug: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/support/folders/slug/${slug}`, {\n withCredentials: false,\n });\n }\n findByPath(path: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/support/folders/by?path=${path}`, {\n withCredentials: false,\n });\n }\n findAllFiles(options: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/support/files`, {\n params: options,\n withCredentials: false,\n });\n }\n findFileByFolder(folder: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/support/files/by?folder=${folder}`, {\n withCredentials: false,\n });\n }\n findFileBySlug(slug: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/support/files/slug/${slug}`, {\n withCredentials: false,\n });\n }\n uploadFile(data: FormData) {\n return this.http.post<any>(`${this.environment.baseUrl}/support/files`, data, {\n withCredentials: true,\n });\n }\n createBucket(data: any) {\n return this.http.post<any>(`${this.environment.baseUrl}/support/buckets`, data, {\n withCredentials: true,\n });\n }\n createFolderBySlug(slug: string, data: any) {\n return this.http.post<any>(`${this.environment.baseUrl}/support/folders/slug/${slug}`, data, {\n withCredentials: true,\n });\n }\n uploadFileBySlug(slug: string, data: FormData) {\n return this.http.post<any>(`${this.environment.baseUrl}/support/files/slug/${slug}`, data, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BreadcrumbService {\n router = inject(Router);\n breadcrumbs: Breadcrumb[] = [];\n\n add(label: string, slug: string) {\n const breadcrumb: Breadcrumb = {\n label: label,\n slug: slug,\n };\n this.breadcrumbs.push(breadcrumb);\n return this.breadcrumbs;\n }\n goTo(slug: string, route: ActivatedRoute) {\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}\n\ninterface Breadcrumb {\n label: string;\n slug: string;\n}\n","import { MediaMatcher } from '@angular/cdk/layout';\nimport { Injectable, inject } from '@angular/core';\nimport { MatSidenav } from '@angular/material/sidenav';\n\n@Injectable()\nexport class SidenavService {\n media = inject(MediaMatcher);\n sidenav!: MatSidenav;\n private mobileQuery!: MediaQueryList;\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\n public setSidenav(sidenav: MatSidenav) {\n this.sidenav = sidenav;\n }\n\n public open() {\n return this.sidenav.open();\n }\n\n public close() {\n return this.sidenav.close();\n }\n\n public toggle(): void {\n this.sidenav.toggle();\n this.isCollaped = !this.isMobile && !this.sidenav?.opened;\n }\n public lists() {}\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ThemeService {\n platformId = inject(PLATFORM_ID);\n darkTheme: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(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 } else {\n // Light\n this.setDarkTheme(false);\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 } else {\n this.setDarkTheme(false);\n }\n });\n }\n }\n\n setDarkTheme(isDarkTheme: boolean) {\n this.darkTheme.next(isDarkTheme);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OrderService extends BaseService {\n override init() {\n this.endpoint = 'orders';\n super.init();\n }\n createPaymentIntent(id: number): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/create-payment-intent`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n by(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/items/by`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n merchant(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/merchant`, {\n params: options,\n withCredentials: true,\n });\n }\n timeline(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${id}/timeline`, {\n withCredentials: true,\n });\n }\n pay(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/pay`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n refund(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/refund`, data, {\n withCredentials: true,\n });\n }\n findAllReturns(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/returns`, {\n params: options,\n withCredentials: true,\n });\n }\n findAllReturnsByInstructor(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/returns/instructor`, {\n params: options,\n withCredentials: true,\n });\n }\n getReturn(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/returns/${id}`, {\n withCredentials: true,\n });\n }\n returnApprove(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/returns/${id}/approve`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n returnReject(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/returns/${id}/reject`, data, {\n withCredentials: true,\n });\n }\n cancel(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/cancel`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n countMeByStatus(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/count/me/by`, {\n params: options,\n withCredentials: true,\n });\n }\n fulfill(orderId: string, data: any) {\n return this.http.post<any>(`${this.actionUrl}/${orderId}/fulfillment`, data, {\n withCredentials: true,\n });\n }\n getMerchantOrder(orderId: string) {\n return this.http.get<any>(`${this.actionUrl}/${orderId}/by/merchant`, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class InventoryService extends BaseService {\n override init() {\n this.endpoint = 'inventories';\n super.init();\n }\n getLocation(locationId: string): Observable<any> {\n return this.http.get(`${this.actionUrl}/locations/${locationId}`, { withCredentials: true });\n }\n findLocations(options: any): Observable<any> {\n return this.http.get(`${this.actionUrl}/locations`, { params: options, withCredentials: true });\n }\n addLocation(data: any): Observable<any> {\n return this.http.post(`${this.actionUrl}/locations`, data, { withCredentials: true });\n }\n updateLocation(locationId: string, data: any): Observable<any> {\n return this.http.put(`${this.actionUrl}/locations/${locationId}`, data, { withCredentials: true });\n }\n deleteLocation(locationId: string): Observable<any> {\n return this.http.delete(`${this.actionUrl}/locations/${locationId}`, { withCredentials: true });\n }\n initInventoryItems(data: any): Observable<any> {\n return this.http.post(`${this.actionUrl}/items/init`, data, { withCredentials: true });\n }\n findMyInventoryItems(options: any): Observable<any> {\n return this.http.get(`${this.actionUrl}/items/me`, { params: options, withCredentials: true });\n }\n addInventoryItem(data: any): Observable<any> {\n return this.http.post(`${this.actionUrl}/items`, data, { withCredentials: true });\n }\n updateInventoryItem(data: any): Observable<any> {\n return this.http.put(`${this.actionUrl}/items`, data, { withCredentials: true });\n }\n addInventoryByProductId(locationId: string, productId: string, data: any): Observable<any> {\n return this.http.post(`${this.actionUrl}/locations/${locationId}`, data, { withCredentials: true });\n }\n addInventoryByVariantId(locationId: string, variantId: string, data: any): Observable<any> {\n return this.http.post(`${this.actionUrl}/locations`, data, { withCredentials: true });\n }\n\n findInventoryItemsByProductId(productId: string): Observable<any> {\n return this.http.get(`${this.actionUrl}/products/${productId}`, { withCredentials: true });\n }\n findInventoryItemsByVariantId(variantId: string): Observable<any> {\n return this.http.get(`${this.actionUrl}/variants/${variantId}`, { withCredentials: true });\n }\n findInventoryLevelsByLocationIdAndVariantIds(locationId: string, ids: Array<string>): Observable<any> {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}/locations/${locationId}/variants/by`, { params: params, withCredentials: true });\n }\n\n deleteInventoryItemsByProductId(productId: string): Observable<any> {\n return this.http.delete(`${this.actionUrl}/products/${productId}`, { withCredentials: true });\n }\n deleteInventoryItemsByVariantId(variantId: string): Observable<any> {\n return this.http.delete(`${this.actionUrl}/variants/${variantId}`, { withCredentials: true });\n }\n deleteInventoryLevel(levelId: string): Observable<any> {\n return this.http.delete(`${this.actionUrl}/levels/${levelId}`, { withCredentials: true });\n }\n\n findProductsInLocation(locationId: string): Observable<any> {\n return this.http.get(`${this.actionUrl}/locations/${locationId}/products`, { withCredentials: true });\n }\n findLocationsByProductId(productId: string): Observable<any> {\n return this.http.get(`${this.actionUrl}/products/${productId}/locations`, { withCredentials: true });\n }\n findLocationsByVariantId(variantId: string): Observable<any> {\n return this.http.get(`${this.actionUrl}/variants/${variantId}/locations`, { withCredentials: true });\n }\n updateStockByLocationIdAndProductId(locationId: string, productId: string, data: any): Observable<any> {\n return this.http.put(`${this.actionUrl}/locations${locationId}/products/${productId}`, data, { withCredentials: true });\n }\n updateStockByLocationIdAndVariantId(locationId: string, variantId: string, data: any): Observable<any> {\n return this.http.put(`${this.actionUrl}/locations${locationId}/variants/${variantId}`, data, { withCredentials: true });\n }\n adjustStocksByLocationId(data: any): Observable<any> {\n return this.http.put(`${this.actionUrl}/levels/adjust`, data, { withCredentials: true });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationStore {\n $count = new BehaviorSubject(0);\n getCount() {\n return this.$count.asObservable();\n }\n}\n","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';\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n storeService = inject(NotificationStore);\n\n find(options: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/me`, {\n params: options,\n withCredentials: true,\n });\n }\n get(id: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/${id}`, {\n withCredentials: true,\n });\n }\n read(ids: Array<string>) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/${ids}`, {\n withCredentials: true,\n });\n }\n update(id: string) {\n return this.http\n .put<any>(\n `${this.environment.baseUrl}/notifications/${id}`,\n { status: 'READ' },\n {\n withCredentials: true,\n },\n )\n .pipe(\n map((res) => {\n const value = this.storeService.$count.value - 1;\n this.storeService.$count.next(value);\n }),\n );\n }\n readAll() {\n return this.http\n .put<any>(\n `${this.environment.baseUrl}/notifications/status/all`,\n { status: 'READ' },\n {\n withCredentials: true,\n },\n )\n .pipe(\n map((res) => {\n this.storeService.$count.next(0);\n }),\n );\n }\n delete(id: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/${id}`, {\n withCredentials: true,\n });\n }\n findByUserId(userId: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/by?userId=${userId}`, {\n withCredentials: true,\n });\n }\n countByStatus(status: string) {\n return this.http\n .get<any>(`${this.environment.baseUrl}/notifications/count/by?status=${status}`, {\n withCredentials: true,\n })\n .pipe(\n map(({ data }) => {\n this.storeService.$count.next(data);\n return data;\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductCategoryService extends BaseService {\n override init() {\n this.endpoint = 'products/categories';\n super.init();\n }\n uploadMedia(id: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n importFromExcel(data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/excel`, data, {\n withCredentials: true,\n });\n }\n createFromExcel(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/list`, data, {\n withCredentials: true,\n });\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationTemplateService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n\n find(options: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/me`, {\n params: options,\n withCredentials: true,\n });\n }\n get(id: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/${id}`, {\n withCredentials: true,\n });\n }\n read(ids: Array<string>) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/${ids}`, {\n withCredentials: true,\n });\n }\n delete(id: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/${id}`, {\n withCredentials: true,\n });\n }\n findByUserId(userId: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/by?userId=${userId}`, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FulfillmentService extends BaseService {\n override init() {\n this.endpoint = 'fulfillments';\n super.init();\n }\n fulfill(orderId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/orders/${orderId}`, data, {\n withCredentials: true,\n });\n }\n tracking(orderId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/tracking/orders/${orderId}`, {\n withCredentials: true,\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { APP_CONFIG } from '@rolatech/angular-common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TitleService {\n environment = inject(APP_CONFIG);\n titleService = inject(Title);\n\n getTitle(): string {\n return this.titleService.getTitle();\n }\n setTitle(newTitle: string) {\n this.titleService.setTitle(`${newTitle} - ${this.environment.name}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PostService extends BaseService {\n override init() {\n this.endpoint = 'posts';\n super.init();\n }\n by(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/items/by`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n merchant(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/merchant`, {\n params: options,\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n@Injectable({\n providedIn: 'root',\n})\nexport class OrderPayoutService extends BaseService {\n override init() {\n this.endpoint = 'orders/payouts';\n super.init();\n }\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n approve(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/approve`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ResourceService extends BaseService {\n override init() {\n this.endpoint = 'resources';\n super.init();\n }\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n findByIds(ids: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/by`, {\n params: { ids },\n withCredentials: true,\n });\n }\n filter(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/search`, {\n params: options,\n withCredentials: false,\n });\n }\n updateLocation(id: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${id}/location`, data, {\n withCredentials: true,\n });\n }\n updateAmenities(id: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${id}/amenities`, data, {\n withCredentials: true,\n });\n }\n addDetail(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/details`, data, {\n withCredentials: true,\n });\n }\n addBatchDetails(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/details/batch`, data, {\n withCredentials: true,\n });\n }\n findDetails(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${id}/details`, {\n withCredentials: true,\n });\n }\n updateDetail(id: string, detailId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${id}/details/${detailId}`, data, {\n withCredentials: true,\n });\n }\n deleteDetail(id: string, detailId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/details/${detailId}`, {\n withCredentials: true,\n });\n }\n uploadDetailMedia(id: string, detailId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/details/${detailId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteDetailMedia(id: string, detailId: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/details/${detailId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n findSessions(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${id}/sessions`, {\n withCredentials: true,\n });\n }\n addSession(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/sessions`, data, {\n withCredentials: true,\n });\n }\n updateSession(id: string, sessionId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${id}/sessions/${sessionId}`, data, {\n withCredentials: true,\n });\n }\n deleteSession(id: string, sessionId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/sessions/${sessionId}`, {\n withCredentials: true,\n });\n }\n findPeriods(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${id}/periods`, {\n withCredentials: true,\n });\n }\n addPeriod(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/periods`, data, {\n withCredentials: true,\n });\n }\n updatePeriod(id: string, periodId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${id}/periods/${periodId}`, data, {\n withCredentials: true,\n });\n }\n deletePeriod(id: string, periodId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/periods/${periodId}`, {\n withCredentials: true,\n });\n }\n review(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/review`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n publish(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/publish`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n upload(data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/upload`, data, {\n withCredentials: true,\n });\n }\n uploadMedia(id: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n accept(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/reviews/accept`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n reject(id: string, body: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/reviews/reject`, body, {\n withCredentials: true,\n });\n }\n\n findByResourceId(id: string): Observable<any> {\n const options = {\n filter: `resourceId:${id}`,\n };\n return this.http.get<any>(`${this.actionUrl}`, {\n params: options,\n withCredentials: false,\n });\n }\n findVariantsByResourceId(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${id}/variants`, {\n withCredentials: false,\n });\n }\n\n addVariants(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/variants`, data, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ResourceCategoryService extends BaseService {\n override init() {\n this.endpoint = 'resources/categories';\n super.init();\n }\n uploadMedia(id: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BookingService extends BaseService {\n override init() {\n this.endpoint = 'bookings';\n super.init();\n }\n by(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/items/by`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n timeline(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${id}/timeline`, {\n withCredentials: true,\n });\n }\n items(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/items`, {\n params: options,\n withCredentials: true,\n });\n }\n pay(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/pay`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n refund(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/items/refund`, data, {\n withCredentials: true,\n });\n }\n findAllReturns(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/returns`, {\n params: options,\n withCredentials: true,\n });\n }\n getReturn(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/returns/${id}`, {\n withCredentials: true,\n });\n }\n returnApprove(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/returns/${id}/approve`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n returnReject(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/returns/${id}/reject`, data, {\n withCredentials: true,\n });\n }\n cancel(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/cancel`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FacilityService extends BaseService {\n override init() {\n this.endpoint = 'facilities';\n super.init();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AmenityService extends BaseService {\n override init() {\n this.endpoint = 'resources/amenities';\n super.init();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { map, Observable, switchMap } from 'rxjs';\nimport { BaseService } from './base.service';\nimport _ from 'lodash';\nimport { HttpResponse } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PropertyService extends BaseService {\n override init() {\n this.endpoint = 'properties';\n super.init();\n }\n\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n findByIds(ids: Array<string>): Observable<any> {\n const params = { ids: ids.join(',') };\n return this.http.get<any>(`${this.actionUrl}/by`, {\n params: params,\n withCredentials: true,\n });\n }\n publish(propertyId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${propertyId}/publish`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n submitForReview(propertyId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${propertyId}/review`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n reviewApprove(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/reviews/approve`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n reviewReject(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/reviews/accept`, data, {\n withCredentials: true,\n });\n }\n export(): Observable<{ blob: Blob; filename: string }> {\n return this.http\n .get(`${this.actionUrl}/export`, {\n observe: 'response',\n responseType: 'blob',\n withCredentials: true,\n })\n .pipe(\n map((resp: HttpResponse<Blob>) => {\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 as Blob, filename };\n }),\n );\n }\n archived(propertyId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${propertyId}/archived`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n findWishlist(options: any) {\n return this.http.get(`${this.actionUrl}/wishlist`, { params: options, withCredentials: true });\n }\n addToWishlist(propertyId: string) {\n return this.http.post(`${this.actionUrl}/${propertyId}/wishlist`, {}, { withCredentials: true });\n }\n removeFromWishlist(propertyId: string) {\n return this.http.delete(`${this.actionUrl}/${propertyId}/wishlist`, { withCredentials: true });\n }\n wishListCheck(propertyId: string) {\n return this.http.get(`${this.actionUrl}/${propertyId}/wishlist/check`, { withCredentials: true });\n }\n findPurchasedByPropertyId(propertyId: string) {\n return this.http.get(`${this.actionUrl}/users/me/by?propertyId=${propertyId}`, {\n withCredentials: true,\n });\n }\n // Media\n uploadMedia(propertyId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n // Pricing\n addPricing(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/pricing`, data, {\n withCredentials: true,\n });\n }\n updatePricing(pricingId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/pricing/${pricingId}`, data, {\n withCredentials: true,\n });\n }\n deletePricing(pricingId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/pricing/${pricingId}`, {\n withCredentials: true,\n });\n }\n // Section\n addSection(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/sections`, data, {\n withCredentials: true,\n });\n }\n addBatchSections(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/sections/batch`, data, {\n withCredentials: true,\n });\n }\n findSections(propertyId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${propertyId}/sections`, {\n withCredentials: true,\n });\n }\n updateSection(sectionId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/sections/${sectionId}`, data, {\n withCredentials: true,\n });\n }\n deleteSection(sectionId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/sections/${sectionId}`, {\n withCredentials: true,\n });\n }\n uploadSectionMedia(sectionId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/sections/${sectionId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteSectionMedia(sectionId: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/sections/${sectionId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n addOption(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/options`, data, {\n withCredentials: true,\n });\n }\n findOptions(propertyId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${propertyId}/options`);\n }\n updateOption(optionId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/options/${optionId}`, data, {\n withCredentials: true,\n });\n }\n deleteOption(optionId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/options/${optionId}`, {\n withCredentials: true,\n });\n }\n // variants\n updateVariantPrice(propertyId: string, status: boolean): Observable<any> {\n return this.http.put<any>(\n `${this.actionUrl}/${propertyId}/variants/by?status=${status}`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n createVariants(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/variants`, data, {\n withCredentials: true,\n });\n }\n getVariant(variantId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/variants/${variantId}`);\n }\n findVariants(propertyId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${propertyId}/variants`);\n }\n findVariantsByIds(ids: Array<string>): Observable<any> {\n const params = { ids: ids.join(',') };\n return this.http.get<any>(`${this.actionUrl}/variants/by`, {\n params: params,\n withCredentials: true,\n });\n }\n updateVariants(propertyId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${propertyId}/variants`, data, {\n withCredentials: true,\n });\n }\n uploadVariantMedia(variantId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/variants/${variantId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteVariantMedia(variantId: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/variants/${variantId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n findUpcomingViewings(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/viewings/upcoming`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingProperty = _.find(properties.data, { id: item.propertyId });\n item.propertyTitle = matchingProperty ? matchingProperty.title : 'Unknown property'; // fallback\n });\n return res;\n }),\n );\n }),\n );\n }\n findViewingsByUser(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/viewings/by/user`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingProperty = _.find(properties.data, { id: item.propertyId });\n item.property = matchingProperty;\n });\n return res;\n }),\n );\n }),\n );\n }\n findViewingsByAgent(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/viewings/by/agent`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingProperty = _.find(properties.data, { id: item.propertyId });\n item.property = matchingProperty;\n });\n return res;\n }),\n );\n }),\n );\n }\n requestViewing(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/viewings`, data, {\n withCredentials: true,\n });\n }\n confirmViewing(viewingId: string, slotId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/viewings/${viewingId}/confirm?slotId=${slotId}`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n getViewing(viewingId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/viewings/${viewingId}`, { withCredentials: true });\n }\n cancelViewing(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/viewings/${id}/cancel`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n findPropertiesByIds(ids: Array<string>): Observable<any> {\n const params = { ids: ids.join(',') };\n return this.http.get<any>(`${this.actionUrl}`, {\n params: params,\n });\n }\n // Highlights\n getHighlights<T>(id: string): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/${id}/highlights`, { withCredentials: false });\n }\n\n getFeatures<T>(id: string): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/${id}/features`, { withCredentials: false });\n }\n\n findUserFeatures<T>(id: string): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/${id}/user-features`, { withCredentials: false });\n }\n updateUserFeatures<T>(id: string, data: any): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}/${id}/user-features`, data, { withCredentials: true });\n }\n updateLocation<T>(id: string, data: any): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}/${id}/location`, data, { withCredentials: true });\n }\n updateAgent<T>(id: string, data: any): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}/${id}/agents`, data, { withCredentials: true });\n }\n // Videos\n getVideos<T>(id: string): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/${id}/videos`, { withCredentials: true });\n }\n addVideo<T>(id: string, data: any): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}/${id}/videos`, data, { withCredentials: true });\n }\n updateVideo<T>(id: string, videoId: string, data: any): Observable<T> {\n return this.http.put<T>(`${this.actionUrl}/${id}/videos/${videoId}`, data, { withCredentials: true });\n }\n deleteVideo<T>(id: string, videoId: string): Observable<T> {\n return this.http.delete<T>(`${this.actionUrl}/${id}/videos/${videoId}`, { withCredentials: true });\n }\n uploadVideoThumbnail(videoId: any, data: FormData): Observable<any> {\n return this.http.post(`${this.actionUrl}/videos/${videoId}/thumbnail`, data, {\n withCredentials: true,\n });\n }\n\n // Tenants\n findTenants<T>(options: any): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/tenants`, { withCredentials: true, params: options });\n }\n getTenant<T>(id: string): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/tenants/${id}`, { withCredentials: true });\n }\n createTenant<T>(data: any): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}/tenants`, data, { withCredentials: true });\n }\n updateTenant<T>(id: string, data: any): Observable<T> {\n return this.http.put<T>(`${this.actionUrl}/tenants/${id}`, data, { withCredentials: true });\n }\n deleteTenant<T>(id: string): Observable<T> {\n return this.http.delete<T>(`${this.actionUrl}/tenants/${id}`, { withCredentials: true });\n }\n\n //COS\n uploadVideosInit(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/videos/init`, data, {\n withCredentials: true,\n });\n }\n uploadVideosPartsToProperty(propertyId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/videos/parts`, data, {\n withCredentials: true,\n });\n }\n completePartUpload(videoId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/videos/${videoId}/parts`, data, {\n withCredentials: true,\n });\n }\n uploadVideoToProperty(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/videos`, data, {\n withCredentials: true,\n });\n }\n deletePropertyVideo(propertyId: string, videoId: any): Observable<any> {\n return this.http.delete(`${this.actionUrl}/${propertyId}/videos/${videoId}`, { withCredentials: true });\n }\n uploadPropertyVideoThumbnail(videoId: any, data: FormData): Observable<any> {\n return this.http.post(`${this.actionUrl}/videos/${videoId}/thumbnail`, data, {\n withCredentials: true,\n });\n }\n // epc\n getEpc<T>(id: string): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/${id}/epc`, { withCredentials: false });\n }\n addEpc<T>(id: string, data: any): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}/${id}/epc`, data, { withCredentials: true });\n }\n updateEpc<T>(id: string, data: any): Observable<T> {\n return this.http.put<T>(`${this.actionUrl}/${id}/epc`, data, { withCredentials: true });\n }\n deleteEpc<T>(id: string): Observable<T> {\n return this.http.delete<T>(`${this.actionUrl}/${id}/epc`, { withCredentials: true });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureService extends BaseService {\n override init() {\n this.endpoint = 'properties/user-features';\n super.init();\n }\n addFeature(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}`, data, {\n withCredentials: true,\n });\n }\n updateFeature(featureId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${featureId}`, data, {\n withCredentials: true,\n });\n }\n deleteFeature(featureId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${featureId}`, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PaymentService extends BaseService {\n override init() {\n this.endpoint = 'payments';\n super.init();\n }\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n createPaymentIntent(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/intents`, data, {\n withCredentials: true,\n });\n }\n createPayment(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}`, data, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { map, Observable, switchMap } from 'rxjs';\nimport { BaseService } from './base.service';\nimport _ from 'lodash';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OfferingService extends BaseService {\n override init() {\n this.endpoint = 'offerings';\n super.init();\n }\n\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n findByIds(ids: Array<string>): Observable<any> {\n const params = { ids: ids.join(',') };\n return this.http.get<any>(`${this.actionUrl}/by`, {\n params: params,\n withCredentials: true,\n });\n }\n publish(propertyId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${propertyId}/publish`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n submitForReview(propertyId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${propertyId}/review`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n reviewApprove(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/reviews/approve`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n reviewReject(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/reviews/accept`, data, {\n withCredentials: true,\n });\n }\n archived(propertyId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${propertyId}/archived`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n findWishlist(options: any) {\n return this.http.get(`${this.actionUrl}/wishlist`, { params: options, withCredentials: true });\n }\n addToWishlist(propertyId: string) {\n return this.http.post(`${this.actionUrl}/${propertyId}/wishlist`, {}, { withCredentials: true });\n }\n removeFromWishlist(propertyId: string) {\n return this.http.delete(`${this.actionUrl}/${propertyId}/wishlist`, { withCredentials: true });\n }\n wishListCheck(propertyId: string) {\n return this.http.get(`${this.actionUrl}/${propertyId}/wishlist/check`, { withCredentials: true });\n }\n findPurchasedByPropertyId(propertyId: string) {\n return this.http.get(`${this.actionUrl}/users/me/by?propertyId=${propertyId}`, {\n withCredentials: true,\n });\n }\n // Media\n uploadMedia(propertyId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n // Pricing\n addPricing(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/pricing`, data, {\n withCredentials: true,\n });\n }\n updatePricing(pricingId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/pricing/${pricingId}`, data, {\n withCredentials: true,\n });\n }\n deletePricing(pricingId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/pricing/${pricingId}`, {\n withCredentials: true,\n });\n }\n // Section\n addSection(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/sections`, data, {\n withCredentials: true,\n });\n }\n addBatchSections(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/sections/batch`, data, {\n withCredentials: true,\n });\n }\n findSections(propertyId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${propertyId}/sections`, {\n withCredentials: true,\n });\n }\n updateSection(sectionId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/sections/${sectionId}`, data, {\n withCredentials: true,\n });\n }\n deleteSection(sectionId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/sections/${sectionId}`, {\n withCredentials: true,\n });\n }\n uploadSectionMedia(sectionId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/sections/${sectionId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteSectionMedia(sectionId: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/sections/${sectionId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n addOption(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/options`, data, {\n withCredentials: true,\n });\n }\n findOptions(propertyId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${propertyId}/options`);\n }\n updateOption(optionId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/options/${optionId}`, data, {\n withCredentials: true,\n });\n }\n deleteOption(optionId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/options/${optionId}`, {\n withCredentials: true,\n });\n }\n // variants\n updateVariantPrice(propertyId: string, status: boolean): Observable<any> {\n return this.http.put<any>(\n `${this.actionUrl}/${propertyId}/variants/by?status=${status}`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n createVariants(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/variants`, data, {\n withCredentials: true,\n });\n }\n getVariant(variantId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/variants/${variantId}`);\n }\n findVariants(propertyId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${propertyId}/variants`);\n }\n findVariantsByIds(ids: Array<string>): Observable<any> {\n const params = { ids: ids.join(',') };\n return this.http.get<any>(`${this.actionUrl}/variants/by`, {\n params: params,\n withCredentials: true,\n });\n }\n updateVariants(propertyId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${propertyId}/variants`, data, {\n withCredentials: true,\n });\n }\n uploadVariantMedia(variantId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/variants/${variantId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteVariantMedia(variantId: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/variants/${variantId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n findViewingsByUser(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/viewings/by/user`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingProperty = _.find(properties.data, { id: item.propertyId });\n item.property = matchingProperty;\n });\n return res;\n }),\n );\n }),\n );\n }\n findViewingsByAgent(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/viewings/by/agent`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingProperty = _.find(properties.data, { id: item.propertyId });\n item.property = matchingProperty;\n });\n return res;\n }),\n );\n }),\n );\n }\n requestViewing(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/viewings`, data, {\n withCredentials: true,\n });\n }\n confirmViewing(viewingId: string, slotId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/viewings/${viewingId}/confirm?slotId=${slotId}`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n getViewing(viewingId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/viewings/${viewingId}`, { withCredentials: true });\n }\n cancelViewing(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/viewings/${id}/cancel`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n makeOffer(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/offers`, data, {\n withCredentials: true,\n });\n }\n findOffers(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/offers`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }),\n );\n }),\n );\n }\n findOffersByUser(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/offers/by/user`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }),\n );\n }),\n );\n }\n findOffersByAgent(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/offers/by/agent`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }),\n );\n }),\n );\n }\n findPropertiesByIds(ids: Array<string>): Observable<any> {\n const params = { ids: ids.join(',') };\n return this.http.get<any>(`${this.actionUrl}`, {\n params: params,\n });\n }\n getOffer(offerId: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/offers/${offerId}`, { withCredentials: true });\n }\n cancelOffer(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/cancel`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n acceptOffer(id: string): Observable<any> {\n return this.http.put<any>(\n `${this.actionUrl}/offers/${id}/accept`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n rejectOffer(id: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/offers/${id}/reject`, data, {\n withCredentials: true,\n });\n }\n\n createHoldingDepositCheckout(offerId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/offers/${offerId}/pay/holding-deposit`, data, {\n withCredentials: true,\n });\n }\n createSecurityDepositCheckout(offerId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/offers/${offerId}/pay/security-deposit`, data, {\n withCredentials: true,\n });\n }\n checkOfferPaymentStatus(offerId: any, sessionId: string): Observable<any> {\n const options = {\n sessionId,\n };\n return this.http.get<any>(`${this.actionUrl}/offers/${offerId}/session`, { params: options, withCredentials: true });\n }\n\n offerTimeline(offerId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/offers/${offerId}/timeline`, {\n withCredentials: true,\n });\n }\n findFeatures<T>(id: string): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/${id}/features`, { withCredentials: false });\n }\n updateFeatures<T>(id: string, data: any): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}/${id}/features`, data, { withCredentials: true });\n }\n updateLocation<T>(id: string, data: any): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}/${id}/location`, data, { withCredentials: true });\n }\n // Videos\n getVideos<T>(id: string): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/${id}/videos`, { withCredentials: true });\n }\n addVideo<T>(id: string, data: any): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}/${id}/videos`, data, { withCredentials: true });\n }\n updateVideo<T>(id: string, data: any): Observable<T> {\n return this.http.put<T>(`${this.actionUrl}/${id}/videos`, data, { withCredentials: true });\n }\n deleteVideo<T>(id: string, videoId: string, y): Observable<T> {\n return this.http.delete<T>(`${this.actionUrl}/${id}/videos/${videoId}`, { withCredentials: true });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { map, Observable, switchMap } from 'rxjs';\nimport { BaseService } from './base.service';\nimport _ from 'lodash';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MembershipService extends BaseService {\n override init() {\n this.endpoint = 'memberships';\n super.init();\n }\n\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n createPlan(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/plans`, data, {\n withCredentials: true,\n });\n }\n findPlans(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/plans`, {\n params: options,\n withCredentials: true,\n });\n }\n getPlan(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/plans/${id}`, {\n withCredentials: true,\n });\n }\n updatePlan(id: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/plans/${id}`, data, {\n withCredentials: true,\n });\n }\n findBenefits(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/benefits`, {\n withCredentials: true,\n });\n }\n addBenefit(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/benefits`, data, {\n withCredentials: true,\n });\n }\n updateBenefit(id: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/benefits/${id}`, data, {\n withCredentials: true,\n });\n }\n deleteBenefit(id: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/benefits/${id}`, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CategoryService extends BaseService {\n override init() {\n this.endpoint = 'categories';\n super.init();\n }\n uploadMedia(id: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n importFromExcel(data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/excel`, data, {\n withCredentials: true,\n });\n }\n createFromExcel(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/list`, data, {\n withCredentials: true,\n });\n }\n findProductCategory(options: any): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/products/categories`, { params: options });\n }\n getProductCategory(id: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/products/categories/${id}`);\n }\n createProductCategory(data: any): Observable<any> {\n return this.http.post<any>(`${this.environment.baseUrl}/products/categories`, data, {\n withCredentials: true,\n });\n }\n updateProductCategory(data: any): Observable<any> {\n return this.http.put<any>(`${this.environment.baseUrl}/products/categories`, data, {\n withCredentials: true,\n });\n }\n uploadProductCategoryMedia(id: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.environment.baseUrl}/products/categories/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteProductCategoryMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.environment.baseUrl}/products/categories/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { Observable } from 'rxjs';\n\n/* ========= StreamEvent Union ========= */\n\nexport type StreamEvent = StartEvent | MessageEvent | JsonEvent | GroupEvent | ToolEvent | DoneEvent | ErrorEvent;\n\nexport interface StartEvent {\n type: 'start';\n sessionId: string; // normalized id used by the app\n conversationId?: string; // original server id if present\n at?: string; // optional server timestamp\n}\n\nexport interface MessageEvent {\n type: 'message';\n role: 'user' | 'assistant';\n text: string;\n delta?: boolean;\n}\n\nexport interface JsonEvent {\n type: 'json';\n data: unknown;\n}\n\nexport interface GroupEvent {\n type: 'group';\n id: string;\n title: string;\n mediaUrl?: string;\n link?: string;\n price?: number;\n address?: string;\n phone?: string;\n // add more card fields as needed\n}\n\nexport interface ToolEvent {\n type: 'tool';\n tool: string;\n args: Record<string, unknown>;\n results?: unknown;\n}\n\nexport interface DoneEvent {\n type: 'done';\n}\n\nexport interface ErrorEvent {\n type: 'error';\n message: string;\n cause?: unknown;\n}\n\n/* ========= Request ========= */\n\nexport interface StreamRequest {\n message: string;\n conversationId?: string;\n // add any other fields your backend expects\n}\n\n/* ========= Service ========= */\n\n@Injectable({ providedIn: 'root' })\nexport class AssistantStreamService {\n protected environment = inject(APP_CONFIG);\n\n /**\n * POST + SSE streaming via fetch + ReadableStream\n */\n stream(req: StreamRequest, init?: RequestInit): Observable<StreamEvent> {\n return new Observable<StreamEvent>((subscriber) => {\n const ctrl = new AbortController();\n\n const headers: HeadersInit = {\n 'Content-Type': 'application/json',\n Accept: 'text/event-stream',\n 'client-id': this.environment.clientId,\n ...(init?.headers ?? {}),\n };\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(<ErrorEvent>{\n type: 'error',\n message: `HTTP ${res.status} ${res.statusText}`,\n });\n return;\n }\n\n const reader = res.body.getReader();\n const decoder = new TextDecoder('utf-8');\n let buffer = '';\n\n try {\n for (;;) {\n const { value, done } = await reader.read();\n if (done) break;\n\n buffer += decoder.decode(value, { stream: true });\n\n // SSE blocks are separated by blank lines\n let idx: number;\n while ((idx = buffer.indexOf('\\n\\n')) !== -1) {\n const rawBlock = buffer.slice(0, idx);\n buffer = buffer.slice(idx + 2);\n\n const events = this.parseSSEBlock(rawBlock);\n for (const e of events) {\n const typed = this.toStreamEvent(e);\n if (!typed) continue;\n\n subscriber.next(typed);\n if (typed.type === 'done') {\n ctrl.abort();\n subscriber.complete();\n return;\n }\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) subscriber.next(typed);\n }\n }\n\n subscriber.complete();\n } catch (err: unknown) {\n if ((err as any)?.name === 'AbortError') {\n subscriber.complete();\n } else {\n subscriber.error(<ErrorEvent>{\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(<ErrorEvent>{\n type: 'error',\n message: 'Fetch error',\n cause: err,\n });\n });\n\n // teardown\n return () => ctrl.abort();\n });\n }\n\n /* ========= SSE parsing ========= */\n\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 private parseSSEBlock(block: string): Array<{ event?: string; data?: string }> {\n const lines = block.split(/\\r?\\n/);\n let eventName: string | undefined;\n const dataLines: string[] = [];\n\n for (const line of lines) {\n if (!line) continue;\n if (line.startsWith(':')) continue; // comment\n if (line.startsWith('event:')) {\n eventName = line.slice(6).trim();\n } else if (line.startsWith('data:')) {\n dataLines.push(line.slice(5).trimStart());\n } else {\n // fallback: some servers may omit \"data:\"\n dataLines.push(line);\n }\n }\n\n const dataStr = dataLines.join('\\n').trim();\n if (!dataStr) return [];\n\n // Handle possible JSONL\n const parts = this.splitPossibleJSONL(dataStr);\n return parts.map((d) => ({ event: eventName, data: d }));\n }\n\n private splitPossibleJSONL(s: string): string[] {\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 /**\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 private toStreamEvent(raw: { event?: string; data?: string }): StreamEvent | null {\n const { event, data } = raw;\n if (!data || data.length === 0) return null;\n\n // explicit \"done\" or OpenAI-style [DONE]\n if (event?.toLowerCase() === 'done' || data === '[DONE]') {\n return { type: 'done' };\n }\n\n // Try JSON\n let parsed: any;\n try {\n parsed = JSON.parse(data);\n } catch {\n // Not JSON -> treat as assistant text delta for streaming\n return <MessageEvent>{\n type: 'message',\n role: 'assistant',\n text: data,\n delta: true,\n };\n }\n\n // If server already includes a `type`, trust it\n if (parsed && typeof parsed === 'object' && 'type' in parsed) {\n return parsed as StreamEvent;\n }\n\n switch ((event ?? '').toLowerCase()) {\n case 'start': {\n const sessionId = parsed.sessionId ?? parsed.conversationId ?? parsed.id;\n if (!sessionId) return <JsonEvent>{ type: 'json', data: parsed };\n const start: StartEvent = {\n type: 'start',\n sessionId,\n conversationId: parsed.conversationId,\n at: parsed.at,\n };\n return start;\n }\n\n case 'message': {\n const role: 'user' | 'assistant' = 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 <MessageEvent>{ type: 'message', role, text, delta };\n }\n\n case 'group': {\n return <GroupEvent>{ type: 'group', ...parsed };\n }\n\n case 'json': {\n return <JsonEvent>{ type: 'json', data: parsed };\n }\n\n case 'tool': {\n return <ToolEvent>{ type: 'tool', ...parsed };\n }\n\n case 'error': {\n const msg = typeof parsed?.message === 'string' ? parsed.message : 'Unknown error';\n return <ErrorEvent>{ type: 'error', message: msg };\n }\n }\n\n // Fallback: unknown event name -> json wrapper\n return <JsonEvent>{ type: 'json', data: parsed };\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject, Subscription } from 'rxjs';\nimport {\n AssistantStreamService,\n StreamEvent,\n MessageEvent,\n GroupEvent,\n JsonEvent,\n ToolEvent,\n StartEvent,\n ErrorEvent,\n} from './assistant-stream.service';\n\n/** Ordered assistant turn segments (preserve exact server order). */\nexport type AssistantSegment =\n | { kind: 'text'; text: string }\n | { kind: 'group'; item: GroupEvent }\n | { kind: 'json'; data: unknown }\n | { kind: 'tool'; tool: ToolEvent };\n\nexport interface ChatMessage {\n id: string;\n role: 'user' | 'assistant';\n text?: string; // for user messages; not used for assistant turns\n segments?: AssistantSegment[]; // assistant only: ordered stream pieces\n error?: string;\n done?: boolean;\n createdAt: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ConversationService {\n private assistant = inject(AssistantStreamService)\n private conversationId?: string;\n\n private readonly _messages$ = new BehaviorSubject<ChatMessage[]>([]);\n readonly messages$ = this._messages$.asObservable();\n\n private readonly _typing$ = new BehaviorSubject<boolean>(false);\n readonly typing$ = this._typing$.asObservable();\n\n // ✅ new: streaming$\n private readonly _streaming$ = new BehaviorSubject<boolean>(false);\n readonly streaming$ = this._streaming$.asObservable();\n\n private streamSub?: Subscription;\n private currentAssistantMsgId?: string;\n\n // Accumulation state for streaming assistant text deltas\n private pendingDelta = '';\n private rafId: number | null = null;\n private timeoutId: any = null;\n\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 private readonly strictMessageSegmentation = false;\n\n // lightweight UI signals (snackbar, etc.)\n readonly events$ = new Subject<{ kind: 'error' | 'info'; text: string }>();\n\n /** Set known conversationId id (optional). */\n setConversationId(conversationId?: string) {\n this.conversationId = conversationId;\n }\n\n /** Clear current conversation state. */\n dispose() {\n this.cancel();\n this._messages$.next([]);\n this.currentAssistantMsgId = undefined;\n this.clearSchedulers();\n }\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\n /** Send a user message and start streaming an assistant response. */\n send(message: string) {\n const trimmed = message?.trim();\n if (!trimmed) return;\n\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\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\n this.streamSub = this.assistant\n .stream({ message: trimmed, conversationId: this.conversationId })\n .subscribe({\n next: (ev) => this.handleStreamEvent(ev),\n error: (e: ErrorEvent) => {\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\n /* ========== Internals ========== */\n\n private handleStreamEvent(ev: StreamEvent) {\n switch (ev.type) {\n case 'start': {\n const s = ev as StartEvent;\n if (s.conversationId) this.conversationId = s.conversationId;\n this.ensureAssistantMessage();\n this._streaming$.next(true); // ✅ ensure spinner even if we begin on 'start'\n break;\n }\n\n case 'message': {\n const m = ev as MessageEvent;\n\n // Most apps avoid echoing server \"user\" messages to prevent duplicates\n if (m.role !== 'assistant') break;\n\n this.bufferAssistantMessage(m);\n break;\n }\n\n case 'group': {\n this.flushPending();\n const g = ev as GroupEvent;\n this.pushAssistantSegment({ kind: 'group', item: g });\n break;\n }\n\n case 'json': {\n this.flushPending();\n const j = ev as JsonEvent;\n this.pushAssistantSegment({ kind: 'json', data: j.data });\n break;\n }\n\n case 'tool': {\n this.flushPending();\n const t = ev as ToolEvent;\n this.pushAssistantSegment({ kind: 'tool', tool: t });\n break;\n }\n\n case 'error': {\n this.flushPending();\n const e = ev as ErrorEvent;\n this.pushAssistantError(e.message);\n this._streaming$.next(false); // ✅ stop spinner on error\n break;\n }\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\n break;\n }\n }\n }\n\n private ensureAssistantMessage() {\n if (!this.currentAssistantMsgId) {\n const msg: ChatMessage = {\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\n private withCurrentAssistant(mut: (m: ChatMessage) => ChatMessage) {\n if (!this.currentAssistantMsgId) 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) return;\n\n const updated = mut(list[idx]);\n const newList = [...list];\n newList[idx] = updated;\n this._messages$.next(newList);\n }\n\n /* ========== Segment helpers (ordered) ========== */\n\n private pushAssistantSegment(seg: AssistantSegment) {\n this.ensureAssistantMessage();\n this.withCurrentAssistant((m) => ({\n ...m,\n segments: [...(m.segments ?? []), seg],\n }));\n }\n\n private appendToLastTextSegment(delta: string) {\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] as { kind: 'text'; text: string };\n segs[segs.length - 1] = { kind: 'text', text: last.text + delta };\n } else {\n segs.push({ kind: 'text', text: delta });\n }\n return { ...m, segments: segs };\n });\n }\n\n /* ========== Message buffering / accumulation ========== */\n\n private bufferAssistantMessage(m: MessageEvent) {\n const text = m.text ?? '';\n if (!text) return;\n\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\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 } else {\n this.bufferAssistantDelta(text);\n }\n }\n\n private bufferAssistantDelta(chunk: string) {\n if (!chunk) return;\n this.pendingDelta += chunk;\n this.scheduleFlush();\n }\n\n private scheduleFlush() {\n if (this.rafId != null || this.timeoutId != null) return;\n\n const raf = (globalThis as any).requestAnimationFrame?.bind(globalThis);\n if (raf) {\n this.rafId = raf(() => {\n this.rafId = null;\n this.flushPending();\n });\n } else {\n this.timeoutId = setTimeout(() => {\n this.timeoutId = null;\n this.flushPending();\n }, 33); // ~30fps\n }\n }\n\n private clearSchedulers() {\n const caf = (globalThis as any).cancelAnimationFrame?.bind(globalThis);\n if (this.rafId != null && caf) caf(this.rafId);\n if (this.timeoutId != null) clearTimeout(this.timeoutId);\n this.rafId = null;\n this.timeoutId = null;\n }\n\n private flushPending() {\n if (!this.pendingDelta) return;\n const delta = this.pendingDelta;\n this.pendingDelta = '';\n this.clearSchedulers();\n\n this.appendToLastTextSegment(delta);\n }\n\n /* ========== Finalization / error ========== */\n\n private pushAssistantError(message: string) {\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\n private markAssistantDone() {\n if (!this.currentAssistantMsgId) return;\n this.withCurrentAssistant((m) => ({ ...m, done: true }));\n this.currentAssistantMsgId = undefined;\n }\n\n /* ========== Utils ========== */\n\n private nextId(): string {\n return Math.random().toString(36).slice(2) + Date.now().toString(36);\n }\n}\n","// 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';\n\nexport interface ConversationInitResponse {\n conversationId: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ConversationInitService {\n protected environment = inject(APP_CONFIG);\n private http = inject(HttpClient);\n\n init(message: string): Promise<ConversationInitResponse> {\n return firstValueFrom(\n this.http.post<ConversationInitResponse>(`${this.environment.baseUrl}/conversations/init`, { message }, { withCredentials: true })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\nimport { HttpParams } from '@angular/common/http';\n\nexport interface SearchResult<T> {\n data: T[];\n meta: { pagination: { total: number; count: number; page: number; limit: number } };\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PropertySearchService extends BaseService {\n override init() {\n this.endpoint = 'properties';\n super.init();\n }\n search1(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/search`, {\n params: options,\n });\n }\n search<T = any>(rawParams: Record<string, any>): Observable<SearchResult<T>> {\n const params = this.stripUndefined(rawParams);\n\n // Decide route: empty filter → DB list; else → Elasticsearch-backed search\n const isEmpty = this.isEmptyFilter(params);\n\n let httpParams = new HttpParams();\n for (const [k, v] of Object.entries(params)) {\n if (k === 'sort' && v != null) {\n // Normalize sort for each backend\n const value = String(v);\n\n const sortForJpa = value; // e.g. \"updatedAt desc\"\n const sortForEs = value.replace(/\\s+/, ','); // e.g. \"updatedAt,desc\"\n\n const finalSort = isEmpty ? sortForJpa : sortForEs;\n httpParams = httpParams.set('sort', finalSort);\n continue;\n }\n if (Array.isArray(v)) {\n v.forEach((item) => (httpParams = httpParams.append(k, String(item))));\n } else {\n httpParams = httpParams.set(k, String(v));\n }\n }\n return isEmpty\n ? this.http.get<SearchResult<T>>(`${this.actionUrl}`, { params: httpParams }) // DB list\n : this.http.get<SearchResult<T>>(`${this.actionUrl}/search`, { params: httpParams }); // ES search\n }\n\n stripUndefined<T extends Record<string, any>>(obj: T): Partial<T> {\n const out: Partial<T> = {};\n for (const [k, v] of Object.entries(obj)) {\n if (v !== undefined && v !== null && !(Array.isArray(v) && v.length === 0) && v !== '') {\n (out as any)[k] = v;\n }\n }\n return out;\n }\n\n isEmptyFilter(params: Record<string, any>, ignoreKeys: string[] = ['page', 'limit', 'sort']): boolean {\n return Object.entries(params).every(\n ([k, v]) => ignoreKeys.includes(k) || v === undefined || v === null || v === '' || (Array.isArray(v) && v.length === 0),\n );\n }\n}\n","import { isPlatformBrowser } from \"@angular/common\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { inject, Injectable, PLATFORM_ID } from \"@angular/core\";\nimport { map, Observable } from \"rxjs\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TimeZoneService {\n platformId = inject(PLATFORM_ID);\n isBrowser = isPlatformBrowser(this.platformId)\n http = inject(HttpClient)\n\n getBrowserTimeZone(): string | null {\n // Europe/London\n // Asia/Shanghai\n if (!this.isBrowser) return null; // SSR-safe\n return Intl.DateTimeFormat().resolvedOptions().timeZone ?? null;\n }\n\n /** minutes east of UTC (e.g. -420 for PDT) */\n getUtcOffsetMinutes(): number | null {\n if (!this.isBrowser) return null;\n return -new Date().getTimezoneOffset();\n }\n getTimeZoneFromApi(): Observable<string> {\n // proxy /worldtime/api/ip\n return this.http.get(`/worldtime/api/ip`).pipe(map((r: any) => r.timezone));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BillingService extends BaseService {\n override init() {\n this.endpoint = 'billing';\n super.init();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { Observable } from 'rxjs';\nimport { ApiResponse } from '@rolatech/angular-common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class InvoiceService extends BaseService {\n override init() {\n this.endpoint = 'billing/invoices';\n super.init();\n }\n createByManager(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}`, data, {\n withCredentials: true,\n });\n }\n findByManager(options: any): Observable<ApiResponse<any>> {\n return this.http.get<any>(`${this.actionUrl}/by/manager`, {\n params: options,\n withCredentials: true,\n });\n }\n getInvoice(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${id}`, {\n withCredentials: true,\n });\n }\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n findPendingInvoices(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/pending`, {\n params: options,\n withCredentials: true,\n });\n }\n updateInvoice(invoiceId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${invoiceId}`, data, {\n withCredentials: true,\n });\n }\n}\n","// src/app/data/property-highlights.service.ts\nimport { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { Observable } from 'rxjs';\n\nexport type Highlight = string;\n\nexport interface HighlightCreateRequest {\n text: string;\n position?: number | null;\n}\nexport interface HighlightUpdateRequest {\n index: number;\n text: string;\n}\nexport interface ReorderRequest {\n fromIndex: number;\n toIndex: number;\n}\nexport interface HighlightsReplaceRequest {\n highlights: string[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class PropertyHighlightsService extends BaseService {\n override init() {\n this.endpoint = 'properties';\n super.init();\n }\n\n // Highlights\n getHighlights<T>(id: string): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/${id}/highlights`, { withCredentials: false });\n }\n addHighlight<T>(id: string, text: string, position?: number | null): Observable<T> {\n const body = { text, position: position ?? null };\n return this.http.post<T>(`${this.actionUrl}/${id}/highlights`, body, { withCredentials: true });\n }\n replaceAllHighlights<T>(id: string, highlights: string[]): Observable<T> {\n const body: HighlightsReplaceRequest = { highlights };\n return this.http.put<T>(`${this.actionUrl}/${id}/highlights`, body, { withCredentials: true });\n }\n updateHighlightAt<T>(id: string, index: number, text: string): Observable<T> {\n const body: HighlightUpdateRequest = { index, text };\n return this.http.patch<T>(`${this.actionUrl}/${id}/highlights/${index}`, body, { withCredentials: true });\n }\n reorderHighlights<T>(id: string, fromIndex: number, toIndex: number): Observable<T> {\n const body: ReorderRequest = { fromIndex, toIndex };\n return this.http.patch<T>(`${this.actionUrl}/${id}/highlights/reorder`, body, { withCredentials: true });\n }\n deleteHighlightAt<T>(id: string, index: number): Observable<T> {\n return this.http.delete<T>(`${this.actionUrl}/${id}/highlights/${index}`, { withCredentials: true });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FloorplanService extends BaseService {\n override init() {\n this.endpoint = 'properties';\n super.init();\n }\n uploadFloorplan(propertyId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/floorplans`, data, {\n withCredentials: true,\n });\n }\n listFloorplans(propertyId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${propertyId}/floorplans`);\n }\n deleteFloorplan(propertyId: string, floorplanId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${propertyId}/floorplans/${floorplanId}`, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { map, Observable } from 'rxjs';\nimport { PropertyStats } from '../interfaces';\nimport { ApiResponse } from '@rolatech/angular-common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PropertyStatsService extends BaseService {\n override init() {\n this.endpoint = 'properties';\n super.init();\n }\n stats(): Observable<PropertyStats> {\n return this.http\n .get<ApiResponse<PropertyStats>>(`${this.actionUrl}/stats`, { withCredentials: true })\n .pipe(map((res) => res.data));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { map, Observable } from 'rxjs';\nimport { InvoiceStats } from '../interfaces';\nimport { ApiResponse } from '@rolatech/angular-common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class InvoiceStatsService extends BaseService {\n override init() {\n this.endpoint = 'billing/invoices';\n super.init();\n }\n\n stats(): Observable<InvoiceStats> {\n return this.http\n .get<ApiResponse<InvoiceStats>>(`${this.actionUrl}/stats`, { withCredentials: true })\n .pipe(map((res) => res.data));\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { map, Observable, switchMap } from 'rxjs';\nimport _ from 'lodash';\nimport { PropertyService } from './property.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PropertyOfferService extends BaseService {\n propertyService = inject(PropertyService);\n override init() {\n this.endpoint = 'properties';\n super.init();\n }\n makeOffer(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/offers`, data, {\n withCredentials: true,\n });\n }\n findOffers(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/offers`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.propertyService.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }),\n );\n }),\n );\n }\n findOffersByUser(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/offers/by/user`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.propertyService.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }),\n );\n }),\n );\n }\n findOffersByAgent(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/offers/by/agent`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.propertyService.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }),\n );\n }),\n );\n }\n getOffer(offerId: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/offers/${offerId}`, { withCredentials: true });\n }\n cancelOffer(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/cancel`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n acceptOffer(id: string): Observable<any> {\n return this.http.put<any>(\n `${this.actionUrl}/offers/${id}/accept`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n rejectOffer(id: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/offers/${id}/reject`, data, {\n withCredentials: true,\n });\n }\n referencesAccept(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/references/accept`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n referencesReject(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/offers/${id}/references/reject`, data, {\n withCredentials: true,\n });\n }\n\n createHoldingDepositCheckout(offerId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/offers/${offerId}/pay/holding-deposit`, data, {\n withCredentials: true,\n });\n }\n createSecurityDepositCheckout(offerId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/offers/${offerId}/pay/security-deposit`, data, {\n withCredentials: true,\n });\n }\n checkOfferPaymentStatus(offerId: any, sessionId: string): Observable<any> {\n const options = {\n sessionId,\n };\n return this.http.get<any>(`${this.actionUrl}/offers/${offerId}/session`, { params: options, withCredentials: true });\n }\n\n offerTimeline(offerId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/offers/${offerId}/timeline`, {\n withCredentials: true,\n });\n }\n updateOffer(offerId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/offers/${offerId}`, data, {\n withCredentials: true,\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { PropertyService } from './property.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PropertyViewingService extends BaseService {\n propertyService = inject(PropertyService);\n override init() {\n this.endpoint = 'properties';\n super.init();\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport {\n HttpInterceptor,\n HttpRequest,\n HttpHandler,\n HttpEvent,\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { LoadingService } from '../services';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoadingInterceptor {\n loadingService = inject(LoadingService)\n activeRequests = 0;\n\n intercept(\n request: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n if (this.activeRequests === 0) {\n this.loadingService.start();\n }\n\n this.activeRequests++;\n\n return next.handle(request).pipe(\n finalize(() => {\n this.activeRequests--;\n if (this.activeRequests === 0) {\n this.loadingService.stop();\n }\n })\n );\n }\n}\n","// language.service.ts\nimport { Injectable, Inject, Optional, PLATFORM_ID, signal, computed, REQUEST, inject } from '@angular/core';\nimport { isPlatformBrowser, isPlatformServer } from '@angular/common';\n// If you use Express-based SSR:\n// import { REQUEST } from '@nguniversal/express-engine/tokens';\n\ntype Lang = 'en' | 'zh-Hans';\n\n@Injectable({ providedIn: 'root' })\nexport class LanguageService {\n platformId = inject(PLATFORM_ID)\n req = inject(REQUEST)\n private readonly storageKey = 'hl';\n readonly lang = signal<Lang>(this.detectInitial());\n readonly acceptLanguage = computed(() => this.lang()); // 'en' | 'zh-Hans'\n\n\n private detectInitial(): Lang {\n // Default to English when header is null/blank/unknown\n if (isPlatformServer(this.platformId)) {\n const hdr: string = this.req?.headers?.['accept-language'] ?? '';\n return hdr.toLowerCase().startsWith('zh') ? 'zh-Hans' : 'en';\n }\n\n // Browser\n const saved = typeof localStorage !== 'undefined' ? localStorage.getItem(this.storageKey) : null;\n if (saved === 'en' || saved === 'zh-Hans') return saved as Lang;\n\n const nav = (navigator.language || (navigator.languages?.[0] ?? '')).toLowerCase();\n return nav.startsWith('zh') ? 'zh-Hans' : 'en';\n }\n\n set(lang: Lang) {\n this.lang.set(lang);\n if (isPlatformBrowser(this.platformId)) {\n localStorage.setItem(this.storageKey, lang);\n // Optional: keep <html lang=\"...\"> in sync\n document.documentElement.lang = lang.startsWith('zh') ? 'zh' : 'en';\n }\n }\n}\n","// accept-language.interceptor.ts\nimport { HttpInterceptorFn } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { LanguageService } from '../services/language.service';\n\n// Adjust to your app:\nconst API_PREFIXES = ['/api', '/auth', '/properties']; // relative paths you own\nconst API_HOSTS = new Set([\n 'localhost:9001', // dev backend\n 'api.primecasa.co.uk', // prod backend\n]);\n\nexport const acceptLanguageInterceptor: HttpInterceptorFn = (req, next) => {\n const lang = (inject(LanguageService).acceptLanguage() ?? 'en') as string;\n\n const url = req.url;\n const isAbsolute = /^[a-zA-Z][a-zA-Z\\d+\\-.]*:\\/\\//.test(url);\n\n // Ignore static assets and obvious 3rd-party calls early\n if (!isAbsolute && url.startsWith('/assets')) {\n return next(req);\n }\n\n\n // Decide if we should attach the header\n let shouldAttach = false;\n\n if (!isAbsolute) {\n // Same-origin (dev proxy or app backend behind the UI origin)\n shouldAttach = API_PREFIXES.some(p =>\n url.startsWith(p) || url.startsWith('/' + p.replace(/^\\//, ''))\n ) || url.startsWith('/'); // fallback: any relative app call\n } else {\n // Absolute URL: only attach for whitelisted API hosts\n try {\n const u = new URL(url);\n shouldAttach = API_HOSTS.has(u.host);\n } catch {\n shouldAttach = false;\n }\n }\n\n // Don’t duplicate if header is already present\n if (!shouldAttach || req.headers.has('Accept-Language')) {\n return next(req);\n }\n\n return next(req.clone({ setHeaders: { 'Accept-Language': lang || 'en' } }));\n};\n","import { Directive, ElementRef, HostListener, inject } from '@angular/core';\nimport { NavigationService } from '../services';\n\n@Directive({\n selector: '[rolatechBackButton]',\n})\nexport class BackButtonDirective {\n navigation = inject(NavigationService);\n constructor() {}\n @HostListener('click')\n onClick(): void {\n this.navigation.back();\n }\n}\n","import { Directive, OnDestroy, OnInit, inject } from '@angular/core';\nimport { LayoutService } from '../services';\n\n@Directive({\n selector: '[rolatechHideFooter]',\n})\nexport class HideFooterDirective implements OnInit, OnDestroy {\n private layout = inject(LayoutService);\n ngOnInit() { this.layout.setHideFooter(true); }\n ngOnDestroy() { this.layout.setHideFooter(false); }\n}\n","import { Provider } from '@angular/core';\nimport { BackButtonDirective } from './back-button.directive';\nexport { HideFooterDirective } from './hide-footer.directive';\nexport { BackButtonDirective, } from './back-button.directive';\n\nexport const SERVICE_DIRECTIVES: Provider[] = [BackButtonDirective];\n","import { APP_INITIALIZER, EnvironmentProviders, Provider, makeEnvironmentProviders } from '@angular/core';\nimport {\n BaseService,\n LoadingService,\n MediaService,\n LayoutService,\n DialogService,\n SnackBarService,\n NavigationService,\n SupportService,\n BreadcrumbService,\n SidenavService,\n CartService,\n ProductService,\n OrderService,\n} from './lib/services';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { LoadingInterceptor } from './lib/interceptor';\nimport { BackButtonDirective } from './lib/directive';\n\nexport function provideAngularServices(): EnvironmentProviders {\n const providers: (Provider | EnvironmentProviders)[] = [\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\n return makeEnvironmentProviders(providers);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rolatech-angular-services.mjs","sources":["../../../../packages/angular-services/src/lib/components/dialog/dialog.component.ts","../../../../packages/angular-services/src/lib/components/dialog/dialog.component.html","../../../../packages/angular-services/src/lib/services/base.service.ts","../../../../packages/angular-services/src/lib/services/product.service.ts","../../../../packages/angular-services/src/lib/services/cart.service.ts","../../../../packages/angular-services/src/lib/services/navigation.service.ts","../../../../packages/angular-services/src/lib/services/dialog.service.ts","../../../../packages/angular-services/src/lib/services/loading.service.ts","../../../../packages/angular-services/src/lib/services/media.service.ts","../../../../packages/angular-services/src/lib/services/layout.service.ts","../../../../packages/angular-services/src/lib/services/snack-bar.service.ts","../../../../packages/angular-services/src/lib/services/support.service.ts","../../../../packages/angular-services/src/lib/services/breadcrumb.service.ts","../../../../packages/angular-services/src/lib/services/sidenav.service.ts","../../../../packages/angular-services/src/lib/services/theme.service.ts","../../../../packages/angular-services/src/lib/services/order.service.ts","../../../../packages/angular-services/src/lib/services/inventory.service.ts","../../../../packages/angular-services/src/lib/state/notification.store.ts","../../../../packages/angular-services/src/lib/services/notification.service.ts","../../../../packages/angular-services/src/lib/services/product-category.service.ts","../../../../packages/angular-services/src/lib/services/notification-template.service.ts","../../../../packages/angular-services/src/lib/services/fulfillment.service.ts","../../../../packages/angular-services/src/lib/services/title.service.ts","../../../../packages/angular-services/src/lib/services/post.service.ts","../../../../packages/angular-services/src/lib/services/order-payout.service.ts","../../../../packages/angular-services/src/lib/services/resource.service.ts","../../../../packages/angular-services/src/lib/services/resource-category.service.ts","../../../../packages/angular-services/src/lib/services/booking.service.ts","../../../../packages/angular-services/src/lib/services/facility.service.ts","../../../../packages/angular-services/src/lib/services/amenity.service.ts","../../../../packages/angular-services/src/lib/services/property.service.ts","../../../../packages/angular-services/src/lib/services/feature.service.ts","../../../../packages/angular-services/src/lib/services/payment.service.ts","../../../../packages/angular-services/src/lib/services/offering.service.ts","../../../../packages/angular-services/src/lib/services/membership.service.ts","../../../../packages/angular-services/src/lib/services/category.service.ts","../../../../packages/angular-services/src/lib/services/assistant-stream.service.ts","../../../../packages/angular-services/src/lib/services/conversation.service.ts","../../../../packages/angular-services/src/lib/services/conversation-init.service.ts","../../../../packages/angular-services/src/lib/services/property-search.service.ts","../../../../packages/angular-services/src/lib/services/timezone.service.ts","../../../../packages/angular-services/src/lib/services/billing.service.ts","../../../../packages/angular-services/src/lib/services/invoice.service.ts","../../../../packages/angular-services/src/lib/services/property-highlights.service.ts","../../../../packages/angular-services/src/lib/services/floorplan.service.ts","../../../../packages/angular-services/src/lib/services/property-stats.service.ts","../../../../packages/angular-services/src/lib/services/invoice-stats.service.ts","../../../../packages/angular-services/src/lib/services/property-offer.service.ts","../../../../packages/angular-services/src/lib/services/property-viewing.service.ts","../../../../packages/angular-services/src/lib/interceptor/loading.interceptor.ts","../../../../packages/angular-services/src/lib/services/language.service.ts","../../../../packages/angular-services/src/lib/interceptor/accept-language.interceptor.ts","../../../../packages/angular-services/src/lib/directive/back-button.directive.ts","../../../../packages/angular-services/src/lib/directive/hide-footer.directive.ts","../../../../packages/angular-services/src/lib/directive/index.ts","../../../../packages/angular-services/src/provider.ts","../../../../packages/angular-services/src/rolatech-angular-services.ts"],"sourcesContent":["import {\n Component,\n EventEmitter,\n HostListener,\n inject,\n OnDestroy,\n OnInit,\n OutputEmitterRef,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogActions, MatDialogContent, MatDialogRef, MatDialogTitle } from '@angular/material/dialog';\nimport { DialogData } from '../../interfaces/dialog.interface';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'rolatech-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n imports: [MatButtonModule, MatDialogActions, MatDialogTitle, MatDialogContent],\n})\nexport class DialogComponent implements OnInit, OnDestroy {\n @HostListener('keydown.esc')\n public onEsc() {\n this.close(false);\n }\n data: DialogData = inject(MAT_DIALOG_DATA);\n result: any;\n dialogRef = inject(MatDialogRef<DialogComponent>);\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<DialogComponent>(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 } 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\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 public close(value = false) {\n this.dialogRef.close(value);\n }\n public confirm() {\n this.close(this.result || true);\n }\n}\n","<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","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BaseService {\n protected http = inject(HttpClient);\n protected environment = inject(APP_CONFIG);\n protected actionUrl!: string;\n public endpoint!: string;\n\n constructor() {\n this.init();\n }\n init() {\n this.actionUrl = `${this.environment.baseUrl}/${this.endpoint}`;\n }\n find<T>(options?: any, withCredentials = true): Observable<T> {\n return this.http.get<T>(this.actionUrl, {\n params: options,\n withCredentials,\n });\n }\n get<T>(id: string, options?: any, withCredentials = true): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/${id}`, {\n params: options,\n withCredentials,\n });\n }\n create<T>(item: T): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}`, item, {\n withCredentials: true,\n });\n }\n update<T>(id: string, data: T): Observable<T> {\n return this.http.put<T>(`${this.actionUrl}/${id}`, data, {\n withCredentials: true,\n });\n }\n delete<T>(id: string): Observable<T> {\n return this.http.delete<T>(`${this.actionUrl}/${id}`, {\n withCredentials: true,\n });\n }\n updateStatus<T>(id: string, data: T): Observable<T> {\n return this.http.put<T>(`${this.actionUrl}/${id}/status`, data, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductService extends BaseService {\n override init() {\n this.endpoint = 'products';\n super.init();\n }\n\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n findByIds(ids: Array<string>): Observable<any> {\n const params = { ids: ids.join(',') };\n return this.http.get<any>(`${this.actionUrl}/by`, {\n params: params,\n withCredentials: true,\n });\n }\n publish(productId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${productId}/publish`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n archived(productId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${productId}/archived`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n findWishlist(options: any) {\n return this.http.get(`${this.actionUrl}/wishlist`, { params: options, withCredentials: true });\n }\n addToWishlist(productId: string) {\n return this.http.post(`${this.actionUrl}/${productId}/wishlist`, {}, { withCredentials: true });\n }\n removeFromWishlist(productId: string) {\n return this.http.delete(`${this.actionUrl}/${productId}/wishlist`, { withCredentials: true });\n }\n findWishlistBy(productId: string) {\n return this.http.get(`${this.actionUrl}/${productId}/wishlist/by`, { withCredentials: true });\n }\n findPurchasedByProductId(productId: string) {\n return this.http.get(`${this.actionUrl}/users/me/by?productId=${productId}`, {\n withCredentials: true,\n });\n }\n // Media\n uploadMedia(productId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${productId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n // Pricing\n addPricing(productId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${productId}/pricing`, data, {\n withCredentials: true,\n });\n }\n updatePricing(pricingId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/pricing/${pricingId}`, data, {\n withCredentials: true,\n });\n }\n deletePricing(pricingId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/pricing/${pricingId}`, {\n withCredentials: true,\n });\n }\n // Section\n addSection(productId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${productId}/sections`, data, {\n withCredentials: true,\n });\n }\n addBatchSections(productId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${productId}/sections/batch`, data, {\n withCredentials: true,\n });\n }\n findSections(productId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${productId}/sections`, {\n withCredentials: true,\n });\n }\n updateSection(sectionId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/sections/${sectionId}`, data, {\n withCredentials: true,\n });\n }\n deleteSection(sectionId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/sections/${sectionId}`, {\n withCredentials: true,\n });\n }\n uploadSectionMedia(sectionId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/sections/${sectionId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteSectionMedia(sectionId: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/sections/${sectionId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n addOption(productId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${productId}/options`, data, {\n withCredentials: true,\n });\n }\n findOptions(productId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${productId}/options`);\n }\n updateOption(optionId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/options/${optionId}`, data, {\n withCredentials: true,\n });\n }\n deleteOption(optionId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/options/${optionId}`, {\n withCredentials: true,\n });\n }\n // variants\n updateVariantPrice(productId: string, status: boolean): Observable<any> {\n return this.http.put<any>(\n `${this.actionUrl}/${productId}/variants/by?status=${status}`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n createVariants(productId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${productId}/variants`, data, {\n withCredentials: true,\n });\n }\n getVariant(variantId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/variants/${variantId}`);\n }\n findVariants(productId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${productId}/variants`);\n }\n findVariantsByIds(ids: Array<string>): Observable<any> {\n const params = { ids: ids.join(',') };\n return this.http.get<any>(`${this.actionUrl}/variants/by`, {\n params: params,\n withCredentials: true,\n });\n }\n updateVariants(productId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${productId}/variants`, data, {\n withCredentials: true,\n });\n }\n uploadVariantMedia(variantId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/variants/${variantId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteVariantMedia(variantId: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/variants/${variantId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n}\n","import { EventEmitter, inject, Injectable } from '@angular/core';\nimport { map, Observable, switchMap } from 'rxjs';\nimport _ from 'lodash';\nimport { BaseService } from './base.service';\nimport { ProductService } from './product.service';\nexport enum CartEventType {\n CartAdd = 0,\n CartRemove = 1,\n}\n@Injectable({\n providedIn: 'root',\n})\nexport class CartService extends BaseService {\n productService = inject(ProductService);\n cartEvent = new EventEmitter<CartEventType>();\n override init() {\n this.endpoint = 'carts';\n super.init();\n }\n findDetails(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res: any) => {\n const productIds = _.uniq(_.map(res.data, 'productId')); // [12, 14, 16, 18]\n return this.findProductsByIds(productIds).pipe(\n map((products: any) => {\n res.data?.forEach((item) => {\n const matchingProduct = _.find(products.data, { id: item.productId });\n item.product = matchingProduct;\n });\n return res;\n }),\n );\n }),\n switchMap((res: any) => {\n const variantIds = _.uniq(_.map(res.data, 'variantId')); // [12, 14, 16, 18]\n return this.findVariantsByIds(variantIds).pipe(\n map((variants: any) => {\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 );\n }\n findProductsByIds(ids: Array<string>): Observable<any> {\n return this.productService.findByIds(ids);\n }\n findVariantsByIds(ids: Array<string>): Observable<any> {\n return this.productService.findVariantsByIds(ids);\n }\n by(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/items/by`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n deleteByIds(ids: any): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/me`, {\n withCredentials: true,\n });\n }\n deleteAll(): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/me`, {\n withCredentials: true,\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { NavigationEnd, Router } from '@angular/router';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NavigationService {\n private history: string[] = [];\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(): string[] {\n return this.history;\n }\n back(): void {\n this.history.pop();\n if (this.history.length > 0) {\n this.location.back();\n } else {\n this.router.navigateByUrl('/');\n }\n }\n next(): string {\n if (this.history.length > 0) {\n return this.history[this.history.length - 2];\n }\n return '';\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { map, Observable, take } from 'rxjs';\nimport { DialogComponent } from '../components/dialog/dialog.component';\nimport { DialogData } from '../interfaces';\n\n@Injectable()\nexport class DialogService {\n dialog = inject(MatDialog);\n dialogRef!: MatDialogRef<DialogComponent>;\n\n public open(options: DialogData) {\n this.dialogRef = this.dialog.open<DialogComponent, DialogData>(DialogComponent, {\n data: {\n ...options,\n },\n });\n }\n public cancelled(): Observable<any> {\n return this.dialogRef.beforeClosed().pipe(\n take(1),\n map((res) => res),\n );\n }\n public confirmed(): Observable<any> {\n return this.dialogRef.afterClosed().pipe(\n take(1),\n map((res) => res),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoadingService {\n public loading$ = new BehaviorSubject(false);\n public ratio$ = new BehaviorSubject(0);\n isLoading = false;\n\n constructor() {}\n\n start() {\n this.loading$.next(true);\n }\n\n stop() {\n this.loading$.next(false);\n }\n async present(text?: string) {\n this.isLoading = true;\n }\n\n async dismiss() {\n this.isLoading = false;\n }\n}\n","import { HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { Observable } from 'rxjs';\n@Injectable({\n providedIn: 'root',\n})\nexport class MediaService extends BaseService {\n override init() {\n this.endpoint = 'media';\n super.init();\n }\n upload(data: FormData): Observable<any> {\n return this.http.post<any>(`${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: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/save`, data, {\n reportProgress: false,\n withCredentials: true,\n });\n }\n deleteBy(filename: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${filename}`, {});\n }\n batchDelete(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/batch`, data, { withCredentials: true });\n }\n moveToGroup(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/move`, data, { withCredentials: true });\n }\n addGroup(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/groups`, data, { withCredentials: true });\n }\n findGroup(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/groups/${id}`, { withCredentials: true });\n }\n findGroups(options?: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/groups`, { withCredentials: true });\n }\n getImageInfo(url: string): Observable<any> {\n return this.http.get(`${url}?imageInfo`);\n }\n}\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { computed, inject, Injectable, signal } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { filter, map, shareReplay } from 'rxjs/operators';\n\n@Injectable()\nexport class LayoutService {\n breakpointObserver = inject(BreakpointObserver)\n route = inject(ActivatedRoute)\n router = inject(Router)\n isHandset$: Observable<boolean>;\n private _hideFooter = signal(false);\n hideFooter = computed(() => this._hideFooter());\n\n constructor() {\n this.isHandset$ = this.breakpointObserver\n .observe([Breakpoints.Small, Breakpoints.HandsetPortrait])\n .pipe(\n map((result) => result.matches),\n shareReplay()\n );\n\n this.router.events\n // .pipe(filter((e): e is NavigationEnd => e instanceof NavigationEnd))\n .subscribe(() => {\n\n let r: ActivatedRoute = this.route;\n\n while (r.firstChild) r = r.firstChild;\n const hide = (r.snapshot.data['hideFooter'] as boolean) === true;\n\n this.setHideFooter(hide);\n });\n }\n setHideFooter(v: boolean) {\n this._hideFooter.set(v);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\n@Injectable()\nexport class SnackBarService {\n snackBar = inject(MatSnackBar);\n open(message) {\n this.snackBar.open(message);\n }\n dismiss() {\n this.snackBar.dismiss();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SupportService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n\n findAllBuckets(options: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/support/buckets`, {\n params: options,\n withCredentials: false,\n });\n }\n findAll(options: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/support/folders`, {\n params: options,\n withCredentials: false,\n });\n }\n findFolderBySlug(slug: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/support/folders/slug/${slug}`, {\n withCredentials: false,\n });\n }\n findByPath(path: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/support/folders/by?path=${path}`, {\n withCredentials: false,\n });\n }\n findAllFiles(options: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/support/files`, {\n params: options,\n withCredentials: false,\n });\n }\n findFileByFolder(folder: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/support/files/by?folder=${folder}`, {\n withCredentials: false,\n });\n }\n findFileBySlug(slug: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/support/files/slug/${slug}`, {\n withCredentials: false,\n });\n }\n uploadFile(data: FormData) {\n return this.http.post<any>(`${this.environment.baseUrl}/support/files`, data, {\n withCredentials: true,\n });\n }\n createBucket(data: any) {\n return this.http.post<any>(`${this.environment.baseUrl}/support/buckets`, data, {\n withCredentials: true,\n });\n }\n createFolderBySlug(slug: string, data: any) {\n return this.http.post<any>(`${this.environment.baseUrl}/support/folders/slug/${slug}`, data, {\n withCredentials: true,\n });\n }\n uploadFileBySlug(slug: string, data: FormData) {\n return this.http.post<any>(`${this.environment.baseUrl}/support/files/slug/${slug}`, data, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BreadcrumbService {\n router = inject(Router);\n breadcrumbs: Breadcrumb[] = [];\n\n add(label: string, slug: string) {\n const breadcrumb: Breadcrumb = {\n label: label,\n slug: slug,\n };\n this.breadcrumbs.push(breadcrumb);\n return this.breadcrumbs;\n }\n goTo(slug: string, route: ActivatedRoute) {\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}\n\ninterface Breadcrumb {\n label: string;\n slug: string;\n}\n","import { MediaMatcher } from '@angular/cdk/layout';\nimport { Injectable, inject } from '@angular/core';\nimport { MatSidenav } from '@angular/material/sidenav';\n\n@Injectable()\nexport class SidenavService {\n media = inject(MediaMatcher);\n sidenav!: MatSidenav;\n private mobileQuery!: MediaQueryList;\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\n public setSidenav(sidenav: MatSidenav) {\n this.sidenav = sidenav;\n }\n\n public open() {\n return this.sidenav.open();\n }\n\n public close() {\n return this.sidenav.close();\n }\n\n public toggle(): void {\n this.sidenav.toggle();\n this.isCollaped = !this.isMobile && !this.sidenav?.opened;\n }\n public lists() {}\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ThemeService {\n platformId = inject(PLATFORM_ID);\n darkTheme: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(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 } else {\n // Light\n this.setDarkTheme(false);\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 } else {\n this.setDarkTheme(false);\n }\n });\n }\n }\n\n setDarkTheme(isDarkTheme: boolean) {\n this.darkTheme.next(isDarkTheme);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OrderService extends BaseService {\n override init() {\n this.endpoint = 'orders';\n super.init();\n }\n createPaymentIntent(id: number): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/create-payment-intent`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n by(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/items/by`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n merchant(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/merchant`, {\n params: options,\n withCredentials: true,\n });\n }\n timeline(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${id}/timeline`, {\n withCredentials: true,\n });\n }\n pay(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/pay`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n refund(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/refund`, data, {\n withCredentials: true,\n });\n }\n findAllReturns(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/returns`, {\n params: options,\n withCredentials: true,\n });\n }\n findAllReturnsByInstructor(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/returns/instructor`, {\n params: options,\n withCredentials: true,\n });\n }\n getReturn(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/returns/${id}`, {\n withCredentials: true,\n });\n }\n returnApprove(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/returns/${id}/approve`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n returnReject(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/returns/${id}/reject`, data, {\n withCredentials: true,\n });\n }\n cancel(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/cancel`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n countMeByStatus(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/count/me/by`, {\n params: options,\n withCredentials: true,\n });\n }\n fulfill(orderId: string, data: any) {\n return this.http.post<any>(`${this.actionUrl}/${orderId}/fulfillment`, data, {\n withCredentials: true,\n });\n }\n getMerchantOrder(orderId: string) {\n return this.http.get<any>(`${this.actionUrl}/${orderId}/by/merchant`, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class InventoryService extends BaseService {\n override init() {\n this.endpoint = 'inventories';\n super.init();\n }\n getLocation(locationId: string): Observable<any> {\n return this.http.get(`${this.actionUrl}/locations/${locationId}`, { withCredentials: true });\n }\n findLocations(options: any): Observable<any> {\n return this.http.get(`${this.actionUrl}/locations`, { params: options, withCredentials: true });\n }\n addLocation(data: any): Observable<any> {\n return this.http.post(`${this.actionUrl}/locations`, data, { withCredentials: true });\n }\n updateLocation(locationId: string, data: any): Observable<any> {\n return this.http.put(`${this.actionUrl}/locations/${locationId}`, data, { withCredentials: true });\n }\n deleteLocation(locationId: string): Observable<any> {\n return this.http.delete(`${this.actionUrl}/locations/${locationId}`, { withCredentials: true });\n }\n initInventoryItems(data: any): Observable<any> {\n return this.http.post(`${this.actionUrl}/items/init`, data, { withCredentials: true });\n }\n findMyInventoryItems(options: any): Observable<any> {\n return this.http.get(`${this.actionUrl}/items/me`, { params: options, withCredentials: true });\n }\n addInventoryItem(data: any): Observable<any> {\n return this.http.post(`${this.actionUrl}/items`, data, { withCredentials: true });\n }\n updateInventoryItem(data: any): Observable<any> {\n return this.http.put(`${this.actionUrl}/items`, data, { withCredentials: true });\n }\n addInventoryByProductId(locationId: string, productId: string, data: any): Observable<any> {\n return this.http.post(`${this.actionUrl}/locations/${locationId}`, data, { withCredentials: true });\n }\n addInventoryByVariantId(locationId: string, variantId: string, data: any): Observable<any> {\n return this.http.post(`${this.actionUrl}/locations`, data, { withCredentials: true });\n }\n\n findInventoryItemsByProductId(productId: string): Observable<any> {\n return this.http.get(`${this.actionUrl}/products/${productId}`, { withCredentials: true });\n }\n findInventoryItemsByVariantId(variantId: string): Observable<any> {\n return this.http.get(`${this.actionUrl}/variants/${variantId}`, { withCredentials: true });\n }\n findInventoryLevelsByLocationIdAndVariantIds(locationId: string, ids: Array<string>): Observable<any> {\n const params = { ids: ids.join(',') };\n return this.http.get(`${this.actionUrl}/locations/${locationId}/variants/by`, { params: params, withCredentials: true });\n }\n\n deleteInventoryItemsByProductId(productId: string): Observable<any> {\n return this.http.delete(`${this.actionUrl}/products/${productId}`, { withCredentials: true });\n }\n deleteInventoryItemsByVariantId(variantId: string): Observable<any> {\n return this.http.delete(`${this.actionUrl}/variants/${variantId}`, { withCredentials: true });\n }\n deleteInventoryLevel(levelId: string): Observable<any> {\n return this.http.delete(`${this.actionUrl}/levels/${levelId}`, { withCredentials: true });\n }\n\n findProductsInLocation(locationId: string): Observable<any> {\n return this.http.get(`${this.actionUrl}/locations/${locationId}/products`, { withCredentials: true });\n }\n findLocationsByProductId(productId: string): Observable<any> {\n return this.http.get(`${this.actionUrl}/products/${productId}/locations`, { withCredentials: true });\n }\n findLocationsByVariantId(variantId: string): Observable<any> {\n return this.http.get(`${this.actionUrl}/variants/${variantId}/locations`, { withCredentials: true });\n }\n updateStockByLocationIdAndProductId(locationId: string, productId: string, data: any): Observable<any> {\n return this.http.put(`${this.actionUrl}/locations${locationId}/products/${productId}`, data, { withCredentials: true });\n }\n updateStockByLocationIdAndVariantId(locationId: string, variantId: string, data: any): Observable<any> {\n return this.http.put(`${this.actionUrl}/locations${locationId}/variants/${variantId}`, data, { withCredentials: true });\n }\n adjustStocksByLocationId(data: any): Observable<any> {\n return this.http.put(`${this.actionUrl}/levels/adjust`, data, { withCredentials: true });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationStore {\n $count = new BehaviorSubject(0);\n getCount() {\n return this.$count.asObservable();\n }\n}\n","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';\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n storeService = inject(NotificationStore);\n\n find(options: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/me`, {\n params: options,\n withCredentials: true,\n });\n }\n get(id: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/${id}`, {\n withCredentials: true,\n });\n }\n read(ids: Array<string>) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/${ids}`, {\n withCredentials: true,\n });\n }\n update(id: string) {\n return this.http\n .put<any>(\n `${this.environment.baseUrl}/notifications/${id}`,\n { status: 'READ' },\n {\n withCredentials: true,\n },\n )\n .pipe(\n map((res) => {\n const value = this.storeService.$count.value - 1;\n this.storeService.$count.next(value);\n }),\n );\n }\n readAll() {\n return this.http\n .put<any>(\n `${this.environment.baseUrl}/notifications/status/all`,\n { status: 'READ' },\n {\n withCredentials: true,\n },\n )\n .pipe(\n map((res) => {\n this.storeService.$count.next(0);\n }),\n );\n }\n delete(id: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/${id}`, {\n withCredentials: true,\n });\n }\n findByUserId(userId: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/by?userId=${userId}`, {\n withCredentials: true,\n });\n }\n countByStatus(status: string) {\n return this.http\n .get<any>(`${this.environment.baseUrl}/notifications/count/by?status=${status}`, {\n withCredentials: true,\n })\n .pipe(\n map(({ data }) => {\n this.storeService.$count.next(data);\n return data;\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductCategoryService extends BaseService {\n override init() {\n this.endpoint = 'products/categories';\n super.init();\n }\n uploadMedia(id: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n importFromExcel(data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/excel`, data, {\n withCredentials: true,\n });\n }\n createFromExcel(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/list`, data, {\n withCredentials: true,\n });\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationTemplateService {\n environment = inject(APP_CONFIG);\n http = inject(HttpClient);\n\n find(options: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options: any) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/me`, {\n params: options,\n withCredentials: true,\n });\n }\n get(id: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/${id}`, {\n withCredentials: true,\n });\n }\n read(ids: Array<string>) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/${ids}`, {\n withCredentials: true,\n });\n }\n delete(id: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/${id}`, {\n withCredentials: true,\n });\n }\n findByUserId(userId: string) {\n return this.http.get<any>(`${this.environment.baseUrl}/notifications/by?userId=${userId}`, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FulfillmentService extends BaseService {\n override init() {\n this.endpoint = 'fulfillments';\n super.init();\n }\n fulfill(orderId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/orders/${orderId}`, data, {\n withCredentials: true,\n });\n }\n tracking(orderId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/tracking/orders/${orderId}`, {\n withCredentials: true,\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { APP_CONFIG } from '@rolatech/angular-common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TitleService {\n environment = inject(APP_CONFIG);\n titleService = inject(Title);\n\n getTitle(): string {\n return this.titleService.getTitle();\n }\n setTitle(newTitle: string) {\n this.titleService.setTitle(`${newTitle} - ${this.environment.name}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PostService extends BaseService {\n override init() {\n this.endpoint = 'posts';\n super.init();\n }\n by(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/items/by`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n merchant(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/merchant`, {\n params: options,\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n@Injectable({\n providedIn: 'root',\n})\nexport class OrderPayoutService extends BaseService {\n override init() {\n this.endpoint = 'orders/payouts';\n super.init();\n }\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n approve(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/approve`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ResourceService extends BaseService {\n override init() {\n this.endpoint = 'resources';\n super.init();\n }\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n findByIds(ids: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/by`, {\n params: { ids },\n withCredentials: true,\n });\n }\n filter(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/search`, {\n params: options,\n withCredentials: false,\n });\n }\n updateLocation(id: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${id}/location`, data, {\n withCredentials: true,\n });\n }\n updateAmenities(id: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${id}/amenities`, data, {\n withCredentials: true,\n });\n }\n addDetail(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/details`, data, {\n withCredentials: true,\n });\n }\n addBatchDetails(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/details/batch`, data, {\n withCredentials: true,\n });\n }\n findDetails(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${id}/details`, {\n withCredentials: true,\n });\n }\n updateDetail(id: string, detailId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${id}/details/${detailId}`, data, {\n withCredentials: true,\n });\n }\n deleteDetail(id: string, detailId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/details/${detailId}`, {\n withCredentials: true,\n });\n }\n uploadDetailMedia(id: string, detailId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/details/${detailId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteDetailMedia(id: string, detailId: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/details/${detailId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n findSessions(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${id}/sessions`, {\n withCredentials: true,\n });\n }\n addSession(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/sessions`, data, {\n withCredentials: true,\n });\n }\n updateSession(id: string, sessionId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${id}/sessions/${sessionId}`, data, {\n withCredentials: true,\n });\n }\n deleteSession(id: string, sessionId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/sessions/${sessionId}`, {\n withCredentials: true,\n });\n }\n findPeriods(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${id}/periods`, {\n withCredentials: true,\n });\n }\n addPeriod(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/periods`, data, {\n withCredentials: true,\n });\n }\n updatePeriod(id: string, periodId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${id}/periods/${periodId}`, data, {\n withCredentials: true,\n });\n }\n deletePeriod(id: string, periodId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/periods/${periodId}`, {\n withCredentials: true,\n });\n }\n review(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/review`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n publish(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/publish`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n upload(data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/upload`, data, {\n withCredentials: true,\n });\n }\n uploadMedia(id: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n accept(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/reviews/accept`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n reject(id: string, body: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/reviews/reject`, body, {\n withCredentials: true,\n });\n }\n\n findByResourceId(id: string): Observable<any> {\n const options = {\n filter: `resourceId:${id}`,\n };\n return this.http.get<any>(`${this.actionUrl}`, {\n params: options,\n withCredentials: false,\n });\n }\n findVariantsByResourceId(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${id}/variants`, {\n withCredentials: false,\n });\n }\n\n addVariants(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/variants`, data, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ResourceCategoryService extends BaseService {\n override init() {\n this.endpoint = 'resources/categories';\n super.init();\n }\n uploadMedia(id: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BookingService extends BaseService {\n override init() {\n this.endpoint = 'bookings';\n super.init();\n }\n by(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/items/by`, {\n params: options,\n withCredentials: true,\n });\n }\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n timeline(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${id}/timeline`, {\n withCredentials: true,\n });\n }\n items(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/items`, {\n params: options,\n withCredentials: true,\n });\n }\n pay(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/pay`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n refund(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/items/refund`, data, {\n withCredentials: true,\n });\n }\n findAllReturns(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/returns`, {\n params: options,\n withCredentials: true,\n });\n }\n getReturn(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/returns/${id}`, {\n withCredentials: true,\n });\n }\n returnApprove(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/returns/${id}/approve`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n returnReject(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/returns/${id}/reject`, data, {\n withCredentials: true,\n });\n }\n cancel(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/cancel`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FacilityService extends BaseService {\n override init() {\n this.endpoint = 'facilities';\n super.init();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AmenityService extends BaseService {\n override init() {\n this.endpoint = 'resources/amenities';\n super.init();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { map, Observable, switchMap } from 'rxjs';\nimport { BaseService } from './base.service';\nimport _ from 'lodash';\nimport { HttpResponse } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PropertyService extends BaseService {\n override init() {\n this.endpoint = 'properties';\n super.init();\n }\n\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n findByIds(ids: Array<string>): Observable<any> {\n const params = { ids: ids.join(',') };\n return this.http.get<any>(`${this.actionUrl}/by`, {\n params: params,\n withCredentials: true,\n });\n }\n publish(propertyId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${propertyId}/publish`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n submitForReview(propertyId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${propertyId}/review`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n reviewApprove(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/reviews/approve`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n reviewReject(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/reviews/accept`, data, {\n withCredentials: true,\n });\n }\n export(): Observable<{ blob: Blob; filename: string }> {\n return this.http\n .get(`${this.actionUrl}/export`, {\n observe: 'response',\n responseType: 'blob',\n withCredentials: true,\n })\n .pipe(\n map((resp: HttpResponse<Blob>) => {\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 as Blob, filename };\n }),\n );\n }\n archived(propertyId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${propertyId}/archived`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n findWishlist(options: any) {\n return this.http.get(`${this.actionUrl}/wishlist`, { params: options, withCredentials: true });\n }\n addToWishlist(propertyId: string) {\n return this.http.post(`${this.actionUrl}/${propertyId}/wishlist`, {}, { withCredentials: true });\n }\n removeFromWishlist(propertyId: string) {\n return this.http.delete(`${this.actionUrl}/${propertyId}/wishlist`, { withCredentials: true });\n }\n wishListCheck(propertyId: string) {\n return this.http.get(`${this.actionUrl}/${propertyId}/wishlist/check`, { withCredentials: true });\n }\n findPurchasedByPropertyId(propertyId: string) {\n return this.http.get(`${this.actionUrl}/users/me/by?propertyId=${propertyId}`, {\n withCredentials: true,\n });\n }\n // Media\n uploadMedia(propertyId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n // Pricing\n addPricing(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/pricing`, data, {\n withCredentials: true,\n });\n }\n updatePricing(pricingId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/pricing/${pricingId}`, data, {\n withCredentials: true,\n });\n }\n deletePricing(pricingId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/pricing/${pricingId}`, {\n withCredentials: true,\n });\n }\n // Section\n addSection(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/sections`, data, {\n withCredentials: true,\n });\n }\n addBatchSections(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/sections/batch`, data, {\n withCredentials: true,\n });\n }\n findSections(propertyId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${propertyId}/sections`, {\n withCredentials: true,\n });\n }\n updateSection(sectionId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/sections/${sectionId}`, data, {\n withCredentials: true,\n });\n }\n deleteSection(sectionId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/sections/${sectionId}`, {\n withCredentials: true,\n });\n }\n uploadSectionMedia(sectionId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/sections/${sectionId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteSectionMedia(sectionId: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/sections/${sectionId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n addOption(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/options`, data, {\n withCredentials: true,\n });\n }\n findOptions(propertyId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${propertyId}/options`);\n }\n updateOption(optionId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/options/${optionId}`, data, {\n withCredentials: true,\n });\n }\n deleteOption(optionId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/options/${optionId}`, {\n withCredentials: true,\n });\n }\n // variants\n updateVariantPrice(propertyId: string, status: boolean): Observable<any> {\n return this.http.put<any>(\n `${this.actionUrl}/${propertyId}/variants/by?status=${status}`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n createVariants(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/variants`, data, {\n withCredentials: true,\n });\n }\n getVariant(variantId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/variants/${variantId}`);\n }\n findVariants(propertyId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${propertyId}/variants`);\n }\n findVariantsByIds(ids: Array<string>): Observable<any> {\n const params = { ids: ids.join(',') };\n return this.http.get<any>(`${this.actionUrl}/variants/by`, {\n params: params,\n withCredentials: true,\n });\n }\n updateVariants(propertyId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${propertyId}/variants`, data, {\n withCredentials: true,\n });\n }\n uploadVariantMedia(variantId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/variants/${variantId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteVariantMedia(variantId: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/variants/${variantId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n findUpcomingViewings(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/viewings/upcoming`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingProperty = _.find(properties.data, { id: item.propertyId });\n item.propertyTitle = matchingProperty ? matchingProperty.title : 'Unknown property'; // fallback\n });\n return res;\n }),\n );\n }),\n );\n }\n findViewings(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/viewings`, {\n params: options,\n withCredentials: true,\n });\n }\n findViewingsByUser(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/viewings/by/user`, {\n params: options,\n withCredentials: true,\n });\n }\n findViewingsByAgent(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/viewings/by/agent`, {\n params: options,\n withCredentials: true,\n });\n }\n requestViewing(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/viewings`, data, {\n withCredentials: true,\n });\n }\n confirmViewing(viewingId: string, slotId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/viewings/${viewingId}/confirm?slotId=${slotId}`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n getViewing(viewingId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/viewings/${viewingId}`, { withCredentials: true });\n }\n cancelViewing(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/viewings/${id}/cancel`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n findPropertiesByIds(ids: Array<string>): Observable<any> {\n const params = { ids: ids.join(',') };\n return this.http.get<any>(`${this.actionUrl}`, {\n params: params,\n });\n }\n // Highlights\n getHighlights<T>(id: string): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/${id}/highlights`, { withCredentials: false });\n }\n\n getFeatures<T>(id: string): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/${id}/features`, { withCredentials: false });\n }\n\n findUserFeatures<T>(id: string): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/${id}/user-features`, { withCredentials: false });\n }\n updateUserFeatures<T>(id: string, data: any): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}/${id}/user-features`, data, { withCredentials: true });\n }\n updateLocation<T>(id: string, data: any): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}/${id}/location`, data, { withCredentials: true });\n }\n updateAgent<T>(id: string, data: any): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}/${id}/agents`, data, { withCredentials: true });\n }\n // Videos\n getVideos<T>(id: string): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/${id}/videos`, { withCredentials: true });\n }\n addVideo<T>(id: string, data: any): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}/${id}/videos`, data, { withCredentials: true });\n }\n updateVideo<T>(id: string, videoId: string, data: any): Observable<T> {\n return this.http.put<T>(`${this.actionUrl}/${id}/videos/${videoId}`, data, { withCredentials: true });\n }\n deleteVideo<T>(id: string, videoId: string): Observable<T> {\n return this.http.delete<T>(`${this.actionUrl}/${id}/videos/${videoId}`, { withCredentials: true });\n }\n uploadVideoThumbnail(videoId: any, data: FormData): Observable<any> {\n return this.http.post(`${this.actionUrl}/videos/${videoId}/thumbnail`, data, {\n withCredentials: true,\n });\n }\n\n // Tenants\n findTenants<T>(options: any): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/tenants`, { withCredentials: true, params: options });\n }\n getTenant<T>(id: string): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/tenants/${id}`, { withCredentials: true });\n }\n createTenant<T>(data: any): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}/tenants`, data, { withCredentials: true });\n }\n updateTenant<T>(id: string, data: any): Observable<T> {\n return this.http.put<T>(`${this.actionUrl}/tenants/${id}`, data, { withCredentials: true });\n }\n deleteTenant<T>(id: string): Observable<T> {\n return this.http.delete<T>(`${this.actionUrl}/tenants/${id}`, { withCredentials: true });\n }\n\n //COS\n uploadVideosInit(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/videos/init`, data, {\n withCredentials: true,\n });\n }\n uploadVideosPartsToProperty(propertyId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/videos/parts`, data, {\n withCredentials: true,\n });\n }\n completePartUpload(videoId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/videos/${videoId}/parts`, data, {\n withCredentials: true,\n });\n }\n uploadVideoToProperty(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/videos`, data, {\n withCredentials: true,\n });\n }\n deletePropertyVideo(propertyId: string, videoId: any): Observable<any> {\n return this.http.delete(`${this.actionUrl}/${propertyId}/videos/${videoId}`, { withCredentials: true });\n }\n uploadPropertyVideoThumbnail(videoId: any, data: FormData): Observable<any> {\n return this.http.post(`${this.actionUrl}/videos/${videoId}/thumbnail`, data, {\n withCredentials: true,\n });\n }\n // epc\n getEpc<T>(id: string): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/${id}/epc`, { withCredentials: false });\n }\n addEpc<T>(id: string, data: any): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}/${id}/epc`, data, { withCredentials: true });\n }\n updateEpc<T>(id: string, data: any): Observable<T> {\n return this.http.put<T>(`${this.actionUrl}/${id}/epc`, data, { withCredentials: true });\n }\n deleteEpc<T>(id: string): Observable<T> {\n return this.http.delete<T>(`${this.actionUrl}/${id}/epc`, { withCredentials: true });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureService extends BaseService {\n override init() {\n this.endpoint = 'properties/user-features';\n super.init();\n }\n addFeature(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}`, data, {\n withCredentials: true,\n });\n }\n updateFeature(featureId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${featureId}`, data, {\n withCredentials: true,\n });\n }\n deleteFeature(featureId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${featureId}`, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PaymentService extends BaseService {\n override init() {\n this.endpoint = 'payments';\n super.init();\n }\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n createPaymentIntent(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/intents`, data, {\n withCredentials: true,\n });\n }\n createPayment(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}`, data, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { map, Observable, switchMap } from 'rxjs';\nimport { BaseService } from './base.service';\nimport _ from 'lodash';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OfferingService extends BaseService {\n override init() {\n this.endpoint = 'offerings';\n super.init();\n }\n\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n findByIds(ids: Array<string>): Observable<any> {\n const params = { ids: ids.join(',') };\n return this.http.get<any>(`${this.actionUrl}/by`, {\n params: params,\n withCredentials: true,\n });\n }\n publish(propertyId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${propertyId}/publish`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n submitForReview(propertyId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${propertyId}/review`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n reviewApprove(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${id}/reviews/approve`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n reviewReject(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/reviews/accept`, data, {\n withCredentials: true,\n });\n }\n archived(propertyId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${propertyId}/archived`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n findWishlist(options: any) {\n return this.http.get(`${this.actionUrl}/wishlist`, { params: options, withCredentials: true });\n }\n addToWishlist(propertyId: string) {\n return this.http.post(`${this.actionUrl}/${propertyId}/wishlist`, {}, { withCredentials: true });\n }\n removeFromWishlist(propertyId: string) {\n return this.http.delete(`${this.actionUrl}/${propertyId}/wishlist`, { withCredentials: true });\n }\n wishListCheck(propertyId: string) {\n return this.http.get(`${this.actionUrl}/${propertyId}/wishlist/check`, { withCredentials: true });\n }\n findPurchasedByPropertyId(propertyId: string) {\n return this.http.get(`${this.actionUrl}/users/me/by?propertyId=${propertyId}`, {\n withCredentials: true,\n });\n }\n // Media\n uploadMedia(propertyId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n // Pricing\n addPricing(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/pricing`, data, {\n withCredentials: true,\n });\n }\n updatePricing(pricingId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/pricing/${pricingId}`, data, {\n withCredentials: true,\n });\n }\n deletePricing(pricingId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/pricing/${pricingId}`, {\n withCredentials: true,\n });\n }\n // Section\n addSection(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/sections`, data, {\n withCredentials: true,\n });\n }\n addBatchSections(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/sections/batch`, data, {\n withCredentials: true,\n });\n }\n findSections(propertyId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${propertyId}/sections`, {\n withCredentials: true,\n });\n }\n updateSection(sectionId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/sections/${sectionId}`, data, {\n withCredentials: true,\n });\n }\n deleteSection(sectionId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/sections/${sectionId}`, {\n withCredentials: true,\n });\n }\n uploadSectionMedia(sectionId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/sections/${sectionId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteSectionMedia(sectionId: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/sections/${sectionId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n addOption(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/options`, data, {\n withCredentials: true,\n });\n }\n findOptions(propertyId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${propertyId}/options`);\n }\n updateOption(optionId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/options/${optionId}`, data, {\n withCredentials: true,\n });\n }\n deleteOption(optionId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/options/${optionId}`, {\n withCredentials: true,\n });\n }\n // variants\n updateVariantPrice(propertyId: string, status: boolean): Observable<any> {\n return this.http.put<any>(\n `${this.actionUrl}/${propertyId}/variants/by?status=${status}`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n createVariants(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/variants`, data, {\n withCredentials: true,\n });\n }\n getVariant(variantId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/variants/${variantId}`);\n }\n findVariants(propertyId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${propertyId}/variants`);\n }\n findVariantsByIds(ids: Array<string>): Observable<any> {\n const params = { ids: ids.join(',') };\n return this.http.get<any>(`${this.actionUrl}/variants/by`, {\n params: params,\n withCredentials: true,\n });\n }\n updateVariants(propertyId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${propertyId}/variants`, data, {\n withCredentials: true,\n });\n }\n uploadVariantMedia(variantId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/variants/${variantId}/media`, data, {\n withCredentials: true,\n });\n }\n deleteVariantMedia(variantId: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/variants/${variantId}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n findViewingsByUser(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/viewings/by/user`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingProperty = _.find(properties.data, { id: item.propertyId });\n item.property = matchingProperty;\n });\n return res;\n }),\n );\n }),\n );\n }\n findViewingsByAgent(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/viewings/by/agent`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingProperty = _.find(properties.data, { id: item.propertyId });\n item.property = matchingProperty;\n });\n return res;\n }),\n );\n }),\n );\n }\n requestViewing(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/viewings`, data, {\n withCredentials: true,\n });\n }\n confirmViewing(viewingId: string, slotId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/viewings/${viewingId}/confirm?slotId=${slotId}`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n getViewing(viewingId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/viewings/${viewingId}`, { withCredentials: true });\n }\n cancelViewing(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/viewings/${id}/cancel`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n makeOffer(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/offers`, data, {\n withCredentials: true,\n });\n }\n findOffers(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/offers`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }),\n );\n }),\n );\n }\n findOffersByUser(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/offers/by/user`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }),\n );\n }),\n );\n }\n findOffersByAgent(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/offers/by/agent`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }),\n );\n }),\n );\n }\n findPropertiesByIds(ids: Array<string>): Observable<any> {\n const params = { ids: ids.join(',') };\n return this.http.get<any>(`${this.actionUrl}`, {\n params: params,\n });\n }\n getOffer(offerId: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/offers/${offerId}`, { withCredentials: true });\n }\n cancelOffer(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/cancel`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n acceptOffer(id: string): Observable<any> {\n return this.http.put<any>(\n `${this.actionUrl}/offers/${id}/accept`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n rejectOffer(id: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/offers/${id}/reject`, data, {\n withCredentials: true,\n });\n }\n\n createHoldingDepositCheckout(offerId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/offers/${offerId}/pay/holding-deposit`, data, {\n withCredentials: true,\n });\n }\n createSecurityDepositCheckout(offerId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/offers/${offerId}/pay/security-deposit`, data, {\n withCredentials: true,\n });\n }\n checkOfferPaymentStatus(offerId: any, sessionId: string): Observable<any> {\n const options = {\n sessionId,\n };\n return this.http.get<any>(`${this.actionUrl}/offers/${offerId}/session`, { params: options, withCredentials: true });\n }\n\n offerTimeline(offerId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/offers/${offerId}/timeline`, {\n withCredentials: true,\n });\n }\n findFeatures<T>(id: string): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/${id}/features`, { withCredentials: false });\n }\n updateFeatures<T>(id: string, data: any): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}/${id}/features`, data, { withCredentials: true });\n }\n updateLocation<T>(id: string, data: any): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}/${id}/location`, data, { withCredentials: true });\n }\n // Videos\n getVideos<T>(id: string): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/${id}/videos`, { withCredentials: true });\n }\n addVideo<T>(id: string, data: any): Observable<T> {\n return this.http.post<T>(`${this.actionUrl}/${id}/videos`, data, { withCredentials: true });\n }\n updateVideo<T>(id: string, data: any): Observable<T> {\n return this.http.put<T>(`${this.actionUrl}/${id}/videos`, data, { withCredentials: true });\n }\n deleteVideo<T>(id: string, videoId: string, y): Observable<T> {\n return this.http.delete<T>(`${this.actionUrl}/${id}/videos/${videoId}`, { withCredentials: true });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { map, Observable, switchMap } from 'rxjs';\nimport { BaseService } from './base.service';\nimport _ from 'lodash';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MembershipService extends BaseService {\n override init() {\n this.endpoint = 'memberships';\n super.init();\n }\n\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n createPlan(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/plans`, data, {\n withCredentials: true,\n });\n }\n findPlans(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/plans`, {\n params: options,\n withCredentials: true,\n });\n }\n getPlan(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/plans/${id}`, {\n withCredentials: true,\n });\n }\n updatePlan(id: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/plans/${id}`, data, {\n withCredentials: true,\n });\n }\n findBenefits(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/benefits`, {\n withCredentials: true,\n });\n }\n addBenefit(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/benefits`, data, {\n withCredentials: true,\n });\n }\n updateBenefit(id: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/benefits/${id}`, data, {\n withCredentials: true,\n });\n }\n deleteBenefit(id: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/benefits/${id}`, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CategoryService extends BaseService {\n override init() {\n this.endpoint = 'categories';\n super.init();\n }\n uploadMedia(id: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n importFromExcel(data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/excel`, data, {\n withCredentials: true,\n });\n }\n createFromExcel(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/list`, data, {\n withCredentials: true,\n });\n }\n findProductCategory(options: any): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/products/categories`, { params: options });\n }\n getProductCategory(id: string): Observable<any> {\n return this.http.get<any>(`${this.environment.baseUrl}/products/categories/${id}`);\n }\n createProductCategory(data: any): Observable<any> {\n return this.http.post<any>(`${this.environment.baseUrl}/products/categories`, data, {\n withCredentials: true,\n });\n }\n updateProductCategory(data: any): Observable<any> {\n return this.http.put<any>(`${this.environment.baseUrl}/products/categories`, data, {\n withCredentials: true,\n });\n }\n uploadProductCategoryMedia(id: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.environment.baseUrl}/products/categories/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteProductCategoryMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.environment.baseUrl}/products/categories/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { Observable } from 'rxjs';\n\n/* ========= StreamEvent Union ========= */\n\nexport type StreamEvent = StartEvent | MessageEvent | JsonEvent | GroupEvent | ToolEvent | DoneEvent | ErrorEvent;\n\nexport interface StartEvent {\n type: 'start';\n sessionId: string; // normalized id used by the app\n conversationId?: string; // original server id if present\n at?: string; // optional server timestamp\n}\n\nexport interface MessageEvent {\n type: 'message';\n role: 'user' | 'assistant';\n text: string;\n delta?: boolean;\n}\n\nexport interface JsonEvent {\n type: 'json';\n data: unknown;\n}\n\nexport interface GroupEvent {\n type: 'group';\n id: string;\n title: string;\n mediaUrl?: string;\n link?: string;\n price?: number;\n address?: string;\n phone?: string;\n // add more card fields as needed\n}\n\nexport interface ToolEvent {\n type: 'tool';\n tool: string;\n args: Record<string, unknown>;\n results?: unknown;\n}\n\nexport interface DoneEvent {\n type: 'done';\n}\n\nexport interface ErrorEvent {\n type: 'error';\n message: string;\n cause?: unknown;\n}\n\n/* ========= Request ========= */\n\nexport interface StreamRequest {\n message: string;\n conversationId?: string;\n // add any other fields your backend expects\n}\n\n/* ========= Service ========= */\n\n@Injectable({ providedIn: 'root' })\nexport class AssistantStreamService {\n protected environment = inject(APP_CONFIG);\n\n /**\n * POST + SSE streaming via fetch + ReadableStream\n */\n stream(req: StreamRequest, init?: RequestInit): Observable<StreamEvent> {\n return new Observable<StreamEvent>((subscriber) => {\n const ctrl = new AbortController();\n\n const headers: HeadersInit = {\n 'Content-Type': 'application/json',\n Accept: 'text/event-stream',\n 'client-id': this.environment.clientId,\n ...(init?.headers ?? {}),\n };\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(<ErrorEvent>{\n type: 'error',\n message: `HTTP ${res.status} ${res.statusText}`,\n });\n return;\n }\n\n const reader = res.body.getReader();\n const decoder = new TextDecoder('utf-8');\n let buffer = '';\n\n try {\n for (;;) {\n const { value, done } = await reader.read();\n if (done) break;\n\n buffer += decoder.decode(value, { stream: true });\n\n // SSE blocks are separated by blank lines\n let idx: number;\n while ((idx = buffer.indexOf('\\n\\n')) !== -1) {\n const rawBlock = buffer.slice(0, idx);\n buffer = buffer.slice(idx + 2);\n\n const events = this.parseSSEBlock(rawBlock);\n for (const e of events) {\n const typed = this.toStreamEvent(e);\n if (!typed) continue;\n\n subscriber.next(typed);\n if (typed.type === 'done') {\n ctrl.abort();\n subscriber.complete();\n return;\n }\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) subscriber.next(typed);\n }\n }\n\n subscriber.complete();\n } catch (err: unknown) {\n if ((err as any)?.name === 'AbortError') {\n subscriber.complete();\n } else {\n subscriber.error(<ErrorEvent>{\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(<ErrorEvent>{\n type: 'error',\n message: 'Fetch error',\n cause: err,\n });\n });\n\n // teardown\n return () => ctrl.abort();\n });\n }\n\n /* ========= SSE parsing ========= */\n\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 private parseSSEBlock(block: string): Array<{ event?: string; data?: string }> {\n const lines = block.split(/\\r?\\n/);\n let eventName: string | undefined;\n const dataLines: string[] = [];\n\n for (const line of lines) {\n if (!line) continue;\n if (line.startsWith(':')) continue; // comment\n if (line.startsWith('event:')) {\n eventName = line.slice(6).trim();\n } else if (line.startsWith('data:')) {\n dataLines.push(line.slice(5).trimStart());\n } else {\n // fallback: some servers may omit \"data:\"\n dataLines.push(line);\n }\n }\n\n const dataStr = dataLines.join('\\n').trim();\n if (!dataStr) return [];\n\n // Handle possible JSONL\n const parts = this.splitPossibleJSONL(dataStr);\n return parts.map((d) => ({ event: eventName, data: d }));\n }\n\n private splitPossibleJSONL(s: string): string[] {\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 /**\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 private toStreamEvent(raw: { event?: string; data?: string }): StreamEvent | null {\n const { event, data } = raw;\n if (!data || data.length === 0) return null;\n\n // explicit \"done\" or OpenAI-style [DONE]\n if (event?.toLowerCase() === 'done' || data === '[DONE]') {\n return { type: 'done' };\n }\n\n // Try JSON\n let parsed: any;\n try {\n parsed = JSON.parse(data);\n } catch {\n // Not JSON -> treat as assistant text delta for streaming\n return <MessageEvent>{\n type: 'message',\n role: 'assistant',\n text: data,\n delta: true,\n };\n }\n\n // If server already includes a `type`, trust it\n if (parsed && typeof parsed === 'object' && 'type' in parsed) {\n return parsed as StreamEvent;\n }\n\n switch ((event ?? '').toLowerCase()) {\n case 'start': {\n const sessionId = parsed.sessionId ?? parsed.conversationId ?? parsed.id;\n if (!sessionId) return <JsonEvent>{ type: 'json', data: parsed };\n const start: StartEvent = {\n type: 'start',\n sessionId,\n conversationId: parsed.conversationId,\n at: parsed.at,\n };\n return start;\n }\n\n case 'message': {\n const role: 'user' | 'assistant' = 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 <MessageEvent>{ type: 'message', role, text, delta };\n }\n\n case 'group': {\n return <GroupEvent>{ type: 'group', ...parsed };\n }\n\n case 'json': {\n return <JsonEvent>{ type: 'json', data: parsed };\n }\n\n case 'tool': {\n return <ToolEvent>{ type: 'tool', ...parsed };\n }\n\n case 'error': {\n const msg = typeof parsed?.message === 'string' ? parsed.message : 'Unknown error';\n return <ErrorEvent>{ type: 'error', message: msg };\n }\n }\n\n // Fallback: unknown event name -> json wrapper\n return <JsonEvent>{ type: 'json', data: parsed };\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject, Subscription } from 'rxjs';\nimport {\n AssistantStreamService,\n StreamEvent,\n MessageEvent,\n GroupEvent,\n JsonEvent,\n ToolEvent,\n StartEvent,\n ErrorEvent,\n} from './assistant-stream.service';\n\n/** Ordered assistant turn segments (preserve exact server order). */\nexport type AssistantSegment =\n | { kind: 'text'; text: string }\n | { kind: 'group'; item: GroupEvent }\n | { kind: 'json'; data: unknown }\n | { kind: 'tool'; tool: ToolEvent };\n\nexport interface ChatMessage {\n id: string;\n role: 'user' | 'assistant';\n text?: string; // for user messages; not used for assistant turns\n segments?: AssistantSegment[]; // assistant only: ordered stream pieces\n error?: string;\n done?: boolean;\n createdAt: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ConversationService {\n private assistant = inject(AssistantStreamService)\n private conversationId?: string;\n\n private readonly _messages$ = new BehaviorSubject<ChatMessage[]>([]);\n readonly messages$ = this._messages$.asObservable();\n\n private readonly _typing$ = new BehaviorSubject<boolean>(false);\n readonly typing$ = this._typing$.asObservable();\n\n // ✅ new: streaming$\n private readonly _streaming$ = new BehaviorSubject<boolean>(false);\n readonly streaming$ = this._streaming$.asObservable();\n\n private streamSub?: Subscription;\n private currentAssistantMsgId?: string;\n\n // Accumulation state for streaming assistant text deltas\n private pendingDelta = '';\n private rafId: number | null = null;\n private timeoutId: any = null;\n\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 private readonly strictMessageSegmentation = false;\n\n // lightweight UI signals (snackbar, etc.)\n readonly events$ = new Subject<{ kind: 'error' | 'info'; text: string }>();\n\n /** Set known conversationId id (optional). */\n setConversationId(conversationId?: string) {\n this.conversationId = conversationId;\n }\n\n /** Clear current conversation state. */\n dispose() {\n this.cancel();\n this._messages$.next([]);\n this.currentAssistantMsgId = undefined;\n this.clearSchedulers();\n }\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\n /** Send a user message and start streaming an assistant response. */\n send(message: string) {\n const trimmed = message?.trim();\n if (!trimmed) return;\n\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\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\n this.streamSub = this.assistant\n .stream({ message: trimmed, conversationId: this.conversationId })\n .subscribe({\n next: (ev) => this.handleStreamEvent(ev),\n error: (e: ErrorEvent) => {\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\n /* ========== Internals ========== */\n\n private handleStreamEvent(ev: StreamEvent) {\n switch (ev.type) {\n case 'start': {\n const s = ev as StartEvent;\n if (s.conversationId) this.conversationId = s.conversationId;\n this.ensureAssistantMessage();\n this._streaming$.next(true); // ✅ ensure spinner even if we begin on 'start'\n break;\n }\n\n case 'message': {\n const m = ev as MessageEvent;\n\n // Most apps avoid echoing server \"user\" messages to prevent duplicates\n if (m.role !== 'assistant') break;\n\n this.bufferAssistantMessage(m);\n break;\n }\n\n case 'group': {\n this.flushPending();\n const g = ev as GroupEvent;\n this.pushAssistantSegment({ kind: 'group', item: g });\n break;\n }\n\n case 'json': {\n this.flushPending();\n const j = ev as JsonEvent;\n this.pushAssistantSegment({ kind: 'json', data: j.data });\n break;\n }\n\n case 'tool': {\n this.flushPending();\n const t = ev as ToolEvent;\n this.pushAssistantSegment({ kind: 'tool', tool: t });\n break;\n }\n\n case 'error': {\n this.flushPending();\n const e = ev as ErrorEvent;\n this.pushAssistantError(e.message);\n this._streaming$.next(false); // ✅ stop spinner on error\n break;\n }\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\n break;\n }\n }\n }\n\n private ensureAssistantMessage() {\n if (!this.currentAssistantMsgId) {\n const msg: ChatMessage = {\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\n private withCurrentAssistant(mut: (m: ChatMessage) => ChatMessage) {\n if (!this.currentAssistantMsgId) 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) return;\n\n const updated = mut(list[idx]);\n const newList = [...list];\n newList[idx] = updated;\n this._messages$.next(newList);\n }\n\n /* ========== Segment helpers (ordered) ========== */\n\n private pushAssistantSegment(seg: AssistantSegment) {\n this.ensureAssistantMessage();\n this.withCurrentAssistant((m) => ({\n ...m,\n segments: [...(m.segments ?? []), seg],\n }));\n }\n\n private appendToLastTextSegment(delta: string) {\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] as { kind: 'text'; text: string };\n segs[segs.length - 1] = { kind: 'text', text: last.text + delta };\n } else {\n segs.push({ kind: 'text', text: delta });\n }\n return { ...m, segments: segs };\n });\n }\n\n /* ========== Message buffering / accumulation ========== */\n\n private bufferAssistantMessage(m: MessageEvent) {\n const text = m.text ?? '';\n if (!text) return;\n\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\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 } else {\n this.bufferAssistantDelta(text);\n }\n }\n\n private bufferAssistantDelta(chunk: string) {\n if (!chunk) return;\n this.pendingDelta += chunk;\n this.scheduleFlush();\n }\n\n private scheduleFlush() {\n if (this.rafId != null || this.timeoutId != null) return;\n\n const raf = (globalThis as any).requestAnimationFrame?.bind(globalThis);\n if (raf) {\n this.rafId = raf(() => {\n this.rafId = null;\n this.flushPending();\n });\n } else {\n this.timeoutId = setTimeout(() => {\n this.timeoutId = null;\n this.flushPending();\n }, 33); // ~30fps\n }\n }\n\n private clearSchedulers() {\n const caf = (globalThis as any).cancelAnimationFrame?.bind(globalThis);\n if (this.rafId != null && caf) caf(this.rafId);\n if (this.timeoutId != null) clearTimeout(this.timeoutId);\n this.rafId = null;\n this.timeoutId = null;\n }\n\n private flushPending() {\n if (!this.pendingDelta) return;\n const delta = this.pendingDelta;\n this.pendingDelta = '';\n this.clearSchedulers();\n\n this.appendToLastTextSegment(delta);\n }\n\n /* ========== Finalization / error ========== */\n\n private pushAssistantError(message: string) {\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\n private markAssistantDone() {\n if (!this.currentAssistantMsgId) return;\n this.withCurrentAssistant((m) => ({ ...m, done: true }));\n this.currentAssistantMsgId = undefined;\n }\n\n /* ========== Utils ========== */\n\n private nextId(): string {\n return Math.random().toString(36).slice(2) + Date.now().toString(36);\n }\n}\n","// 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';\n\nexport interface ConversationInitResponse {\n conversationId: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ConversationInitService {\n protected environment = inject(APP_CONFIG);\n private http = inject(HttpClient);\n\n init(message: string): Promise<ConversationInitResponse> {\n return firstValueFrom(\n this.http.post<ConversationInitResponse>(`${this.environment.baseUrl}/conversations/init`, { message }, { withCredentials: true })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\nimport { HttpParams } from '@angular/common/http';\n\nexport interface SearchResult<T> {\n data: T[];\n meta: { pagination: { total: number; count: number; page: number; limit: number } };\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PropertySearchService extends BaseService {\n override init() {\n this.endpoint = 'properties';\n super.init();\n }\n search1(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/search`, {\n params: options,\n });\n }\n search<T = any>(rawParams: Record<string, any>): Observable<SearchResult<T>> {\n const params = this.stripUndefined(rawParams);\n\n // Decide route: empty filter → DB list; else → Elasticsearch-backed search\n const isEmpty = this.isEmptyFilter(params);\n\n let httpParams = new HttpParams();\n for (const [k, v] of Object.entries(params)) {\n if (k === 'sort' && v != null) {\n // Normalize sort for each backend\n const value = String(v);\n\n const sortForJpa = value; // e.g. \"updatedAt desc\"\n const sortForEs = value.replace(/\\s+/, ','); // e.g. \"updatedAt,desc\"\n\n const finalSort = isEmpty ? sortForJpa : sortForEs;\n httpParams = httpParams.set('sort', finalSort);\n continue;\n }\n if (Array.isArray(v)) {\n v.forEach((item) => (httpParams = httpParams.append(k, String(item))));\n } else {\n httpParams = httpParams.set(k, String(v));\n }\n }\n return isEmpty\n ? this.http.get<SearchResult<T>>(`${this.actionUrl}`, { params: httpParams }) // DB list\n : this.http.get<SearchResult<T>>(`${this.actionUrl}/search`, { params: httpParams }); // ES search\n }\n\n stripUndefined<T extends Record<string, any>>(obj: T): Partial<T> {\n const out: Partial<T> = {};\n for (const [k, v] of Object.entries(obj)) {\n if (v !== undefined && v !== null && !(Array.isArray(v) && v.length === 0) && v !== '') {\n (out as any)[k] = v;\n }\n }\n return out;\n }\n\n isEmptyFilter(params: Record<string, any>, ignoreKeys: string[] = ['page', 'limit', 'sort']): boolean {\n return Object.entries(params).every(\n ([k, v]) => ignoreKeys.includes(k) || v === undefined || v === null || v === '' || (Array.isArray(v) && v.length === 0),\n );\n }\n}\n","import { isPlatformBrowser } from \"@angular/common\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { inject, Injectable, PLATFORM_ID } from \"@angular/core\";\nimport { map, Observable } from \"rxjs\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TimeZoneService {\n platformId = inject(PLATFORM_ID);\n isBrowser = isPlatformBrowser(this.platformId)\n http = inject(HttpClient)\n\n getBrowserTimeZone(): string | null {\n // Europe/London\n // Asia/Shanghai\n if (!this.isBrowser) return null; // SSR-safe\n return Intl.DateTimeFormat().resolvedOptions().timeZone ?? null;\n }\n\n /** minutes east of UTC (e.g. -420 for PDT) */\n getUtcOffsetMinutes(): number | null {\n if (!this.isBrowser) return null;\n return -new Date().getTimezoneOffset();\n }\n getTimeZoneFromApi(): Observable<string> {\n // proxy /worldtime/api/ip\n return this.http.get(`/worldtime/api/ip`).pipe(map((r: any) => r.timezone));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BillingService extends BaseService {\n override init() {\n this.endpoint = 'billing';\n super.init();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { Observable } from 'rxjs';\nimport { ApiResponse } from '@rolatech/angular-common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class InvoiceService extends BaseService {\n override init() {\n this.endpoint = 'billing/invoices';\n super.init();\n }\n createByManager(data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}`, data, {\n withCredentials: true,\n });\n }\n findByManager(options: any): Observable<ApiResponse<any>> {\n return this.http.get<any>(`${this.actionUrl}/by/manager`, {\n params: options,\n withCredentials: true,\n });\n }\n getInvoice(id: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${id}`, {\n withCredentials: true,\n });\n }\n me(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: options,\n withCredentials: true,\n });\n }\n findPendingInvoices(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/pending`, {\n params: options,\n withCredentials: true,\n });\n }\n updateInvoice(invoiceId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/${invoiceId}`, data, {\n withCredentials: true,\n });\n }\n}\n","// src/app/data/property-highlights.service.ts\nimport { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { Observable } from 'rxjs';\n\nexport type Highlight = string;\n\nexport interface HighlightCreateRequest {\n text: string;\n position?: number | null;\n}\nexport interface HighlightUpdateRequest {\n index: number;\n text: string;\n}\nexport interface ReorderRequest {\n fromIndex: number;\n toIndex: number;\n}\nexport interface HighlightsReplaceRequest {\n highlights: string[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class PropertyHighlightsService extends BaseService {\n override init() {\n this.endpoint = 'properties';\n super.init();\n }\n\n // Highlights\n getHighlights<T>(id: string): Observable<T> {\n return this.http.get<T>(`${this.actionUrl}/${id}/highlights`, { withCredentials: false });\n }\n addHighlight<T>(id: string, text: string, position?: number | null): Observable<T> {\n const body = { text, position: position ?? null };\n return this.http.post<T>(`${this.actionUrl}/${id}/highlights`, body, { withCredentials: true });\n }\n replaceAllHighlights<T>(id: string, highlights: string[]): Observable<T> {\n const body: HighlightsReplaceRequest = { highlights };\n return this.http.put<T>(`${this.actionUrl}/${id}/highlights`, body, { withCredentials: true });\n }\n updateHighlightAt<T>(id: string, index: number, text: string): Observable<T> {\n const body: HighlightUpdateRequest = { index, text };\n return this.http.patch<T>(`${this.actionUrl}/${id}/highlights/${index}`, body, { withCredentials: true });\n }\n reorderHighlights<T>(id: string, fromIndex: number, toIndex: number): Observable<T> {\n const body: ReorderRequest = { fromIndex, toIndex };\n return this.http.patch<T>(`${this.actionUrl}/${id}/highlights/reorder`, body, { withCredentials: true });\n }\n deleteHighlightAt<T>(id: string, index: number): Observable<T> {\n return this.http.delete<T>(`${this.actionUrl}/${id}/highlights/${index}`, { withCredentials: true });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FloorplanService extends BaseService {\n override init() {\n this.endpoint = 'properties';\n super.init();\n }\n uploadFloorplan(propertyId: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/floorplans`, data, {\n withCredentials: true,\n });\n }\n listFloorplans(propertyId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${propertyId}/floorplans`);\n }\n deleteFloorplan(propertyId: string, floorplanId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${propertyId}/floorplans/${floorplanId}`, {\n withCredentials: true,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { map, Observable } from 'rxjs';\nimport { PropertyStats } from '../interfaces';\nimport { ApiResponse } from '@rolatech/angular-common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PropertyStatsService extends BaseService {\n override init() {\n this.endpoint = 'properties';\n super.init();\n }\n stats(): Observable<PropertyStats> {\n return this.http\n .get<ApiResponse<PropertyStats>>(`${this.actionUrl}/stats`, { withCredentials: true })\n .pipe(map((res) => res.data));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { map, Observable } from 'rxjs';\nimport { InvoiceStats } from '../interfaces';\nimport { ApiResponse } from '@rolatech/angular-common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class InvoiceStatsService extends BaseService {\n override init() {\n this.endpoint = 'billing/invoices';\n super.init();\n }\n\n stats(): Observable<InvoiceStats> {\n return this.http\n .get<ApiResponse<InvoiceStats>>(`${this.actionUrl}/stats`, { withCredentials: true })\n .pipe(map((res) => res.data));\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { map, Observable, switchMap } from 'rxjs';\nimport _ from 'lodash';\nimport { PropertyService } from './property.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PropertyOfferService extends BaseService {\n propertyService = inject(PropertyService);\n override init() {\n this.endpoint = 'properties';\n super.init();\n }\n makeOffer(propertyId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${propertyId}/offers`, data, {\n withCredentials: true,\n });\n }\n findOffers(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/offers`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.propertyService.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }),\n );\n }),\n );\n }\n findOffersByUser(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/offers/by/user`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.propertyService.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }),\n );\n }),\n );\n }\n findOffersByAgent(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/offers/by/agent`, {\n params: options,\n withCredentials: true,\n })\n .pipe(\n switchMap((res) => {\n const propertyIds = _.uniq(_.map(res.data, 'propertyId')); // [12, 14, 16, 18]\n return this.propertyService.findPropertiesByIds(propertyIds).pipe(\n map((properties: any) => {\n res.data?.forEach((item: any) => {\n const matchingUser = _.find(properties.data, { id: item.propertyId });\n item.property = matchingUser;\n });\n return res;\n }),\n );\n }),\n );\n }\n getOffer(offerId: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/offers/${offerId}`, { withCredentials: true });\n }\n cancelOffer(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/cancel`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n acceptOffer(id: string): Observable<any> {\n return this.http.put<any>(\n `${this.actionUrl}/offers/${id}/accept`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n rejectOffer(id: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/offers/${id}/reject`, data, {\n withCredentials: true,\n });\n }\n referencesAccept(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/references/accept`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n referencesReject(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/offers/${id}/references/reject`, data, {\n withCredentials: true,\n });\n }\n\n createHoldingDepositCheckout(offerId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/offers/${offerId}/pay/holding-deposit`, data, {\n withCredentials: true,\n });\n }\n createSecurityDepositCheckout(offerId: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/offers/${offerId}/pay/security-deposit`, data, {\n withCredentials: true,\n });\n }\n checkOfferPaymentStatus(offerId: any, sessionId: string): Observable<any> {\n const options = {\n sessionId,\n };\n return this.http.get<any>(`${this.actionUrl}/offers/${offerId}/session`, { params: options, withCredentials: true });\n }\n\n offerTimeline(offerId: string): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/offers/${offerId}/timeline`, {\n withCredentials: true,\n });\n }\n updateOffer(offerId: string, data: any): Observable<any> {\n return this.http.put<any>(`${this.actionUrl}/offers/${offerId}`, data, {\n withCredentials: true,\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { PropertyService } from './property.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PropertyViewingService extends BaseService {\n propertyService = inject(PropertyService);\n override init() {\n this.endpoint = 'properties';\n super.init();\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport {\n HttpInterceptor,\n HttpRequest,\n HttpHandler,\n HttpEvent,\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { LoadingService } from '../services';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoadingInterceptor {\n loadingService = inject(LoadingService)\n activeRequests = 0;\n\n intercept(\n request: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n if (this.activeRequests === 0) {\n this.loadingService.start();\n }\n\n this.activeRequests++;\n\n return next.handle(request).pipe(\n finalize(() => {\n this.activeRequests--;\n if (this.activeRequests === 0) {\n this.loadingService.stop();\n }\n })\n );\n }\n}\n","// language.service.ts\nimport { Injectable, Inject, Optional, PLATFORM_ID, signal, computed, REQUEST, inject } from '@angular/core';\nimport { isPlatformBrowser, isPlatformServer } from '@angular/common';\n// If you use Express-based SSR:\n// import { REQUEST } from '@nguniversal/express-engine/tokens';\n\ntype Lang = 'en' | 'zh-Hans';\n\n@Injectable({ providedIn: 'root' })\nexport class LanguageService {\n platformId = inject(PLATFORM_ID)\n req = inject(REQUEST)\n private readonly storageKey = 'hl';\n readonly lang = signal<Lang>(this.detectInitial());\n readonly acceptLanguage = computed(() => this.lang()); // 'en' | 'zh-Hans'\n\n\n private detectInitial(): Lang {\n // Default to English when header is null/blank/unknown\n if (isPlatformServer(this.platformId)) {\n const hdr: string = this.req?.headers?.['accept-language'] ?? '';\n return hdr.toLowerCase().startsWith('zh') ? 'zh-Hans' : 'en';\n }\n\n // Browser\n const saved = typeof localStorage !== 'undefined' ? localStorage.getItem(this.storageKey) : null;\n if (saved === 'en' || saved === 'zh-Hans') return saved as Lang;\n\n const nav = (navigator.language || (navigator.languages?.[0] ?? '')).toLowerCase();\n return nav.startsWith('zh') ? 'zh-Hans' : 'en';\n }\n\n set(lang: Lang) {\n this.lang.set(lang);\n if (isPlatformBrowser(this.platformId)) {\n localStorage.setItem(this.storageKey, lang);\n // Optional: keep <html lang=\"...\"> in sync\n document.documentElement.lang = lang.startsWith('zh') ? 'zh' : 'en';\n }\n }\n}\n","// accept-language.interceptor.ts\nimport { HttpInterceptorFn } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { LanguageService } from '../services/language.service';\n\n// Adjust to your app:\nconst API_PREFIXES = ['/api', '/auth', '/properties']; // relative paths you own\nconst API_HOSTS = new Set([\n 'localhost:9001', // dev backend\n 'api.primecasa.co.uk', // prod backend\n]);\n\nexport const acceptLanguageInterceptor: HttpInterceptorFn = (req, next) => {\n const lang = (inject(LanguageService).acceptLanguage() ?? 'en') as string;\n\n const url = req.url;\n const isAbsolute = /^[a-zA-Z][a-zA-Z\\d+\\-.]*:\\/\\//.test(url);\n\n // Ignore static assets and obvious 3rd-party calls early\n if (!isAbsolute && url.startsWith('/assets')) {\n return next(req);\n }\n\n\n // Decide if we should attach the header\n let shouldAttach = false;\n\n if (!isAbsolute) {\n // Same-origin (dev proxy or app backend behind the UI origin)\n shouldAttach = API_PREFIXES.some(p =>\n url.startsWith(p) || url.startsWith('/' + p.replace(/^\\//, ''))\n ) || url.startsWith('/'); // fallback: any relative app call\n } else {\n // Absolute URL: only attach for whitelisted API hosts\n try {\n const u = new URL(url);\n shouldAttach = API_HOSTS.has(u.host);\n } catch {\n shouldAttach = false;\n }\n }\n\n // Don’t duplicate if header is already present\n if (!shouldAttach || req.headers.has('Accept-Language')) {\n return next(req);\n }\n\n return next(req.clone({ setHeaders: { 'Accept-Language': lang || 'en' } }));\n};\n","import { Directive, ElementRef, HostListener, inject } from '@angular/core';\nimport { NavigationService } from '../services';\n\n@Directive({\n selector: '[rolatechBackButton]',\n})\nexport class BackButtonDirective {\n navigation = inject(NavigationService);\n constructor() {}\n @HostListener('click')\n onClick(): void {\n this.navigation.back();\n }\n}\n","import { Directive, OnDestroy, OnInit, inject } from '@angular/core';\nimport { LayoutService } from '../services';\n\n@Directive({\n selector: '[rolatechHideFooter]',\n})\nexport class HideFooterDirective implements OnInit, OnDestroy {\n private layout = inject(LayoutService);\n ngOnInit() { this.layout.setHideFooter(true); }\n ngOnDestroy() { this.layout.setHideFooter(false); }\n}\n","import { Provider } from '@angular/core';\nimport { BackButtonDirective } from './back-button.directive';\nexport { HideFooterDirective } from './hide-footer.directive';\nexport { BackButtonDirective, } from './back-button.directive';\n\nexport const SERVICE_DIRECTIVES: Provider[] = [BackButtonDirective];\n","import { APP_INITIALIZER, EnvironmentProviders, Provider, makeEnvironmentProviders } from '@angular/core';\nimport {\n BaseService,\n LoadingService,\n MediaService,\n LayoutService,\n DialogService,\n SnackBarService,\n NavigationService,\n SupportService,\n BreadcrumbService,\n SidenavService,\n CartService,\n ProductService,\n OrderService,\n} from './lib/services';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { LoadingInterceptor } from './lib/interceptor';\nimport { BackButtonDirective } from './lib/directive';\n\nexport function provideAngularServices(): EnvironmentProviders {\n const providers: (Provider | EnvironmentProviders)[] = [\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\n return makeEnvironmentProviders(providers);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map"],"mappings":"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"}
|