@rolatech/angular-services 20.3.2-beta.4 → 20.3.3-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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/services/automation.service.ts","../../../../packages/angular-services/src/lib/services/language.service.ts","../../../../packages/angular-services/src/lib/services/i18n-locale.service.ts","../../../../packages/angular-services/src/lib/services/enum-api.client.ts","../../../../packages/angular-services/src/lib/services/enum-cache.service.ts","../../../../packages/angular-services/src/lib/services/invoice-line.service.ts","../../../../packages/angular-services/src/lib/services/property-offer-counter.service.ts","../../../../packages/angular-services/src/lib/services/application.service.ts","../../../../packages/angular-services/src/lib/services/platform-endpoint.service.ts","../../../../packages/angular-services/src/lib/services/platform-service-registry.service.ts","../../../../packages/angular-services/src/lib/services/platform-auth-client.service.ts","../../../../packages/angular-services/src/lib/services/platform-user.service.ts","../../../../packages/angular-services/src/lib/services/permission.service.ts","../../../../packages/angular-services/src/lib/services/role.service.ts","../../../../packages/angular-services/src/lib/services/organization-invitation.service.ts","../../../../packages/angular-services/src/lib/services/organization-member.service.ts","../../../../packages/angular-services/src/lib/services/onboarding-applicant.service.ts","../../../../packages/angular-services/src/lib/services/onboarding-admin.service.ts","../../../../packages/angular-services/src/lib/services/onboarding-document.service.ts","../../../../packages/angular-services/src/lib/services/billing-profile.service.ts","../../../../packages/angular-services/src/lib/interceptor/loading.interceptor.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/lib/interfaces/property-offer.ts","../../../../packages/angular-services/src/lib/models/automation.models.ts","../../../../packages/angular-services/src/provider.ts","../../../../packages/angular-services/src/lib/ui/property-offer-status-label.ts","../../../../packages/angular-services/src/lib/ui/onboarding-label.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, type AppConfig } from '@rolatech/angular-common';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BaseService {\n protected readonly http: HttpClient = inject(HttpClient);\n protected readonly environment: AppConfig = 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\n protected params(options?: Record<string, any>): Record<string, any> {\n if (!options) {\n return {};\n }\n\n return Object.entries(options).reduce(\n (acc, [key, value]) => {\n if (value !== undefined && value !== null && value !== '') {\n acc[key] = value;\n }\n return acc;\n },\n {} as Record<string, any>,\n );\n }\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';\nimport { PostQuery, PostRecord, SavePostRequest } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PostService extends BaseService {\n override init() {\n this.endpoint = 'posts';\n super.init();\n }\n\n list(options?: PostQuery, withCredentials = false): Observable<any> {\n return this.http.get<any>(this.actionUrl, {\n params: this.params(options),\n withCredentials,\n });\n }\n\n listPublished(options?: PostQuery): Observable<any> {\n return this.list({ ...options, status: options?.status ?? 'PUBLISHED' }, false);\n }\n\n getByIdOrSlug(idOrSlug: string, withCredentials = false): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/${idOrSlug}`, {\n withCredentials,\n });\n }\n\n me(options?: PostQuery): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/me`, {\n params: this.params(options),\n withCredentials: true,\n });\n }\n\n merchant(options?: PostQuery): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/merchant`, {\n params: this.params(options),\n withCredentials: true,\n });\n }\n\n createPost(payload: SavePostRequest): Observable<PostRecord> {\n return this.http.post<PostRecord>(this.actionUrl, payload, {\n withCredentials: true,\n });\n }\n\n updatePost(id: string, payload: Partial<SavePostRequest>): Observable<PostRecord> {\n return this.http.put<PostRecord>(`${this.actionUrl}/${id}`, payload, {\n withCredentials: true,\n });\n }\n\n saveDraft(id: string, payload: Partial<SavePostRequest> = {}): Observable<PostRecord> {\n return this.http.post<PostRecord>(`${this.actionUrl}/${id}/draft`, payload, {\n withCredentials: true,\n });\n }\n\n publish(id: string, payload: Partial<SavePostRequest> = {}): Observable<PostRecord> {\n return this.http.post<PostRecord>(`${this.actionUrl}/${id}/publish`, payload, {\n withCredentials: true,\n });\n }\n\n preview(payload: Partial<SavePostRequest>): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/preview`, payload, {\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 } from 'rxjs';\nimport { BaseService } from './base.service';\nimport { HttpResponse } from '@angular/common/http';\nimport { ApiResponse } from '@rolatech/angular-common';\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 byAgent(options: any): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.actionUrl}/by/agent`, {\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 joinFeatureWaitlist(\n featureCode: string,\n data: {\n featureLabel?: string | null;\n pagePath?: string | null;\n fullName?: string | null;\n email: string;\n phone?: string | null;\n note?: string | null;\n },\n ) {\n return this.http.post(`${this.actionUrl}/features/${featureCode}/waitlist`, data, { 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 // viewings\n findUpcomingViewings(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/viewings/upcoming`, {\n params: options,\n withCredentials: true,\n });\n }\n findViewings(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/viewings`, {\n params: options,\n withCredentials: true,\n })\n .pipe(map((response) => this.normalizeViewingResponse(response)));\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(map((response) => this.normalizeViewingResponse(response)));\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(map((response) => this.normalizeViewingResponse(response)));\n }\n requestViewing(propertyId: string, data: any): Observable<any> {\n return this.http\n .post<any>(`${this.actionUrl}/${propertyId}/viewings`, data, {\n withCredentials: true,\n })\n .pipe(map((response) => this.normalizeViewingResponse(response)));\n }\n confirmViewing(viewingId: string, slotId: string): Observable<any> {\n return this.http\n .post<any>(\n `${this.actionUrl}/viewings/${viewingId}/confirm?slotId=${slotId}`,\n {},\n {\n withCredentials: true,\n },\n )\n .pipe(map((response) => this.normalizeViewingResponse(response)));\n }\n counterViewing(viewingId: string, data: { counterSlots: Array<{ date: string; time: string }> }): Observable<any> {\n return this.http\n .post<any>(`${this.actionUrl}/viewings/${viewingId}/counter`, data, {\n withCredentials: true,\n })\n .pipe(map((response) => this.normalizeViewingResponse(response)));\n }\n getViewing(viewingId: string): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/viewings/${viewingId}`, { withCredentials: true })\n .pipe(map((response) => this.normalizeViewingResponse(response)));\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 private normalizeViewingResponse(response: any): any {\n if (!response || typeof response !== 'object' || !('data' in response)) {\n return response;\n }\n\n return {\n ...response,\n data: Array.isArray(response.data)\n ? response.data.map((item: any) => this.normalizeViewing(item))\n : this.normalizeViewing(response.data),\n };\n }\n\n private normalizeViewing(viewing: any): any {\n if (!viewing || typeof viewing !== 'object') {\n return viewing;\n }\n\n return {\n ...viewing,\n jobTitle: viewing.jobTitle ?? viewing.profession ?? null,\n monthlyBudget: viewing.monthlyBudget ?? viewing.budgetPerMonth ?? null,\n annualIncome: viewing.annualIncome ?? viewing.income ?? null,\n moveInDate: viewing.moveInDate ?? viewing.startDate ?? null,\n tenantCategory: viewing.tenantCategory ?? viewing.applicantType ?? null,\n viewerCategory: this.normalizeCode(viewing.viewerCategory),\n status: this.normalizeCode(viewing.status),\n slotProposalSource: this.normalizeCode(\n viewing.slotProposalSource ?? viewing.proposedSlotsSource ?? viewing.lastSlotProposalBy ?? viewing.counteredBy,\n ),\n slotDecisionRequired:\n typeof viewing.slotDecisionRequired === 'boolean'\n ? viewing.slotDecisionRequired\n : typeof viewing.requiresSlotAcceptance === 'boolean'\n ? viewing.requiresSlotAcceptance\n : null,\n counteredAt: viewing.counteredAt ?? viewing.slotCounteredAt ?? null,\n proposedSlots: (Array.isArray(viewing.proposedSlots) ? viewing.proposedSlots : []).map((slot: any) => ({\n ...slot,\n source: this.normalizeCode(slot?.source ?? slot?.slotSource ?? viewing.slotProposalSource ?? null),\n state: this.normalizeCode(slot?.state ?? slot?.status ?? null),\n })),\n item: viewing.item ? this.normalizeViewingItem(viewing.item, viewing.property?.media) : viewing.item,\n };\n }\n\n private normalizeViewingItem(item: any, fallbackMedia?: any): any {\n if (!item || typeof item !== 'object') {\n return item;\n }\n\n const media = this.normalizeViewingMedia(item.media);\n const fallbackUrl = [item.mediaUrl, item.propertyMediaUrl, item.thumbnailUrl].find(\n (value) => typeof value === 'string' && value.trim().length > 0,\n );\n const inheritedMedia = this.normalizeViewingMedia(fallbackMedia);\n\n return {\n ...item,\n media: media.length > 0 ? media : fallbackUrl ? [{ id: '', url: fallbackUrl, alt: item.title ?? '' }] : inheritedMedia,\n };\n }\n\n private normalizeViewingMedia(media: any): any[] {\n if (Array.isArray(media)) {\n return media;\n }\n\n if (media && typeof media === 'object') {\n return [media];\n }\n\n return [];\n }\n\n private normalizeCode(value: any): any {\n return typeof value === 'string' ? value.trim().toUpperCase() : value;\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) {\n this.ensureAssistantMessage();\n }\n const id = this.currentAssistantMsgId;\n if (!id) return;\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 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 updateLines(invoiceId: string, data: any): Observable<any> {\n return this.http.patch<any>(`${this.actionUrl}/${invoiceId}/lines`, data, {\n withCredentials: true,\n });\n }\n sendInvoice(invoiceId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${invoiceId}/send`,\n {},\n {\n withCredentials: true,\n },\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';\nimport { HttpParams } from '@angular/common/http';\nimport {\n CreateRentalOfferPayload,\n CreateSaleOfferPayload,\n CopyTextResponse,\n PropertyOfferResponse,\n PropertyOfferInternalNoteResponse,\n UpdatePropertyOfferInternalNoteRequest,\n} from '../interfaces/property-offer';\nimport { ApiResponse } from '@rolatech/angular-common';\nimport { OfferReferencingView, OfferReferencingPatchPayload } from '../models';\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.get<any>(`${this.actionUrl}/offers`, {\n params: options,\n withCredentials: true,\n });\n }\n search<T = any>(rawParams: Record<string, any>): Observable<ApiResponse<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<ApiResponse<T>>(`${this.actionUrl}/offers`, { params: httpParams, withCredentials: true }) // DB list\n : this.http.get<ApiResponse<T>>(`${this.actionUrl}/offers/search`, { params: httpParams, withCredentials: true }); // ES search\n }\n search1(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/offers/search`, {\n params: options,\n withCredentials: true,\n });\n }\n findOffersByUser(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/offers/by/user`, {\n params: options,\n withCredentials: true,\n });\n }\n findOffersByAgent(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/offers/by/agent`, {\n params: options,\n withCredentials: true,\n });\n }\n getOffer(offerId: any): Observable<ApiResponse<PropertyOfferResponse>> {\n return this.http.get<ApiResponse<PropertyOfferResponse>>(`${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 underOffer(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/under-offer`,\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 // references\n referencesPassed(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/references/pass`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n referencesFailed(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/offers/${id}/references/fail`, data, {\n withCredentials: true,\n });\n }\n getReference(offerId: string): Observable<ApiResponse<OfferReferencingView>> {\n return this.http.get<ApiResponse<OfferReferencingView>>(`${this.actionUrl}/offers/${offerId}/references/provider`, {\n withCredentials: true,\n });\n }\n\n updateReferenceProvider(\n offerId: string,\n payload: OfferReferencingPatchPayload,\n ): Observable<ApiResponse<OfferReferencingView>> {\n return this.http.patch<ApiResponse<OfferReferencingView>>(\n `${this.actionUrl}/offers/${offerId}/references/provider`,\n payload,\n {\n withCredentials: true,\n },\n );\n }\n complete(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/complete`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n fail(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/fail`,\n {},\n {\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 updateInvoiceOption(offerId: string, data: any): Observable<any> {\n return this.http.patch<any>(`${this.actionUrl}/offers/${offerId}/invoice-option`, data, {\n withCredentials: true,\n });\n }\n\n createRental(payload: CreateRentalOfferPayload): Observable<ApiResponse<PropertyOfferResponse>> {\n return this.http.post<ApiResponse<PropertyOfferResponse>>(`${this.actionUrl}/offers/rental`, payload, {\n withCredentials: true,\n });\n }\n\n createSale(payload: CreateSaleOfferPayload): Observable<ApiResponse<PropertyOfferResponse>> {\n return this.http.post<ApiResponse<PropertyOfferResponse>>(`${this.actionUrl}/offers/sale`, payload, {\n withCredentials: true,\n });\n }\n getCopyText(id: string, redactContact = true): Observable<ApiResponse<CopyTextResponse>> {\n const params = new HttpParams().set('redactContact', String(redactContact));\n return this.http.get<ApiResponse<CopyTextResponse>>(`${this.actionUrl}/offers/${id}/copy-text`, {\n params,\n withCredentials: true,\n });\n }\n\n updateOfferInternalNote(\n offerId: string,\n data: UpdatePropertyOfferInternalNoteRequest,\n ): Observable<ApiResponse<PropertyOfferInternalNoteResponse>> {\n return this.http.put<ApiResponse<PropertyOfferInternalNoteResponse>>(\n `${this.actionUrl}/offers/${offerId}/internal-notes`,\n data,\n {\n withCredentials: true,\n },\n );\n }\n\n getOfferInternalNote(offerId: string): Observable<ApiResponse<PropertyOfferInternalNoteResponse>> {\n return this.http.get<ApiResponse<PropertyOfferInternalNoteResponse>>(`${this.actionUrl}/offers/${offerId}/internal-notes`, {\n withCredentials: true,\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 { 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","// angular-automation/src/lib/services/automation.service.ts\nimport { Injectable } from '@angular/core';\nimport { map, Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\nimport type {\n AutomationDefinitionDto,\n AutomationExecutionDto,\n AutomationScheduleDto,\n AutomationSummaryResponse,\n CreateDefinitionRequest,\n UpdateDefinitionRequest,\n EnqueueExecutionRequest,\n CancelStateResponse,\n ExecutionLogDto,\n CreateScheduleRequest,\n UpdateScheduleRequest,\n ScheduleOptionResponse,\n ApiRequestOptions,\n} from '../models/automation.api-types';\nimport { ApiResponse } from '@rolatech/angular-common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AutomationService extends BaseService {\n override init() {\n this.endpoint = 'automations';\n super.init();\n }\n\n // -----------------------\n // /automations\n\n // ---------- Summary ----------\n summary() {\n return this.http.get<ApiResponse<any>>(`${this.actionUrl}/summary`, { withCredentials: true }).pipe(map((r) => r.data));\n }\n\n // -----------------------\n // /automations/definitions\n // -----------------------\n listDefinitions(options?: ApiRequestOptions, withCredentials = true): Observable<ApiResponse<AutomationDefinitionDto[]>> {\n return this.http.get<ApiResponse<AutomationDefinitionDto[]>>(`${this.actionUrl}/definitions`, {\n params: options as any,\n withCredentials,\n });\n }\n\n getDefinition(id: string, options?: ApiRequestOptions, withCredentials = true): Observable<AutomationDefinitionDto> {\n return this.http.get<AutomationDefinitionDto>(`${this.actionUrl}/definitions/${id}`, {\n params: options as any,\n withCredentials,\n });\n }\n\n createDefinition(req: CreateDefinitionRequest, withCredentials = true): Observable<AutomationDefinitionDto> {\n return this.http.post<AutomationDefinitionDto>(`${this.actionUrl}/definitions`, req, {\n withCredentials,\n });\n }\n\n updateDefinition(id: string, req: UpdateDefinitionRequest, withCredentials = true): Observable<AutomationDefinitionDto> {\n return this.http.put<AutomationDefinitionDto>(`${this.actionUrl}/definitions/${id}`, req, {\n withCredentials,\n });\n }\n\n /** Backend @DeleteMapping disables (soft delete). */\n deleteDefinition(id: string, withCredentials = true): Observable<void> {\n return this.http.delete<void>(`${this.actionUrl}/definitions/${id}`, {\n withCredentials,\n });\n }\n\n // -----------------------\n // /automations/executions\n // -----------------------\n listExecutions(options?: ApiRequestOptions, withCredentials = true): Observable<ApiResponse<AutomationExecutionDto[]>> {\n return this.http.get<ApiResponse<AutomationExecutionDto[]>>(`${this.actionUrl}/executions`, {\n params: options as any,\n withCredentials,\n });\n }\n\n getExecution(id: string, options?: ApiRequestOptions, withCredentials = true): Observable<AutomationExecutionDto> {\n return this.http.get<AutomationExecutionDto>(`${this.actionUrl}/executions/${id}`, {\n params: options as any,\n withCredentials,\n });\n }\n\n enqueueExecution(req: EnqueueExecutionRequest, withCredentials = true): Observable<AutomationExecutionDto> {\n return this.http.post<AutomationExecutionDto>(`${this.actionUrl}/executions`, req, {\n withCredentials,\n });\n }\n\n cancelExecution(id: string, withCredentials = true): Observable<void> {\n return this.http.post<void>(`${this.actionUrl}/executions/${id}/cancel`, {}, { withCredentials });\n }\n\n cancelState(id: string, withCredentials = true): Observable<CancelStateResponse> {\n return this.http.get<CancelStateResponse>(`${this.actionUrl}/executions/${id}/cancel-state`, {\n withCredentials,\n });\n }\n\n /** GET /automations/executions/{id}/logs?after=...&limit=200 */\n listExecutionLogs(\n executionId: string,\n params?: { after?: string; limit?: number },\n withCredentials = true,\n ): Observable<ExecutionLogDto[]> {\n return this.http.get<ExecutionLogDto[]>(`${this.actionUrl}/executions/${executionId}/logs`, {\n params: (params ?? {}) as any,\n withCredentials,\n });\n }\n\n // -----------------------\n // /automations/schedules\n // -----------------------\n listSchedules(options?: ApiRequestOptions, withCredentials = true): Observable<ApiResponse<AutomationScheduleDto[]>> {\n return this.http.get<ApiResponse<AutomationScheduleDto[]>>(`${this.actionUrl}/schedules`, {\n params: options as any,\n withCredentials,\n });\n }\n getSchedule(id: string, options?: any, withCredentials = true) {\n return this.http\n .get<ApiResponse<AutomationScheduleDto>>(`${this.actionUrl}/schedules/${id}`, {\n params: options,\n withCredentials,\n })\n .pipe(map((res) => res.data));\n }\n\n scheduleOptions(withCredentials = true) {\n return this.http\n .get<ApiResponse<ScheduleOptionResponse[]>>(`${this.actionUrl}/schedules/options`, { withCredentials })\n .pipe(map((res) => res.data ?? []));\n }\n\n createSchedule(req: CreateScheduleRequest, withCredentials = true): Observable<AutomationScheduleDto> {\n return this.http.post<AutomationScheduleDto>(`${this.actionUrl}/schedules`, req, { withCredentials });\n }\n\n updateSchedule(id: string, req: UpdateScheduleRequest, withCredentials = true): Observable<AutomationScheduleDto> {\n return this.http.put<AutomationScheduleDto>(`${this.actionUrl}/schedules/${id}`, req, { withCredentials });\n }\n\n enableSchedule(id: string, withCredentials = true): Observable<AutomationScheduleDto> {\n return this.http.post<AutomationScheduleDto>(`${this.actionUrl}/schedules/${id}/enable`, {}, { withCredentials });\n }\n\n disableSchedule(id: string, withCredentials = true): Observable<AutomationScheduleDto> {\n return this.http.post<AutomationScheduleDto>(`${this.actionUrl}/schedules/${id}/disable`, {}, { withCredentials });\n }\n\n deleteSchedule(id: string, withCredentials = true): Observable<void> {\n return this.http.delete<void>(`${this.actionUrl}/schedules/${id}`, { withCredentials });\n }\n runNowByDefinition(definitionCode: string, inputJson?: string | null, idempotencyKey?: string | null) {\n return this.enqueueExecution({\n definitionCode,\n inputJson: inputJson ?? null,\n idempotencyKey: idempotencyKey ?? null,\n scheduleId: null,\n });\n }\n\n runNowBySchedule(scheduleId: string, definitionCode: string, inputJson?: string | null) {\n return this.enqueueExecution({\n definitionCode,\n inputJson: inputJson ?? null,\n scheduleId,\n });\n }\n}\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { Injectable, LOCALE_ID, PLATFORM_ID, REQUEST, computed, inject, signal } from '@angular/core';\n\nexport type AppLanguageCode = 'en' | 'zh-Hans';\n\nexport interface LanguageOption {\n code: AppLanguageCode;\n label: string;\n locale: string;\n routePrefix: string;\n pathPrefixes: readonly string[];\n aliases: readonly string[];\n}\n\nconst YEAR_IN_SECONDS = 60 * 60 * 24 * 365;\n\nconst LANGUAGE_OPTIONS: readonly LanguageOption[] = [\n {\n code: 'en',\n label: 'English',\n locale: 'en-GB',\n routePrefix: '/en-gb',\n pathPrefixes: ['/en-gb', '/en-us'],\n aliases: ['en', 'en-us', 'en-gb'],\n },\n {\n code: 'zh-Hans',\n label: '简体中文',\n locale: 'zh-CN',\n routePrefix: '/zh-cn',\n pathPrefixes: ['/zh-cn'],\n aliases: ['zh', 'zh-cn', 'zh-hans'],\n },\n] as const;\n\n@Injectable({ providedIn: 'root' })\nexport class LanguageService {\n private readonly platformId = inject(PLATFORM_ID);\n private readonly request = inject(REQUEST, { optional: true }) as\n | {\n headers?: Record<string, string | string[] | undefined>;\n originalUrl?: string;\n url?: string;\n }\n | null;\n private readonly document = inject(DOCUMENT);\n private readonly localeId = inject(LOCALE_ID, { optional: true }) ?? 'en-US';\n private readonly storageKey = 'hl';\n private readonly cookieKey = 'hl';\n\n readonly options = LANGUAGE_OPTIONS;\n readonly lang = signal<AppLanguageCode>(this.detectInitial());\n readonly currentOption = computed(() => this.findByCode(this.lang()) ?? LANGUAGE_OPTIONS[0]);\n readonly acceptLanguage = computed(() => this.currentOption().locale);\n\n set(lang: AppLanguageCode): void {\n const option = this.findByCode(lang);\n if (!option) return;\n\n this.lang.set(option.code);\n\n if (!isPlatformBrowser(this.platformId)) return;\n\n localStorage.setItem(this.storageKey, option.code);\n this.document.cookie = `${this.cookieKey}=${encodeURIComponent(option.code)}; Path=/; Max-Age=${YEAR_IN_SECONDS}; SameSite=Lax`;\n this.document.documentElement.lang = option.code === 'zh-Hans' ? 'zh' : 'en';\n }\n\n hrefFor(lang: AppLanguageCode): string {\n const option = this.findByCode(lang) ?? LANGUAGE_OPTIONS[0];\n const pathname = this.stripLocalePrefix(this.currentPathname());\n const search = this.currentSearch();\n const hash = this.currentHash();\n const targetPath = pathname === '/' ? option.routePrefix : `${option.routePrefix}${pathname}`;\n\n return `${targetPath}${search}${hash}`;\n }\n\n isActive(lang: AppLanguageCode): boolean {\n return this.currentOption().code === lang;\n }\n\n private detectInitial(): AppLanguageCode {\n return (\n this.detectFromPath(this.currentPathname()) ??\n this.detectFromValue(this.readCookie()) ??\n this.detectFromStorage() ??\n this.detectFromValue(this.localeId) ??\n this.detectFromNavigator() ??\n LANGUAGE_OPTIONS[0].code\n );\n }\n\n private detectFromStorage(): AppLanguageCode | null {\n if (!isPlatformBrowser(this.platformId) || typeof localStorage === 'undefined') {\n return null;\n }\n\n return this.detectFromValue(localStorage.getItem(this.storageKey));\n }\n\n private detectFromNavigator(): AppLanguageCode | null {\n if (!isPlatformBrowser(this.platformId) || typeof navigator === 'undefined') {\n return null;\n }\n\n return this.detectFromValue(navigator.language || navigator.languages?.[0] || null);\n }\n\n private detectFromPath(pathname: string): AppLanguageCode | null {\n const normalizedPath = pathname.toLowerCase();\n const match = LANGUAGE_OPTIONS.find((option) =>\n option.pathPrefixes.some((prefix) => normalizedPath === prefix || normalizedPath.startsWith(`${prefix}/`)),\n );\n\n return match?.code ?? null;\n }\n\n private detectFromValue(value: string | null | undefined): AppLanguageCode | null {\n const normalized = value?.toLowerCase().trim();\n if (!normalized) return null;\n\n const match = LANGUAGE_OPTIONS.find(\n (option) => option.code.toLowerCase() === normalized || option.aliases.includes(normalized),\n );\n\n return match?.code ?? null;\n }\n\n private findByCode(code: AppLanguageCode): LanguageOption | undefined {\n return LANGUAGE_OPTIONS.find((option) => option.code === code);\n }\n\n private stripLocalePrefix(pathname: string): string {\n const normalizedPath = pathname.startsWith('/') ? pathname : `/${pathname}`;\n const match = LANGUAGE_OPTIONS.find((option) =>\n option.pathPrefixes.some((prefix) => normalizedPath === prefix || normalizedPath.startsWith(`${prefix}/`)),\n );\n\n if (!match) return normalizedPath || '/';\n\n const matchedPrefix = match.pathPrefixes.find(\n (prefix) => normalizedPath === prefix || normalizedPath.startsWith(`${prefix}/`),\n );\n const suffix = normalizedPath.slice(matchedPrefix?.length ?? match.routePrefix.length);\n return suffix ? (suffix.startsWith('/') ? suffix : `/${suffix}`) : '/';\n }\n\n private currentPathname(): string {\n if (isPlatformBrowser(this.platformId)) {\n return this.document.location?.pathname ?? '/';\n }\n\n return this.parseRequestUrl().pathname;\n }\n\n private currentSearch(): string {\n if (isPlatformBrowser(this.platformId)) {\n return this.document.location?.search ?? '';\n }\n\n return this.parseRequestUrl().search;\n }\n\n private currentHash(): string {\n if (!isPlatformBrowser(this.platformId)) return '';\n return this.document.location?.hash ?? '';\n }\n\n private parseRequestUrl(): URL {\n const rawUrl = this.request?.originalUrl ?? this.request?.url ?? '/';\n return new URL(rawUrl, 'http://rolatech.local');\n }\n\n private readCookie(): string | null {\n const cookieSource = isPlatformBrowser(this.platformId) ? this.document.cookie : this.readRequestCookieHeader();\n if (!cookieSource) return null;\n\n const cookies = cookieSource.split(';');\n for (const cookie of cookies) {\n const [name, ...valueParts] = cookie.trim().split('=');\n if (name === this.cookieKey) {\n return decodeURIComponent(valueParts.join('='));\n }\n }\n\n return null;\n }\n\n private readRequestCookieHeader(): string {\n const cookieHeader = this.request?.headers?.['cookie'];\n\n if (Array.isArray(cookieHeader)) {\n return cookieHeader.join('; ');\n }\n\n return cookieHeader ?? '';\n }\n}\n","import { Injectable, computed, inject } from '@angular/core';\nimport { LanguageService } from './language.service';\n\n@Injectable({ providedIn: 'root' })\nexport class I18nLocaleService {\n private readonly language = inject(LanguageService);\n readonly lang = computed(() => this.language.acceptLanguage());\n}\n","// enum-api.client.ts\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { map, Observable } from 'rxjs';\nimport { I18nLocaleService } from './i18n-locale.service';\nimport { EnumOption } from '../models/enum-option.model';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { BaseService } from './base.service';\n\n@Injectable({ providedIn: 'root' })\nexport class EnumApiClient {\n protected environment = inject(APP_CONFIG);\n private http = inject(HttpClient);\n private locale = inject(I18nLocaleService);\n private baseUrl = `${this.environment.baseUrl}`;\n /**\n * resource: \"properties\" | \"billing\" | ...\n * enumName: \"AdverseCreditStatus\" | \"InvoiceLineType\" | ...\n */\n getOptions(resource: string, enumName: string): Observable<EnumOption[]> {\n const headers = new HttpHeaders({\n 'Accept-Language': this.locale.lang(), // e.g. \"zh-CN\"\n });\n\n return this.http\n .get<EnumOption[]>(`${this.baseUrl}/${resource}/enums/${enumName}`, { headers })\n .pipe(map((res: any) => res.data));\n }\n\n listEnums(resource: string): Observable<string[]> {\n const headers = new HttpHeaders({\n 'Accept-Language': this.locale.lang(),\n });\n\n return this.http.get<string[]>(`${this.baseUrl}/${resource}/enums`, { headers }).pipe(map((res: any) => res.data));\n }\n}\n","// enum-cache.service.ts\nimport { Injectable, inject } from '@angular/core';\nimport { Observable, shareReplay } from 'rxjs';\nimport { EnumApiClient } from './enum-api.client';\nimport { I18nLocaleService } from './i18n-locale.service';\nimport { EnumOption } from '../models/enum-option.model';\n\n@Injectable({ providedIn: 'root' })\nexport class EnumCacheService {\n private api = inject(EnumApiClient);\n private locale = inject(I18nLocaleService);\n\n private cache = new Map<string, Observable<EnumOption[]>>();\n\n options(resource: string, enumName: string): Observable<EnumOption[]> {\n const lang = this.locale.lang();\n const key = `${resource}:${enumName}:${lang}`;\n\n const existing = this.cache.get(key);\n if (existing) return existing;\n\n const obs = this.api.getOptions(resource, enumName).pipe(shareReplay({ bufferSize: 1, refCount: true }));\n this.cache.set(key, obs);\n return obs;\n }\n\n clear() {\n this.cache.clear();\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 InvoiceLineService 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","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { HttpParams } from '@angular/common/http';\nimport {\n PropertyOfferVersion,\n PropertyOfferHistory,\n EditLockResponse,\n PropertyOfferNegotiationView,\n PropertyOfferResponse,\n} from '../interfaces';\nimport { ApiResponse } from '@rolatech/angular-common';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PropertyOfferCounterService extends BaseService {\n override init() {\n this.endpoint = 'properties';\n super.init();\n }\n getNegotiationViewByAgent(id: string): Observable<ApiResponse<PropertyOfferNegotiationView>> {\n return this.http.get<ApiResponse<PropertyOfferNegotiationView>>(`${this.actionUrl}/offers/${id}/negotiation-view/agent`, {\n withCredentials: true,\n });\n }\n getNegotiationViewByTenant(id: string) {\n return this.http.get<ApiResponse<PropertyOfferNegotiationView>>(`${this.actionUrl}/offers/${id}/negotiation-view/tenant`, {\n withCredentials: true,\n });\n }\n getVersions(id: string) {\n return this.http.get<ApiResponse<PropertyOfferVersion[]>>(`${this.actionUrl}/offers/${id}/versions`, {\n withCredentials: true,\n });\n }\n\n getHistory(id: string): Observable<ApiResponse<PropertyOfferHistory[]>> {\n return this.http.get<ApiResponse<PropertyOfferHistory[]>>(`${this.actionUrl}/offers/${id}/history`, {\n withCredentials: true,\n });\n }\n\n counterByAgent(id: string, payload: any) {\n return this.http.post<ApiResponse<PropertyOfferVersion>>(`${this.actionUrl}/offers/${id}/counter/agent`, payload, {\n withCredentials: true,\n });\n }\n counterByTenant(id: string, payload: any) {\n return this.http.post<ApiResponse<PropertyOfferVersion>>(`${this.actionUrl}/offers/${id}/counter/tenant`, payload, {\n withCredentials: true,\n });\n }\n\n acceptByAgent(id: string) {\n return this.http.post<void>(\n `${this.actionUrl}/offers/${id}/accept/agent`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n acceptByTenant(id: string) {\n return this.http.post<void>(\n `${this.actionUrl}/offers/${id}/accept/tenant`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n rejectByAgent(id: string, reason: string) {\n return this.http.post<void>(\n `${this.actionUrl}/offers/${id}/reject/agent`,\n { reason },\n {\n withCredentials: true,\n },\n );\n }\n\n rejectByTenant(id: string, reason: string) {\n return this.http.post<void>(\n `${this.actionUrl}/offers/${id}/reject/tenant`,\n { reason },\n {\n withCredentials: true,\n },\n );\n }\n\n withdrawByAgent(id: string, clientId?: string): Observable<ApiResponse<PropertyOfferResponse>> {\n const params = clientId ? new HttpParams().set('clientId', clientId) : undefined;\n return this.http.post<ApiResponse<PropertyOfferResponse>>(\n `${this.actionUrl}/offers/${id}/withdraw/agent`,\n {},\n { params, withCredentials: true },\n );\n }\n withdrawByTenant(id: string, clientId?: string): Observable<ApiResponse<PropertyOfferResponse>> {\n const params = clientId ? new HttpParams().set('clientId', clientId) : undefined;\n return this.http.post<ApiResponse<PropertyOfferResponse>>(\n `${this.actionUrl}/offers/${id}/withdraw/tenant`,\n {},\n { params, withCredentials: true },\n );\n }\n\n viewedByAgent(offerId: string) {\n return this.http.post<ApiResponse<void>>(`${this.actionUrl}/offers/${offerId}/viewed/agent`, {}, { withCredentials: true });\n }\n\n viewedByTenant(offerId: string) {\n return this.http.post<ApiResponse<void>>(\n `${this.actionUrl}/offers/${offerId}/viewed/tenant`,\n {},\n { withCredentials: true },\n );\n }\n\n markUnderOffer(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/under-offer`,\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 // references\n startReferencing(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/references/start`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n markReferencesPassed(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/references/pass`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n markReferencesFailed(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/offers/${id}/references/fail`, data, {\n withCredentials: true,\n });\n }\n markReferencesReopen(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/offers/${id}/references/reopen`, data, {\n withCredentials: true,\n });\n }\n markCompleted(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/complete`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n cancelByTenant(id: string, clientId?: string): Observable<any> {\n const params = clientId ? new HttpParams().set('clientId', clientId) : undefined;\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/cancel/tenant`,\n {},\n {\n params,\n withCredentials: true,\n },\n );\n }\n cancelByAgent(id: string, clientId?: string): Observable<any> {\n const params = clientId ? new HttpParams().set('clientId', clientId) : undefined;\n\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/cancel/agent`,\n {},\n {\n params,\n withCredentials: true,\n },\n );\n }\n\n getEditLock(id: string) {\n return this.http.get<ApiResponse<EditLockResponse>>(`${this.actionUrl}/offers/${id}/edit-lock`, { withCredentials: true });\n }\n\n acquireLock(id: string, clientId: string) {\n return this.http.post<ApiResponse<EditLockResponse>>(\n `${this.actionUrl}/offers/${id}/edit-lock/acquire`,\n {},\n {\n params: new HttpParams().set('clientId', clientId),\n withCredentials: true,\n },\n );\n }\n\n heartbeat(id: string) {\n return this.http.post<ApiResponse<EditLockResponse>>(`${this.actionUrl}/offers/${id}/edit-lock/heartbeat`, {\n withCredentials: true,\n });\n }\n\n release(id: string) {\n return this.http.post<void>(`${this.actionUrl}/offers/${id}/edit-lock/release`, { withCredentials: true });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { map, Observable } from 'rxjs';\nimport { ApiRequestOptions, ApiResponse, ApiResponseMeta, toApiRequestParams } from '@rolatech/angular-common';\nimport { BaseService } from './base.service';\nimport {\n ApplicationDetailResponse,\n ApplicationMemberDetailResponse,\n ApplicationMemberOrganizationMembershipResponse,\n ApplicationMemberPageResponse,\n ApplicationMemberSummaryResponse,\n ApplicationMemberVerificationResponse,\n ApplicationOrganizationPageResponse,\n ApplicationOrganizationResponse,\n ApplicationPageResponse,\n ApplicationSummaryResponse,\n CreateApplicationRequest,\n UpdateApplicationRequest,\n} from '../models/application.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationService extends BaseService {\n override init(): void {\n this.endpoint = 'platform/applications';\n super.init();\n }\n\n findApplications(options?: ApiRequestOptions): Observable<ApplicationPageResponse> {\n return this.http\n .get<ApiResponse<ApplicationPageResponse | ApplicationSummaryResponse[]>>(this.actionUrl, {\n params: toApiRequestParams(options),\n withCredentials: true,\n })\n .pipe(map((response) => this.toApplicationPage(response.data)));\n }\n\n findApplicationById(id: string): Observable<ApplicationDetailResponse> {\n return this.http\n .get<ApiResponse<ApplicationDetailResponse>>(`${this.actionUrl}/${id}`, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n createApplication(request: CreateApplicationRequest): Observable<ApplicationDetailResponse> {\n return this.http\n .post<ApiResponse<ApplicationDetailResponse>>(this.actionUrl, request, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n updateApplication(id: string, request: UpdateApplicationRequest): Observable<ApplicationDetailResponse> {\n return this.http\n .put<ApiResponse<ApplicationDetailResponse>>(`${this.actionUrl}/${id}`, request, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n findApplicationOrganizations(id: string, options?: ApiRequestOptions): Observable<ApplicationOrganizationPageResponse> {\n return this.http\n .get<ApiResponse<ApplicationOrganizationPageResponse | ApplicationOrganizationResponse[]>>(`${this.actionUrl}/${id}/organizations`, {\n params: toApiRequestParams(options),\n withCredentials: true,\n })\n .pipe(map((response) => this.toOrganizationPage(response.data)));\n }\n\n findApplicationMembers(\n id: string,\n options?: ApiRequestOptions,\n ): Observable<ApplicationMemberPageResponse> {\n return this.http\n .get<ApiResponse<unknown> | { data?: unknown; meta?: ApiResponseMeta } | unknown[]>(`${this.actionUrl}/${id}/members`, {\n params: toApiRequestParams(options),\n withCredentials: true,\n })\n .pipe(map((response) => this.toMemberPage(response)));\n }\n\n findApplicationMemberById(id: string, memberId: string): Observable<ApplicationMemberDetailResponse> {\n return this.http\n .get<ApiResponse<unknown> | { data?: unknown } | unknown>(`${this.actionUrl}/${id}/members/${memberId}`, {\n withCredentials: true,\n })\n .pipe(map((response) => this.toMemberDetail(this.unwrapData(response))));\n }\n\n resetOrganizationOwnerPassword(id: string, organizationId: string): Observable<void> {\n return this.http\n .post<ApiResponse<unknown>>(`${this.actionUrl}/${id}/organizations/${organizationId}/owner/password/reset-request`, {}, {\n withCredentials: true,\n })\n .pipe(map(() => undefined));\n }\n\n private toApplicationPage(payload: ApplicationPageResponse | ApplicationSummaryResponse[]): ApplicationPageResponse {\n if (Array.isArray(payload)) {\n return {\n items: payload,\n total: payload.length,\n };\n }\n\n return {\n items: payload.items ?? [],\n total: payload.total ?? payload.items?.length ?? 0,\n };\n }\n\n private toOrganizationPage(\n payload: ApplicationOrganizationPageResponse | ApplicationOrganizationResponse[],\n ): ApplicationOrganizationPageResponse {\n if (Array.isArray(payload)) {\n return {\n items: payload,\n total: payload.length,\n };\n }\n\n return {\n items: payload.items ?? [],\n total: payload.total ?? payload.items?.length ?? 0,\n };\n }\n\n private toMemberPage(payload: ApiResponse<unknown> | { data?: unknown; meta?: ApiResponseMeta } | unknown[]): ApplicationMemberPageResponse {\n if (Array.isArray(payload)) {\n return {\n items: payload.map((item) => this.toMemberSummary(item)),\n total: payload.length,\n };\n }\n\n const data = this.unwrapData(payload);\n if (Array.isArray(data)) {\n return {\n items: data.map((item) => this.toMemberSummary(item)),\n total: payload?.meta?.pagination?.count ?? data.length,\n };\n }\n\n const value = this.asRecord(data);\n const items = Array.isArray(value['items']) ? value['items'] : [];\n\n return {\n items: items.map((item) => this.toMemberSummary(item)),\n total: this.readNumber(value['total']) ?? payload?.meta?.pagination?.count ?? items.length,\n };\n }\n\n private toMemberDetail(payload: unknown): ApplicationMemberDetailResponse {\n const value = this.asRecord(payload);\n const summary = this.toMemberSummary(payload);\n\n return {\n ...summary,\n permissions: this.readStringArray(value['permissions']),\n platformRoles: this.readRoles(value['platformRoles']),\n applicationRoles: this.readRoles(value['applicationRoles']) ?? summary.roles,\n organizations:\n this.readOrganizationMemberships(value['organizations']) ??\n this.readOrganizationMemberships(value['organizationMemberships']),\n };\n }\n\n private toMemberSummary(payload: unknown): ApplicationMemberSummaryResponse {\n const value = this.asRecord(payload);\n const firstName = this.readOptionalString(value['firstName']);\n const lastName = this.readOptionalString(value['lastName']);\n const derivedFullName = [firstName, lastName].filter((item): item is string => !!item).join(' ').trim();\n const fullName =\n this.readOptionalString(value['fullName']) ??\n (derivedFullName.length > 0 ? derivedFullName : null);\n const organizations =\n this.readOrganizationMemberships(value['organizations']) ??\n this.readOrganizationMemberships(value['organizationMemberships']);\n\n return {\n memberId: this.readString(value['memberId']) || this.readString(value['id']) || this.readString(value['userId']),\n userId: this.readOptionalString(value['userId']),\n username: this.readOptionalString(value['username']),\n name: this.readOptionalString(value['name']) ?? fullName,\n fullName,\n firstName,\n lastName,\n email: this.readOptionalString(value['email']),\n phone: this.readOptionalString(value['phone']),\n status: this.readOptionalString(value['status']),\n joinedAt: this.readOptionalString(value['joinedAt']) ?? this.readOptionalString(value['createdAt']),\n roles: this.readRoles(value['roles']) ?? [],\n organizationCount: this.readNumber(value['organizationCount']) ?? organizations?.length ?? 0,\n verification: this.readVerification(value),\n };\n }\n\n private readVerification(value: Record<string, unknown>): ApplicationMemberVerificationResponse | null {\n const verification = this.asRecord(value['verification']);\n\n const emailVerified = this.readBoolean(verification['emailVerified']) ?? this.readBoolean(value['emailVerified']);\n const phoneVerified = this.readBoolean(verification['phoneVerified']) ?? this.readBoolean(value['phoneVerified']);\n const identityVerified =\n this.readBoolean(verification['identityVerified']) ??\n this.readBoolean(value['identityVerified']) ??\n this.readBoolean(value['kycVerified']);\n const status = this.readOptionalString(verification['status']) ?? this.readOptionalString(value['verificationStatus']);\n\n if (emailVerified === null && phoneVerified === null && identityVerified === null && !status) {\n return null;\n }\n\n return {\n emailVerified: emailVerified ?? false,\n phoneVerified: phoneVerified ?? false,\n identityVerified: identityVerified ?? false,\n status,\n };\n }\n\n private readOrganizationMemberships(payload: unknown): ApplicationMemberOrganizationMembershipResponse[] | null {\n if (!Array.isArray(payload)) {\n return null;\n }\n\n const items: ApplicationMemberOrganizationMembershipResponse[] = [];\n\n for (const item of payload) {\n const value = this.asRecord(item);\n const organization = this.asRecord(value['organization']);\n const orgId = this.readString(value['orgId']) || this.readString(value['id']) || this.readString(organization['id']);\n\n if (!orgId) {\n continue;\n }\n\n items.push({\n orgId,\n orgCode: this.readOptionalString(value['orgCode']) ?? this.readOptionalString(organization['code']) ?? undefined,\n orgName:\n this.readOptionalString(value['orgName']) ??\n this.readOptionalString(value['name']) ??\n this.readOptionalString(organization['name']) ??\n undefined,\n roles: this.readRoles(value['roles']) ?? [],\n });\n }\n\n return items;\n }\n\n private readRoles(payload: unknown): string[] | null {\n if (!Array.isArray(payload)) {\n return null;\n }\n\n return payload\n .map((item) => {\n if (typeof item === 'string') {\n return item;\n }\n\n const value = this.asRecord(item);\n return (\n this.readOptionalString(value['authority']) ??\n this.readOptionalString(value['code']) ??\n this.readOptionalString(value['name']) ??\n null\n );\n })\n .filter((item): item is string => !!item);\n }\n\n private readStringArray(payload: unknown): string[] | null {\n if (!Array.isArray(payload)) {\n return null;\n }\n\n return payload.filter((item): item is string => typeof item === 'string' && item.length > 0);\n }\n\n private readString(value: unknown): string {\n return typeof value === 'string' ? value : '';\n }\n\n private readOptionalString(value: unknown): string | null {\n return typeof value === 'string' && value.length > 0 ? value : null;\n }\n\n private readNumber(value: unknown): number | null {\n return typeof value === 'number' && Number.isFinite(value) ? value : null;\n }\n\n private readBoolean(value: unknown): boolean | null {\n return typeof value === 'boolean' ? value : null;\n }\n\n private asRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === 'object' ? (value as Record<string, unknown>) : {};\n }\n\n private unwrapData<T>(payload: ApiResponse<T> | { data?: T } | T): T {\n if (payload && typeof payload === 'object' && 'data' in payload) {\n return payload.data as T;\n }\n\n return payload as T;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiRequestOptions, ApiResponse, ApiResponseMeta, toApiRequestParams } from '@rolatech/angular-common';\nimport { map, Observable } from 'rxjs';\nimport { BaseService } from './base.service';\nimport {\n PlatformEndpointDetailResponse,\n PlatformEndpointPageResponse,\n PlatformEndpointSummaryResponse,\n} from '../models/platform-admin.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PlatformEndpointService extends BaseService {\n override init(): void {\n this.endpoint = 'platform/endpoints';\n super.init();\n }\n\n findEndpoints(options?: ApiRequestOptions): Observable<PlatformEndpointPageResponse> {\n return this.http\n .get<ApiResponse<unknown> | { data?: unknown; meta?: ApiResponseMeta } | unknown[]>(this.actionUrl, {\n params: toApiRequestParams(options),\n withCredentials: true,\n })\n .pipe(map((response) => this.toPage(response)));\n }\n\n findEndpointById(id: string): Observable<PlatformEndpointDetailResponse> {\n return this.http\n .get<ApiResponse<unknown> | { data?: unknown } | unknown>(`${this.actionUrl}/${id}`, {\n withCredentials: true,\n })\n .pipe(map((response) => this.toDetail(this.unwrapData(response))));\n }\n\n private toPage(\n payload: ApiResponse<unknown> | { data?: unknown; meta?: ApiResponseMeta } | unknown[],\n ): PlatformEndpointPageResponse {\n if (Array.isArray(payload)) {\n return {\n items: payload.map((item) => this.toSummary(item)),\n total: payload.length,\n };\n }\n\n const data = payload?.data;\n if (Array.isArray(data)) {\n return {\n items: data.map((item) => this.toSummary(item)),\n total: payload?.meta?.pagination?.count ?? data.length,\n };\n }\n\n const value = this.asRecord(data);\n const items = Array.isArray(value['items']) ? value['items'] : [];\n\n return {\n items: items.map((item) => this.toSummary(item)),\n total: this.readNumber(value['total']) ?? payload?.meta?.pagination?.count ?? items.length,\n };\n }\n\n private toSummary(payload: unknown): PlatformEndpointSummaryResponse {\n const value = this.asRecord(payload);\n const permissions = this.readStringArray(value['permissions']) ?? this.readStringArray(value['permissionIds']) ?? [];\n const fallbackName =\n [this.readOptionalString(value['method']), this.readOptionalString(value['path'])].filter(Boolean).join(' ') ||\n this.readString(value['id']) ||\n 'Unnamed endpoint';\n\n return {\n id: this.readString(value['id']) || this.readString(value['endpointId']),\n code: this.readOptionalString(value['code']),\n name: this.readOptionalString(value['name']) ?? this.readOptionalString(value['displayName']) ?? fallbackName,\n resource: this.readOptionalString(value['resource']),\n path: this.readOptionalString(value['path']) ?? this.readOptionalString(value['url']),\n method: this.readOptionalString(value['method']),\n serviceName:\n this.readOptionalString(value['serviceName']) ??\n this.readOptionalString(value['service']) ??\n this.readOptionalString(value['module']),\n authType:\n this.readOptionalString(value['authType']) ??\n this.readOptionalString(value['authenticationType']) ??\n this.readOptionalString(value['security']),\n status: this.readOptionalString(value['status']) ?? (this.readBoolean(value['enabled']) ? 'ENABLED' : 'DISABLED'),\n enabled: this.readBoolean(value['enabled']),\n publicAccess: this.readBoolean(value['publicAccess']) || this.readBoolean(value['public']) || this.readBoolean(value['anonymousAccess']),\n permissionCount: this.readNumber(value['permissionCount']) ?? permissions.length,\n updatedAt: this.readOptionalString(value['updatedAt']),\n };\n }\n\n private toDetail(payload: unknown): PlatformEndpointDetailResponse {\n const value = this.asRecord(payload);\n\n return {\n ...this.toSummary(payload),\n description: this.readOptionalString(value['description']),\n uri: this.readOptionalString(value['uri']) ?? this.readOptionalString(value['url']),\n scopes: this.readStringArray(value['scopes']) ?? this.readStringArray(value['scope']) ?? [],\n roles: this.readStringArray(value['roles']) ?? this.readStringArray(value['roleCodes']) ?? [],\n attributes: this.extractAttributes(value, [\n 'id',\n 'endpointId',\n 'code',\n 'name',\n 'displayName',\n 'resource',\n 'path',\n 'url',\n 'uri',\n 'method',\n 'serviceName',\n 'service',\n 'module',\n 'authType',\n 'authenticationType',\n 'security',\n 'status',\n 'enabled',\n 'publicAccess',\n 'public',\n 'anonymousAccess',\n 'permissionCount',\n 'permissions',\n 'permissionIds',\n 'updatedAt',\n 'description',\n 'scopes',\n 'scope',\n 'roles',\n 'roleCodes',\n ]),\n };\n }\n\n private readStringArray(value: unknown): string[] | null {\n if (Array.isArray(value)) {\n return value.filter((item): item is string => typeof item === 'string' && item.length > 0);\n }\n\n if (typeof value === 'string' && value.length > 0) {\n return value\n .split(',')\n .map((item) => item.trim())\n .filter(Boolean);\n }\n\n return null;\n }\n\n private readNumber(value: unknown): number | null {\n return typeof value === 'number' && Number.isFinite(value) ? value : null;\n }\n\n private readBoolean(value: unknown): boolean {\n return value === true || value === 'true' || value === 'TRUE' || value === 1;\n }\n\n private readString(value: unknown): string {\n return typeof value === 'string' ? value : '';\n }\n\n private readOptionalString(value: unknown): string | null {\n return typeof value === 'string' && value.length > 0 ? value : null;\n }\n\n private asRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === 'object' ? (value as Record<string, unknown>) : {};\n }\n\n private unwrapData<T>(payload: ApiResponse<T> | { data?: T } | T): T {\n if (payload && typeof payload === 'object' && 'data' in payload) {\n return payload.data as T;\n }\n\n return payload as T;\n }\n\n private extractAttributes(value: Record<string, unknown>, knownKeys: string[]): Record<string, unknown> | null {\n const entries = Object.entries(value).filter(([key]) => !knownKeys.includes(key));\n return entries.length ? Object.fromEntries(entries) : null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiRequestOptions, ApiResponse, ApiResponseMeta, toApiRequestParams } from '@rolatech/angular-common';\nimport { map, Observable } from 'rxjs';\nimport { BaseService } from './base.service';\nimport {\n CreatePlatformServiceRegistryRequest,\n PlatformServiceRegistryDetailResponse,\n PlatformServiceRegistryPageResponse,\n PlatformServiceRegistrySummaryResponse,\n UpdatePlatformServiceRegistryRequest,\n} from '../models/platform-admin.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PlatformServiceRegistryService extends BaseService {\n override init(): void {\n this.endpoint = 'platform/service-registry';\n super.init();\n }\n\n findServices(options?: ApiRequestOptions): Observable<PlatformServiceRegistryPageResponse> {\n return this.http\n .get<ApiResponse<unknown> | { data?: unknown; meta?: ApiResponseMeta } | unknown[]>(this.actionUrl, {\n params: toApiRequestParams(options),\n withCredentials: true,\n })\n .pipe(map((response) => this.toPage(response)));\n }\n\n findServiceById(id: string): Observable<PlatformServiceRegistryDetailResponse> {\n return this.http\n .get<ApiResponse<unknown> | { data?: unknown } | unknown>(`${this.actionUrl}/${id}`, {\n withCredentials: true,\n })\n .pipe(map((response) => this.toDetail(this.unwrapData(response))));\n }\n\n createService(request: CreatePlatformServiceRegistryRequest): Observable<PlatformServiceRegistryDetailResponse> {\n return this.http\n .post<ApiResponse<unknown> | { data?: unknown } | unknown>(this.actionUrl, request, {\n withCredentials: true,\n })\n .pipe(map((response) => this.toDetail(this.unwrapData(response))));\n }\n\n updateService(id: string, request: UpdatePlatformServiceRegistryRequest): Observable<PlatformServiceRegistryDetailResponse> {\n return this.http\n .put<ApiResponse<unknown> | { data?: unknown } | unknown>(`${this.actionUrl}/${id}`, request, {\n withCredentials: true,\n })\n .pipe(map((response) => this.toDetail(this.unwrapData(response))));\n }\n\n deleteService(id: string): Observable<void> {\n return this.http.delete<void>(`${this.actionUrl}/${id}`, {\n withCredentials: true,\n });\n }\n\n private toPage(\n payload: ApiResponse<unknown> | { data?: unknown; meta?: ApiResponseMeta } | unknown[],\n ): PlatformServiceRegistryPageResponse {\n if (Array.isArray(payload)) {\n return {\n items: payload.map((item) => this.toSummary(item)),\n total: payload.length,\n };\n }\n\n const data = payload?.data;\n if (Array.isArray(data)) {\n return {\n items: data.map((item) => this.toSummary(item)),\n total: payload?.meta?.pagination?.count ?? data.length,\n };\n }\n\n const value = this.asRecord(data);\n const items = Array.isArray(value['items']) ? value['items'] : [];\n\n return {\n items: items.map((item) => this.toSummary(item)),\n total: this.readNumber(value['total']) ?? payload?.meta?.pagination?.count ?? items.length,\n };\n }\n\n private toSummary(payload: unknown): PlatformServiceRegistrySummaryResponse {\n const value = this.asRecord(payload);\n const fallbackName = this.readString(value['id']) || 'Unnamed service';\n\n return {\n id: this.readString(value['id']) || this.readString(value['serviceId']),\n code: this.readOptionalString(value['code']) ?? this.readOptionalString(value['serviceCode']),\n name: this.readOptionalString(value['name']) ?? this.readOptionalString(value['serviceName']) ?? fallbackName,\n namespace: this.readOptionalString(value['namespace']),\n serviceType: this.readOptionalString(value['serviceType']) ?? this.readOptionalString(value['type']),\n version: this.readOptionalString(value['version']),\n baseUrl: this.readOptionalString(value['baseUrl']) ?? this.readOptionalString(value['url']),\n healthStatus: this.readOptionalString(value['healthStatus']) ?? this.readOptionalString(value['health']),\n status: this.readOptionalString(value['status']) ?? (this.readBoolean(value['enabled']) ? 'ENABLED' : 'DISABLED'),\n enabled: this.readBoolean(value['enabled']),\n instanceCount: this.readNumber(value['instanceCount']) ?? this.readNumber(value['instances']) ?? 0,\n endpointCount: this.readNumber(value['endpointCount']) ?? this.readNumber(value['routes']) ?? 0,\n updatedAt: this.readOptionalString(value['updatedAt']),\n };\n }\n\n private toDetail(payload: unknown): PlatformServiceRegistryDetailResponse {\n const value = this.asRecord(payload);\n\n return {\n ...this.toSummary(payload),\n description: this.readOptionalString(value['description']),\n tags: this.readStringArray(value['tags']) ?? [],\n attributes: this.extractAttributes(value, [\n 'id',\n 'serviceId',\n 'code',\n 'serviceCode',\n 'name',\n 'serviceName',\n 'namespace',\n 'serviceType',\n 'type',\n 'version',\n 'baseUrl',\n 'url',\n 'healthStatus',\n 'health',\n 'status',\n 'enabled',\n 'instanceCount',\n 'instances',\n 'endpointCount',\n 'routes',\n 'updatedAt',\n 'description',\n 'tags',\n ]),\n };\n }\n\n private readStringArray(value: unknown): string[] | null {\n if (!Array.isArray(value)) {\n return null;\n }\n\n return value.filter((item): item is string => typeof item === 'string' && item.length > 0);\n }\n\n private readNumber(value: unknown): number | null {\n return typeof value === 'number' && Number.isFinite(value) ? value : null;\n }\n\n private readBoolean(value: unknown): boolean {\n return value === true || value === 'true' || value === 'TRUE' || value === 1;\n }\n\n private readString(value: unknown): string {\n return typeof value === 'string' ? value : '';\n }\n\n private readOptionalString(value: unknown): string | null {\n return typeof value === 'string' && value.length > 0 ? value : null;\n }\n\n private asRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === 'object' ? (value as Record<string, unknown>) : {};\n }\n\n private unwrapData<T>(payload: ApiResponse<T> | { data?: T } | T): T {\n if (payload && typeof payload === 'object' && 'data' in payload) {\n return payload.data as T;\n }\n\n return payload as T;\n }\n\n private extractAttributes(value: Record<string, unknown>, knownKeys: string[]): Record<string, unknown> | null {\n const entries = Object.entries(value).filter(([key]) => !knownKeys.includes(key));\n return entries.length ? Object.fromEntries(entries) : null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiRequestOptions, ApiResponse, ApiResponseMeta, toApiRequestParams } from '@rolatech/angular-common';\nimport { map, Observable } from 'rxjs';\nimport { BaseService } from './base.service';\nimport {\n CreatePlatformAuthClientRequest,\n PlatformAuthClientDetailResponse,\n PlatformAuthClientPageResponse,\n PlatformAuthClientSecretResetResponse,\n PlatformAuthClientSummaryResponse,\n UpdatePlatformAuthClientRequest,\n} from '../models/platform-admin.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PlatformAuthClientService extends BaseService {\n override init(): void {\n this.endpoint = 'platform/clients';\n super.init();\n }\n\n findClients(options?: ApiRequestOptions): Observable<PlatformAuthClientPageResponse> {\n return this.http\n .get<ApiResponse<unknown> | { data?: unknown; meta?: ApiResponseMeta } | unknown[]>(this.actionUrl, {\n params: toApiRequestParams(options),\n withCredentials: true,\n })\n .pipe(map((response) => this.toPage(response)));\n }\n\n findClientById(id: string): Observable<PlatformAuthClientDetailResponse> {\n return this.http\n .get<ApiResponse<unknown> | { data?: unknown } | unknown>(`${this.actionUrl}/${id}`, {\n withCredentials: true,\n })\n .pipe(map((response) => this.toDetail(this.unwrapData(response))));\n }\n\n createClient(request: CreatePlatformAuthClientRequest): Observable<PlatformAuthClientDetailResponse> {\n return this.http\n .post<ApiResponse<unknown> | { data?: unknown } | unknown>(this.actionUrl, request, {\n withCredentials: true,\n })\n .pipe(map((response) => this.toDetail(this.unwrapData(response))));\n }\n\n updateClient(id: string, request: UpdatePlatformAuthClientRequest): Observable<PlatformAuthClientDetailResponse> {\n return this.http\n .put<ApiResponse<unknown> | { data?: unknown } | unknown>(`${this.actionUrl}/${id}`, request, {\n withCredentials: true,\n })\n .pipe(map((response) => this.toDetail(this.unwrapData(response))));\n }\n\n deleteClient(id: string): Observable<void> {\n return this.http.delete<void>(`${this.actionUrl}/${id}`, {\n withCredentials: true,\n });\n }\n\n resetClientSecret(id: string): Observable<PlatformAuthClientSecretResetResponse> {\n return this.http\n .post<ApiResponse<unknown> | { data?: unknown } | unknown>(`${this.actionUrl}/${id}/reset`, {}, { withCredentials: true })\n .pipe(map((response) => this.toSecretReset(this.unwrapData(response))));\n }\n\n private toPage(\n payload: ApiResponse<unknown> | { data?: unknown; meta?: ApiResponseMeta } | unknown[],\n ): PlatformAuthClientPageResponse {\n if (Array.isArray(payload)) {\n return {\n items: payload.map((item) => this.toSummary(item)),\n total: payload.length,\n };\n }\n\n const data = payload?.data;\n if (Array.isArray(data)) {\n return {\n items: data.map((item) => this.toSummary(item)),\n total: payload?.meta?.pagination?.count ?? data.length,\n };\n }\n\n const value = this.asRecord(data);\n const items = Array.isArray(value['items']) ? value['items'] : [];\n\n return {\n items: items.map((item) => this.toSummary(item)),\n total: this.readNumber(value['total']) ?? payload?.meta?.pagination?.count ?? items.length,\n };\n }\n\n private toSummary(payload: unknown): PlatformAuthClientSummaryResponse {\n const value = this.asRecord(payload);\n const fallbackName = this.readString(value['clientId']) || 'Unnamed client';\n\n return {\n id: this.readString(value['id']),\n clientId: this.readString(value['clientId']) || this.readString(value['id']),\n name: this.readOptionalString(value['name']) ?? this.readOptionalString(value['clientName']) ?? fallbackName,\n description: this.readOptionalString(value['description']),\n status: this.readOptionalString(value['status']) ?? (this.readBoolean(value['enabled']) ? 'ENABLED' : 'DISABLED'),\n enabled: this.readBoolean(value['enabled']),\n confidential: this.readBoolean(value['confidential']) || this.readBoolean(value['secretRequired']),\n grantTypes: this.readStringArray(value['grantTypes']) ?? [],\n redirectUris: this.readStringArray(value['redirectUris']) ?? [],\n scopes: this.readStringArray(value['scopes']) ?? this.readStringArray(value['scope']) ?? [],\n updatedAt: this.readOptionalString(value['updatedAt']),\n createdAt: this.readOptionalString(value['createdAt']),\n };\n }\n\n private toDetail(payload: unknown): PlatformAuthClientDetailResponse {\n const value = this.asRecord(payload);\n\n return {\n ...this.toSummary(payload),\n appId: this.readOptionalString(value['appId']),\n appSecret: this.readOptionalString(value['appSecret']),\n clientSecret: this.readOptionalString(value['clientSecret']),\n permissions: this.readStringArray(value['permissions']) ?? this.readStringArray(value['permissionIds']) ?? [],\n attributes: this.extractAttributes(value, [\n 'id',\n 'clientId',\n 'name',\n 'clientName',\n 'description',\n 'status',\n 'enabled',\n 'confidential',\n 'secretRequired',\n 'grantTypes',\n 'redirectUris',\n 'scopes',\n 'scope',\n 'updatedAt',\n 'createdAt',\n 'appId',\n 'appSecret',\n 'clientSecret',\n 'permissions',\n 'permissionIds',\n ]),\n };\n }\n\n private toSecretReset(payload: unknown): PlatformAuthClientSecretResetResponse {\n const value = this.asRecord(payload);\n\n return {\n clientSecret: this.readString(value['clientSecret']),\n updatedAt: this.readOptionalString(value['updatedAt']),\n };\n }\n\n private readStringArray(value: unknown): string[] | null {\n if (Array.isArray(value)) {\n return value.filter((item): item is string => typeof item === 'string' && item.length > 0);\n }\n\n if (typeof value === 'string' && value.length > 0) {\n return value\n .split(',')\n .map((item) => item.trim())\n .filter(Boolean);\n }\n\n return null;\n }\n\n private readNumber(value: unknown): number | null {\n return typeof value === 'number' && Number.isFinite(value) ? value : null;\n }\n\n private readBoolean(value: unknown): boolean {\n return value === true || value === 'true' || value === 'TRUE' || value === 1;\n }\n\n private readString(value: unknown): string {\n return typeof value === 'string' ? value : '';\n }\n\n private readOptionalString(value: unknown): string | null {\n return typeof value === 'string' && value.length > 0 ? value : null;\n }\n\n private asRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === 'object' ? (value as Record<string, unknown>) : {};\n }\n\n private unwrapData<T>(payload: ApiResponse<T> | { data?: T } | T): T {\n if (payload && typeof payload === 'object' && 'data' in payload) {\n return payload.data as T;\n }\n\n return payload as T;\n }\n\n private extractAttributes(value: Record<string, unknown>, knownKeys: string[]): Record<string, unknown> | null {\n const entries = Object.entries(value).filter(([key]) => !knownKeys.includes(key));\n return entries.length ? Object.fromEntries(entries) : null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { catchError, map, Observable, of } from 'rxjs';\nimport { ApiRequestOptions, ApiResponse, ApiResponseMeta, toApiRequestParams } from '@rolatech/angular-common';\nimport { BaseService } from './base.service';\nimport {\n PlatformUserContextResponse,\n PlatformUserDetailResponse,\n PlatformUserPageResponse,\n PlatformUserSummaryResponse,\n} from '../models/platform-user.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PlatformUserService extends BaseService {\n override init(): void {\n this.endpoint = 'platform/users';\n super.init();\n }\n\n findUsers(options?: ApiRequestOptions): Observable<PlatformUserPageResponse> {\n return this.http\n .get<ApiResponse<unknown> | { data?: unknown; meta?: ApiResponseMeta } | unknown[]>(this.actionUrl, {\n params: toApiRequestParams(options),\n withCredentials: true,\n })\n .pipe(map((response) => this.toUserPage(response)));\n }\n\n findUserById(id: string): Observable<PlatformUserDetailResponse> {\n return this.http\n .get<ApiResponse<unknown> | { data?: unknown } | unknown>(`${this.actionUrl}/${id}`, {\n withCredentials: true,\n })\n .pipe(map((response) => this.toUserDetail(this.unwrapData(response))));\n }\n\n findUserContext(id: string): Observable<PlatformUserContextResponse | null> {\n return this.http\n .get<ApiResponse<PlatformUserContextResponse> | { data?: PlatformUserContextResponse } | PlatformUserContextResponse>(\n `${this.actionUrl}/${id}/context`,\n {\n withCredentials: true,\n },\n )\n .pipe(\n map((response) => this.toUserContext(this.unwrapData(response))),\n catchError(() => of(null)),\n );\n }\n\n private toUserPage(\n payload: ApiResponse<unknown> | { data?: unknown; meta?: ApiResponseMeta } | unknown[],\n ): PlatformUserPageResponse {\n if (Array.isArray(payload)) {\n return {\n items: payload.map((item) => this.toUserSummary(item)),\n total: payload.length,\n };\n }\n\n const items = Array.isArray(payload?.data) ? payload.data : [];\n const total = payload?.meta?.pagination?.count ?? items.length;\n\n return {\n items: items.map((item) => this.toUserSummary(item)),\n total,\n };\n }\n\n private toUserSummary(payload: unknown): PlatformUserSummaryResponse {\n const value = this.asRecord(payload);\n\n return {\n id: this.readString(value['id']),\n name: this.readOptionalString(value['name']),\n username: this.readOptionalString(value['username']),\n email: this.readOptionalString(value['email']),\n phone: this.readOptionalString(value['phone']),\n avatar: this.readOptionalString(value['avatar']),\n firstName: this.readOptionalString(value['firstName']),\n lastName: this.readOptionalString(value['lastName']),\n status: this.readOptionalString(value['status']),\n createdAt: this.readOptionalString(value['createdAt']),\n roles: this.readRoles(value['roles']),\n };\n }\n\n private toUserDetail(payload: unknown): PlatformUserDetailResponse {\n const value = this.asRecord(payload);\n const summary = this.toUserSummary(payload);\n\n return {\n ...summary,\n bio: this.readOptionalString(value['bio']),\n permissions: this.readStringArray(value['permissions']),\n platformRoles: this.readStringArray(value['platformRoles']),\n applications: this.readApplicationMemberships(value['applications']),\n organizations: this.readOrganizationMemberships(value['organizations']),\n };\n }\n\n private toUserContext(payload: unknown): PlatformUserContextResponse {\n const value = this.asRecord(payload);\n\n return {\n userId: this.readString(value['userId']),\n username: this.readOptionalString(value['username']),\n platformRoles: this.readStringArray(value['platformRoles']) ?? [],\n applications: this.readApplicationMemberships(value['applications']) ?? [],\n organizations: this.readOrganizationMemberships(value['organizations']) ?? [],\n permissions: this.readStringArray(value['permissions']),\n };\n }\n\n private readRoles(payload: unknown): string[] {\n if (!Array.isArray(payload)) {\n return [];\n }\n\n return payload\n .map((item) => {\n if (typeof item === 'string') {\n return item;\n }\n\n const value = this.asRecord(item);\n return this.readOptionalString(value['authority']) ?? this.readOptionalString(value['name']) ?? null;\n })\n .filter((item): item is string => !!item);\n }\n\n private readApplicationMemberships(payload: unknown): PlatformUserContextResponse['applications'] | null {\n if (!Array.isArray(payload)) {\n return null;\n }\n\n return payload.map((item) => {\n const value = this.asRecord(item);\n\n return {\n appId: this.readString(value['appId']),\n appCode: this.readOptionalString(value['appCode']),\n appName: this.readOptionalString(value['appName']),\n roles: this.readStringArray(value['roles']) ?? [],\n };\n });\n }\n\n private readOrganizationMemberships(payload: unknown): PlatformUserContextResponse['organizations'] | null {\n if (!Array.isArray(payload)) {\n return null;\n }\n\n return payload.map((item) => {\n const value = this.asRecord(item);\n\n return {\n appId: this.readString(value['appId']),\n orgId: this.readString(value['orgId']),\n orgCode: this.readOptionalString(value['orgCode']),\n orgName: this.readOptionalString(value['orgName']),\n roles: this.readStringArray(value['roles']) ?? [],\n };\n });\n }\n\n private readStringArray(payload: unknown): string[] | null {\n if (!Array.isArray(payload)) {\n return null;\n }\n\n return payload.filter((item): item is string => typeof item === 'string' && item.length > 0);\n }\n\n private readString(value: unknown): string {\n return typeof value === 'string' ? value : '';\n }\n\n private readOptionalString(value: unknown): string | null {\n return typeof value === 'string' && value.length > 0 ? value : null;\n }\n\n private asRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === 'object' ? (value as Record<string, unknown>) : {};\n }\n\n private unwrapData<T>(payload: ApiResponse<T> | { data?: T } | T): T {\n if (payload && typeof payload === 'object' && 'data' in payload) {\n return payload.data as T;\n }\n\n return payload as T;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiResponse } from '@rolatech/angular-common';\nimport { Observable } from 'rxjs';\nimport {\n FindAssignablePermissionsOptions,\n FindRolePermissionRolesOptions,\n FindRolePermissionSummaryOptions,\n PermissionGroup,\n PermissionSummary,\n RolePermissionIndexItem,\n RolePermissionSummary,\n SaveRolePermissionsRequest,\n} from '../models/permission.models';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionService extends BaseService {\n override init(): void {\n this.endpoint = 'platform/role-permissions';\n super.init();\n }\n\n findRoles(options: FindRolePermissionRolesOptions): Observable<ApiResponse<RolePermissionIndexItem[]>> {\n return this.http.get<ApiResponse<RolePermissionIndexItem[]>>(`${this.actionUrl}/roles`, {\n params: this.params(options),\n withCredentials: true,\n });\n }\n\n getRoleSummary(roleId: string, options: FindRolePermissionSummaryOptions): Observable<ApiResponse<RolePermissionSummary>> {\n return this.http.get<ApiResponse<RolePermissionSummary>>(`${this.actionUrl}/roles/${roleId}`, {\n params: this.params(options),\n withCredentials: true,\n });\n }\n\n findAssignablePermissions(\n roleId: string,\n options: FindAssignablePermissionsOptions,\n ): Observable<ApiResponse<PermissionSummary[]>> {\n return this.http.get<ApiResponse<PermissionSummary[]>>(`${this.actionUrl}/roles/${roleId}/permissions`, {\n params: this.params(options),\n withCredentials: true,\n });\n }\n\n saveRolePermissions(roleId: string, request: SaveRolePermissionsRequest): Observable<ApiResponse<void>> {\n return this.http.put<ApiResponse<void>>(`${this.actionUrl}/roles/${roleId}/permissions`, request, {\n withCredentials: true,\n });\n }\n\n buildGroups(items: PermissionSummary[]): PermissionGroup[] {\n const map = new Map<string, PermissionSummary[]>();\n\n for (const item of items) {\n const key = item.module?.trim() || 'Other';\n const list = map.get(key) ?? [];\n list.push(item);\n map.set(key, list);\n }\n\n return [...map.entries()].map(([key, values]) => ({\n key,\n label: key,\n count: values.length,\n assignedCount: values.filter((x) => x.assigned).length,\n items: values,\n }));\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { map, Observable } from 'rxjs';\nimport { BaseService } from './base.service';\nimport { ApiRequestOptions, ApiResponse, toApiRequestParams } from '@rolatech/angular-common';\nimport {\n RoleResponse,\n CreateRoleRequest,\n UpdateRoleRequest,\n RolePermissionPageResponse,\n UpdateRolePermissionsRequest,\n} from '../models/role.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RoleService extends BaseService {\n override init() {\n this.endpoint = 'platform/roles';\n super.init();\n }\n\n // ---------------------------------------------------------------------------\n // Platform roles\n // ---------------------------------------------------------------------------\n\n findPlatformRoles(options?: ApiRequestOptions): Observable<RoleResponse[]> {\n return this.http\n .get<ApiResponse<RoleResponse[]>>(`${this.actionUrl}/platform`, {\n params: toApiRequestParams(options),\n })\n .pipe(map((response) => response.data));\n }\n\n findPlatformRoleById(id: string): Observable<RoleResponse> {\n return this.http.get<ApiResponse<RoleResponse>>(`${this.actionUrl}/platform/${id}`).pipe(map((response) => response.data));\n }\n\n createPlatformRole(request: CreateRoleRequest): Observable<RoleResponse> {\n return this.http\n .post<ApiResponse<RoleResponse>>(`${this.actionUrl}/platform`, request)\n .pipe(map((response) => response.data));\n }\n\n updatePlatformRole(id: string, request: UpdateRoleRequest): Observable<RoleResponse> {\n return this.http\n .put<ApiResponse<RoleResponse>>(`${this.actionUrl}/platform/${id}`, request)\n .pipe(map((response) => response.data));\n }\n\n findPlatformRolePermissionPage(id: string): Observable<RolePermissionPageResponse> {\n return this.http\n .get<ApiResponse<RolePermissionPageResponse>>(`${this.actionUrl}/platform/${id}/permissions`)\n .pipe(map((response) => response.data));\n }\n\n updatePlatformRolePermissions(id: string, request: UpdateRolePermissionsRequest): Observable<RoleResponse> {\n return this.http\n .put<ApiResponse<RoleResponse>>(`${this.actionUrl}/platform/${id}/permissions`, request)\n .pipe(map((response) => response.data));\n }\n\n deletePlatformRoleById(id: string): Observable<string> {\n return this.http.delete<ApiResponse<string>>(`${this.actionUrl}/platform/${id}`).pipe(map((response) => response.data));\n }\n\n // ---------------------------------------------------------------------------\n // Application roles\n // ---------------------------------------------------------------------------\n\n findApplicationRoles(appId?: string | null, options?: ApiRequestOptions): Observable<RoleResponse[]> {\n return this.http\n .get<ApiResponse<RoleResponse[]>>(`${this.actionUrl}/applications`, {\n params: toApiRequestParams(options, {\n appId,\n }),\n })\n .pipe(map((response) => response.data));\n }\n\n findApplicationRoleById(id: string, appId?: string | null): Observable<RoleResponse> {\n return this.http\n .get<ApiResponse<RoleResponse>>(`${this.actionUrl}/applications/${id}`, {\n params: this.toParams({\n appId,\n }),\n })\n .pipe(map((response) => response.data));\n }\n\n createApplicationRole(request: CreateRoleRequest, appId?: string | null): Observable<RoleResponse> {\n return this.http\n .post<ApiResponse<RoleResponse>>(`${this.actionUrl}/applications`, request, {\n params: this.toParams({\n appId,\n }),\n })\n .pipe(map((response) => response.data));\n }\n\n updateApplicationRole(id: string, request: UpdateRoleRequest, appId?: string | null): Observable<RoleResponse> {\n return this.http\n .put<ApiResponse<RoleResponse>>(`${this.actionUrl}/applications/${id}`, request, {\n params: this.toParams({\n appId,\n }),\n })\n .pipe(map((response) => response.data));\n }\n\n findApplicationRolePermissionPage(id: string, appId?: string | null): Observable<RolePermissionPageResponse> {\n return this.http\n .get<ApiResponse<RolePermissionPageResponse>>(`${this.actionUrl}/applications/${id}/permissions`, {\n params: this.toParams({\n appId,\n }),\n })\n .pipe(map((response) => response.data));\n }\n\n updateApplicationRolePermissions(\n id: string,\n request: UpdateRolePermissionsRequest,\n appId?: string | null,\n ): Observable<RoleResponse> {\n return this.http\n .put<ApiResponse<RoleResponse>>(`${this.actionUrl}/applications/${id}/permissions`, request, {\n params: this.toParams({\n appId,\n }),\n })\n .pipe(map((response) => response.data));\n }\n\n deleteApplicationRoleById(id: string, appId?: string | null): Observable<string> {\n return this.http\n .delete<ApiResponse<string>>(`${this.actionUrl}/applications/${id}`, {\n params: this.toParams({\n appId,\n }),\n })\n .pipe(map((response) => response.data));\n }\n\n // ---------------------------------------------------------------------------\n // Organization roles\n // ---------------------------------------------------------------------------\n\n findOrganizationRoles(orgId: string): Observable<RoleResponse[]> {\n return this.http\n .get<ApiResponse<RoleResponse[]>>(`${this.actionUrl}/organizations/${orgId}`)\n .pipe(map((response) => response.data));\n }\n\n findOrganizationRoleById(orgId: string, id: string): Observable<RoleResponse> {\n return this.http\n .get<ApiResponse<RoleResponse>>(`${this.actionUrl}/organizations/${orgId}/${id}`)\n .pipe(map((response) => response.data));\n }\n\n createOrganizationRole(orgId: string, request: CreateRoleRequest, appId?: string | null): Observable<RoleResponse> {\n if (appId) {\n return this.createApplicationOrganizationRole(appId, orgId, request);\n }\n\n return this.http\n .post<ApiResponse<RoleResponse>>(`${this.actionUrl}/organizations/${orgId}`, request)\n .pipe(map((response) => response.data));\n }\n\n updateOrganizationRole(\n orgId: string,\n id: string,\n request: UpdateRoleRequest,\n appId?: string | null,\n ): Observable<RoleResponse> {\n if (appId) {\n return this.updateApplicationOrganizationRole(appId, orgId, id, request);\n }\n\n return this.http\n .put<ApiResponse<RoleResponse>>(`${this.actionUrl}/organizations/${orgId}/${id}`, request)\n .pipe(map((response) => response.data));\n }\n\n findOrganizationRolePermissionPage(\n orgId: string,\n id: string,\n appId?: string | null,\n ): Observable<RolePermissionPageResponse> {\n if (appId) {\n return this.findApplicationOrganizationRolePermissionPage(appId, orgId, id);\n }\n\n return this.http\n .get<ApiResponse<RolePermissionPageResponse>>(`${this.actionUrl}/organizations/${orgId}/${id}/permissions`)\n .pipe(map((response) => response.data));\n }\n\n updateOrganizationRolePermissions(\n orgId: string,\n id: string,\n request: UpdateRolePermissionsRequest,\n appId?: string | null,\n ): Observable<RoleResponse> {\n if (appId) {\n return this.updateApplicationOrganizationRolePermissions(appId, orgId, id, request);\n }\n\n return this.http\n .put<ApiResponse<RoleResponse>>(`${this.actionUrl}/organizations/${orgId}/${id}/permissions`, request)\n .pipe(map((response) => response.data));\n }\n\n deleteOrganizationRoleById(orgId: string, id: string, appId?: string | null): Observable<string> {\n if (appId) {\n return this.deleteApplicationOrganizationRoleById(appId, orgId, id);\n }\n\n return this.http\n .delete<ApiResponse<string>>(`${this.actionUrl}/organizations/${orgId}/${id}`)\n .pipe(map((response) => response.data));\n }\n\n // ---------------------------------------------------------------------------\n // Helpers\n // ---------------------------------------------------------------------------\n\n private toParams(values?: Record<string, unknown>): HttpParams {\n let params = new HttpParams();\n\n if (!values) {\n return params;\n }\n\n for (const [key, value] of Object.entries(values)) {\n if (value === null || value === undefined || value === '') {\n continue;\n }\n\n params = params.set(key, String(value));\n }\n\n return params;\n }\n\n private createApplicationOrganizationRole(\n appId: string,\n orgId: string,\n request: CreateRoleRequest,\n ): Observable<RoleResponse> {\n return this.http\n .post<ApiResponse<RoleResponse>>(this.toApplicationOrganizationRoleUrl(appId, orgId), request)\n .pipe(map((response) => response.data));\n }\n\n private updateApplicationOrganizationRole(\n appId: string,\n orgId: string,\n id: string,\n request: UpdateRoleRequest,\n ): Observable<RoleResponse> {\n return this.http\n .put<ApiResponse<RoleResponse>>(this.toApplicationOrganizationRoleUrl(appId, orgId, id), request)\n .pipe(map((response) => response.data));\n }\n\n private findApplicationOrganizationRolePermissionPage(\n appId: string,\n orgId: string,\n id: string,\n ): Observable<RolePermissionPageResponse> {\n return this.http\n .get<ApiResponse<RolePermissionPageResponse>>(this.toApplicationOrganizationRoleUrl(appId, orgId, id, 'permissions'))\n .pipe(map((response) => response.data));\n }\n\n private updateApplicationOrganizationRolePermissions(\n appId: string,\n orgId: string,\n id: string,\n request: UpdateRolePermissionsRequest,\n ): Observable<RoleResponse> {\n return this.http\n .put<ApiResponse<RoleResponse>>(this.toApplicationOrganizationRoleUrl(appId, orgId, id, 'permissions'), request)\n .pipe(map((response) => response.data));\n }\n\n private deleteApplicationOrganizationRoleById(appId: string, orgId: string, id: string): Observable<string> {\n return this.http\n .delete<ApiResponse<string>>(this.toApplicationOrganizationRoleUrl(appId, orgId, id))\n .pipe(map((response) => response.data));\n }\n\n private toApplicationOrganizationRoleUrl(appId: string, orgId: string, roleId?: string, suffix?: string): string {\n const segments = [this.environment.baseUrl, 'platform', 'applications', appId, 'organizations', orgId, 'roles'];\n\n if (roleId) {\n segments.push(roleId);\n }\n\n if (suffix) {\n segments.push(suffix);\n }\n\n return segments.join('/');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { map, Observable } from 'rxjs';\nimport { ApiResponse } from '@rolatech/angular-common';\nimport { BaseService } from './base.service';\nimport {\n CreateOrganizationInvitationRequest,\n OrganizationInvitationAcceptanceResponse,\n OrganizationInvitationPageResponse,\n OrganizationInvitationResponse,\n} from '../models/organization-admin.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OrganizationInvitationService extends BaseService {\n override init(): void {\n this.endpoint = 'platform/organizations';\n super.init();\n }\n\n findInvitations(orgId: string): Observable<OrganizationInvitationPageResponse> {\n return this.http\n .get<ApiResponse<OrganizationInvitationPageResponse | OrganizationInvitationResponse[]>>(\n `${this.actionUrl}/${orgId}/invitations`,\n {\n withCredentials: true,\n },\n )\n .pipe(map((response) => this.toInvitationPage(response.data)));\n }\n\n createInvitation(orgId: string, request: CreateOrganizationInvitationRequest): Observable<OrganizationInvitationResponse> {\n return this.http\n .post<ApiResponse<OrganizationInvitationResponse>>(`${this.actionUrl}/${orgId}/invitations`, request, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n resendInvitation(orgId: string, invitationId: string): Observable<void> {\n return this.http\n .post<ApiResponse<void>>(\n `${this.actionUrl}/${orgId}/invitations/${invitationId}/resend`,\n {},\n {\n withCredentials: true,\n },\n )\n .pipe(map(() => undefined));\n }\n\n acceptInvitation(orgId: string, token: string): Observable<OrganizationInvitationAcceptanceResponse> {\n return this.http\n .post<ApiResponse<OrganizationInvitationAcceptanceResponse>>(\n `${this.actionUrl}/${orgId}/invitations/accept`,\n {},\n {\n params: { token },\n withCredentials: true,\n },\n )\n .pipe(map((response) => response.data));\n }\n\n revokeInvitation(orgId: string, invitationId: string): Observable<void> {\n return this.http\n .delete<ApiResponse<void>>(`${this.actionUrl}/${orgId}/invitations/${invitationId}`, {\n withCredentials: true,\n })\n .pipe(map(() => undefined));\n }\n\n private toInvitationPage(\n payload: OrganizationInvitationPageResponse | OrganizationInvitationResponse[],\n ): OrganizationInvitationPageResponse {\n if (Array.isArray(payload)) {\n return {\n items: payload,\n total: payload.length,\n };\n }\n\n return {\n items: payload.items ?? [],\n total: payload.total ?? payload.items?.length ?? 0,\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { map, Observable } from 'rxjs';\nimport { ApiResponse } from '@rolatech/angular-common';\nimport { BaseService } from './base.service';\nimport {\n OrganizationMemberCollectionResponse,\n OrganizationMemberResponse,\n UpdateOrganizationMemberRolesRequest,\n} from '../models/organization-admin.models';\n\ntype OrganizationMemberListPayload = OrganizationMemberResponse[] | OrganizationMemberCollectionResponse;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OrganizationMemberService extends BaseService {\n override init(): void {\n this.endpoint = 'platform/organizations';\n super.init();\n }\n\n findMembers(orgId: string): Observable<OrganizationMemberResponse[]> {\n return this.http\n .get<ApiResponse<OrganizationMemberListPayload>>(`${this.actionUrl}/${orgId}/members`, {\n withCredentials: true,\n })\n .pipe(map((response) => this.toMembers(response.data)));\n }\n\n findMemberById(orgId: string, memberId: string): Observable<OrganizationMemberResponse> {\n return this.http\n .get<ApiResponse<OrganizationMemberResponse>>(`${this.actionUrl}/${orgId}/members/${memberId}`, {\n withCredentials: true,\n })\n .pipe(map((response) => this.normalizeMember(response.data)));\n }\n\n updateMemberRoles(\n orgId: string,\n memberId: string,\n request: UpdateOrganizationMemberRolesRequest,\n ): Observable<OrganizationMemberResponse> {\n return this.http\n .put<ApiResponse<OrganizationMemberResponse>>(`${this.actionUrl}/${orgId}/members/${memberId}/roles`, request, {\n withCredentials: true,\n })\n .pipe(map((response) => this.normalizeMember(response.data)));\n }\n\n resetMemberPassword(orgId: string, memberId: string): Observable<void> {\n return this.http\n .post<ApiResponse<void>>(\n `${this.actionUrl}/${orgId}/members/${memberId}/password/reset-request`,\n {},\n {\n withCredentials: true,\n },\n )\n .pipe(map(() => undefined));\n }\n\n private toMembers(payload: OrganizationMemberListPayload): OrganizationMemberResponse[] {\n if (Array.isArray(payload)) {\n return payload.map((member) => this.normalizeMember(member));\n }\n\n return (payload.items ?? []).map((member) => this.normalizeMember(member));\n }\n\n private normalizeMember(member: OrganizationMemberResponse): OrganizationMemberResponse {\n return {\n ...member,\n roles: member.roles ?? [],\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiResponse } from '@rolatech/angular-common';\nimport { map, Observable } from 'rxjs';\nimport {\n ConfirmOnboardingDocumentUploadRequest,\n CreateOnboardingApplicationRequest,\n OnboardingApplicationDetailResponse,\n OnboardingApplicationResponse,\n OnboardingUploadUrlResponse,\n RequestOnboardingUploadUrlRequest,\n SaveOnboardingBankingRequest,\n SaveOnboardingFinancialRequest,\n SaveOnboardingProfileRequest,\n} from '../models/onboarding.models';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnboardingApplicantService extends BaseService {\n override init(): void {\n this.endpoint = 'onboarding/applications';\n super.init();\n }\n\n createApplication(payload: CreateOnboardingApplicationRequest): Observable<OnboardingApplicationResponse> {\n return this.http\n .post<ApiResponse<OnboardingApplicationResponse>>(this.actionUrl, payload, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n listMine(): Observable<OnboardingApplicationResponse[]> {\n return this.http\n .get<ApiResponse<OnboardingApplicationResponse[]>>(`${this.actionUrl}/mine`, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n getApplication(applicationId: string): Observable<OnboardingApplicationDetailResponse> {\n return this.http\n .get<ApiResponse<OnboardingApplicationDetailResponse>>(`${this.actionUrl}/${applicationId}`, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n saveProfile(applicationId: string, payload: SaveOnboardingProfileRequest): Observable<OnboardingApplicationResponse> {\n return this.http\n .put<ApiResponse<OnboardingApplicationResponse>>(`${this.actionUrl}/${applicationId}/profile`, payload, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n saveFinancial(applicationId: string, payload: SaveOnboardingFinancialRequest): Observable<OnboardingApplicationResponse> {\n return this.http\n .put<ApiResponse<OnboardingApplicationResponse>>(`${this.actionUrl}/${applicationId}/financial`, payload, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n saveBanking(applicationId: string, payload: SaveOnboardingBankingRequest): Observable<OnboardingApplicationResponse> {\n return this.http\n .put<ApiResponse<OnboardingApplicationResponse>>(`${this.actionUrl}/${applicationId}/banking`, payload, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n requestUploadUrl(applicationId: string, payload: RequestOnboardingUploadUrlRequest): Observable<OnboardingUploadUrlResponse> {\n return this.http\n .post<ApiResponse<OnboardingUploadUrlResponse>>(`${this.actionUrl}/${applicationId}/documents/upload-url`, payload, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n confirmDocumentUpload(\n applicationId: string,\n payload: ConfirmOnboardingDocumentUploadRequest,\n ): Observable<OnboardingApplicationDetailResponse> {\n return this.http\n .post<ApiResponse<OnboardingApplicationDetailResponse>>(`${this.actionUrl}/${applicationId}/documents/confirm`, payload, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n submit(applicationId: string): Observable<OnboardingApplicationResponse> {\n return this.http\n .post<ApiResponse<OnboardingApplicationResponse>>(\n `${this.actionUrl}/${applicationId}/submit`,\n {},\n {\n withCredentials: true,\n },\n )\n .pipe(map((response) => response.data));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiResponse } from '@rolatech/angular-common';\nimport { map, Observable } from 'rxjs';\nimport {\n ApproveOnboardingApplicationRequest,\n FailOnboardingApplicationRequest,\n NeedMoreInfoOnboardingApplicationRequest,\n OnboardingAdminListQuery,\n OnboardingApplicationDetailResponse,\n OnboardingApplicationResponse,\n OnboardingDocumentPreviewUrlResponse,\n} from '../models/onboarding.models';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnboardingAdminService extends BaseService {\n override init(): void {\n this.endpoint = 'onboarding/admin/applications';\n super.init();\n }\n\n list(query: OnboardingAdminListQuery): Observable<OnboardingApplicationResponse[]> {\n return this.http\n .get<ApiResponse<OnboardingApplicationResponse[]>>(this.actionUrl, {\n params: this.params(query),\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n getApplication(applicationId: string): Observable<OnboardingApplicationDetailResponse> {\n return this.http\n .get<ApiResponse<OnboardingApplicationDetailResponse>>(`${this.actionUrl}/${applicationId}`, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n getDocumentPreviewUrl(applicationId: string, documentId: string): Observable<OnboardingDocumentPreviewUrlResponse> {\n return this.http\n .get<ApiResponse<OnboardingDocumentPreviewUrlResponse>>(\n `${this.actionUrl}/${applicationId}/documents/${documentId}/preview-url`,\n {\n withCredentials: true,\n },\n )\n .pipe(map((response) => response.data));\n }\n\n startReview(applicationId: string): Observable<OnboardingApplicationResponse> {\n return this.http\n .post<ApiResponse<OnboardingApplicationResponse>>(\n `${this.actionUrl}/${applicationId}/review/start`,\n {},\n {\n withCredentials: true,\n },\n )\n .pipe(map((response) => response.data));\n }\n\n needMoreInfo(\n applicationId: string,\n payload: NeedMoreInfoOnboardingApplicationRequest,\n ): Observable<OnboardingApplicationResponse> {\n return this.http\n .post<ApiResponse<OnboardingApplicationResponse>>(`${this.actionUrl}/${applicationId}/need-more-info`, payload, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n approve(\n applicationId: string,\n payload: ApproveOnboardingApplicationRequest,\n ): Observable<OnboardingApplicationResponse> {\n return this.http\n .post<ApiResponse<OnboardingApplicationResponse>>(`${this.actionUrl}/${applicationId}/approve`, payload, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n fail(applicationId: string, payload: FailOnboardingApplicationRequest): Observable<OnboardingApplicationResponse> {\n return this.http\n .post<ApiResponse<OnboardingApplicationResponse>>(`${this.actionUrl}/${applicationId}/fail`, payload, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiResponse } from '@rolatech/angular-common';\nimport { map, Observable } from 'rxjs';\nimport { OnboardingDocumentPreviewUrlResponse } from '../models/onboarding.models';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnboardingDocumentService extends BaseService {\n override init(): void {\n this.endpoint = 'onboarding/documents';\n super.init();\n }\n\n getPreviewUrl(documentId: string): Observable<OnboardingDocumentPreviewUrlResponse> {\n return this.http\n .get<ApiResponse<OnboardingDocumentPreviewUrlResponse>>(`${this.actionUrl}/${documentId}/preview-url`, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { map, Observable } from 'rxjs';\nimport { BillingProfileResponse, BillingProfileUpsertParam } from '../models/billing-profile.model';\nimport { ApiResponse } from '@rolatech/angular-common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BillingProfileService extends BaseService {\n override init() {\n this.endpoint = 'billing/profile';\n super.init();\n }\n getOrCreate(): Observable<ApiResponse<BillingProfileResponse>> {\n return this.http.get<ApiResponse<BillingProfileResponse>>(this.actionUrl);\n }\n\n updateProfile(body: BillingProfileUpsertParam): Observable<ApiResponse<BillingProfileResponse>> {\n return this.http.put<ApiResponse<BillingProfileResponse>>(this.actionUrl, body);\n }\n\n patch(body: Partial<BillingProfileUpsertParam>): Observable<ApiResponse<BillingProfileResponse>> {\n return this.http.patch<ApiResponse<BillingProfileResponse>>(this.actionUrl, body);\n }\n\n enable(): Observable<ApiResponse<BillingProfileResponse>> {\n return this.http.patch<ApiResponse<BillingProfileResponse>>(this.actionUrl, {\n enabled: true,\n });\n }\n\n disable(): Observable<ApiResponse<BillingProfileResponse>> {\n return this.http.patch<ApiResponse<BillingProfileResponse>>(this.actionUrl, {\n enabled: false,\n });\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","// 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","export type OfferType = 'RENTAL' | 'SALE';\n\nexport type PaymentFrequency = 'MONTHLY' | 'QUARTERLY' | 'SEMI_ANNUALLY' | 'ANNUALLY';\nexport type FurnitureRequirement = 'FURNISHED' | 'UNFURNISHED';\n\nexport type ApplicantType = 'INDIVIDUAL' | 'CORPORATE' | 'STUDENT';\nexport type GuarantorType = 'INDIVIDUAL' | 'COMPANY';\nexport type EmploymentStatus = 'EMPLOYED' | 'SELF_EMPLOYED' | 'UNEMPLOYED';\n\nexport type VisaStatus = 'CITIZEN' | 'VISA_HOLDER' | 'WAITING_FOR_VISA' | 'NOT_YET_APPLIED_FOR_VISA';\nexport type VisaShareCodeStatus = 'WAITING_FOR_SHARECODE' | 'OTHER';\n\nexport type AdverseCreditStatus =\n | 'NONE'\n | 'ACTIVE_CCJ'\n | 'SATISFIED_CCJ'\n | 'DEBT_MANAGEMENT_PLAN'\n | 'LOW_CREDIT_SCORE'\n | 'OTHER';\nexport type Gender = 'MALE' | 'FEMALE' | 'OTHER' | 'PREFER_NOT_TO_SAY';\n\nexport type SalePaymentMethod = 'CASH' | 'MORTGAGE';\n\nexport type OfferInvoiceOption = 'COMBINED' | 'SEPARATE';\nexport type GuarantorRelationshipType = 'FAMILY' | 'FRIEND' | 'GUARANTOR_SERVICE' | 'OTHER';\n\nexport enum PropertyOfferStatus {\n // ── Draft / submission ────────────────────\n DRAFT = 'DRAFT',\n SUBMITTED = 'SUBMITTED',\n\n // ── Negotiation turn states ───────────────\n VIEWED_BY_AGENT = 'VIEWED_BY_AGENT',\n VIEWED_BY_TENANT = 'VIEWED_BY_TENANT',\n\n COUNTERED_BY_AGENT = 'COUNTERED_BY_AGENT',\n COUNTERED_BY_TENANT = 'COUNTERED_BY_TENANT',\n\n WITHDRAWN_BY_AGENT = 'WITHDRAWN_BY_AGENT',\n WITHDRAWN_BY_TENANT = 'WITHDRAWN_BY_TENANT',\n\n // ── Decision ──────────────────────────────\n ACCEPTED = 'ACCEPTED', // accepted in principle\n REJECTED = 'REJECTED',\n\n // ── Market / listing ──────────────────────\n UNDER_OFFER = 'UNDER_OFFER',\n\n // ── Holding deposit ───────────────────────\n HOLDING_DEPOSIT_PENDING = 'HOLDING_DEPOSIT_PENDING',\n HOLDING_DEPOSIT_PAID = 'HOLDING_DEPOSIT_PAID',\n\n // ── Referencing ───────────────────────────\n REFERENCING = 'REFERENCING',\n REFERENCES_PASSED = 'REFERENCES_PASSED',\n REFERENCES_FAILED = 'REFERENCES_FAILED',\n\n // ── Contract ──────────────────────────────\n CONTRACT_PENDING = 'CONTRACT_PENDING',\n CONTRACT_SIGNED = 'CONTRACT_SIGNED',\n CONTRACT_FAILED = 'CONTRACT_FAILED',\n\n // ── Move-in payments ──────────────────────\n SECURITY_DEPOSIT_PENDING = 'SECURITY_DEPOSIT_PENDING',\n SECURITY_DEPOSIT_PAID = 'SECURITY_DEPOSIT_PAID',\n FIRST_RENT_PENDING = 'FIRST_RENT_PENDING',\n MOVE_IN_PAYMENT_PAID = 'MOVE_IN_PAYMENT_PAID',\n\n // ── Completion ────────────────────────────\n COMPLETED = 'COMPLETED',\n\n // ── Terminal / system ─────────────────────\n FAILED = 'FAILED',\n EXPIRED = 'EXPIRED',\n CANCELLED = 'CANCELLED',\n}\n\nexport interface OfferSummary {\n id: string;\n offerType: OfferType;\n status: PropertyOfferStatus;\n propertyId: string;\n}\n\nexport interface RentalOfferTerms {\n amount: number | null;\n moveInDate: string | null; // ISO date: YYYY-MM-DD\n paymentFrequency: PaymentFrequency | null;\n tenancyLengthMonths: number | null;\n breakClauseMonths: number | null;\n pets: string[] | [];\n smoker: boolean | null;\n furnitureRequirement: FurnitureRequirement | null;\n additionalRequests: string | null;\n internalNote?: string | null;\n}\n\nexport interface PersonAddress {\n line1: string | null;\n line2: string | null;\n city: string | null;\n postcode: string | null;\n country: string | null;\n}\n\nexport interface Guarantor {\n fullName: string | null;\n dob: string | null;\n gender: Gender | null;\n nationality: string | null;\n phone: string | null;\n email: string | null;\n address: PersonAddress;\n type: GuarantorType;\n employmentStatus: EmploymentStatus | null;\n companyName: string | null;\n jobTitle: string | null;\n annualSalary: number | null;\n companyNumber: string | null;\n taxReturnSubmitted: boolean | null;\n additionalFinancialSupport: string | null;\n relationshipType: GuarantorRelationshipType;\n relationshipOther?: string | null;\n}\n\nexport interface Tenant {\n id: string;\n fullName: string | null;\n dob: string | null;\n gender: Gender | null;\n nationality: string | null;\n phone: string | null;\n email: string | null;\n address: PersonAddress;\n\n adverseCreditStatus: AdverseCreditStatus | null;\n\n applicantType: ApplicantType | null;\n visaStatus: VisaStatus | null;\n\n visaShareCodeStatus: VisaShareCodeStatus;\n visaShareCodeOther: string;\n\n // Individual -> employment\n employmentStatus: EmploymentStatus | null;\n companyName: string | null;\n jobTitle: string | null;\n annualSalary: number | null;\n companyNumber: string | null; // self employed\n taxReturnSubmitted: boolean | null; // self employed\n\n // Corporate\n corporateCompanyName: string | null;\n corporateCompanyNumber: string | null;\n corporateJobTitle: string | null;\n\n // Student\n universityName: string | null;\n courseTitle: string | null;\n yearOfStudy: number | null;\n\n guarantor: Guarantor;\n}\n\nexport interface SaleOfferDetails {\n amount: number | null;\n buyerName: string | null;\n email: string | null;\n phone: string | null;\n paymentMethod: SalePaymentMethod | null;\n proposedExchangeDate: string | null; // YYYY-MM-DD\n solicitorCompanyName: string | null;\n}\n\nexport interface CreateRentalOfferPayload {\n propertyId: string;\n rental: RentalOfferTerms;\n tenants: Tenant[];\n}\n\nexport interface CreateSaleOfferPayload {\n propertyId: string;\n sale: SaleOfferDetails;\n}\n\nexport interface PropertyOfferResponse {\n id: string;\n userId: string;\n agentId: string;\n type: OfferType;\n status: PropertyOfferStatus;\n propertyId: string;\n\n rentalTerms?: RentalOfferTerms;\n tenants?: Tenant[];\n\n sale?: SaleOfferDetails;\n\n item: PropertyOfferItem;\n\n invoiceOption: OfferInvoiceOption;\n}\nexport interface PropertyOfferItem {\n propertyId: string;\n title: string;\n description: string;\n amount: number;\n bedrooms: number;\n bathrooms: number;\n receptions: number;\n agentId: string;\n media: PropertyOfferItemMedia[];\n}\nexport interface PropertyOfferItemMedia {\n id: string;\n url: string;\n alt: string;\n width: number;\n height: number;\n uuid: string;\n}\nexport interface CopyTextResponse {\n offerId: string;\n redactContact: boolean;\n text: string;\n}\n\nexport interface UpdatePropertyOfferInternalNoteRequest {\n internalNote: string;\n}\nexport interface PropertyOfferInternalNoteResponse {\n offerId: string;\n internalNote: string;\n}\n","// angular-automation/src/lib/models/automation.models.ts\n\n/** Mirrors AbstractBaseEntity (common fields in your backend). */\nexport interface BaseEntity {\n id: string;\n createdAt?: string; // ISO string, e.g. \"2025-12-25T10:30:00Z\"\n updatedAt?: string; // ISO string\n version?: number;\n}\n\n/** ---- Enums ---- */\n\nexport type AutomationExecutionStatus = 'QUEUED' | 'RUNNING' | 'SUCCEEDED' | 'FAILED' | 'CANCELLED'; // keep if your backend has it; remove if not\n\nexport type AutomationLogLevel = 'INFO' | 'WARN' | 'ERROR' | 'DEBUG';\n\nexport type ScheduleCron = 'EVERY_5_MINUTES' | 'EVERY_15_MINUTES' | 'HOURLY' | 'DAILY' | 'WEEKLY';\n\n/** ---- Entities ---- */\n\nexport interface AutomationDefinition extends BaseEntity {\n code: string; // unique, e.g. \"PROPERTY_ALTO_SYNC\"\n name: string;\n description?: string | null;\n handlerKey: string; // Spring bean name, e.g. \"altoSyncAutomationHandler\"\n defaultInputJson?: string | null; // raw JSON string from backend\n enabled: boolean;\n}\n\nexport interface AutomationExecution extends BaseEntity {\n definitionId: string;\n scheduleId?: string | null;\n\n status: AutomationExecutionStatus;\n\n queuedAt?: string | null; // Instant -> ISO string\n startedAt?: string | null;\n finishedAt?: string | null;\n\n processed: number;\n total: number;\n\n lastSeq: number;\n\n inputJson?: string | null; // raw JSON string\n metadata?: Record<string, any> | null; // Map<String,Object> (json)\n idempotencyKey?: string | null;\n\n errorMessage?: string | null;\n}\n\nexport interface AutomationSchedule extends BaseEntity {\n definitionId: string;\n\n name: string;\n\n schedule: ScheduleCron;\n\n inputJson?: string | null; // raw JSON string override/extra config per schedule\n\n enabled: boolean;\n\n nextRunAt?: string | null; // Instant -> ISO string\n lastRunAt?: string | null;\n}\n\nexport interface AutomationExecutionLog extends BaseEntity {\n executionId: string;\n level: AutomationLogLevel;\n message: string;\n}\n\n/** ---- Optional: enum metadata for UI (label/description) ---- */\n\nexport interface ScheduleCronMeta {\n value: ScheduleCron;\n label: string;\n description: string;\n}\n\nexport const SCHEDULE_CRON_META: readonly ScheduleCronMeta[] = [\n { value: 'EVERY_5_MINUTES', label: 'Every 5 minutes', description: 'Runs every 5 minutes' },\n { value: 'EVERY_15_MINUTES', label: 'Every 15 minutes', description: 'Runs every 15 minutes' },\n { value: 'HOURLY', label: 'Hourly', description: 'Runs once per hour' },\n { value: 'DAILY', label: 'Daily', description: 'Runs once per day' },\n { value: 'WEEKLY', label: 'Weekly', description: 'Runs once per week' },\n] as const;\n","import { EnvironmentProviders, Provider, inject, makeEnvironmentProviders, provideAppInitializer } 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 provideAppInitializer(() => {\n inject(NavigationService);\n }),\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { PropertyOfferStatus } from '../interfaces/property-offer';\n\nexport const PROPERTY_OFFER_STATUS_LABEL: Record<PropertyOfferStatus, string> = {\n [PropertyOfferStatus.DRAFT]: 'Draft',\n [PropertyOfferStatus.SUBMITTED]: 'Submitted',\n\n [PropertyOfferStatus.VIEWED_BY_AGENT]: 'Viewed by agent',\n [PropertyOfferStatus.VIEWED_BY_TENANT]: 'Viewed by tenant',\n\n [PropertyOfferStatus.COUNTERED_BY_AGENT]: 'Countered by agent',\n [PropertyOfferStatus.COUNTERED_BY_TENANT]: 'Countered by tenant',\n\n [PropertyOfferStatus.WITHDRAWN_BY_AGENT]: 'Withdrawn by agent',\n [PropertyOfferStatus.WITHDRAWN_BY_TENANT]: 'Withdrawn by tenant',\n\n [PropertyOfferStatus.ACCEPTED]: 'Accepted',\n [PropertyOfferStatus.REJECTED]: 'Rejected',\n\n [PropertyOfferStatus.UNDER_OFFER]: 'Under offer',\n\n [PropertyOfferStatus.HOLDING_DEPOSIT_PENDING]: 'Holding deposit pending',\n [PropertyOfferStatus.HOLDING_DEPOSIT_PAID]: 'Holding deposit paid',\n\n [PropertyOfferStatus.REFERENCING]: 'Referencing',\n [PropertyOfferStatus.REFERENCES_PASSED]: 'References passed',\n [PropertyOfferStatus.REFERENCES_FAILED]: 'References failed',\n\n [PropertyOfferStatus.CONTRACT_PENDING]: 'Contract pending',\n [PropertyOfferStatus.CONTRACT_SIGNED]: 'Contract signed',\n [PropertyOfferStatus.CONTRACT_FAILED]: 'Contract failed',\n\n [PropertyOfferStatus.SECURITY_DEPOSIT_PENDING]: 'Security deposit pending',\n [PropertyOfferStatus.SECURITY_DEPOSIT_PAID]: 'Security deposit paid',\n [PropertyOfferStatus.FIRST_RENT_PENDING]: 'First rent pending',\n [PropertyOfferStatus.MOVE_IN_PAYMENT_PAID]: 'Move-in payment paid',\n\n [PropertyOfferStatus.COMPLETED]: 'Completed',\n\n [PropertyOfferStatus.FAILED]: 'Failed',\n [PropertyOfferStatus.EXPIRED]: 'Expired',\n [PropertyOfferStatus.CANCELLED]: 'Cancelled',\n};\n\nexport function offerStatusLabel(status: PropertyOfferStatus | null | undefined): string {\n if (!status) return '—';\n return PROPERTY_OFFER_STATUS_LABEL[status] ?? String(status);\n}\n","import {\n OnboardingApplicantType,\n OnboardingDocumentType,\n OnboardingIssueType,\n OnboardingStatus,\n OnboardingVatMode,\n} from '../models/onboarding.models';\n\nexport const ONBOARDING_STATUS_LABEL: Record<OnboardingStatus, string> = {\n DRAFT: 'Draft',\n IN_PROGRESS: 'In progress',\n SUBMITTED: 'Submitted',\n IN_REVIEW: 'In review',\n NEED_MORE_INFO: 'Need more info',\n APPROVED: 'Approved',\n FAILED: 'Failed',\n};\n\nexport const ONBOARDING_APPLICANT_TYPE_LABEL: Record<OnboardingApplicantType, string> = {\n INDIVIDUAL: 'Individual',\n COMPANY: 'Company',\n};\n\nexport const ONBOARDING_DOCUMENT_TYPE_LABEL: Record<OnboardingDocumentType, string> = {\n PASSPORT: 'Passport',\n CERTIFICATE_OF_INCORPORATION: 'Certificate of incorporation',\n INDUSTRY_CERTIFICATE: 'Industry certificate',\n PROOF_OF_ADDRESS: 'Proof of address',\n BANK_STATEMENT: 'Bank statement',\n OTHER: 'Other',\n};\n\nexport const ONBOARDING_ISSUE_TYPE_LABEL: Record<OnboardingIssueType, string> = {\n FIELD: 'Field issue',\n DOCUMENT: 'Document issue',\n GENERAL: 'General issue',\n};\n\nexport const ONBOARDING_VAT_MODE_LABEL: Record<OnboardingVatMode, string> = {\n NON_VAT_REGISTERED: 'Non-VAT registered',\n VAT_REGISTERED: 'VAT registered',\n MANUAL_REVIEW_REQUIRED: 'Manual review required',\n};\n\nexport function onboardingStatusLabel(status: OnboardingStatus | null | undefined): string {\n if (!status) return '—';\n return ONBOARDING_STATUS_LABEL[status] ?? String(status);\n}\n\nexport function onboardingApplicantTypeLabel(type: OnboardingApplicantType | null | undefined): string {\n if (!type) return '—';\n return ONBOARDING_APPLICANT_TYPE_LABEL[type] ?? String(type);\n}\n\nexport function onboardingDocumentTypeLabel(type: OnboardingDocumentType | null | undefined): string {\n if (!type) return '—';\n return ONBOARDING_DOCUMENT_TYPE_LABEL[type] ?? String(type);\n}\n\nexport function onboardingIssueTypeLabel(type: OnboardingIssueType | null | undefined): string {\n if (!type) return '—';\n return ONBOARDING_ISSUE_TYPE_LABEL[type] ?? String(type);\n}\n\nexport function onboardingVatModeLabel(mode: OnboardingVatMode | null | undefined): string {\n if (!mode) return '—';\n return ONBOARDING_VAT_MODE_LABEL[mode] ?? String(mode);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map","shareReplay"],"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/services/automation.service.ts","../../../../packages/angular-services/src/lib/services/language.service.ts","../../../../packages/angular-services/src/lib/services/i18n-locale.service.ts","../../../../packages/angular-services/src/lib/services/enum-api.client.ts","../../../../packages/angular-services/src/lib/services/enum-cache.service.ts","../../../../packages/angular-services/src/lib/services/invoice-line.service.ts","../../../../packages/angular-services/src/lib/services/property-offer-counter.service.ts","../../../../packages/angular-services/src/lib/services/application.service.ts","../../../../packages/angular-services/src/lib/services/platform-endpoint.service.ts","../../../../packages/angular-services/src/lib/services/platform-service-registry.service.ts","../../../../packages/angular-services/src/lib/services/platform-auth-client.service.ts","../../../../packages/angular-services/src/lib/services/platform-user.service.ts","../../../../packages/angular-services/src/lib/services/permission.service.ts","../../../../packages/angular-services/src/lib/services/role.service.ts","../../../../packages/angular-services/src/lib/services/organization-invitation.service.ts","../../../../packages/angular-services/src/lib/services/organization-member.service.ts","../../../../packages/angular-services/src/lib/services/onboarding-applicant.service.ts","../../../../packages/angular-services/src/lib/services/onboarding-admin.service.ts","../../../../packages/angular-services/src/lib/services/onboarding-document.service.ts","../../../../packages/angular-services/src/lib/services/billing-profile.service.ts","../../../../packages/angular-services/src/lib/interceptor/loading.interceptor.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/lib/interfaces/property-offer.ts","../../../../packages/angular-services/src/lib/interfaces/property-viewing.ts","../../../../packages/angular-services/src/lib/models/automation.models.ts","../../../../packages/angular-services/src/provider.ts","../../../../packages/angular-services/src/lib/ui/property-offer-status-label.ts","../../../../packages/angular-services/src/lib/ui/onboarding-label.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, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { ApiRequestOptions, ApiResponse, APP_CONFIG, type AppConfig } from '@rolatech/angular-common';\nimport { map, Observable, pipe, tap, type OperatorFunction } from 'rxjs';\n\n// --- (Include your provided interfaces here: ApiRequestOptions, ApiResponse, etc.) ---\n\ntype Primitive = string | number | boolean | Date;\ntype ParamItem = Primitive | null | undefined;\ntype ParamValue = ParamItem | ParamItem[];\ntype QueryParams = object;\ntype ParamsInput = HttpParams | QueryParams | ApiRequestOptions;\n\n/**\n * Clean configuration object to replace positional arguments\n */\nexport interface HttpOptions {\n params?: ParamsInput;\n headers?: HttpHeaders | Record<string, string | string[]>;\n withCredentials?: boolean;\n}\n\n@Injectable()\nexport abstract class BaseService {\n protected readonly http = inject(HttpClient);\n protected readonly environment = inject<AppConfig>(APP_CONFIG);\n\n protected abstract readonly endpoint: string;\n\n protected get withCredentials(): boolean {\n return true;\n }\n\n protected get actionUrl(): string {\n return this.joinUrl(this.environment.baseUrl, this.endpoint);\n }\n\n // 👇 1. Refactored to use the HttpOptions pattern\n protected get<TResponse>(path?: string, options?: HttpOptions): Observable<TResponse> {\n return this.http.get<TResponse>(this.buildUrl(path), {\n params: this.buildParams(options?.params),\n headers: this.buildHeaders(options?.headers),\n withCredentials: options?.withCredentials ?? this.withCredentials,\n });\n }\n\n protected post<TResponse, TBody = unknown>(path?: string, body?: TBody, options?: HttpOptions): Observable<TResponse> {\n return this.http.post<TResponse>(this.buildUrl(path), body ?? {}, {\n params: this.buildParams(options?.params),\n headers: this.buildHeaders(options?.headers),\n withCredentials: options?.withCredentials ?? this.withCredentials,\n });\n }\n\n protected put<TResponse, TBody = unknown>(path: string | undefined, body: TBody, options?: HttpOptions): Observable<TResponse> {\n return this.http.put<TResponse>(this.buildUrl(path), body, {\n params: this.buildParams(options?.params),\n headers: this.buildHeaders(options?.headers),\n withCredentials: options?.withCredentials ?? this.withCredentials,\n });\n }\n\n protected patch<TResponse, TBody = unknown>(path: string | undefined, body?: TBody, options?: HttpOptions): Observable<TResponse> {\n return this.http.patch<TResponse>(this.buildUrl(path), body, {\n params: this.buildParams(options?.params),\n headers: this.buildHeaders(options?.headers),\n withCredentials: options?.withCredentials ?? this.withCredentials,\n });\n }\n\n protected delete<TResponse, TBody = never>(\n path?: string,\n options?: HttpOptions & { body?: TBody },\n ): Observable<TResponse> {\n return this.http.delete<TResponse>(this.buildUrl(path), {\n body: options?.body,\n params: this.buildParams(options?.params),\n headers: this.buildHeaders(options?.headers),\n withCredentials: options?.withCredentials ?? this.withCredentials,\n });\n }\n\n protected buildUrl(path?: string): string {\n return path ? this.joinUrl(this.actionUrl, path) : this.actionUrl;\n }\n // 👇 4. Updated to accept the specific ApiRequestOptions\n protected buildParams(params?: ParamsInput): HttpParams {\n let httpParams = new HttpParams();\n if (!params) return httpParams;\n if (params instanceof HttpParams) return params;\n\n for (const [key, value] of Object.entries(params)) {\n httpParams = this.appendParam(httpParams, key, value as ParamValue);\n }\n\n return httpParams;\n }\n protected buildHeaders(headers?: HttpHeaders | Record<string, string | string[]>): HttpHeaders | undefined {\n if (!headers) {\n return undefined;\n }\n\n if (headers instanceof HttpHeaders) {\n return headers;\n }\n\n let result = new HttpHeaders();\n\n for (const [key, value] of Object.entries(headers)) {\n if (Array.isArray(value)) {\n value.forEach((item) => {\n result = result.append(key, item);\n });\n } else {\n result = result.set(key, value);\n }\n }\n\n return result;\n }\n\n protected unwrapData<T>(): OperatorFunction<ApiResponse<T>, T> {\n return pipe(\n tap((response) => {\n // Assuming '0' or '200' is your backend's success code.\n // Adjust this condition based on your actual API design.\n if (response.code !== 0 && response.code !== 200) {\n // This throws the error to the component's error() block,\n // completely bypassing the next() block.\n throw new Error(response.message || 'An unknown API error occurred');\n }\n }),\n map((response) => response.data),\n );\n }\n\n protected unwrapPayload<T>(payload: ApiResponse<T> | { data?: T } | T): T {\n if (payload && typeof payload === 'object' && 'data' in payload) {\n return payload.data as T;\n }\n\n return payload as T;\n }\n\n protected stringifyParamValue(value: Primitive): string {\n return value instanceof Date ? value.toISOString() : String(value);\n }\n\n private appendParam(params: HttpParams, key: string, value: ParamValue): HttpParams {\n // 1. Check the top-level value\n if (this.isNullOrEmpty(value)) return params;\n\n if (Array.isArray(value)) {\n let nextParams = params;\n for (const item of value) {\n // 2. Capture the item in a constant after the null check\n if (!this.isNullOrEmpty(item)) {\n // TypeScript now knows 'item' is not null or undefined here\n nextParams = nextParams.append(key, this.stringifyParamValue(item));\n }\n }\n return nextParams;\n }\n\n // 3. Since we checked isNullOrEmpty at the start, 'value' is safe here\n return params.set(key, this.stringifyParamValue(value));\n }\n\n private isNullOrEmpty(val: any): val is null | undefined | '' {\n return val === null || val === undefined || val === '';\n }\n\n private joinUrl(...parts: string[]): string {\n return parts\n .filter(Boolean)\n .map((part) => part.trim())\n .join('/')\n .replace(/(?<!:)\\/{2,}/g, '/');\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 protected override readonly endpoint = 'products';\n\n find(options?: any, withCredentials = true): Observable<any> {\n return this.get<any>(undefined, {\n params: options,\n withCredentials,\n });\n }\n\n getProduct<TResponse = any>(productId: string, options?: any): Observable<TResponse> {\n return this.get<TResponse>(productId, {\n ...(options ?? {}),\n withCredentials: options?.withCredentials ?? true,\n });\n }\n\n create(data: any): Observable<any> {\n return this.post<any>(undefined, data, {\n withCredentials: true,\n });\n }\n\n update(id: string, data: any): Observable<any> {\n return this.put<any>(id, data, {\n withCredentials: true,\n });\n }\n\n deleteProduct<TResponse = any>(productId: string, options?: any): Observable<TResponse> {\n return this.delete<TResponse>(productId, {\n ...(options ?? {}),\n withCredentials: options?.withCredentials ?? true,\n });\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 { forkJoin, map, Observable, of, switchMap, tap } from 'rxjs';\nimport { ApiResponse } from '@rolatech/angular-common';\nimport { BaseService } from './base.service';\nimport { ProductService } from './product.service';\n\nexport enum CartEventType {\n CartAdd = 0,\n CartRemove = 1,\n}\n\nexport interface CartItem {\n id: string;\n productId?: string | null;\n variantId?: string | null;\n product?: unknown;\n variant?: unknown;\n}\n\nexport interface CartQuery {\n [key: string]: string | number | boolean | null | undefined;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CartService extends BaseService {\n protected override readonly endpoint = 'carts';\n\n private readonly productService = inject(ProductService);\n\n readonly cartEvent = new EventEmitter<CartEventType>();\n readonly cartEvent$ = this.cartEvent.asObservable();\n\n find(options?: CartQuery): Observable<any> {\n return this.get<any>(undefined, {\n params: options,\n });\n }\n\n create(data: unknown): Observable<any> {\n return this.post<any>(undefined, data);\n }\n\n update(id: string, data: unknown): Observable<any> {\n return this.put<any>(id, data);\n }\n\n findDetails(options?: CartQuery): Observable<CartItem[]> {\n return this.get<ApiResponse<CartItem[]>>(undefined, {\n params: options,\n }).pipe(\n this.unwrapData(),\n map((items) => items ?? []),\n map((items) => this.normalizeItems(items)),\n // load related data only once\n // then enrich items immutably\n // and return clean typed result\n // no in-place mutation\n switchMap((items) => {\n const productIds = this.uniqueIds(items.map((item) => item.productId));\n const variantIds = this.uniqueIds(items.map((item) => item.variantId));\n\n return forkJoin({\n products: productIds.length ? this.productService.findByIds(productIds) : of([]),\n variants: variantIds.length ? this.productService.findVariantsByIds(variantIds) : of([]),\n }).pipe(\n map(({ products, variants }) => {\n const productList = this.unwrapFlexible(products);\n const variantList = this.unwrapFlexible(variants);\n\n return items.map((item) => ({\n ...item,\n product: productList.find((product: any) => product?.id === item.productId),\n variant: variantList.find((variant: any) => variant?.id === item.variantId),\n }));\n }),\n );\n }),\n );\n }\n\n by(options?: CartQuery): Observable<CartItem[]> {\n return this.get<ApiResponse<CartItem[]>>('items/by', {\n params: options,\n }).pipe(this.unwrapData());\n }\n\n me(options?: CartQuery): Observable<CartItem[]> {\n return this.get<ApiResponse<CartItem[]>>('me', {\n params: options,\n }).pipe(this.unwrapData());\n }\n\n remove(cartId: string): Observable<void> {\n return this.delete<ApiResponse<void>>(cartId).pipe(\n tap(() => {\n this.cartEvent.emit(CartEventType.CartRemove);\n }),\n this.unwrapData(),\n );\n }\n\n deleteByIds(ids: string[]): Observable<void> {\n return this.delete<ApiResponse<void>, string[]>('me', { body: ids }).pipe(\n tap(() => {\n this.cartEvent.emit(CartEventType.CartRemove);\n }),\n this.unwrapData(),\n );\n }\n\n deleteAll(): Observable<void> {\n return this.delete<ApiResponse<void>>('me').pipe(\n tap(() => {\n this.cartEvent.emit(CartEventType.CartRemove);\n }),\n this.unwrapData(),\n );\n }\n\n private normalizeItems(items: CartItem[]): CartItem[] {\n return Array.isArray(items) ? items : [];\n }\n\n private uniqueIds(values: Array<string | null | undefined>): string[] {\n return [...new Set(values.filter((value): value is string => !!value))];\n }\n\n private unwrapFlexible<T>(payload: ApiResponse<T> | { data?: T } | T): T {\n if (payload && typeof payload === 'object' && 'data' in payload) {\n return payload.data as T;\n }\n\n return payload as T;\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({\n providedIn: 'root',\n})\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 { 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 protected override readonly endpoint = 'media';\n\n upload(data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/upload`, data, {\n reportProgress: false,\n withCredentials: true,\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({\n providedIn: 'root',\n})\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.observe([Breakpoints.Small, Breakpoints.HandsetPortrait]).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 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({\n providedIn: 'root',\n})\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({\n providedIn: 'root',\n})\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 protected override readonly endpoint = 'orders';\n\n create(data: any): Observable<any> {\n return this.post<any>(undefined, data, {\n withCredentials: true,\n });\n }\n\n getOrder<TResponse = any>(orderId: string, options?: any): Observable<TResponse> {\n return this.get<TResponse>(orderId, {\n ...(options ?? {}),\n withCredentials: options?.withCredentials ?? true,\n });\n }\n\n createPaymentIntent(id: number): Observable<any> {\n return this.post<any>(\n `${id}/create-payment-intent`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n by(options: any): Observable<any> {\n return this.get<any>('items/by', {\n params: options,\n withCredentials: true,\n });\n }\n me(options: any): Observable<any> {\n return this.get<any>('me', {\n params: options,\n withCredentials: true,\n });\n }\n merchant(options: any): Observable<any> {\n return this.get<any>('merchant', {\n params: options,\n withCredentials: true,\n });\n }\n timeline(id: string): Observable<any> {\n return this.get<any>(`${id}/timeline`, {\n withCredentials: true,\n });\n }\n pay(id: string): Observable<any> {\n return this.post<any>(\n `${id}/pay`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n refund(id: string, data: any): Observable<any> {\n return this.post<any>(`${id}/refund`, data, {\n withCredentials: true,\n });\n }\n findAllReturns(options: any): Observable<any> {\n return this.get<any>('returns', {\n params: options,\n withCredentials: true,\n });\n }\n findAllReturnsByInstructor(options: any): Observable<any> {\n return this.get<any>('returns/instructor', {\n params: options,\n withCredentials: true,\n });\n }\n getReturn(id: string): Observable<any> {\n return this.get<any>(`returns/${id}`, {\n withCredentials: true,\n });\n }\n returnApprove(id: string): Observable<any> {\n return this.post<any>(\n `returns/${id}/approve`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n returnReject(id: string, data: any): Observable<any> {\n return this.post<any>(`returns/${id}/reject`, data, {\n withCredentials: true,\n });\n }\n cancel(id: string): Observable<any> {\n return this.post<any>(\n `${id}/cancel`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n countMeByStatus(options: any): Observable<any> {\n return this.get<any>('count/me/by', {\n params: options,\n withCredentials: true,\n });\n }\n fulfill(orderId: string, data: any) {\n return this.post<any>(`${orderId}/fulfillment`, data, {\n withCredentials: true,\n });\n }\n getMerchantOrder(orderId: string) {\n return this.get<any>(`${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 protected override readonly endpoint = 'inventories';\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 protected override readonly endpoint = 'products/categories';\n\n find(options?: any, withCredentials = true): Observable<any> {\n return this.get<any>(undefined, {\n params: options,\n withCredentials,\n });\n }\n\n getProductCategory<TResponse = any>(categoryId: string, options?: any): Observable<TResponse> {\n return this.get<TResponse>(categoryId, {\n ...(options ?? {}),\n withCredentials: options?.withCredentials ?? true,\n });\n }\n\n create(data: any): Observable<any> {\n return this.post<any>(undefined, data, {\n withCredentials: true,\n });\n }\n\n update(id: string, data: any): Observable<any> {\n return this.put<any>(id, data, {\n withCredentials: true,\n });\n }\n\n deleteProductCategory<TResponse = any>(categoryId: string, options?: any): Observable<TResponse> {\n return this.delete<TResponse>(categoryId, {\n ...(options ?? {}),\n withCredentials: options?.withCredentials ?? true,\n });\n }\n\n uploadMedia(id: string, data: FormData): Observable<any> {\n return this.post<any, FormData>(`${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id: string, mediaId: string): Observable<any> {\n return this.delete<any>(`${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n importFromExcel(data: FormData): Observable<any> {\n return this.post<any, FormData>('excel', data, {\n withCredentials: true,\n });\n }\n createFromExcel(data: any): Observable<any> {\n return this.post<any>('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 protected override readonly endpoint = 'fulfillments';\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';\nimport { PostQuery, PostRecord, SavePostRequest } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PostService extends BaseService {\n protected override readonly endpoint = 'posts';\n\n list(options?: PostQuery, withCredentials = false): Observable<any> {\n return this.get<any>(undefined, {\n params: options,\n withCredentials,\n });\n }\n\n listPublished(options?: PostQuery): Observable<any> {\n return this.list({ ...options, status: options?.status ?? 'PUBLISHED' }, false);\n }\n\n getByIdOrSlug(idOrSlug: string, withCredentials = false): Observable<any> {\n return this.get<any>(idOrSlug, {\n withCredentials,\n });\n }\n\n me(options?: PostQuery): Observable<any> {\n return this.get<any>('me', {\n params: options,\n });\n }\n\n merchant(options?: PostQuery): Observable<any> {\n return this.get<any>('merchant', {\n params: options,\n withCredentials: true,\n });\n }\n\n createPost(payload: SavePostRequest): Observable<PostRecord> {\n return this.post<PostRecord, SavePostRequest>(undefined, payload, {\n withCredentials: true,\n });\n }\n\n updatePost(id: string, payload: Partial<SavePostRequest>): Observable<PostRecord> {\n return this.put<PostRecord, Partial<SavePostRequest>>(id, payload, {\n withCredentials: true,\n });\n }\n\n saveDraft(id: string, payload: Partial<SavePostRequest> = {}): Observable<PostRecord> {\n return this.post<PostRecord, Partial<SavePostRequest>>(`${id}/draft`, payload, {\n withCredentials: true,\n });\n }\n\n publish(id: string, payload: Partial<SavePostRequest> = {}): Observable<PostRecord> {\n return this.post<PostRecord, Partial<SavePostRequest>>(`${id}/publish`, payload, {\n withCredentials: true,\n });\n }\n\n preview(payload: Partial<SavePostRequest>): Observable<any> {\n return this.post<any, Partial<SavePostRequest>>('preview', payload, {\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 protected override readonly endpoint = 'orders/payouts';\n\n find(options?: any, withCredentials = true): Observable<any> {\n return this.get<any>(undefined, {\n params: options,\n withCredentials,\n });\n }\n\n getPayout(id: string, withCredentials = true): Observable<any> {\n return this.get<any>(id, {\n withCredentials,\n });\n }\n\n me(options: any): Observable<any> {\n return this.get<any>('me', {\n params: options,\n withCredentials: true,\n });\n }\n approve(id: string): Observable<any> {\n return this.post<any>(\n `${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 protected override readonly endpoint = 'resources';\n\n find(options?: any, withCredentials = true): Observable<any> {\n return this.get<any>(undefined, {\n params: options,\n withCredentials,\n });\n }\n\n getResource<TResponse = any>(resourceId: string, options?: any): Observable<TResponse> {\n return this.get<TResponse>(resourceId, {\n ...(options ?? {}),\n withCredentials: options?.withCredentials ?? true,\n });\n }\n\n create(data: any): Observable<any> {\n return this.post<any>(undefined, data, {\n withCredentials: true,\n });\n }\n\n update(id: string, data: any): Observable<any> {\n return this.put<any>(id, data, {\n withCredentials: true,\n });\n }\n\n deleteResource<TResponse = any>(resourceId: string, options?: any): Observable<TResponse> {\n return this.delete<TResponse>(resourceId, {\n ...(options ?? {}),\n withCredentials: options?.withCredentials ?? true,\n });\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: 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 protected override readonly endpoint = 'resources/categories';\n\n find(options?: any, withCredentials = true): Observable<any> {\n return this.get<any>(undefined, {\n params: options,\n withCredentials,\n });\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}\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 protected override readonly endpoint = 'bookings';\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 protected override readonly endpoint = 'facilities';\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 AmenityService extends BaseService {\n protected override readonly endpoint = 'resources/amenities';\n\n find(options?: any, withCredentials = true): Observable<any> {\n return this.get<any>(undefined, {\n params: options,\n withCredentials,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { map, Observable } from 'rxjs';\nimport { BaseService } from './base.service';\nimport { HttpResponse } from '@angular/common/http';\nimport { ApiResponse } from '@rolatech/angular-common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PropertyService extends BaseService {\n protected override readonly endpoint = 'properties';\n\n find(options?: any, withCredentials = true): Observable<any> {\n return this.get<any>(undefined, {\n params: options,\n withCredentials,\n });\n }\n\n getProperty<TResponse = any>(propertyId: string, options?: any): Observable<TResponse> {\n return this.get<TResponse>(propertyId, {\n ...(options ?? {}),\n withCredentials: options?.withCredentials ?? true,\n });\n }\n\n create(data: any): Observable<any> {\n return this.post<any>(undefined, data, {\n withCredentials: true,\n });\n }\n\n update(id: string, data: any): Observable<any> {\n return this.put<any>(id, data, {\n withCredentials: true,\n });\n }\n\n deleteProperty<TResponse = any>(propertyId: string, options?: any): Observable<TResponse> {\n return this.delete<TResponse>(propertyId, {\n ...(options ?? {}),\n withCredentials: options?.withCredentials ?? true,\n });\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 byAgent(options: any): Observable<ApiResponse<any>> {\n return this.http.get<ApiResponse<any>>(`${this.actionUrl}/by/agent`, {\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 joinFeatureWaitlist(\n featureCode: string,\n data: {\n featureLabel?: string | null;\n pagePath?: string | null;\n fullName?: string | null;\n email: string;\n phone?: string | null;\n note?: string | null;\n },\n ) {\n return this.http.post(`${this.actionUrl}/features/${featureCode}/waitlist`, data, { 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 // viewings\n findUpcomingViewings(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/viewings/upcoming`, {\n params: options,\n withCredentials: true,\n });\n }\n findViewings(options: any): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/viewings`, {\n params: options,\n withCredentials: true,\n })\n .pipe(map((response) => this.normalizeViewingResponse(response)));\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(map((response) => this.normalizeViewingResponse(response)));\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(map((response) => this.normalizeViewingResponse(response)));\n }\n requestViewing(propertyId: string, data: any): Observable<any> {\n return this.http\n .post<any>(`${this.actionUrl}/${propertyId}/viewings`, data, {\n withCredentials: true,\n })\n .pipe(map((response) => this.normalizeViewingResponse(response)));\n }\n confirmViewing(viewingId: string, slotId: string): Observable<any> {\n return this.http\n .post<any>(\n `${this.actionUrl}/viewings/${viewingId}/confirm?slotId=${slotId}`,\n {},\n {\n withCredentials: true,\n },\n )\n .pipe(map((response) => this.normalizeViewingResponse(response)));\n }\n counterViewing(viewingId: string, data: { counterSlots: Array<{ date: string; time: string }> }): Observable<any> {\n return this.http\n .post<any>(`${this.actionUrl}/viewings/${viewingId}/counter`, data, {\n withCredentials: true,\n })\n .pipe(map((response) => this.normalizeViewingResponse(response)));\n }\n getViewing(viewingId: string): Observable<any> {\n return this.http\n .get<any>(`${this.actionUrl}/viewings/${viewingId}`, { withCredentials: true })\n .pipe(map((response) => this.normalizeViewingResponse(response)));\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 private normalizeViewingResponse(response: any): any {\n if (!response || typeof response !== 'object' || !('data' in response)) {\n return response;\n }\n\n return {\n ...response,\n data: Array.isArray(response.data)\n ? response.data.map((item: any) => this.normalizeViewing(item))\n : this.normalizeViewing(response.data),\n };\n }\n\n private normalizeViewing(viewing: any): any {\n if (!viewing || typeof viewing !== 'object') {\n return viewing;\n }\n\n return {\n ...viewing,\n jobTitle: viewing.jobTitle ?? viewing.profession ?? null,\n monthlyBudget: viewing.monthlyBudget ?? viewing.budgetPerMonth ?? null,\n annualIncome: viewing.annualIncome ?? viewing.income ?? null,\n moveInDate: viewing.moveInDate ?? viewing.startDate ?? null,\n tenantCategory: viewing.tenantCategory ?? viewing.applicantType ?? null,\n viewerCategory: this.normalizeCode(viewing.viewerCategory),\n status: this.normalizeCode(viewing.status),\n slotProposalSource: this.normalizeCode(\n viewing.slotProposalSource ?? viewing.proposedSlotsSource ?? viewing.lastSlotProposalBy ?? viewing.counteredBy,\n ),\n slotDecisionRequired:\n typeof viewing.slotDecisionRequired === 'boolean'\n ? viewing.slotDecisionRequired\n : typeof viewing.requiresSlotAcceptance === 'boolean'\n ? viewing.requiresSlotAcceptance\n : null,\n counteredAt: viewing.counteredAt ?? viewing.slotCounteredAt ?? null,\n proposedSlots: (Array.isArray(viewing.proposedSlots) ? viewing.proposedSlots : []).map((slot: any) => ({\n ...slot,\n source: this.normalizeCode(slot?.source ?? slot?.slotSource ?? viewing.slotProposalSource ?? null),\n state: this.normalizeCode(slot?.state ?? slot?.status ?? null),\n })),\n item: viewing.item ? this.normalizeViewingItem(viewing.item, viewing.property?.media) : viewing.item,\n };\n }\n\n private normalizeViewingItem(item: any, fallbackMedia?: any): any {\n if (!item || typeof item !== 'object') {\n return item;\n }\n\n const media = this.normalizeViewingMedia(item.media);\n const fallbackUrl = [item.mediaUrl, item.propertyMediaUrl, item.thumbnailUrl].find(\n (value) => typeof value === 'string' && value.trim().length > 0,\n );\n const inheritedMedia = this.normalizeViewingMedia(fallbackMedia);\n\n return {\n ...item,\n media: media.length > 0 ? media : fallbackUrl ? [{ id: '', url: fallbackUrl, alt: item.title ?? '' }] : inheritedMedia,\n };\n }\n\n private normalizeViewingMedia(media: any): any[] {\n if (Array.isArray(media)) {\n return media;\n }\n\n if (media && typeof media === 'object') {\n return [media];\n }\n\n return [];\n }\n\n private normalizeCode(value: any): any {\n return typeof value === 'string' ? value.trim().toUpperCase() : value;\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 protected override readonly endpoint = 'properties/user-features';\n\n find<TResponse = any>(options?: any, withCredentials = true): Observable<TResponse> {\n return this.get<TResponse>(undefined, {\n params: options,\n withCredentials,\n });\n }\n\n update(featureId: string, data: any): Observable<any> {\n return this.put<any>(featureId, data, {\n withCredentials: true,\n });\n }\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 protected override readonly endpoint = 'payments';\n\n find(options?: any, withCredentials = true): Observable<any> {\n return this.get<any>(undefined, {\n params: options,\n withCredentials,\n });\n }\n\n getPayment(id: string, withCredentials = true): Observable<any> {\n return this.get<any>(id, {\n withCredentials,\n });\n }\n\n me(options: any): Observable<any> {\n return this.get<any>('me', {\n params: options,\n withCredentials: true,\n });\n }\n createPaymentIntent(data: any): Observable<any> {\n return this.post<any>('intents', data, {\n withCredentials: true,\n });\n }\n createPayment(data: any): Observable<any> {\n return this.post<any>(undefined, 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 protected override readonly endpoint = 'offerings';\n\n find(options?: any, withCredentials = true): Observable<any> {\n return this.get<any>(undefined, {\n params: options,\n withCredentials,\n });\n }\n\n getOffering<TResponse = any>(offeringId: string, options?: any): Observable<TResponse> {\n return this.get<TResponse>(offeringId, {\n ...(options ?? {}),\n withCredentials: options?.withCredentials ?? true,\n });\n }\n\n createOffering(data: any): Observable<any> {\n return this.post<any>(undefined, data, {\n withCredentials: true,\n });\n }\n\n updateOffering(offeringId: string, data: any): Observable<any> {\n return this.put<any>(offeringId, data, {\n withCredentials: true,\n });\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 { Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MembershipService extends BaseService {\n protected override readonly endpoint = 'memberships';\n\n findMemberships(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}`, {\n params: options,\n withCredentials: true,\n });\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 protected override readonly endpoint = 'categories';\n\n find(options?: any, withCredentials = true): Observable<any> {\n return this.get<any>(undefined, {\n params: options,\n withCredentials,\n });\n }\n\n getCategory<TResponse = any>(categoryId: string, options?: any): Observable<TResponse> {\n return this.get<TResponse>(categoryId, {\n ...(options ?? {}),\n withCredentials: options?.withCredentials ?? true,\n });\n }\n\n create(data: any): Observable<any> {\n return this.post<any>(undefined, data, {\n withCredentials: true,\n });\n }\n\n update(id: string, data: any): Observable<any> {\n return this.put<any>(id, data, {\n withCredentials: true,\n });\n }\n\n deleteCategory<TResponse = any>(categoryId: string, options?: any): Observable<TResponse> {\n return this.delete<TResponse>(categoryId, {\n ...(options ?? {}),\n withCredentials: options?.withCredentials ?? true,\n });\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 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/direct`, {\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) {\n this.ensureAssistantMessage();\n }\n const id = this.currentAssistantMsgId;\n if (!id) return;\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 protected override readonly endpoint = 'properties';\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 protected override readonly endpoint = 'billing';\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 protected override readonly endpoint = 'billing/invoices';\n\n create(data: any): Observable<any> {\n return this.post<any>(undefined, data, {\n withCredentials: true,\n });\n }\n\n update(id: string, data: any): Observable<any> {\n return this.put<any>(id, data, {\n withCredentials: true,\n });\n }\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 updateLines(invoiceId: string, data: any): Observable<any> {\n return this.http.patch<any>(`${this.actionUrl}/${invoiceId}/lines`, data, {\n withCredentials: true,\n });\n }\n sendInvoice(invoiceId: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/${invoiceId}/send`,\n {},\n {\n withCredentials: true,\n },\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 protected override readonly endpoint = 'properties';\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 protected override readonly endpoint = 'properties';\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 protected override readonly endpoint = 'properties';\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 protected override readonly endpoint = 'billing/invoices';\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';\nimport { HttpParams } from '@angular/common/http';\nimport {\n CreateRentalOfferPayload,\n CreateSaleOfferPayload,\n CopyTextResponse,\n PropertyOfferResponse,\n PropertyOfferInternalNoteResponse,\n UpdatePropertyOfferInternalNoteRequest,\n} from '../interfaces/property-offer';\nimport { ApiResponse } from '@rolatech/angular-common';\nimport { OfferReferencingView, OfferReferencingPatchPayload } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PropertyOfferService extends BaseService {\n protected override readonly endpoint = 'properties';\n\n propertyService = inject(PropertyService);\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.get<any>(`${this.actionUrl}/offers`, {\n params: options,\n withCredentials: true,\n });\n }\n search<T = any>(rawParams: Record<string, any>): Observable<ApiResponse<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<ApiResponse<T>>(`${this.actionUrl}/offers`, { params: httpParams, withCredentials: true }) // DB list\n : this.http.get<ApiResponse<T>>(`${this.actionUrl}/offers/search`, { params: httpParams, withCredentials: true }); // ES search\n }\n search1(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/offers/search`, {\n params: options,\n withCredentials: true,\n });\n }\n findOffersByUser(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/offers/by/user`, {\n params: options,\n withCredentials: true,\n });\n }\n findOffersByAgent(options: any): Observable<any> {\n return this.http.get<any>(`${this.actionUrl}/offers/by/agent`, {\n params: options,\n withCredentials: true,\n });\n }\n getOffer(offerId: any): Observable<ApiResponse<PropertyOfferResponse>> {\n return this.http.get<ApiResponse<PropertyOfferResponse>>(`${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 underOffer(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/under-offer`,\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 // references\n referencesPassed(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/references/pass`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n referencesFailed(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/offers/${id}/references/fail`, data, {\n withCredentials: true,\n });\n }\n getReference(offerId: string): Observable<ApiResponse<OfferReferencingView>> {\n return this.http.get<ApiResponse<OfferReferencingView>>(`${this.actionUrl}/offers/${offerId}/references/provider`, {\n withCredentials: true,\n });\n }\n\n updateReferenceProvider(\n offerId: string,\n payload: OfferReferencingPatchPayload,\n ): Observable<ApiResponse<OfferReferencingView>> {\n return this.http.patch<ApiResponse<OfferReferencingView>>(\n `${this.actionUrl}/offers/${offerId}/references/provider`,\n payload,\n {\n withCredentials: true,\n },\n );\n }\n complete(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/complete`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n fail(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/fail`,\n {},\n {\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 updateInvoiceOption(offerId: string, data: any): Observable<any> {\n return this.http.patch<any>(`${this.actionUrl}/offers/${offerId}/invoice-option`, data, {\n withCredentials: true,\n });\n }\n\n createRental(payload: CreateRentalOfferPayload): Observable<ApiResponse<PropertyOfferResponse>> {\n return this.http.post<ApiResponse<PropertyOfferResponse>>(`${this.actionUrl}/offers/rental`, payload, {\n withCredentials: true,\n });\n }\n\n createSale(payload: CreateSaleOfferPayload): Observable<ApiResponse<PropertyOfferResponse>> {\n return this.http.post<ApiResponse<PropertyOfferResponse>>(`${this.actionUrl}/offers/sale`, payload, {\n withCredentials: true,\n });\n }\n getCopyText(id: string, redactContact = true): Observable<ApiResponse<CopyTextResponse>> {\n const params = new HttpParams().set('redactContact', String(redactContact));\n return this.http.get<ApiResponse<CopyTextResponse>>(`${this.actionUrl}/offers/${id}/copy-text`, {\n params,\n withCredentials: true,\n });\n }\n\n updateOfferInternalNote(\n offerId: string,\n data: UpdatePropertyOfferInternalNoteRequest,\n ): Observable<ApiResponse<PropertyOfferInternalNoteResponse>> {\n return this.http.put<ApiResponse<PropertyOfferInternalNoteResponse>>(\n `${this.actionUrl}/offers/${offerId}/internal-notes`,\n data,\n {\n withCredentials: true,\n },\n );\n }\n\n getOfferInternalNote(offerId: string): Observable<ApiResponse<PropertyOfferInternalNoteResponse>> {\n return this.http.get<ApiResponse<PropertyOfferInternalNoteResponse>>(`${this.actionUrl}/offers/${offerId}/internal-notes`, {\n withCredentials: true,\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 { 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 protected override readonly endpoint = 'properties';\n\n propertyService = inject(PropertyService);\n}\n","// angular-automation/src/lib/services/automation.service.ts\nimport { Injectable } from '@angular/core';\nimport { map, Observable } from 'rxjs';\nimport { BaseService } from './base.service';\n\nimport type {\n AutomationDefinitionDto,\n AutomationExecutionDto,\n AutomationScheduleDto,\n AutomationSummaryResponse,\n CreateDefinitionRequest,\n UpdateDefinitionRequest,\n EnqueueExecutionRequest,\n CancelStateResponse,\n ExecutionLogDto,\n CreateScheduleRequest,\n UpdateScheduleRequest,\n ScheduleOptionResponse,\n ApiRequestOptions,\n} from '../models/automation.api-types';\nimport { ApiResponse } from '@rolatech/angular-common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AutomationService extends BaseService {\n protected override readonly endpoint = 'automations';\n\n // -----------------------\n // /automations\n\n // ---------- Summary ----------\n summary() {\n return this.http.get<ApiResponse<any>>(`${this.actionUrl}/summary`, { withCredentials: true }).pipe(map((r) => r.data));\n }\n\n // -----------------------\n // /automations/definitions\n // -----------------------\n listDefinitions(options?: ApiRequestOptions, withCredentials = true): Observable<ApiResponse<AutomationDefinitionDto[]>> {\n return this.http.get<ApiResponse<AutomationDefinitionDto[]>>(`${this.actionUrl}/definitions`, {\n params: options as any,\n withCredentials,\n });\n }\n\n getDefinition(id: string, options?: ApiRequestOptions, withCredentials = true): Observable<AutomationDefinitionDto> {\n return this.http.get<AutomationDefinitionDto>(`${this.actionUrl}/definitions/${id}`, {\n params: options as any,\n withCredentials,\n });\n }\n\n createDefinition(req: CreateDefinitionRequest, withCredentials = true): Observable<AutomationDefinitionDto> {\n return this.http.post<AutomationDefinitionDto>(`${this.actionUrl}/definitions`, req, {\n withCredentials,\n });\n }\n\n updateDefinition(id: string, req: UpdateDefinitionRequest, withCredentials = true): Observable<AutomationDefinitionDto> {\n return this.http.put<AutomationDefinitionDto>(`${this.actionUrl}/definitions/${id}`, req, {\n withCredentials,\n });\n }\n\n /** Backend @DeleteMapping disables (soft delete). */\n deleteDefinition(id: string, withCredentials = true): Observable<void> {\n return this.http.delete<void>(`${this.actionUrl}/definitions/${id}`, {\n withCredentials,\n });\n }\n\n // -----------------------\n // /automations/executions\n // -----------------------\n listExecutions(options?: ApiRequestOptions, withCredentials = true): Observable<ApiResponse<AutomationExecutionDto[]>> {\n return this.http.get<ApiResponse<AutomationExecutionDto[]>>(`${this.actionUrl}/executions`, {\n params: options as any,\n withCredentials,\n });\n }\n\n getExecution(id: string, options?: ApiRequestOptions, withCredentials = true): Observable<AutomationExecutionDto> {\n return this.http.get<AutomationExecutionDto>(`${this.actionUrl}/executions/${id}`, {\n params: options as any,\n withCredentials,\n });\n }\n\n enqueueExecution(req: EnqueueExecutionRequest, withCredentials = true): Observable<AutomationExecutionDto> {\n return this.http.post<AutomationExecutionDto>(`${this.actionUrl}/executions`, req, {\n withCredentials,\n });\n }\n\n cancelExecution(id: string, withCredentials = true): Observable<void> {\n return this.http.post<void>(`${this.actionUrl}/executions/${id}/cancel`, {}, { withCredentials });\n }\n\n cancelState(id: string, withCredentials = true): Observable<CancelStateResponse> {\n return this.http.get<CancelStateResponse>(`${this.actionUrl}/executions/${id}/cancel-state`, {\n withCredentials,\n });\n }\n\n /** GET /automations/executions/{id}/logs?after=...&limit=200 */\n listExecutionLogs(\n executionId: string,\n params?: { after?: string; limit?: number },\n withCredentials = true,\n ): Observable<ExecutionLogDto[]> {\n return this.http.get<ExecutionLogDto[]>(`${this.actionUrl}/executions/${executionId}/logs`, {\n params: (params ?? {}) as any,\n withCredentials,\n });\n }\n\n // -----------------------\n // /automations/schedules\n // -----------------------\n listSchedules(options?: ApiRequestOptions, withCredentials = true): Observable<ApiResponse<AutomationScheduleDto[]>> {\n return this.http.get<ApiResponse<AutomationScheduleDto[]>>(`${this.actionUrl}/schedules`, {\n params: options as any,\n withCredentials,\n });\n }\n getSchedule(id: string, options?: any, withCredentials = true) {\n return this.http\n .get<ApiResponse<AutomationScheduleDto>>(`${this.actionUrl}/schedules/${id}`, {\n params: options,\n withCredentials,\n })\n .pipe(map((res) => res.data));\n }\n\n scheduleOptions(withCredentials = true) {\n return this.http\n .get<ApiResponse<ScheduleOptionResponse[]>>(`${this.actionUrl}/schedules/options`, { withCredentials })\n .pipe(map((res) => res.data ?? []));\n }\n\n createSchedule(req: CreateScheduleRequest, withCredentials = true): Observable<AutomationScheduleDto> {\n return this.http.post<AutomationScheduleDto>(`${this.actionUrl}/schedules`, req, { withCredentials });\n }\n\n updateSchedule(id: string, req: UpdateScheduleRequest, withCredentials = true): Observable<AutomationScheduleDto> {\n return this.http.put<AutomationScheduleDto>(`${this.actionUrl}/schedules/${id}`, req, { withCredentials });\n }\n\n enableSchedule(id: string, withCredentials = true): Observable<AutomationScheduleDto> {\n return this.http.post<AutomationScheduleDto>(`${this.actionUrl}/schedules/${id}/enable`, {}, { withCredentials });\n }\n\n disableSchedule(id: string, withCredentials = true): Observable<AutomationScheduleDto> {\n return this.http.post<AutomationScheduleDto>(`${this.actionUrl}/schedules/${id}/disable`, {}, { withCredentials });\n }\n\n deleteSchedule(id: string, withCredentials = true): Observable<void> {\n return this.http.delete<void>(`${this.actionUrl}/schedules/${id}`, { withCredentials });\n }\n runNowByDefinition(definitionCode: string, inputJson?: string | null, idempotencyKey?: string | null) {\n return this.enqueueExecution({\n definitionCode,\n inputJson: inputJson ?? null,\n idempotencyKey: idempotencyKey ?? null,\n scheduleId: null,\n });\n }\n\n runNowBySchedule(scheduleId: string, definitionCode: string, inputJson?: string | null) {\n return this.enqueueExecution({\n definitionCode,\n inputJson: inputJson ?? null,\n scheduleId,\n });\n }\n}\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { Injectable, LOCALE_ID, PLATFORM_ID, REQUEST, computed, inject, signal } from '@angular/core';\n\nexport type AppLanguageCode = 'en' | 'zh-Hans';\n\nexport interface LanguageOption {\n code: AppLanguageCode;\n label: string;\n locale: string;\n routePrefix: string;\n pathPrefixes: readonly string[];\n aliases: readonly string[];\n}\n\nconst YEAR_IN_SECONDS = 60 * 60 * 24 * 365;\n\nconst LANGUAGE_OPTIONS: readonly LanguageOption[] = [\n {\n code: 'en',\n label: 'English',\n locale: 'en-GB',\n routePrefix: '/en-gb',\n pathPrefixes: ['/en-gb', '/en-us'],\n aliases: ['en', 'en-us', 'en-gb'],\n },\n {\n code: 'zh-Hans',\n label: '简体中文',\n locale: 'zh-CN',\n routePrefix: '/zh-cn',\n pathPrefixes: ['/zh-cn'],\n aliases: ['zh', 'zh-cn', 'zh-hans'],\n },\n] as const;\n\n@Injectable({ providedIn: 'root' })\nexport class LanguageService {\n private readonly platformId = inject(PLATFORM_ID);\n private readonly request = inject(REQUEST, { optional: true }) as\n | {\n headers?: Record<string, string | string[] | undefined>;\n originalUrl?: string;\n url?: string;\n }\n | null;\n private readonly document = inject(DOCUMENT);\n private readonly localeId = inject(LOCALE_ID, { optional: true }) ?? 'en-US';\n private readonly storageKey = 'hl';\n private readonly cookieKey = 'hl';\n\n readonly options = LANGUAGE_OPTIONS;\n readonly lang = signal<AppLanguageCode>(this.detectInitial());\n readonly currentOption = computed(() => this.findByCode(this.lang()) ?? LANGUAGE_OPTIONS[0]);\n readonly acceptLanguage = computed(() => this.currentOption().locale);\n\n set(lang: AppLanguageCode): void {\n const option = this.findByCode(lang);\n if (!option) return;\n\n this.lang.set(option.code);\n\n if (!isPlatformBrowser(this.platformId)) return;\n\n localStorage.setItem(this.storageKey, option.code);\n this.document.cookie = `${this.cookieKey}=${encodeURIComponent(option.code)}; Path=/; Max-Age=${YEAR_IN_SECONDS}; SameSite=Lax`;\n this.document.documentElement.lang = option.code === 'zh-Hans' ? 'zh' : 'en';\n }\n\n hrefFor(lang: AppLanguageCode): string {\n const option = this.findByCode(lang) ?? LANGUAGE_OPTIONS[0];\n const pathname = this.stripLocalePrefix(this.currentPathname());\n const search = this.currentSearch();\n const hash = this.currentHash();\n const targetPath = pathname === '/' ? option.routePrefix : `${option.routePrefix}${pathname}`;\n\n return `${targetPath}${search}${hash}`;\n }\n\n isActive(lang: AppLanguageCode): boolean {\n return this.currentOption().code === lang;\n }\n\n private detectInitial(): AppLanguageCode {\n return (\n this.detectFromPath(this.currentPathname()) ??\n this.detectFromValue(this.readCookie()) ??\n this.detectFromStorage() ??\n this.detectFromValue(this.localeId) ??\n this.detectFromNavigator() ??\n LANGUAGE_OPTIONS[0].code\n );\n }\n\n private detectFromStorage(): AppLanguageCode | null {\n if (!isPlatformBrowser(this.platformId) || typeof localStorage === 'undefined') {\n return null;\n }\n\n return this.detectFromValue(localStorage.getItem(this.storageKey));\n }\n\n private detectFromNavigator(): AppLanguageCode | null {\n if (!isPlatformBrowser(this.platformId) || typeof navigator === 'undefined') {\n return null;\n }\n\n return this.detectFromValue(navigator.language || navigator.languages?.[0] || null);\n }\n\n private detectFromPath(pathname: string): AppLanguageCode | null {\n const normalizedPath = pathname.toLowerCase();\n const match = LANGUAGE_OPTIONS.find((option) =>\n option.pathPrefixes.some((prefix) => normalizedPath === prefix || normalizedPath.startsWith(`${prefix}/`)),\n );\n\n return match?.code ?? null;\n }\n\n private detectFromValue(value: string | null | undefined): AppLanguageCode | null {\n const normalized = value?.toLowerCase().trim();\n if (!normalized) return null;\n\n const match = LANGUAGE_OPTIONS.find(\n (option) => option.code.toLowerCase() === normalized || option.aliases.includes(normalized),\n );\n\n return match?.code ?? null;\n }\n\n private findByCode(code: AppLanguageCode): LanguageOption | undefined {\n return LANGUAGE_OPTIONS.find((option) => option.code === code);\n }\n\n private stripLocalePrefix(pathname: string): string {\n const normalizedPath = pathname.startsWith('/') ? pathname : `/${pathname}`;\n const match = LANGUAGE_OPTIONS.find((option) =>\n option.pathPrefixes.some((prefix) => normalizedPath === prefix || normalizedPath.startsWith(`${prefix}/`)),\n );\n\n if (!match) return normalizedPath || '/';\n\n const matchedPrefix = match.pathPrefixes.find(\n (prefix) => normalizedPath === prefix || normalizedPath.startsWith(`${prefix}/`),\n );\n const suffix = normalizedPath.slice(matchedPrefix?.length ?? match.routePrefix.length);\n return suffix ? (suffix.startsWith('/') ? suffix : `/${suffix}`) : '/';\n }\n\n private currentPathname(): string {\n if (isPlatformBrowser(this.platformId)) {\n return this.document.location?.pathname ?? '/';\n }\n\n return this.parseRequestUrl().pathname;\n }\n\n private currentSearch(): string {\n if (isPlatformBrowser(this.platformId)) {\n return this.document.location?.search ?? '';\n }\n\n return this.parseRequestUrl().search;\n }\n\n private currentHash(): string {\n if (!isPlatformBrowser(this.platformId)) return '';\n return this.document.location?.hash ?? '';\n }\n\n private parseRequestUrl(): URL {\n const rawUrl = this.request?.originalUrl ?? this.request?.url ?? '/';\n return new URL(rawUrl, 'http://rolatech.local');\n }\n\n private readCookie(): string | null {\n const cookieSource = isPlatformBrowser(this.platformId) ? this.document.cookie : this.readRequestCookieHeader();\n if (!cookieSource) return null;\n\n const cookies = cookieSource.split(';');\n for (const cookie of cookies) {\n const [name, ...valueParts] = cookie.trim().split('=');\n if (name === this.cookieKey) {\n return decodeURIComponent(valueParts.join('='));\n }\n }\n\n return null;\n }\n\n private readRequestCookieHeader(): string {\n const cookieHeader = this.request?.headers?.['cookie'];\n\n if (Array.isArray(cookieHeader)) {\n return cookieHeader.join('; ');\n }\n\n return cookieHeader ?? '';\n }\n}\n","import { Injectable, computed, inject } from '@angular/core';\nimport { LanguageService } from './language.service';\n\n@Injectable({ providedIn: 'root' })\nexport class I18nLocaleService {\n private readonly language = inject(LanguageService);\n readonly lang = computed(() => this.language.acceptLanguage());\n}\n","// enum-api.client.ts\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { map, Observable } from 'rxjs';\nimport { I18nLocaleService } from './i18n-locale.service';\nimport { EnumOption } from '../models/enum-option.model';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { BaseService } from './base.service';\n\n@Injectable({ providedIn: 'root' })\nexport class EnumApiClient {\n protected environment = inject(APP_CONFIG);\n private http = inject(HttpClient);\n private locale = inject(I18nLocaleService);\n private baseUrl = `${this.environment.baseUrl}`;\n /**\n * resource: \"properties\" | \"billing\" | ...\n * enumName: \"AdverseCreditStatus\" | \"InvoiceLineType\" | ...\n */\n getOptions(resource: string, enumName: string): Observable<EnumOption[]> {\n const headers = new HttpHeaders({\n 'Accept-Language': this.locale.lang(), // e.g. \"zh-CN\"\n });\n\n return this.http\n .get<EnumOption[]>(`${this.baseUrl}/${resource}/enums/${enumName}`, { headers })\n .pipe(map((res: any) => res.data));\n }\n\n listEnums(resource: string): Observable<string[]> {\n const headers = new HttpHeaders({\n 'Accept-Language': this.locale.lang(),\n });\n\n return this.http.get<string[]>(`${this.baseUrl}/${resource}/enums`, { headers }).pipe(map((res: any) => res.data));\n }\n}\n","// enum-cache.service.ts\nimport { Injectable, inject } from '@angular/core';\nimport { Observable, shareReplay } from 'rxjs';\nimport { EnumApiClient } from './enum-api.client';\nimport { I18nLocaleService } from './i18n-locale.service';\nimport { EnumOption } from '../models/enum-option.model';\n\n@Injectable({ providedIn: 'root' })\nexport class EnumCacheService {\n private api = inject(EnumApiClient);\n private locale = inject(I18nLocaleService);\n\n private cache = new Map<string, Observable<EnumOption[]>>();\n\n options(resource: string, enumName: string): Observable<EnumOption[]> {\n const lang = this.locale.lang();\n const key = `${resource}:${enumName}:${lang}`;\n\n const existing = this.cache.get(key);\n if (existing) return existing;\n\n const obs = this.api.getOptions(resource, enumName).pipe(shareReplay({ bufferSize: 1, refCount: true }));\n this.cache.set(key, obs);\n return obs;\n }\n\n clear() {\n this.cache.clear();\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 InvoiceLineService extends BaseService {\n protected override readonly endpoint = 'billing/invoices';\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","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { HttpParams } from '@angular/common/http';\nimport {\n PropertyOfferVersion,\n PropertyOfferHistory,\n EditLockResponse,\n PropertyOfferNegotiationView,\n PropertyOfferResponse,\n} from '../interfaces';\nimport { ApiResponse } from '@rolatech/angular-common';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PropertyOfferCounterService extends BaseService {\n protected override readonly endpoint = 'properties';\n\n getNegotiationViewByAgent(id: string): Observable<ApiResponse<PropertyOfferNegotiationView>> {\n return this.http.get<ApiResponse<PropertyOfferNegotiationView>>(`${this.actionUrl}/offers/${id}/negotiation-view/agent`, {\n withCredentials: true,\n });\n }\n getNegotiationViewByTenant(id: string) {\n return this.http.get<ApiResponse<PropertyOfferNegotiationView>>(`${this.actionUrl}/offers/${id}/negotiation-view/tenant`, {\n withCredentials: true,\n });\n }\n getVersions(id: string) {\n return this.http.get<ApiResponse<PropertyOfferVersion[]>>(`${this.actionUrl}/offers/${id}/versions`, {\n withCredentials: true,\n });\n }\n\n getHistory(id: string): Observable<ApiResponse<PropertyOfferHistory[]>> {\n return this.http.get<ApiResponse<PropertyOfferHistory[]>>(`${this.actionUrl}/offers/${id}/history`, {\n withCredentials: true,\n });\n }\n\n counterByAgent(id: string, payload: any) {\n return this.http.post<ApiResponse<PropertyOfferVersion>>(`${this.actionUrl}/offers/${id}/counter/agent`, payload, {\n withCredentials: true,\n });\n }\n counterByTenant(id: string, payload: any) {\n return this.http.post<ApiResponse<PropertyOfferVersion>>(`${this.actionUrl}/offers/${id}/counter/tenant`, payload, {\n withCredentials: true,\n });\n }\n\n acceptByAgent(id: string) {\n return this.http.post<void>(\n `${this.actionUrl}/offers/${id}/accept/agent`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n acceptByTenant(id: string) {\n return this.http.post<void>(\n `${this.actionUrl}/offers/${id}/accept/tenant`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n rejectByAgent(id: string, reason: string) {\n return this.http.post<void>(\n `${this.actionUrl}/offers/${id}/reject/agent`,\n { reason },\n {\n withCredentials: true,\n },\n );\n }\n\n rejectByTenant(id: string, reason: string) {\n return this.http.post<void>(\n `${this.actionUrl}/offers/${id}/reject/tenant`,\n { reason },\n {\n withCredentials: true,\n },\n );\n }\n\n withdrawByAgent(id: string, clientId?: string): Observable<ApiResponse<PropertyOfferResponse>> {\n const params = clientId ? new HttpParams().set('clientId', clientId) : undefined;\n return this.http.post<ApiResponse<PropertyOfferResponse>>(\n `${this.actionUrl}/offers/${id}/withdraw/agent`,\n {},\n { params, withCredentials: true },\n );\n }\n withdrawByTenant(id: string, clientId?: string): Observable<ApiResponse<PropertyOfferResponse>> {\n const params = clientId ? new HttpParams().set('clientId', clientId) : undefined;\n return this.http.post<ApiResponse<PropertyOfferResponse>>(\n `${this.actionUrl}/offers/${id}/withdraw/tenant`,\n {},\n { params, withCredentials: true },\n );\n }\n\n viewedByAgent(offerId: string) {\n return this.http.post<ApiResponse<void>>(`${this.actionUrl}/offers/${offerId}/viewed/agent`, {}, { withCredentials: true });\n }\n\n viewedByTenant(offerId: string) {\n return this.http.post<ApiResponse<void>>(\n `${this.actionUrl}/offers/${offerId}/viewed/tenant`,\n {},\n { withCredentials: true },\n );\n }\n\n markUnderOffer(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/under-offer`,\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 // references\n startReferencing(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/references/start`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n markReferencesPassed(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/references/pass`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n markReferencesFailed(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/offers/${id}/references/fail`, data, {\n withCredentials: true,\n });\n }\n markReferencesReopen(id: string, data: any): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/offers/${id}/references/reopen`, data, {\n withCredentials: true,\n });\n }\n markCompleted(id: string): Observable<any> {\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/complete`,\n {},\n {\n withCredentials: true,\n },\n );\n }\n cancelByTenant(id: string, clientId?: string): Observable<any> {\n const params = clientId ? new HttpParams().set('clientId', clientId) : undefined;\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/cancel/tenant`,\n {},\n {\n params,\n withCredentials: true,\n },\n );\n }\n cancelByAgent(id: string, clientId?: string): Observable<any> {\n const params = clientId ? new HttpParams().set('clientId', clientId) : undefined;\n\n return this.http.post<any>(\n `${this.actionUrl}/offers/${id}/cancel/agent`,\n {},\n {\n params,\n withCredentials: true,\n },\n );\n }\n\n getEditLock(id: string) {\n return this.http.get<ApiResponse<EditLockResponse>>(`${this.actionUrl}/offers/${id}/edit-lock`, { withCredentials: true });\n }\n\n acquireLock(id: string, clientId: string) {\n return this.http.post<ApiResponse<EditLockResponse>>(\n `${this.actionUrl}/offers/${id}/edit-lock/acquire`,\n {},\n {\n params: new HttpParams().set('clientId', clientId),\n withCredentials: true,\n },\n );\n }\n\n heartbeat(id: string) {\n return this.http.post<ApiResponse<EditLockResponse>>(`${this.actionUrl}/offers/${id}/edit-lock/heartbeat`, {\n withCredentials: true,\n });\n }\n\n release(id: string) {\n return this.http.post<void>(`${this.actionUrl}/offers/${id}/edit-lock/release`, { withCredentials: true });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, map } from 'rxjs';\nimport { ApiRequestOptions, ApiResponse, toApiRequestParams } from '@rolatech/angular-common';\nimport { BaseService } from './base.service';\nimport {\n ApplicationDetailResponse,\n ApplicationMemberDetailResponse,\n ApplicationMemberOrganizationMembershipResponse,\n ApplicationMemberPageResponse,\n ApplicationMemberSummaryResponse,\n ApplicationMemberVerificationResponse,\n ApplicationOrganizationPageResponse,\n ApplicationOrganizationResponse,\n ApplicationPageResponse,\n ApplicationSummaryResponse,\n CreateApplicationRequest,\n UpdateApplicationRequest,\n} from '../models/application.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationService extends BaseService {\n protected override readonly endpoint = 'platform/applications';\n\n findApplications(options?: ApiRequestOptions): Observable<ApiResponse<ApplicationSummaryResponse[]>> {\n return this.get<ApiResponse<ApplicationSummaryResponse[]>>(undefined, {\n params: options,\n });\n }\n\n findApplicationById(id: string): Observable<ApplicationDetailResponse> {\n return this.get<ApiResponse<ApplicationDetailResponse>>(id).pipe(this.unwrapData());\n }\n\n createApplication(request: CreateApplicationRequest): Observable<ApplicationDetailResponse> {\n return this.post<ApiResponse<ApplicationDetailResponse>, CreateApplicationRequest>(undefined, request).pipe(\n this.unwrapData(),\n );\n }\n\n updateApplication(id: string, request: UpdateApplicationRequest): Observable<ApplicationDetailResponse> {\n return this.put<ApiResponse<ApplicationDetailResponse>, UpdateApplicationRequest>(id, request).pipe(this.unwrapData());\n }\n\n findApplicationOrganizations(id: string, options?: ApiRequestOptions): Observable<ApplicationOrganizationPageResponse> {\n return this.get<ApiResponse<ApplicationOrganizationPageResponse | ApplicationOrganizationResponse[]>>(\n `${id}/organizations`,\n { params: options },\n ).pipe(\n map((response) =>\n this.toSimplePage<ApplicationOrganizationResponse, ApplicationOrganizationPageResponse>(\n response.data,\n (items, total) => ({\n items,\n total,\n }),\n ),\n ),\n );\n }\n\n findApplicationMembers(id: string, options?: ApiRequestOptions): Observable<ApplicationMemberPageResponse> {\n return this.get<ApiResponse<unknown>>(`${id}/members`, { params: options }).pipe(\n map((response) => this.toMemberPage(response)),\n );\n }\n\n findApplicationMemberById(id: string, memberId: string): Observable<ApplicationMemberDetailResponse> {\n return this.get<ApiResponse<unknown>>(`${id}/members/${memberId}`).pipe(\n map((response) => this.toMemberDetail(this.unwrapEnvelope(response))),\n );\n }\n\n resetOrganizationOwnerPassword(id: string, organizationId: string): Observable<void> {\n return this.post<ApiResponse<unknown>>(`${id}/organizations/${organizationId}/owner/password/reset-request`, {}).pipe(\n map(() => undefined),\n );\n }\n\n private unwrapEnvelope<T>(payload: ApiResponse<T>): T {\n if (payload && typeof payload === 'object' && 'data' in payload) {\n return payload.data as T;\n }\n\n return payload as T;\n }\n\n private toSimplePage<TItem, TPage>(\n payload: { items?: TItem[]; total?: number } | TItem[],\n factory: (items: TItem[], total: number) => TPage,\n ): TPage {\n if (Array.isArray(payload)) {\n return factory(payload, payload.length);\n }\n\n const items = Array.isArray(payload.items) ? payload.items : [];\n const total = payload.total ?? items.length;\n\n return factory(items, total);\n }\n\n private toMemberPage(payload: ApiResponse<unknown>): ApplicationMemberPageResponse {\n const metaCount = this.readPaginationCount(payload);\n\n const unwrapped = this.unwrapEnvelope(payload);\n\n if (Array.isArray(unwrapped)) {\n return {\n items: unwrapped.map((item) => this.toMemberSummary(item)),\n total: metaCount ?? unwrapped.length,\n };\n }\n\n const value = this.asRecord(unwrapped);\n const rawItems = Array.isArray(value['items']) ? value['items'] : [];\n\n return {\n items: rawItems.map((item) => this.toMemberSummary(item)),\n total: this.readNumber(value['total']) ?? metaCount ?? rawItems.length,\n };\n }\n\n private toMemberDetail(payload: unknown): ApplicationMemberDetailResponse {\n const value = this.asRecord(payload);\n const summary = this.toMemberSummary(payload);\n\n return {\n ...summary,\n permissions: this.readStringArray(value['permissions']),\n platformRoles: this.readRoles(value['platformRoles']),\n applicationRoles: this.readRoles(value['applicationRoles']) ?? summary.roles,\n organizations:\n this.readOrganizationMemberships(value['organizations']) ??\n this.readOrganizationMemberships(value['organizationMemberships']),\n };\n }\n\n private toMemberSummary(payload: unknown): ApplicationMemberSummaryResponse {\n const value = this.asRecord(payload);\n\n const firstName = this.readOptionalString(value['firstName']);\n const lastName = this.readOptionalString(value['lastName']);\n const derivedFullName = [firstName, lastName]\n .filter((item): item is string => !!item)\n .join(' ')\n .trim();\n\n const fullName = this.readOptionalString(value['fullName']) ?? (derivedFullName.length > 0 ? derivedFullName : null);\n\n const organizations =\n this.readOrganizationMemberships(value['organizations']) ??\n this.readOrganizationMemberships(value['organizationMemberships']);\n\n return {\n memberId: this.readString(value['memberId']) || this.readString(value['id']) || this.readString(value['userId']),\n userId: this.readOptionalString(value['userId']),\n username: this.readOptionalString(value['username']),\n name: this.readOptionalString(value['name']) ?? fullName,\n fullName,\n firstName,\n lastName,\n email: this.readOptionalString(value['email']),\n phone: this.readOptionalString(value['phone']),\n status: this.readOptionalString(value['status']),\n joinedAt: this.readOptionalString(value['joinedAt']) ?? this.readOptionalString(value['createdAt']),\n roles: this.readRoles(value['roles']) ?? [],\n organizationCount: this.readNumber(value['organizationCount']) ?? organizations?.length ?? 0,\n verification: this.readVerification(value),\n };\n }\n\n private readVerification(value: Record<string, unknown>): ApplicationMemberVerificationResponse | null {\n const verification = this.asRecord(value['verification']);\n\n const emailVerified = this.readBoolean(verification['emailVerified']) ?? this.readBoolean(value['emailVerified']);\n const phoneVerified = this.readBoolean(verification['phoneVerified']) ?? this.readBoolean(value['phoneVerified']);\n const identityVerified =\n this.readBoolean(verification['identityVerified']) ??\n this.readBoolean(value['identityVerified']) ??\n this.readBoolean(value['kycVerified']);\n const status = this.readOptionalString(verification['status']) ?? this.readOptionalString(value['verificationStatus']);\n\n if (emailVerified === null && phoneVerified === null && identityVerified === null && !status) {\n return null;\n }\n\n return {\n emailVerified: emailVerified ?? false,\n phoneVerified: phoneVerified ?? false,\n identityVerified: identityVerified ?? false,\n status,\n };\n }\n\n private readOrganizationMemberships(payload: unknown): ApplicationMemberOrganizationMembershipResponse[] | null {\n if (!Array.isArray(payload)) {\n return null;\n }\n\n const items: ApplicationMemberOrganizationMembershipResponse[] = [];\n\n for (const item of payload) {\n const value = this.asRecord(item);\n const organization = this.asRecord(value['organization']);\n\n const orgId = this.readString(value['orgId']) || this.readString(value['id']) || this.readString(organization['id']);\n\n if (!orgId) {\n continue;\n }\n\n items.push({\n orgId,\n orgCode: this.readOptionalString(value['orgCode']) ?? this.readOptionalString(organization['code']) ?? undefined,\n orgName:\n this.readOptionalString(value['orgName']) ??\n this.readOptionalString(value['name']) ??\n this.readOptionalString(organization['name']) ??\n undefined,\n roles: this.readRoles(value['roles']) ?? [],\n });\n }\n\n return items;\n }\n\n private readRoles(payload: unknown): string[] | null {\n if (!Array.isArray(payload)) {\n return null;\n }\n\n return payload\n .map((item) => {\n if (typeof item === 'string') {\n return item;\n }\n\n const value = this.asRecord(item);\n\n return (\n this.readOptionalString(value['authority']) ??\n this.readOptionalString(value['code']) ??\n this.readOptionalString(value['name']) ??\n null\n );\n })\n .filter((item): item is string => !!item);\n }\n\n private readStringArray(payload: unknown): string[] | null {\n if (!Array.isArray(payload)) {\n return null;\n }\n\n return payload.filter((item): item is string => typeof item === 'string' && item.length > 0);\n }\n\n private readPaginationCount(payload: unknown): number | null {\n const value = this.asRecord(payload);\n const meta = this.asRecord(value['meta']);\n const pagination = this.asRecord(meta['pagination']);\n return this.readNumber(pagination['count']);\n }\n\n private readString(value: unknown): string {\n return typeof value === 'string' ? value : '';\n }\n\n private readOptionalString(value: unknown): string | null {\n return typeof value === 'string' && value.length > 0 ? value : null;\n }\n\n private readNumber(value: unknown): number | null {\n return typeof value === 'number' && Number.isFinite(value) ? value : null;\n }\n\n private readBoolean(value: unknown): boolean | null {\n return typeof value === 'boolean' ? value : null;\n }\n\n private asRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === 'object' ? (value as Record<string, unknown>) : {};\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiRequestOptions, ApiResponse, ApiResponseMeta, toApiRequestParams } from '@rolatech/angular-common';\nimport { map, Observable } from 'rxjs';\nimport { BaseService } from './base.service';\nimport {\n PlatformEndpointDetailResponse,\n PlatformEndpointPageResponse,\n PlatformEndpointSummaryResponse,\n} from '../models/platform-admin.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PlatformEndpointService extends BaseService {\n protected override readonly endpoint = 'platform/endpoints';\n\n findEndpoints(options?: ApiRequestOptions): Observable<PlatformEndpointPageResponse> {\n return this.get<ApiResponse<unknown> | { data?: unknown; meta?: ApiResponseMeta } | unknown[]>(undefined, {\n params: toApiRequestParams(options),\n withCredentials: true,\n })\n .pipe(map((response) => this.toPage(response)));\n }\n\n findEndpointById(id: string): Observable<PlatformEndpointDetailResponse> {\n return this.get<ApiResponse<unknown> | { data?: unknown } | unknown>(id, {\n withCredentials: true,\n }).pipe(\n map((response) => this.toDetail(this.unwrapPayload(response))),\n );\n }\n\n private toPage(\n payload: ApiResponse<unknown> | { data?: unknown; meta?: ApiResponseMeta } | unknown[],\n ): PlatformEndpointPageResponse {\n if (Array.isArray(payload)) {\n return {\n items: payload.map((item) => this.toSummary(item)),\n total: payload.length,\n };\n }\n\n const data = payload?.data;\n if (Array.isArray(data)) {\n return {\n items: data.map((item) => this.toSummary(item)),\n total: payload?.meta?.pagination?.count ?? data.length,\n };\n }\n\n const value = this.asRecord(data);\n const items = Array.isArray(value['items']) ? value['items'] : [];\n\n return {\n items: items.map((item) => this.toSummary(item)),\n total: this.readNumber(value['total']) ?? payload?.meta?.pagination?.count ?? items.length,\n };\n }\n\n private toSummary(payload: unknown): PlatformEndpointSummaryResponse {\n const value = this.asRecord(payload);\n const permissions = this.readStringArray(value['permissions']) ?? this.readStringArray(value['permissionIds']) ?? [];\n const fallbackName =\n [this.readOptionalString(value['method']), this.readOptionalString(value['path'])].filter(Boolean).join(' ') ||\n this.readString(value['id']) ||\n 'Unnamed endpoint';\n\n return {\n id: this.readString(value['id']) || this.readString(value['endpointId']),\n code: this.readOptionalString(value['code']),\n name: this.readOptionalString(value['name']) ?? this.readOptionalString(value['displayName']) ?? fallbackName,\n resource: this.readOptionalString(value['resource']),\n path: this.readOptionalString(value['path']) ?? this.readOptionalString(value['url']),\n method: this.readOptionalString(value['method']),\n serviceName:\n this.readOptionalString(value['serviceName']) ??\n this.readOptionalString(value['service']) ??\n this.readOptionalString(value['module']),\n authType:\n this.readOptionalString(value['authType']) ??\n this.readOptionalString(value['authenticationType']) ??\n this.readOptionalString(value['security']),\n status: this.readOptionalString(value['status']) ?? (this.readBoolean(value['enabled']) ? 'ENABLED' : 'DISABLED'),\n enabled: this.readBoolean(value['enabled']),\n publicAccess:\n this.readBoolean(value['publicAccess']) ||\n this.readBoolean(value['public']) ||\n this.readBoolean(value['anonymousAccess']),\n permissionCount: this.readNumber(value['permissionCount']) ?? permissions.length,\n updatedAt: this.readOptionalString(value['updatedAt']),\n };\n }\n\n private toDetail(payload: unknown): PlatformEndpointDetailResponse {\n const value = this.asRecord(payload);\n\n return {\n ...this.toSummary(payload),\n description: this.readOptionalString(value['description']),\n uri: this.readOptionalString(value['uri']) ?? this.readOptionalString(value['url']),\n scopes: this.readStringArray(value['scopes']) ?? this.readStringArray(value['scope']) ?? [],\n roles: this.readStringArray(value['roles']) ?? this.readStringArray(value['roleCodes']) ?? [],\n attributes: this.extractAttributes(value, [\n 'id',\n 'endpointId',\n 'code',\n 'name',\n 'displayName',\n 'resource',\n 'path',\n 'url',\n 'uri',\n 'method',\n 'serviceName',\n 'service',\n 'module',\n 'authType',\n 'authenticationType',\n 'security',\n 'status',\n 'enabled',\n 'publicAccess',\n 'public',\n 'anonymousAccess',\n 'permissionCount',\n 'permissions',\n 'permissionIds',\n 'updatedAt',\n 'description',\n 'scopes',\n 'scope',\n 'roles',\n 'roleCodes',\n ]),\n };\n }\n\n private readStringArray(value: unknown): string[] | null {\n if (Array.isArray(value)) {\n return value.filter((item): item is string => typeof item === 'string' && item.length > 0);\n }\n\n if (typeof value === 'string' && value.length > 0) {\n return value\n .split(',')\n .map((item) => item.trim())\n .filter(Boolean);\n }\n\n return null;\n }\n\n private readNumber(value: unknown): number | null {\n return typeof value === 'number' && Number.isFinite(value) ? value : null;\n }\n\n private readBoolean(value: unknown): boolean {\n return value === true || value === 'true' || value === 'TRUE' || value === 1;\n }\n\n private readString(value: unknown): string {\n return typeof value === 'string' ? value : '';\n }\n\n private readOptionalString(value: unknown): string | null {\n return typeof value === 'string' && value.length > 0 ? value : null;\n }\n\n private asRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === 'object' ? (value as Record<string, unknown>) : {};\n }\n\n private extractAttributes(value: Record<string, unknown>, knownKeys: string[]): Record<string, unknown> | null {\n const entries = Object.entries(value).filter(([key]) => !knownKeys.includes(key));\n return entries.length ? Object.fromEntries(entries) : null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiRequestOptions, ApiResponse, ApiResponseMeta, toApiRequestParams } from '@rolatech/angular-common';\nimport { map, Observable } from 'rxjs';\nimport { BaseService } from './base.service';\nimport {\n CreatePlatformServiceRegistryRequest,\n PlatformServiceRegistryDetailResponse,\n PlatformServiceRegistryPageResponse,\n PlatformServiceRegistrySummaryResponse,\n UpdatePlatformServiceRegistryRequest,\n} from '../models/platform-admin.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PlatformServiceRegistryService extends BaseService {\n protected override readonly endpoint = 'platform/service-registry';\n\n findServices(options?: ApiRequestOptions): Observable<PlatformServiceRegistryPageResponse> {\n return this.get<ApiResponse<unknown> | { data?: unknown; meta?: ApiResponseMeta } | unknown[]>(undefined, {\n params: toApiRequestParams(options),\n withCredentials: true,\n })\n .pipe(map((response) => this.toPage(response)));\n }\n\n findServiceById(id: string): Observable<PlatformServiceRegistryDetailResponse> {\n return this.get<ApiResponse<unknown> | { data?: unknown } | unknown>(id, {\n withCredentials: true,\n })\n .pipe(map((response) => this.toDetail(this.unwrapPayload(response))));\n }\n\n createService(request: CreatePlatformServiceRegistryRequest): Observable<PlatformServiceRegistryDetailResponse> {\n return this.post<ApiResponse<unknown> | { data?: unknown } | unknown, CreatePlatformServiceRegistryRequest>(\n undefined,\n request,\n {\n withCredentials: true,\n },\n ).pipe(map((response) => this.toDetail(this.unwrapPayload(response))));\n }\n\n updateService(id: string, request: UpdatePlatformServiceRegistryRequest): Observable<PlatformServiceRegistryDetailResponse> {\n return this.put<ApiResponse<unknown> | { data?: unknown } | unknown, UpdatePlatformServiceRegistryRequest>(\n id,\n request,\n {\n withCredentials: true,\n },\n ).pipe(map((response) => this.toDetail(this.unwrapPayload(response))));\n }\n\n deleteService(id: string): Observable<void> {\n return this.delete<void>(id, {\n withCredentials: true,\n });\n }\n\n private toPage(\n payload: ApiResponse<unknown> | { data?: unknown; meta?: ApiResponseMeta } | unknown[],\n ): PlatformServiceRegistryPageResponse {\n if (Array.isArray(payload)) {\n return {\n items: payload.map((item) => this.toSummary(item)),\n total: payload.length,\n };\n }\n\n const data = payload?.data;\n if (Array.isArray(data)) {\n return {\n items: data.map((item) => this.toSummary(item)),\n total: payload?.meta?.pagination?.count ?? data.length,\n };\n }\n\n const value = this.asRecord(data);\n const items = Array.isArray(value['items']) ? value['items'] : [];\n\n return {\n items: items.map((item) => this.toSummary(item)),\n total: this.readNumber(value['total']) ?? payload?.meta?.pagination?.count ?? items.length,\n };\n }\n\n private toSummary(payload: unknown): PlatformServiceRegistrySummaryResponse {\n const value = this.asRecord(payload);\n const fallbackName = this.readString(value['id']) || 'Unnamed service';\n\n return {\n id: this.readString(value['id']) || this.readString(value['serviceId']),\n code: this.readOptionalString(value['code']) ?? this.readOptionalString(value['serviceCode']),\n name: this.readOptionalString(value['name']) ?? this.readOptionalString(value['serviceName']) ?? fallbackName,\n namespace: this.readOptionalString(value['namespace']),\n serviceType: this.readOptionalString(value['serviceType']) ?? this.readOptionalString(value['type']),\n version: this.readOptionalString(value['version']),\n baseUrl: this.readOptionalString(value['baseUrl']) ?? this.readOptionalString(value['url']),\n healthStatus: this.readOptionalString(value['healthStatus']) ?? this.readOptionalString(value['health']),\n status: this.readOptionalString(value['status']) ?? (this.readBoolean(value['enabled']) ? 'ENABLED' : 'DISABLED'),\n enabled: this.readBoolean(value['enabled']),\n instanceCount: this.readNumber(value['instanceCount']) ?? this.readNumber(value['instances']) ?? 0,\n endpointCount: this.readNumber(value['endpointCount']) ?? this.readNumber(value['routes']) ?? 0,\n updatedAt: this.readOptionalString(value['updatedAt']),\n };\n }\n\n private toDetail(payload: unknown): PlatformServiceRegistryDetailResponse {\n const value = this.asRecord(payload);\n\n return {\n ...this.toSummary(payload),\n description: this.readOptionalString(value['description']),\n tags: this.readStringArray(value['tags']) ?? [],\n attributes: this.extractAttributes(value, [\n 'id',\n 'serviceId',\n 'code',\n 'serviceCode',\n 'name',\n 'serviceName',\n 'namespace',\n 'serviceType',\n 'type',\n 'version',\n 'baseUrl',\n 'url',\n 'healthStatus',\n 'health',\n 'status',\n 'enabled',\n 'instanceCount',\n 'instances',\n 'endpointCount',\n 'routes',\n 'updatedAt',\n 'description',\n 'tags',\n ]),\n };\n }\n\n private readStringArray(value: unknown): string[] | null {\n if (!Array.isArray(value)) {\n return null;\n }\n\n return value.filter((item): item is string => typeof item === 'string' && item.length > 0);\n }\n\n private readNumber(value: unknown): number | null {\n return typeof value === 'number' && Number.isFinite(value) ? value : null;\n }\n\n private readBoolean(value: unknown): boolean {\n return value === true || value === 'true' || value === 'TRUE' || value === 1;\n }\n\n private readString(value: unknown): string {\n return typeof value === 'string' ? value : '';\n }\n\n private readOptionalString(value: unknown): string | null {\n return typeof value === 'string' && value.length > 0 ? value : null;\n }\n\n private asRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === 'object' ? (value as Record<string, unknown>) : {};\n }\n\n private extractAttributes(value: Record<string, unknown>, knownKeys: string[]): Record<string, unknown> | null {\n const entries = Object.entries(value).filter(([key]) => !knownKeys.includes(key));\n return entries.length ? Object.fromEntries(entries) : null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiRequestOptions, ApiResponse, ApiResponseMeta, toApiRequestParams } from '@rolatech/angular-common';\nimport { map, Observable } from 'rxjs';\nimport { BaseService } from './base.service';\nimport {\n CreatePlatformAuthClientRequest,\n PlatformAuthClientDetailResponse,\n PlatformAuthClientPageResponse,\n PlatformAuthClientSecretResetResponse,\n PlatformAuthClientSummaryResponse,\n UpdatePlatformAuthClientRequest,\n} from '../models/platform-admin.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PlatformAuthClientService extends BaseService {\n protected override readonly endpoint = 'platform/clients';\n\n findClients(options?: ApiRequestOptions): Observable<PlatformAuthClientPageResponse> {\n return this.get<ApiResponse<unknown> | { data?: unknown; meta?: ApiResponseMeta } | unknown[]>(undefined, {\n params: toApiRequestParams(options),\n withCredentials: true,\n })\n .pipe(map((response) => this.toPage(response)));\n }\n\n findClientById(id: string): Observable<PlatformAuthClientDetailResponse> {\n return this.get<ApiResponse<unknown> | { data?: unknown } | unknown>(id, {\n withCredentials: true,\n })\n .pipe(map((response) => this.toDetail(this.unwrapPayload(response))));\n }\n\n createClient(request: CreatePlatformAuthClientRequest): Observable<PlatformAuthClientDetailResponse> {\n return this.post<ApiResponse<unknown> | { data?: unknown } | unknown, CreatePlatformAuthClientRequest>(undefined, request, {\n withCredentials: true,\n })\n .pipe(map((response) => this.toDetail(this.unwrapPayload(response))));\n }\n\n updateClient(id: string, request: UpdatePlatformAuthClientRequest): Observable<PlatformAuthClientDetailResponse> {\n return this.put<ApiResponse<unknown> | { data?: unknown } | unknown, UpdatePlatformAuthClientRequest>(id, request, {\n withCredentials: true,\n })\n .pipe(map((response) => this.toDetail(this.unwrapPayload(response))));\n }\n\n deleteClient(id: string): Observable<void> {\n return this.delete<void>(id, {\n withCredentials: true,\n });\n }\n\n resetClientSecret(id: string): Observable<PlatformAuthClientSecretResetResponse> {\n return this\n .post<ApiResponse<unknown> | { data?: unknown } | unknown>(`${id}/reset`, {}, { withCredentials: true })\n .pipe(map((response) => this.toSecretReset(this.unwrapPayload(response))));\n }\n\n private toPage(\n payload: ApiResponse<unknown> | { data?: unknown; meta?: ApiResponseMeta } | unknown[],\n ): PlatformAuthClientPageResponse {\n if (Array.isArray(payload)) {\n return {\n items: payload.map((item) => this.toSummary(item)),\n total: payload.length,\n };\n }\n\n const data = payload?.data;\n if (Array.isArray(data)) {\n return {\n items: data.map((item) => this.toSummary(item)),\n total: payload?.meta?.pagination?.count ?? data.length,\n };\n }\n\n const value = this.asRecord(data);\n const items = Array.isArray(value['items']) ? value['items'] : [];\n\n return {\n items: items.map((item) => this.toSummary(item)),\n total: this.readNumber(value['total']) ?? payload?.meta?.pagination?.count ?? items.length,\n };\n }\n\n private toSummary(payload: unknown): PlatformAuthClientSummaryResponse {\n const value = this.asRecord(payload);\n const fallbackName = this.readString(value['clientId']) || 'Unnamed client';\n\n return {\n id: this.readString(value['id']),\n clientId: this.readString(value['clientId']) || this.readString(value['id']),\n name: this.readOptionalString(value['name']) ?? this.readOptionalString(value['clientName']) ?? fallbackName,\n description: this.readOptionalString(value['description']),\n status: this.readOptionalString(value['status']) ?? (this.readBoolean(value['enabled']) ? 'ENABLED' : 'DISABLED'),\n enabled: this.readBoolean(value['enabled']),\n confidential: this.readBoolean(value['confidential']) || this.readBoolean(value['secretRequired']),\n grantTypes: this.readStringArray(value['grantTypes']) ?? [],\n redirectUris: this.readStringArray(value['redirectUris']) ?? [],\n scopes: this.readStringArray(value['scopes']) ?? this.readStringArray(value['scope']) ?? [],\n updatedAt: this.readOptionalString(value['updatedAt']),\n createdAt: this.readOptionalString(value['createdAt']),\n };\n }\n\n private toDetail(payload: unknown): PlatformAuthClientDetailResponse {\n const value = this.asRecord(payload);\n\n return {\n ...this.toSummary(payload),\n appId: this.readOptionalString(value['appId']),\n appSecret: this.readOptionalString(value['appSecret']),\n clientSecret: this.readOptionalString(value['clientSecret']),\n permissions: this.readStringArray(value['permissions']) ?? this.readStringArray(value['permissionIds']) ?? [],\n attributes: this.extractAttributes(value, [\n 'id',\n 'clientId',\n 'name',\n 'clientName',\n 'description',\n 'status',\n 'enabled',\n 'confidential',\n 'secretRequired',\n 'grantTypes',\n 'redirectUris',\n 'scopes',\n 'scope',\n 'updatedAt',\n 'createdAt',\n 'appId',\n 'appSecret',\n 'clientSecret',\n 'permissions',\n 'permissionIds',\n ]),\n };\n }\n\n private toSecretReset(payload: unknown): PlatformAuthClientSecretResetResponse {\n const value = this.asRecord(payload);\n\n return {\n clientSecret: this.readString(value['clientSecret']),\n updatedAt: this.readOptionalString(value['updatedAt']),\n };\n }\n\n private readStringArray(value: unknown): string[] | null {\n if (Array.isArray(value)) {\n return value.filter((item): item is string => typeof item === 'string' && item.length > 0);\n }\n\n if (typeof value === 'string' && value.length > 0) {\n return value\n .split(',')\n .map((item) => item.trim())\n .filter(Boolean);\n }\n\n return null;\n }\n\n private readNumber(value: unknown): number | null {\n return typeof value === 'number' && Number.isFinite(value) ? value : null;\n }\n\n private readBoolean(value: unknown): boolean {\n return value === true || value === 'true' || value === 'TRUE' || value === 1;\n }\n\n private readString(value: unknown): string {\n return typeof value === 'string' ? value : '';\n }\n\n private readOptionalString(value: unknown): string | null {\n return typeof value === 'string' && value.length > 0 ? value : null;\n }\n\n private asRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === 'object' ? (value as Record<string, unknown>) : {};\n }\n\n private extractAttributes(value: Record<string, unknown>, knownKeys: string[]): Record<string, unknown> | null {\n const entries = Object.entries(value).filter(([key]) => !knownKeys.includes(key));\n return entries.length ? Object.fromEntries(entries) : null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { catchError, map, Observable, of } from 'rxjs';\nimport { ApiRequestOptions, ApiResponse, ApiResponseMeta, toApiRequestParams } from '@rolatech/angular-common';\nimport { BaseService } from './base.service';\nimport {\n PlatformUserContextResponse,\n PlatformUserDetailResponse,\n PlatformUserPageResponse,\n PlatformUserSummaryResponse,\n} from '../models/platform-user.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PlatformUserService extends BaseService {\n protected override readonly endpoint = 'platform/users';\n\n findUsers(options?: ApiRequestOptions): Observable<PlatformUserPageResponse> {\n return this.get<ApiResponse<unknown> | { data?: unknown; meta?: ApiResponseMeta } | unknown[]>(undefined, {\n params: toApiRequestParams(options),\n withCredentials: true,\n })\n .pipe(map((response) => this.toUserPage(response)));\n }\n\n findUserById(id: string): Observable<PlatformUserDetailResponse> {\n return this.get<ApiResponse<unknown> | { data?: unknown } | unknown>(id, {\n withCredentials: true,\n })\n .pipe(map((response) => this.toUserDetail(this.unwrapPayload(response))));\n }\n\n findUserContext(id: string): Observable<PlatformUserContextResponse | null> {\n return this\n .get<ApiResponse<PlatformUserContextResponse> | { data?: PlatformUserContextResponse } | PlatformUserContextResponse>(\n `${id}/context`,\n {\n withCredentials: true,\n },\n )\n .pipe(\n map((response) => this.toUserContext(this.unwrapPayload(response))),\n catchError(() => of(null)),\n );\n }\n\n private toUserPage(\n payload: ApiResponse<unknown> | { data?: unknown; meta?: ApiResponseMeta } | unknown[],\n ): PlatformUserPageResponse {\n if (Array.isArray(payload)) {\n return {\n items: payload.map((item) => this.toUserSummary(item)),\n total: payload.length,\n };\n }\n\n const items = Array.isArray(payload?.data) ? payload.data : [];\n const total = payload?.meta?.pagination?.count ?? items.length;\n\n return {\n items: items.map((item) => this.toUserSummary(item)),\n total,\n };\n }\n\n private toUserSummary(payload: unknown): PlatformUserSummaryResponse {\n const value = this.asRecord(payload);\n\n return {\n id: this.readString(value['id']),\n name: this.readOptionalString(value['name']),\n username: this.readOptionalString(value['username']),\n email: this.readOptionalString(value['email']),\n phone: this.readOptionalString(value['phone']),\n avatar: this.readOptionalString(value['avatar']),\n firstName: this.readOptionalString(value['firstName']),\n lastName: this.readOptionalString(value['lastName']),\n status: this.readOptionalString(value['status']),\n createdAt: this.readOptionalString(value['createdAt']),\n roles: this.readRoles(value['roles']),\n };\n }\n\n private toUserDetail(payload: unknown): PlatformUserDetailResponse {\n const value = this.asRecord(payload);\n const summary = this.toUserSummary(payload);\n\n return {\n ...summary,\n bio: this.readOptionalString(value['bio']),\n permissions: this.readStringArray(value['permissions']),\n platformRoles: this.readStringArray(value['platformRoles']),\n applications: this.readApplicationMemberships(value['applications']),\n organizations: this.readOrganizationMemberships(value['organizations']),\n };\n }\n\n private toUserContext(payload: unknown): PlatformUserContextResponse {\n const value = this.asRecord(payload);\n\n return {\n userId: this.readString(value['userId']),\n username: this.readOptionalString(value['username']),\n platformRoles: this.readStringArray(value['platformRoles']) ?? [],\n applications: this.readApplicationMemberships(value['applications']) ?? [],\n organizations: this.readOrganizationMemberships(value['organizations']) ?? [],\n permissions: this.readStringArray(value['permissions']),\n };\n }\n\n private readRoles(payload: unknown): string[] {\n if (!Array.isArray(payload)) {\n return [];\n }\n\n return payload\n .map((item) => {\n if (typeof item === 'string') {\n return item;\n }\n\n const value = this.asRecord(item);\n return this.readOptionalString(value['authority']) ?? this.readOptionalString(value['name']) ?? null;\n })\n .filter((item): item is string => !!item);\n }\n\n private readApplicationMemberships(payload: unknown): PlatformUserContextResponse['applications'] | null {\n if (!Array.isArray(payload)) {\n return null;\n }\n\n return payload.map((item) => {\n const value = this.asRecord(item);\n\n return {\n appId: this.readString(value['appId']),\n appCode: this.readOptionalString(value['appCode']),\n appName: this.readOptionalString(value['appName']),\n roles: this.readStringArray(value['roles']) ?? [],\n };\n });\n }\n\n private readOrganizationMemberships(payload: unknown): PlatformUserContextResponse['organizations'] | null {\n if (!Array.isArray(payload)) {\n return null;\n }\n\n return payload.map((item) => {\n const value = this.asRecord(item);\n\n return {\n appId: this.readString(value['appId']),\n orgId: this.readString(value['orgId']),\n orgCode: this.readOptionalString(value['orgCode']),\n orgName: this.readOptionalString(value['orgName']),\n roles: this.readStringArray(value['roles']) ?? [],\n };\n });\n }\n\n private readStringArray(payload: unknown): string[] | null {\n if (!Array.isArray(payload)) {\n return null;\n }\n\n return payload.filter((item): item is string => typeof item === 'string' && item.length > 0);\n }\n\n private readString(value: unknown): string {\n return typeof value === 'string' ? value : '';\n }\n\n private readOptionalString(value: unknown): string | null {\n return typeof value === 'string' && value.length > 0 ? value : null;\n }\n\n private asRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === 'object' ? (value as Record<string, unknown>) : {};\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiResponse } from '@rolatech/angular-common';\nimport { Observable } from 'rxjs';\nimport {\n FindAssignablePermissionsOptions,\n FindRolePermissionRolesOptions,\n FindRolePermissionSummaryOptions,\n PermissionGroup,\n PermissionSummary,\n RolePermissionIndexItem,\n RolePermissionSummary,\n SaveRolePermissionsRequest,\n} from '../models/permission.models';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionService extends BaseService {\n protected override readonly endpoint = 'platform/role-permissions';\n\n findRoles(options: FindRolePermissionRolesOptions): Observable<ApiResponse<RolePermissionIndexItem[]>> {\n return this.get<ApiResponse<RolePermissionIndexItem[]>>('roles', {\n params: options,\n withCredentials: true,\n });\n }\n\n getRoleSummary(roleId: string, options: FindRolePermissionSummaryOptions): Observable<ApiResponse<RolePermissionSummary>> {\n return this.get<ApiResponse<RolePermissionSummary>>(`roles/${roleId}`, {\n params: options,\n withCredentials: true,\n });\n }\n\n findAssignablePermissions(\n roleId: string,\n options: FindAssignablePermissionsOptions,\n ): Observable<ApiResponse<PermissionSummary[]>> {\n return this.get<ApiResponse<PermissionSummary[]>>(`roles/${roleId}/permissions`, {\n params: options,\n withCredentials: true,\n });\n }\n\n saveRolePermissions(roleId: string, request: SaveRolePermissionsRequest): Observable<ApiResponse<void>> {\n return this.put<ApiResponse<void>>(`roles/${roleId}/permissions`, request, {\n withCredentials: true,\n });\n }\n\n buildGroups(items: PermissionSummary[]): PermissionGroup[] {\n const map = new Map<string, PermissionSummary[]>();\n\n for (const item of items) {\n const key = item.module?.trim() || 'Other';\n const list = map.get(key) ?? [];\n list.push(item);\n map.set(key, list);\n }\n\n return [...map.entries()].map(([key, values]) => ({\n key,\n label: key,\n count: values.length,\n assignedCount: values.filter((x) => x.assigned).length,\n items: values,\n }));\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { map, Observable } from 'rxjs';\nimport { BaseService } from './base.service';\nimport { ApiRequestOptions, ApiResponse, toApiRequestParams } from '@rolatech/angular-common';\nimport {\n RoleResponse,\n CreateRoleRequest,\n UpdateRoleRequest,\n RolePermissionPageResponse,\n UpdateRolePermissionsRequest,\n} from '../models/role.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RoleService extends BaseService {\n protected override readonly endpoint = 'platform/roles';\n\n // ---------------------------------------------------------------------------\n // Platform roles\n // ---------------------------------------------------------------------------\n\n findPlatformRoles(options?: ApiRequestOptions): Observable<RoleResponse[]> {\n return this.http\n .get<ApiResponse<RoleResponse[]>>(`${this.actionUrl}/platform`, {\n params: toApiRequestParams(options),\n })\n .pipe(map((response) => response.data));\n }\n\n findPlatformRoleById(id: string): Observable<RoleResponse> {\n return this.http.get<ApiResponse<RoleResponse>>(`${this.actionUrl}/platform/${id}`).pipe(map((response) => response.data));\n }\n\n createPlatformRole(request: CreateRoleRequest): Observable<RoleResponse> {\n return this.http.post<ApiResponse<RoleResponse>>(`platform`, request).pipe(map((response) => response.data));\n }\n\n updatePlatformRole(id: string, request: UpdateRoleRequest): Observable<RoleResponse> {\n return this.http\n .put<ApiResponse<RoleResponse>>(`${this.actionUrl}/platform/${id}`, request)\n .pipe(map((response) => response.data));\n }\n\n findPlatformRolePermissionPage(id: string): Observable<RolePermissionPageResponse> {\n return this.http\n .get<ApiResponse<RolePermissionPageResponse>>(`${this.actionUrl}/platform/${id}/permissions`)\n .pipe(map((response) => response.data));\n }\n\n updatePlatformRolePermissions(id: string, request: UpdateRolePermissionsRequest): Observable<RoleResponse> {\n return this.http\n .put<ApiResponse<RoleResponse>>(`${this.actionUrl}/platform/${id}/permissions`, request)\n .pipe(map((response) => response.data));\n }\n\n deletePlatformRoleById(id: string): Observable<string> {\n return this.http.delete<ApiResponse<string>>(`${this.actionUrl}/platform/${id}`).pipe(map((response) => response.data));\n }\n\n // ---------------------------------------------------------------------------\n // Application roles\n // ---------------------------------------------------------------------------\n\n findApplicationRoles(appId: string): Observable<RoleResponse[]> {\n return this.get<ApiResponse<RoleResponse[]>>(`/applications/${appId}`, {}).pipe(this.unwrapData());\n }\n\n findApplicationRoleById(id: string, appId?: string | null): Observable<RoleResponse> {\n return this.http\n .get<ApiResponse<RoleResponse>>(`${this.actionUrl}/applications/${id}`, {\n params: this.toParams({\n appId,\n }),\n })\n .pipe(map((response) => response.data));\n }\n\n createApplicationRole(request: CreateRoleRequest, appId?: string | null): Observable<RoleResponse> {\n return this.http\n .post<ApiResponse<RoleResponse>>(`${this.actionUrl}/applications`, request, {\n params: this.toParams({\n appId,\n }),\n })\n .pipe(map((response) => response.data));\n }\n\n updateApplicationRole(id: string, request: UpdateRoleRequest, appId?: string | null): Observable<RoleResponse> {\n return this.http\n .put<ApiResponse<RoleResponse>>(`${this.actionUrl}/applications/${id}`, request, {\n params: this.toParams({\n appId,\n }),\n })\n .pipe(map((response) => response.data));\n }\n\n findApplicationRolePermissionPage(id: string, appId?: string | null): Observable<RolePermissionPageResponse> {\n return this.http\n .get<ApiResponse<RolePermissionPageResponse>>(`${this.actionUrl}/applications/${id}/permissions`, {\n params: this.toParams({\n appId,\n }),\n })\n .pipe(map((response) => response.data));\n }\n\n updateApplicationRolePermissions(\n id: string,\n request: UpdateRolePermissionsRequest,\n appId?: string | null,\n ): Observable<RoleResponse> {\n return this.http\n .put<ApiResponse<RoleResponse>>(`${this.actionUrl}/applications/${id}/permissions`, request, {\n params: this.toParams({\n appId,\n }),\n })\n .pipe(map((response) => response.data));\n }\n\n deleteApplicationRoleById(id: string, appId?: string | null): Observable<string> {\n return this.http\n .delete<ApiResponse<string>>(`${this.actionUrl}/applications/${id}`, {\n params: this.toParams({\n appId,\n }),\n })\n .pipe(map((response) => response.data));\n }\n\n // ---------------------------------------------------------------------------\n // Organization roles\n // ---------------------------------------------------------------------------\n\n findOrganizationRoles(orgId: string): Observable<RoleResponse[]> {\n return this.http\n .get<ApiResponse<RoleResponse[]>>(`${this.actionUrl}/organizations/${orgId}`)\n .pipe(map((response) => response.data));\n }\n\n findOrganizationRoleById(orgId: string, id: string): Observable<RoleResponse> {\n return this.http\n .get<ApiResponse<RoleResponse>>(`${this.actionUrl}/organizations/${orgId}/${id}`)\n .pipe(map((response) => response.data));\n }\n\n createOrganizationRole(orgId: string, request: CreateRoleRequest, appId?: string | null): Observable<RoleResponse> {\n if (appId) {\n return this.createApplicationOrganizationRole(appId, orgId, request);\n }\n\n return this.http\n .post<ApiResponse<RoleResponse>>(`${this.actionUrl}/organizations/${orgId}`, request)\n .pipe(map((response) => response.data));\n }\n\n updateOrganizationRole(\n orgId: string,\n id: string,\n request: UpdateRoleRequest,\n appId?: string | null,\n ): Observable<RoleResponse> {\n if (appId) {\n return this.updateApplicationOrganizationRole(appId, orgId, id, request);\n }\n\n return this.http\n .put<ApiResponse<RoleResponse>>(`${this.actionUrl}/organizations/${orgId}/${id}`, request)\n .pipe(map((response) => response.data));\n }\n\n findOrganizationRolePermissionPage(orgId: string, id: string, appId?: string | null): Observable<RolePermissionPageResponse> {\n if (appId) {\n return this.findApplicationOrganizationRolePermissionPage(appId, orgId, id);\n }\n\n return this.http\n .get<ApiResponse<RolePermissionPageResponse>>(`${this.actionUrl}/organizations/${orgId}/${id}/permissions`)\n .pipe(map((response) => response.data));\n }\n\n updateOrganizationRolePermissions(\n orgId: string,\n id: string,\n request: UpdateRolePermissionsRequest,\n appId?: string | null,\n ): Observable<RoleResponse> {\n if (appId) {\n return this.updateApplicationOrganizationRolePermissions(appId, orgId, id, request);\n }\n\n return this.http\n .put<ApiResponse<RoleResponse>>(`${this.actionUrl}/organizations/${orgId}/${id}/permissions`, request)\n .pipe(map((response) => response.data));\n }\n\n deleteOrganizationRoleById(orgId: string, id: string, appId?: string | null): Observable<string> {\n if (appId) {\n return this.deleteApplicationOrganizationRoleById(appId, orgId, id);\n }\n\n return this.http\n .delete<ApiResponse<string>>(`${this.actionUrl}/organizations/${orgId}/${id}`)\n .pipe(map((response) => response.data));\n }\n\n // ---------------------------------------------------------------------------\n // Helpers\n // ---------------------------------------------------------------------------\n\n private toParams(values?: Record<string, unknown>): HttpParams {\n let params = new HttpParams();\n\n if (!values) {\n return params;\n }\n\n for (const [key, value] of Object.entries(values)) {\n if (value === null || value === undefined || value === '') {\n continue;\n }\n\n params = params.set(key, String(value));\n }\n\n return params;\n }\n\n private createApplicationOrganizationRole(\n appId: string,\n orgId: string,\n request: CreateRoleRequest,\n ): Observable<RoleResponse> {\n return this.http\n .post<ApiResponse<RoleResponse>>(this.toApplicationOrganizationRoleUrl(appId, orgId), request)\n .pipe(map((response) => response.data));\n }\n\n private updateApplicationOrganizationRole(\n appId: string,\n orgId: string,\n id: string,\n request: UpdateRoleRequest,\n ): Observable<RoleResponse> {\n return this.http\n .put<ApiResponse<RoleResponse>>(this.toApplicationOrganizationRoleUrl(appId, orgId, id), request)\n .pipe(map((response) => response.data));\n }\n\n private findApplicationOrganizationRolePermissionPage(\n appId: string,\n orgId: string,\n id: string,\n ): Observable<RolePermissionPageResponse> {\n return this.http\n .get<ApiResponse<RolePermissionPageResponse>>(this.toApplicationOrganizationRoleUrl(appId, orgId, id, 'permissions'))\n .pipe(map((response) => response.data));\n }\n\n private updateApplicationOrganizationRolePermissions(\n appId: string,\n orgId: string,\n id: string,\n request: UpdateRolePermissionsRequest,\n ): Observable<RoleResponse> {\n return this.http\n .put<ApiResponse<RoleResponse>>(this.toApplicationOrganizationRoleUrl(appId, orgId, id, 'permissions'), request)\n .pipe(map((response) => response.data));\n }\n\n private deleteApplicationOrganizationRoleById(appId: string, orgId: string, id: string): Observable<string> {\n return this.http\n .delete<ApiResponse<string>>(this.toApplicationOrganizationRoleUrl(appId, orgId, id))\n .pipe(map((response) => response.data));\n }\n\n private toApplicationOrganizationRoleUrl(appId: string, orgId: string, roleId?: string, suffix?: string): string {\n const segments = [this.environment.baseUrl, 'platform', 'applications', appId, 'organizations', orgId, 'roles'];\n\n if (roleId) {\n segments.push(roleId);\n }\n\n if (suffix) {\n segments.push(suffix);\n }\n\n return segments.join('/');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { map, Observable } from 'rxjs';\nimport { ApiResponse } from '@rolatech/angular-common';\nimport { BaseService } from './base.service';\nimport {\n CreateOrganizationInvitationRequest,\n OrganizationInvitationAcceptanceResponse,\n OrganizationInvitationPageResponse,\n OrganizationInvitationResponse,\n} from '../models/organization-admin.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OrganizationInvitationService extends BaseService {\n protected override readonly endpoint = 'platform/organizations';\n\n findInvitations(orgId: string): Observable<OrganizationInvitationPageResponse> {\n return this.http\n .get<ApiResponse<OrganizationInvitationPageResponse | OrganizationInvitationResponse[]>>(\n `${this.actionUrl}/${orgId}/invitations`,\n {\n withCredentials: true,\n },\n )\n .pipe(map((response) => this.toInvitationPage(response.data)));\n }\n\n createInvitation(orgId: string, request: CreateOrganizationInvitationRequest): Observable<OrganizationInvitationResponse> {\n return this.http\n .post<ApiResponse<OrganizationInvitationResponse>>(`${this.actionUrl}/${orgId}/invitations`, request, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n resendInvitation(orgId: string, invitationId: string): Observable<void> {\n return this.http\n .post<ApiResponse<void>>(\n `${this.actionUrl}/${orgId}/invitations/${invitationId}/resend`,\n {},\n {\n withCredentials: true,\n },\n )\n .pipe(map(() => undefined));\n }\n\n acceptInvitation(orgId: string, token: string): Observable<OrganizationInvitationAcceptanceResponse> {\n return this.http\n .post<ApiResponse<OrganizationInvitationAcceptanceResponse>>(\n `${this.actionUrl}/${orgId}/invitations/accept`,\n {},\n {\n params: { token },\n withCredentials: true,\n },\n )\n .pipe(map((response) => response.data));\n }\n\n revokeInvitation(orgId: string, invitationId: string): Observable<void> {\n return this.http\n .delete<ApiResponse<void>>(`${this.actionUrl}/${orgId}/invitations/${invitationId}`, {\n withCredentials: true,\n })\n .pipe(map(() => undefined));\n }\n\n private toInvitationPage(\n payload: OrganizationInvitationPageResponse | OrganizationInvitationResponse[],\n ): OrganizationInvitationPageResponse {\n if (Array.isArray(payload)) {\n return {\n items: payload,\n total: payload.length,\n };\n }\n\n return {\n items: payload.items ?? [],\n total: payload.total ?? payload.items?.length ?? 0,\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { map, Observable } from 'rxjs';\nimport { ApiResponse } from '@rolatech/angular-common';\nimport { BaseService } from './base.service';\nimport {\n OrganizationMemberCollectionResponse,\n OrganizationMemberResponse,\n UpdateOrganizationMemberRolesRequest,\n} from '../models/organization-admin.models';\n\ntype OrganizationMemberListPayload = OrganizationMemberResponse[] | OrganizationMemberCollectionResponse;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OrganizationMemberService extends BaseService {\n protected override readonly endpoint = 'platform/organizations';\n\n findMembers(orgId: string): Observable<OrganizationMemberResponse[]> {\n return this.get<ApiResponse<OrganizationMemberListPayload>>(`${orgId}/members`, {\n withCredentials: true,\n })\n .pipe(map((response) => this.toMembers(response.data)));\n }\n\n findMemberById(orgId: string, memberId: string): Observable<OrganizationMemberResponse> {\n return this.get<ApiResponse<OrganizationMemberResponse>>(`${orgId}/members/${memberId}`, {\n withCredentials: true,\n })\n .pipe(map((response) => this.normalizeMember(response.data)));\n }\n\n updateMemberRoles(\n orgId: string,\n memberId: string,\n request: UpdateOrganizationMemberRolesRequest,\n ): Observable<OrganizationMemberResponse> {\n return this.put<ApiResponse<OrganizationMemberResponse>, UpdateOrganizationMemberRolesRequest>(\n `${orgId}/members/${memberId}/roles`,\n request,\n {\n withCredentials: true,\n },\n ).pipe(map((response) => this.normalizeMember(response.data)));\n }\n\n resetMemberPassword(orgId: string, memberId: string): Observable<void> {\n return this.post<ApiResponse<void>>(\n `${orgId}/members/${memberId}/password/reset-request`,\n {},\n {\n withCredentials: true,\n },\n ).pipe(map(() => undefined));\n }\n\n private toMembers(payload: OrganizationMemberListPayload): OrganizationMemberResponse[] {\n if (Array.isArray(payload)) {\n return payload.map((member) => this.normalizeMember(member));\n }\n\n return (payload.items ?? []).map((member) => this.normalizeMember(member));\n }\n\n private normalizeMember(member: OrganizationMemberResponse): OrganizationMemberResponse {\n return {\n ...member,\n roles: member.roles ?? [],\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiResponse } from '@rolatech/angular-common';\nimport { map, Observable } from 'rxjs';\nimport {\n ConfirmOnboardingDocumentUploadRequest,\n CreateOnboardingApplicationRequest,\n OnboardingApplicationDetailResponse,\n OnboardingApplicationResponse,\n OnboardingUploadUrlResponse,\n RequestOnboardingUploadUrlRequest,\n SaveOnboardingBankingRequest,\n SaveOnboardingFinancialRequest,\n SaveOnboardingProfileRequest,\n} from '../models/onboarding.models';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnboardingApplicantService extends BaseService {\n protected override readonly endpoint = 'onboarding/applications';\n\n createApplication(payload: CreateOnboardingApplicationRequest): Observable<OnboardingApplicationResponse> {\n return this.http\n .post<ApiResponse<OnboardingApplicationResponse>>(this.actionUrl, payload, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n listMine(): Observable<OnboardingApplicationResponse[]> {\n return this.http\n .get<ApiResponse<OnboardingApplicationResponse[]>>(`${this.actionUrl}/mine`, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n getApplication(applicationId: string): Observable<OnboardingApplicationDetailResponse> {\n return this.http\n .get<ApiResponse<OnboardingApplicationDetailResponse>>(`${this.actionUrl}/${applicationId}`, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n saveProfile(applicationId: string, payload: SaveOnboardingProfileRequest): Observable<OnboardingApplicationResponse> {\n return this.http\n .put<ApiResponse<OnboardingApplicationResponse>>(`${this.actionUrl}/${applicationId}/profile`, payload, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n saveFinancial(applicationId: string, payload: SaveOnboardingFinancialRequest): Observable<OnboardingApplicationResponse> {\n return this.http\n .put<ApiResponse<OnboardingApplicationResponse>>(`${this.actionUrl}/${applicationId}/financial`, payload, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n saveBanking(applicationId: string, payload: SaveOnboardingBankingRequest): Observable<OnboardingApplicationResponse> {\n return this.http\n .put<ApiResponse<OnboardingApplicationResponse>>(`${this.actionUrl}/${applicationId}/banking`, payload, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n requestUploadUrl(applicationId: string, payload: RequestOnboardingUploadUrlRequest): Observable<OnboardingUploadUrlResponse> {\n return this.http\n .post<ApiResponse<OnboardingUploadUrlResponse>>(`${this.actionUrl}/${applicationId}/documents/upload-url`, payload, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n confirmDocumentUpload(\n applicationId: string,\n payload: ConfirmOnboardingDocumentUploadRequest,\n ): Observable<OnboardingApplicationDetailResponse> {\n return this.http\n .post<ApiResponse<OnboardingApplicationDetailResponse>>(`${this.actionUrl}/${applicationId}/documents/confirm`, payload, {\n withCredentials: true,\n })\n .pipe(map((response) => response.data));\n }\n\n submit(applicationId: string): Observable<OnboardingApplicationResponse> {\n return this.http\n .post<ApiResponse<OnboardingApplicationResponse>>(\n `${this.actionUrl}/${applicationId}/submit`,\n {},\n {\n withCredentials: true,\n },\n )\n .pipe(map((response) => response.data));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiResponse } from '@rolatech/angular-common';\nimport { Observable } from 'rxjs';\nimport {\n ApproveOnboardingApplicationRequest,\n FailOnboardingApplicationRequest,\n NeedMoreInfoOnboardingApplicationRequest,\n OnboardingAdminListOptions,\n OnboardingApplicationDetailResponse,\n OnboardingApplicationResponse,\n OnboardingDocumentPreviewUrlResponse,\n} from '../models/onboarding.models';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnboardingAdminService extends BaseService {\n protected override readonly endpoint = 'onboarding/admin/applications';\n\n list(options: OnboardingAdminListOptions): Observable<ApiResponse<OnboardingApplicationResponse[]>> {\n return this.get<ApiResponse<OnboardingApplicationResponse[]>>(undefined, { params: options }).pipe();\n }\n\n getApplication(applicationId: string): Observable<OnboardingApplicationDetailResponse> {\n return this.get<ApiResponse<OnboardingApplicationDetailResponse>>(applicationId).pipe(this.unwrapData());\n }\n\n getDocumentPreviewUrl(applicationId: string, documentId: string): Observable<OnboardingDocumentPreviewUrlResponse> {\n return this.get<ApiResponse<OnboardingDocumentPreviewUrlResponse>>(\n `${applicationId}/documents/${documentId}/preview-url`,\n ).pipe(this.unwrapData());\n }\n\n startReview(applicationId: string): Observable<OnboardingApplicationResponse> {\n return this.post<ApiResponse<OnboardingApplicationResponse>>(`${applicationId}/review/start`).pipe(this.unwrapData());\n }\n\n needMoreInfo(\n applicationId: string,\n payload: NeedMoreInfoOnboardingApplicationRequest,\n ): Observable<OnboardingApplicationResponse> {\n return this.post<ApiResponse<OnboardingApplicationResponse>, NeedMoreInfoOnboardingApplicationRequest>(\n `${applicationId}/need-more-info`,\n payload,\n ).pipe(this.unwrapData());\n }\n\n approve(applicationId: string, payload: ApproveOnboardingApplicationRequest): Observable<OnboardingApplicationResponse> {\n return this.post<ApiResponse<OnboardingApplicationResponse>, ApproveOnboardingApplicationRequest>(\n `${applicationId}/approve`,\n payload,\n ).pipe(this.unwrapData());\n }\n\n fail(applicationId: string, payload: FailOnboardingApplicationRequest): Observable<OnboardingApplicationResponse> {\n return this.post<ApiResponse<OnboardingApplicationResponse>, FailOnboardingApplicationRequest>(\n `${applicationId}/fail`,\n payload,\n ).pipe(this.unwrapData());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiResponse } from '@rolatech/angular-common';\nimport { map, Observable } from 'rxjs';\nimport { OnboardingDocumentPreviewUrlResponse } from '../models/onboarding.models';\nimport { BaseService } from './base.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OnboardingDocumentService extends BaseService {\n protected override readonly endpoint = 'onboarding/documents';\n\n getPreviewUrl(documentId: string): Observable<OnboardingDocumentPreviewUrlResponse> {\n return this.get<ApiResponse<OnboardingDocumentPreviewUrlResponse>>(`${documentId}/preview-url`, {\n withCredentials: true,\n })\n .pipe(this.unwrapData());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseService } from './base.service';\nimport { Observable } from 'rxjs';\nimport { BillingProfileResponse, BillingProfileUpsertParam } from '../models/billing-profile.model';\nimport { ApiResponse } from '@rolatech/angular-common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BillingProfileService extends BaseService {\n protected override readonly endpoint = 'billing/profile';\n\n getOrCreate(): Observable<ApiResponse<BillingProfileResponse>> {\n return this.get<ApiResponse<BillingProfileResponse>>();\n }\n\n updateProfile(body: BillingProfileUpsertParam): Observable<ApiResponse<BillingProfileResponse>> {\n return this.put<ApiResponse<BillingProfileResponse>, BillingProfileUpsertParam>(undefined, body);\n }\n\n patchProfile(body: Partial<BillingProfileUpsertParam>): Observable<ApiResponse<BillingProfileResponse>> {\n return this.patch<ApiResponse<BillingProfileResponse>, Partial<BillingProfileUpsertParam>>(undefined, body);\n }\n\n patchProfile1(body: Partial<BillingProfileUpsertParam>): Observable<ApiResponse<BillingProfileResponse>> {\n return this.patchProfile(body);\n }\n\n enable(): Observable<ApiResponse<BillingProfileResponse>> {\n return this.patch<ApiResponse<BillingProfileResponse>>(undefined, {\n enabled: true,\n });\n }\n\n disable(): Observable<ApiResponse<BillingProfileResponse>> {\n return this.patch<ApiResponse<BillingProfileResponse>>(undefined, {\n enabled: false,\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } 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(request: HttpRequest<any>, next: HttpHandler): 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","// 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","export type OfferType = 'RENTAL' | 'SALE';\n\nexport type PaymentFrequency = 'MONTHLY' | 'QUARTERLY' | 'SEMI_ANNUALLY' | 'ANNUALLY';\nexport type FurnitureRequirement = 'FURNISHED' | 'UNFURNISHED';\n\nexport type ApplicantType = 'INDIVIDUAL' | 'CORPORATE' | 'STUDENT';\nexport type GuarantorType = 'INDIVIDUAL' | 'COMPANY';\nexport type EmploymentStatus = 'EMPLOYED' | 'SELF_EMPLOYED' | 'UNEMPLOYED';\n\nexport type VisaStatus = 'CITIZEN' | 'VISA_HOLDER' | 'WAITING_FOR_VISA' | 'NOT_YET_APPLIED_FOR_VISA';\nexport type VisaShareCodeStatus = 'WAITING_FOR_SHARECODE' | 'OTHER';\n\nexport type AdverseCreditStatus =\n | 'NONE'\n | 'ACTIVE_CCJ'\n | 'SATISFIED_CCJ'\n | 'DEBT_MANAGEMENT_PLAN'\n | 'LOW_CREDIT_SCORE'\n | 'OTHER';\nexport type Gender = 'MALE' | 'FEMALE' | 'OTHER' | 'PREFER_NOT_TO_SAY';\n\nexport type SalePaymentMethod = 'CASH' | 'MORTGAGE';\n\nexport type OfferInvoiceOption = 'COMBINED' | 'SEPARATE';\nexport type GuarantorRelationshipType = 'FAMILY' | 'FRIEND' | 'GUARANTOR_SERVICE' | 'OTHER';\n\nexport enum PropertyOfferStatus {\n // ── Draft / submission ────────────────────\n DRAFT = 'DRAFT',\n SUBMITTED = 'SUBMITTED',\n\n // ── Negotiation turn states ───────────────\n VIEWED_BY_AGENT = 'VIEWED_BY_AGENT',\n VIEWED_BY_TENANT = 'VIEWED_BY_TENANT',\n\n COUNTERED_BY_AGENT = 'COUNTERED_BY_AGENT',\n COUNTERED_BY_TENANT = 'COUNTERED_BY_TENANT',\n\n WITHDRAWN_BY_AGENT = 'WITHDRAWN_BY_AGENT',\n WITHDRAWN_BY_TENANT = 'WITHDRAWN_BY_TENANT',\n\n // ── Decision ──────────────────────────────\n ACCEPTED = 'ACCEPTED', // accepted in principle\n REJECTED = 'REJECTED',\n\n // ── Market / listing ──────────────────────\n UNDER_OFFER = 'UNDER_OFFER',\n\n // ── Holding deposit ───────────────────────\n HOLDING_DEPOSIT_PENDING = 'HOLDING_DEPOSIT_PENDING',\n HOLDING_DEPOSIT_PAID = 'HOLDING_DEPOSIT_PAID',\n\n // ── Referencing ───────────────────────────\n REFERENCING = 'REFERENCING',\n REFERENCES_PASSED = 'REFERENCES_PASSED',\n REFERENCES_FAILED = 'REFERENCES_FAILED',\n\n // ── Contract ──────────────────────────────\n CONTRACT_PENDING = 'CONTRACT_PENDING',\n CONTRACT_SIGNED = 'CONTRACT_SIGNED',\n CONTRACT_FAILED = 'CONTRACT_FAILED',\n\n // ── Move-in payments ──────────────────────\n SECURITY_DEPOSIT_PENDING = 'SECURITY_DEPOSIT_PENDING',\n SECURITY_DEPOSIT_PAID = 'SECURITY_DEPOSIT_PAID',\n FIRST_RENT_PENDING = 'FIRST_RENT_PENDING',\n MOVE_IN_PAYMENT_PAID = 'MOVE_IN_PAYMENT_PAID',\n\n // ── Completion ────────────────────────────\n COMPLETED = 'COMPLETED',\n\n // ── Terminal / system ─────────────────────\n FAILED = 'FAILED',\n EXPIRED = 'EXPIRED',\n CANCELLED = 'CANCELLED',\n}\n\nexport interface OfferSummary {\n id: string;\n offerType: OfferType;\n status: PropertyOfferStatus;\n propertyId: string;\n}\n\nexport interface RentalOfferTerms {\n amount: number | null;\n moveInDate: string | null; // ISO date: YYYY-MM-DD\n paymentFrequency: PaymentFrequency | null;\n tenancyLengthMonths: number | null;\n breakClauseMonths: number | null;\n pets: string[] | [];\n smoker: boolean | null;\n furnitureRequirement: FurnitureRequirement | null;\n additionalRequests: string | null;\n internalNote?: string | null;\n}\n\nexport interface PersonAddress {\n line1: string | null;\n line2: string | null;\n city: string | null;\n postcode: string | null;\n country: string | null;\n}\n\nexport interface Guarantor {\n fullName: string | null;\n dob: string | null;\n gender: Gender | null;\n nationality: string | null;\n phone: string | null;\n email: string | null;\n address: PersonAddress;\n type: GuarantorType;\n employmentStatus: EmploymentStatus | null;\n companyName: string | null;\n jobTitle: string | null;\n annualSalary: number | null;\n companyNumber: string | null;\n taxReturnSubmitted: boolean | null;\n additionalFinancialSupport: string | null;\n relationshipType: GuarantorRelationshipType;\n relationshipOther?: string | null;\n}\n\nexport interface Tenant {\n id: string;\n fullName: string | null;\n dob: string | null;\n gender: Gender | null;\n nationality: string | null;\n phone: string | null;\n email: string | null;\n address: PersonAddress;\n\n adverseCreditStatus: AdverseCreditStatus | null;\n\n applicantType: ApplicantType | null;\n visaStatus: VisaStatus | null;\n\n visaShareCodeStatus: VisaShareCodeStatus;\n visaShareCodeOther: string;\n\n // Individual -> employment\n employmentStatus: EmploymentStatus | null;\n companyName: string | null;\n jobTitle: string | null;\n annualSalary: number | null;\n companyNumber: string | null; // self employed\n taxReturnSubmitted: boolean | null; // self employed\n\n // Corporate\n corporateCompanyName: string | null;\n corporateCompanyNumber: string | null;\n corporateJobTitle: string | null;\n\n // Student\n universityName: string | null;\n courseTitle: string | null;\n yearOfStudy: number | null;\n\n guarantor: Guarantor;\n}\n\nexport interface SaleOfferDetails {\n amount: number | null;\n buyerName: string | null;\n email: string | null;\n phone: string | null;\n paymentMethod: SalePaymentMethod | null;\n proposedExchangeDate: string | null; // YYYY-MM-DD\n solicitorCompanyName: string | null;\n}\n\nexport interface CreateRentalOfferPayload {\n propertyId: string;\n rental: RentalOfferTerms;\n tenants: Tenant[];\n}\n\nexport interface CreateSaleOfferPayload {\n propertyId: string;\n sale: SaleOfferDetails;\n}\n\nexport interface PropertyOfferResponse {\n id: string;\n userId: string;\n agentId: string;\n type: OfferType;\n status: PropertyOfferStatus;\n propertyId: string;\n\n rentalTerms?: RentalOfferTerms;\n tenants?: Tenant[];\n\n sale?: SaleOfferDetails;\n\n item: PropertyOfferItem;\n\n invoiceOption: OfferInvoiceOption;\n}\nexport interface PropertyOfferItem {\n propertyId: string;\n title: string;\n description: string;\n amount: number;\n bedrooms: number;\n bathrooms: number;\n receptions: number;\n agentId: string;\n media: PropertyOfferItemMedia[];\n}\nexport interface PropertyOfferItemMedia {\n id: string;\n url: string;\n alt: string;\n width: number;\n height: number;\n uuid: string;\n}\nexport interface CopyTextResponse {\n offerId: string;\n redactContact: boolean;\n text: string;\n}\n\nexport interface UpdatePropertyOfferInternalNoteRequest {\n internalNote: string;\n}\nexport interface PropertyOfferInternalNoteResponse {\n offerId: string;\n internalNote: string;\n}\n","export type ViewingType = 'RENTAL' | 'SALE';\nexport type PropertyViewingStatusCode = keyof typeof PropertyViewingStatus;\nexport type PropertyViewingtypeCode = keyof typeof PropertyViewingType;\nexport type PropertyApplicantTypeCode = keyof typeof PropertyApplicantType;\n\nexport interface PropertyViewingResponse {\n id: string;\n firstName: string;\n lastName: string;\n email: string;\n phone: string;\n jobTitle?: string;\n monthlyBudget?: number;\n annualIncome?: number;\n moveInDate?: string;\n userId: string;\n agentId: string;\n appId?: string;\n orgId?: string;\n type?: ViewingType;\n status: PropertyViewingStatusCode | string;\n viewerCategory?: PropertyViewerCategory | string;\n tenantCategory?: PropertyApplicantTypeCode | string;\n requesterType?: string;\n requesterAppId?: string;\n requesterOrgId?: string;\n viewingDate?: string;\n viewingTime?: string;\n slotProposalSource?: string | null;\n slotDecisionRequired?: boolean | null;\n counteredAt?: string | null;\n proposedSlots: ViewingProposedSlot[];\n item: PropertyViewingItem;\n}\nexport enum PropertyViewingType {\n RENTAL = 'Rental',\n SALE = 'Sale',\n}\nexport enum PropertyViewerCategory {\n TENANT = 'TENANT',\n AGENT = 'AGENT',\n}\nexport enum PropertyApplicantType {\n INDIVIDUAL = 'Individual',\n CORPORATE = 'Corporate',\n STUDENT = 'Student',\n}\nexport interface PropertyViewingItem {\n propertyId: string;\n title: string;\n description: string;\n address: string;\n price: number;\n bedrooms: number;\n bathrooms: number;\n receptions: number;\n agentId: string;\n media: PropertyViewingItemMedia[];\n}\nexport interface PropertyViewingItemMedia {\n id: string;\n url: string;\n alt: string;\n width?: number;\n height?: number;\n uuid?: string;\n}\nexport enum PropertyViewingStatus {\n PENDING = 'Pending',\n COUNTERED = 'Countered',\n APPROVED = 'Approved',\n REJECTED = 'Rejected',\n CANCELLED = 'Cancelled',\n COMPLETED = 'Completed',\n}\nexport interface ViewingProposedSlot {\n id?: string;\n date: string;\n time: string;\n source?: string | null;\n state?: string | null;\n}\n","// angular-automation/src/lib/models/automation.models.ts\n\n/** Mirrors AbstractBaseEntity (common fields in your backend). */\nexport interface BaseEntity {\n id: string;\n createdAt?: string; // ISO string, e.g. \"2025-12-25T10:30:00Z\"\n updatedAt?: string; // ISO string\n version?: number;\n}\n\n/** ---- Enums ---- */\n\nexport type AutomationExecutionStatus = 'QUEUED' | 'RUNNING' | 'SUCCEEDED' | 'FAILED' | 'CANCELLED'; // keep if your backend has it; remove if not\n\nexport type AutomationLogLevel = 'INFO' | 'WARN' | 'ERROR' | 'DEBUG';\n\nexport type ScheduleCron = 'EVERY_5_MINUTES' | 'EVERY_15_MINUTES' | 'HOURLY' | 'DAILY' | 'WEEKLY';\n\n/** ---- Entities ---- */\n\nexport interface AutomationDefinition extends BaseEntity {\n code: string; // unique, e.g. \"PROPERTY_ALTO_SYNC\"\n name: string;\n description?: string | null;\n handlerKey: string; // Spring bean name, e.g. \"altoSyncAutomationHandler\"\n defaultInputJson?: string | null; // raw JSON string from backend\n enabled: boolean;\n}\n\nexport interface AutomationExecution extends BaseEntity {\n definitionId: string;\n scheduleId?: string | null;\n\n status: AutomationExecutionStatus;\n\n queuedAt?: string | null; // Instant -> ISO string\n startedAt?: string | null;\n finishedAt?: string | null;\n\n processed: number;\n total: number;\n\n lastSeq: number;\n\n inputJson?: string | null; // raw JSON string\n metadata?: Record<string, any> | null; // Map<String,Object> (json)\n idempotencyKey?: string | null;\n\n errorMessage?: string | null;\n}\n\nexport interface AutomationSchedule extends BaseEntity {\n definitionId: string;\n\n name: string;\n\n schedule: ScheduleCron;\n\n inputJson?: string | null; // raw JSON string override/extra config per schedule\n\n enabled: boolean;\n\n nextRunAt?: string | null; // Instant -> ISO string\n lastRunAt?: string | null;\n}\n\nexport interface AutomationExecutionLog extends BaseEntity {\n executionId: string;\n level: AutomationLogLevel;\n message: string;\n}\n\n/** ---- Optional: enum metadata for UI (label/description) ---- */\n\nexport interface ScheduleCronMeta {\n value: ScheduleCron;\n label: string;\n description: string;\n}\n\nexport const SCHEDULE_CRON_META: readonly ScheduleCronMeta[] = [\n { value: 'EVERY_5_MINUTES', label: 'Every 5 minutes', description: 'Runs every 5 minutes' },\n { value: 'EVERY_15_MINUTES', label: 'Every 15 minutes', description: 'Runs every 15 minutes' },\n { value: 'HOURLY', label: 'Hourly', description: 'Runs once per hour' },\n { value: 'DAILY', label: 'Daily', description: 'Runs once per day' },\n { value: 'WEEKLY', label: 'Weekly', description: 'Runs once per week' },\n] as const;\n","import { EnvironmentProviders, Provider, inject, makeEnvironmentProviders, provideAppInitializer } from '@angular/core';\nimport {\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 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 provideAppInitializer(() => {\n inject(NavigationService);\n }),\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { PropertyOfferStatus } from '../interfaces/property-offer';\n\nexport const PROPERTY_OFFER_STATUS_LABEL: Record<PropertyOfferStatus, string> = {\n [PropertyOfferStatus.DRAFT]: 'Draft',\n [PropertyOfferStatus.SUBMITTED]: 'Submitted',\n\n [PropertyOfferStatus.VIEWED_BY_AGENT]: 'Viewed by agent',\n [PropertyOfferStatus.VIEWED_BY_TENANT]: 'Viewed by tenant',\n\n [PropertyOfferStatus.COUNTERED_BY_AGENT]: 'Countered by agent',\n [PropertyOfferStatus.COUNTERED_BY_TENANT]: 'Countered by tenant',\n\n [PropertyOfferStatus.WITHDRAWN_BY_AGENT]: 'Withdrawn by agent',\n [PropertyOfferStatus.WITHDRAWN_BY_TENANT]: 'Withdrawn by tenant',\n\n [PropertyOfferStatus.ACCEPTED]: 'Accepted',\n [PropertyOfferStatus.REJECTED]: 'Rejected',\n\n [PropertyOfferStatus.UNDER_OFFER]: 'Under offer',\n\n [PropertyOfferStatus.HOLDING_DEPOSIT_PENDING]: 'Holding deposit pending',\n [PropertyOfferStatus.HOLDING_DEPOSIT_PAID]: 'Holding deposit paid',\n\n [PropertyOfferStatus.REFERENCING]: 'Referencing',\n [PropertyOfferStatus.REFERENCES_PASSED]: 'References passed',\n [PropertyOfferStatus.REFERENCES_FAILED]: 'References failed',\n\n [PropertyOfferStatus.CONTRACT_PENDING]: 'Contract pending',\n [PropertyOfferStatus.CONTRACT_SIGNED]: 'Contract signed',\n [PropertyOfferStatus.CONTRACT_FAILED]: 'Contract failed',\n\n [PropertyOfferStatus.SECURITY_DEPOSIT_PENDING]: 'Security deposit pending',\n [PropertyOfferStatus.SECURITY_DEPOSIT_PAID]: 'Security deposit paid',\n [PropertyOfferStatus.FIRST_RENT_PENDING]: 'First rent pending',\n [PropertyOfferStatus.MOVE_IN_PAYMENT_PAID]: 'Move-in payment paid',\n\n [PropertyOfferStatus.COMPLETED]: 'Completed',\n\n [PropertyOfferStatus.FAILED]: 'Failed',\n [PropertyOfferStatus.EXPIRED]: 'Expired',\n [PropertyOfferStatus.CANCELLED]: 'Cancelled',\n};\n\nexport function offerStatusLabel(status: PropertyOfferStatus | null | undefined): string {\n if (!status) return '—';\n return PROPERTY_OFFER_STATUS_LABEL[status] ?? String(status);\n}\n","import {\n OnboardingApplicantType,\n OnboardingDocumentType,\n OnboardingIssueType,\n OnboardingStatus,\n OnboardingVatMode,\n} from '../models/onboarding.models';\n\nexport const ONBOARDING_STATUS_LABEL: Record<OnboardingStatus, string> = {\n DRAFT: 'Draft',\n IN_PROGRESS: 'In progress',\n SUBMITTED: 'Submitted',\n IN_REVIEW: 'In review',\n NEED_MORE_INFO: 'Need more info',\n APPROVED: 'Approved',\n FAILED: 'Failed',\n};\n\nexport const ONBOARDING_APPLICANT_TYPE_LABEL: Record<OnboardingApplicantType, string> = {\n INDIVIDUAL: 'Individual',\n COMPANY: 'Company',\n};\n\nexport const ONBOARDING_DOCUMENT_TYPE_LABEL: Record<OnboardingDocumentType, string> = {\n PASSPORT: 'Passport',\n CERTIFICATE_OF_INCORPORATION: 'Certificate of incorporation',\n INDUSTRY_CERTIFICATE: 'Industry certificate',\n PROOF_OF_ADDRESS: 'Proof of address',\n BANK_STATEMENT: 'Bank statement',\n OTHER: 'Other',\n};\n\nexport const ONBOARDING_ISSUE_TYPE_LABEL: Record<OnboardingIssueType, string> = {\n FIELD: 'Field issue',\n DOCUMENT: 'Document issue',\n GENERAL: 'General issue',\n};\n\nexport const ONBOARDING_VAT_MODE_LABEL: Record<OnboardingVatMode, string> = {\n NON_VAT_REGISTERED: 'Non-VAT registered',\n VAT_REGISTERED: 'VAT registered',\n MANUAL_REVIEW_REQUIRED: 'Manual review required',\n};\n\nexport function onboardingStatusLabel(status: OnboardingStatus | null | undefined): string {\n if (!status) return '—';\n return ONBOARDING_STATUS_LABEL[status] ?? String(status);\n}\n\nexport function onboardingApplicantTypeLabel(type: OnboardingApplicantType | null | undefined): string {\n if (!type) return '—';\n return ONBOARDING_APPLICANT_TYPE_LABEL[type] ?? String(type);\n}\n\nexport function onboardingDocumentTypeLabel(type: OnboardingDocumentType | null | undefined): string {\n if (!type) return '—';\n return ONBOARDING_DOCUMENT_TYPE_LABEL[type] ?? String(type);\n}\n\nexport function onboardingIssueTypeLabel(type: OnboardingIssueType | null | undefined): string {\n if (!type) return '—';\n return ONBOARDING_ISSUE_TYPE_LABEL[type] ?? String(type);\n}\n\nexport function onboardingVatModeLabel(mode: OnboardingVatMode | null | undefined): string {\n if (!mode) return '—';\n return ONBOARDING_VAT_MODE_LABEL[mode] ?? String(mode);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map","shareReplay"],"mappings":"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"}