@rolatech/angular-property 20.2.9-beta.2 → 20.2.9-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,7 @@ import { AngularCommonModule } from '@rolatech/angular-common';
4
4
  import { BaseComponent, RichItemComponent, AngularComponentsModule, RichViewComponent } from '@rolatech/angular-components';
5
5
  import { PropertyService, PropertySearchService } from '@rolatech/angular-services';
6
6
  import { map, distinctUntilChanged, switchMap, finalize } from 'rxjs';
7
- import { P as PropertyUtil, a as PropertyViewType, b as PropertyManageItemSkeleton } from './rolatech-angular-property-rolatech-angular-property-LUKMn_fs.mjs';
7
+ import { P as PropertyUtil, a as PropertyViewType, b as PropertyManageItemSkeleton } from './rolatech-angular-property-rolatech-angular-property-GMffi4JO.mjs';
8
8
  import * as i1$1 from '@angular/common';
9
9
  import * as i2 from '@angular/material/paginator';
10
10
  import * as i1 from '@angular/router';
@@ -97,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
97
97
  }] });
98
98
 
99
99
  export { PropertyIndexComponent };
100
- //# sourceMappingURL=rolatech-angular-property-property-index.component-yauoMVPm.mjs.map
100
+ //# sourceMappingURL=rolatech-angular-property-property-index.component-Be_i7df_.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"rolatech-angular-property-property-index.component-yauoMVPm.mjs","sources":["../../../../packages/angular-property/src/lib/pages/property/property-index/property-index.component.ts","../../../../packages/angular-property/src/lib/pages/property/property-index/property-index.component.html"],"sourcesContent":["import { Component, DestroyRef, effect, inject, OnInit, signal, ViewEncapsulation } from '@angular/core';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule, RichViewComponent, RichItemComponent, BaseComponent } from '@rolatech/angular-components';\nimport { PropertySearchService, PropertyService } from '@rolatech/angular-services';\nimport { Property } from '../../../interfaces';\nimport { defer, distinctUntilChanged, finalize, map, switchMap } from 'rxjs';\nimport { PageEvent } from '@angular/material/paginator';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { PropertyUtil, PropertyViewType } from '../../../property-util';\nimport { PropertyManageItemSkeleton } from '../../../components/property-manage-item-skeleton/property-manage-item-skeleton';\n\n@Component({\n selector: 'rolatech-property-index',\n imports: [AngularCommonModule, AngularComponentsModule, RichViewComponent, RichItemComponent, PropertyManageItemSkeleton],\n templateUrl: './property-index.component.html',\n styleUrl: './property-index.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'rolatech-property-index',\n },\n})\nexport class PropertyIndexComponent extends BaseComponent implements OnInit {\n propertyService = inject(PropertyService);\n propertySearchService = inject(PropertySearchService);\n private util = inject(PropertyUtil);\n properties = signal<Property[]>([]);\n meta: any;\n loading = false;\n length = 100;\n pageSize = 15;\n pageIndex = signal(0);\n pageSizeOptions: number[] = [5, 10, 25, 100];\n viewType = PropertyViewType.GRID;\n\n ngOnInit(): void {\n this.util.viewEvent.subscribe((res) => {\n this.viewType = res;\n });\n const sub = this.route.queryParamMap\n .pipe(\n map((p) => {\n const page = p.get('page') ? Number(p.get('page')) : 1;\n this.pageIndex.set(Math.max(page - 1, 0));\n return {\n q: p.get('q') || undefined,\n town: p.get('town') || undefined,\n type: p.get('type') || undefined,\n market: p.get('market') || undefined,\n minBedrooms: p.get('minBedrooms') ? Number(p.get('minBedrooms')) : undefined,\n maxBedrooms: p.get('maxBedrooms') ? Number(p.get('maxBedrooms')) : undefined,\n minPrice: p.get('minPrice') ? Number(p.get('minPrice')) : undefined,\n maxPrice: p.get('maxPrice') ? Number(p.get('maxPrice')) : undefined,\n availableFrom: p.get('availableFrom') || undefined,\n availableTo: p.get('availableTo') || undefined,\n features: p.getAll('features')?.length ? p.getAll('features') : undefined,\n page,\n limit: p.get('limit') ? Number(p.get('limit')) : 15,\n sort: p.get('sort') || undefined,\n };\n }),\n // Cheap deep compare via JSON to avoid spam calls when nothing changed\n map((o) => JSON.stringify(o)),\n distinctUntilChanged(),\n map((s) => JSON.parse(s)),\n switchMap((params) => {\n this.loading = true;\n params['sort'] = 'updatedAt desc';\n return this.propertySearchService.search<any>(params).pipe(finalize(() => (this.loading = false)));\n }),\n )\n .subscribe({\n next: (res) => {\n this.properties.set(res.data);\n this.meta = res.meta;\n this.length = res.meta.pagination.count;\n },\n error: () => {\n this.properties.set([]);\n this.length = 0;\n },\n });\n\n // // auto-unsubscribe on destroy\n this.destroyRef.onDestroy(() => sub.unsubscribe());\n }\n onPage(e: PageEvent) {\n this.router.navigate([], {\n queryParams: { page: e.pageIndex + 1, limit: e.pageSize },\n queryParamsHandling: 'merge',\n replaceUrl: true, // optional: avoid stacking history on every page click\n });\n }\n search(params: any) {\n this.propertySearchService.search(params).subscribe({\n next: (res) => {\n this.properties.set(res.data);\n this.meta = res.meta;\n this.loading = false;\n this.length = res.meta.pagination.count;\n },\n error: (error) => {\n this.loading = false;\n },\n });\n }\n}\n","<div class=\"min-w-[320px] h-full\">\n @if (loading) {\n <div class=\"bg-[--rt-rasised-background] h-full\">\n <div class=\"flex flex-row flex-wrap\" [ngClass]=\"viewType === 1 ? 'flex-col' : 'flex-row flex-wrap'\">\n @for (row of [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]; track row) {\n <rolatech-property-manage-item-skeleton [list]=\"viewType === 1\"></rolatech-property-manage-item-skeleton>\n }\n </div>\n </div>\n } @else {\n @if (properties() && properties().length > 0) {\n <rolatech-rich-view [wrap]=\"viewType === 0\" [list]=\"viewType === 1\">\n @for (item of properties(); track item) {\n @defer {\n <rolatech-rich-item\n [routerLink]=\"['./', item.id]\"\n [thumbnail]=\"item.media && item.media.length > 0 ? item.media[0].url : ''\"\n [title]=\"item.title\"\n thumbnailRatio=\"full\"\n [price]=\"item.price\"\n thumbnailMode=\"clip\"\n ></rolatech-rich-item>\n }\n }\n </rolatech-rich-view>\n } @else {\n <div class=\"flex w-full h-36 items-center justify-center\">\n <div>No data</div>\n </div>\n }\n <mat-paginator\n #paginator\n [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageIndex]=\"pageIndex()\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"onPage($event)\"\n hidePageSize\n showFirstLastButtons\n >\n </mat-paginator>\n }\n</div>\n"],"names":["i1","i3"],"mappings":"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"}
1
+ {"version":3,"file":"rolatech-angular-property-property-index.component-Be_i7df_.mjs","sources":["../../../../packages/angular-property/src/lib/pages/property/property-index/property-index.component.ts","../../../../packages/angular-property/src/lib/pages/property/property-index/property-index.component.html"],"sourcesContent":["import { Component, DestroyRef, effect, inject, OnInit, signal, ViewEncapsulation } from '@angular/core';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule, RichViewComponent, RichItemComponent, BaseComponent } from '@rolatech/angular-components';\nimport { PropertySearchService, PropertyService } from '@rolatech/angular-services';\nimport { Property } from '../../../interfaces';\nimport { defer, distinctUntilChanged, finalize, map, switchMap } from 'rxjs';\nimport { PageEvent } from '@angular/material/paginator';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { PropertyUtil, PropertyViewType } from '../../../property-util';\nimport { PropertyManageItemSkeleton } from '../../../components/property-manage-item-skeleton/property-manage-item-skeleton';\n\n@Component({\n selector: 'rolatech-property-index',\n imports: [AngularCommonModule, AngularComponentsModule, RichViewComponent, RichItemComponent, PropertyManageItemSkeleton],\n templateUrl: './property-index.component.html',\n styleUrl: './property-index.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'rolatech-property-index',\n },\n})\nexport class PropertyIndexComponent extends BaseComponent implements OnInit {\n propertyService = inject(PropertyService);\n propertySearchService = inject(PropertySearchService);\n private util = inject(PropertyUtil);\n properties = signal<Property[]>([]);\n meta: any;\n loading = false;\n length = 100;\n pageSize = 15;\n pageIndex = signal(0);\n pageSizeOptions: number[] = [5, 10, 25, 100];\n viewType = PropertyViewType.GRID;\n\n ngOnInit(): void {\n this.util.viewEvent.subscribe((res) => {\n this.viewType = res;\n });\n const sub = this.route.queryParamMap\n .pipe(\n map((p) => {\n const page = p.get('page') ? Number(p.get('page')) : 1;\n this.pageIndex.set(Math.max(page - 1, 0));\n return {\n q: p.get('q') || undefined,\n town: p.get('town') || undefined,\n type: p.get('type') || undefined,\n market: p.get('market') || undefined,\n minBedrooms: p.get('minBedrooms') ? Number(p.get('minBedrooms')) : undefined,\n maxBedrooms: p.get('maxBedrooms') ? Number(p.get('maxBedrooms')) : undefined,\n minPrice: p.get('minPrice') ? Number(p.get('minPrice')) : undefined,\n maxPrice: p.get('maxPrice') ? Number(p.get('maxPrice')) : undefined,\n availableFrom: p.get('availableFrom') || undefined,\n availableTo: p.get('availableTo') || undefined,\n features: p.getAll('features')?.length ? p.getAll('features') : undefined,\n page,\n limit: p.get('limit') ? Number(p.get('limit')) : 15,\n sort: p.get('sort') || undefined,\n };\n }),\n // Cheap deep compare via JSON to avoid spam calls when nothing changed\n map((o) => JSON.stringify(o)),\n distinctUntilChanged(),\n map((s) => JSON.parse(s)),\n switchMap((params) => {\n this.loading = true;\n params['sort'] = 'updatedAt desc';\n return this.propertySearchService.search<any>(params).pipe(finalize(() => (this.loading = false)));\n }),\n )\n .subscribe({\n next: (res) => {\n this.properties.set(res.data);\n this.meta = res.meta;\n this.length = res.meta.pagination.count;\n },\n error: () => {\n this.properties.set([]);\n this.length = 0;\n },\n });\n\n // // auto-unsubscribe on destroy\n this.destroyRef.onDestroy(() => sub.unsubscribe());\n }\n onPage(e: PageEvent) {\n this.router.navigate([], {\n queryParams: { page: e.pageIndex + 1, limit: e.pageSize },\n queryParamsHandling: 'merge',\n replaceUrl: true, // optional: avoid stacking history on every page click\n });\n }\n search(params: any) {\n this.propertySearchService.search(params).subscribe({\n next: (res) => {\n this.properties.set(res.data);\n this.meta = res.meta;\n this.loading = false;\n this.length = res.meta.pagination.count;\n },\n error: (error) => {\n this.loading = false;\n },\n });\n }\n}\n","<div class=\"min-w-[320px] h-full\">\n @if (loading) {\n <div class=\"bg-[--rt-rasised-background] h-full\">\n <div class=\"flex flex-row flex-wrap\" [ngClass]=\"viewType === 1 ? 'flex-col' : 'flex-row flex-wrap'\">\n @for (row of [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]; track row) {\n <rolatech-property-manage-item-skeleton [list]=\"viewType === 1\"></rolatech-property-manage-item-skeleton>\n }\n </div>\n </div>\n } @else {\n @if (properties() && properties().length > 0) {\n <rolatech-rich-view [wrap]=\"viewType === 0\" [list]=\"viewType === 1\">\n @for (item of properties(); track item) {\n @defer {\n <rolatech-rich-item\n [routerLink]=\"['./', item.id]\"\n [thumbnail]=\"item.media && item.media.length > 0 ? item.media[0].url : ''\"\n [title]=\"item.title\"\n thumbnailRatio=\"full\"\n [price]=\"item.price\"\n thumbnailMode=\"clip\"\n ></rolatech-rich-item>\n }\n }\n </rolatech-rich-view>\n } @else {\n <div class=\"flex w-full h-36 items-center justify-center\">\n <div>No data</div>\n </div>\n }\n <mat-paginator\n #paginator\n [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageIndex]=\"pageIndex()\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"onPage($event)\"\n hidePageSize\n showFirstLastButtons\n >\n </mat-paginator>\n }\n</div>\n"],"names":["i1","i3"],"mappings":"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"}
@@ -6,7 +6,7 @@ import { MatButtonModule } from '@angular/material/button';
6
6
  import * as i1 from '@angular/router';
7
7
  import { RouterModule } from '@angular/router';
8
8
  import { PropertyService } from '@rolatech/angular-services';
9
- import { c as PropertyViewingItemComponent } from './rolatech-angular-property-rolatech-angular-property-LUKMn_fs.mjs';
9
+ import { c as PropertyViewingItemComponent } from './rolatech-angular-property-rolatech-angular-property-GMffi4JO.mjs';
10
10
  import * as i2 from '@angular/material/paginator';
11
11
  import { MatPaginatorModule } from '@angular/material/paginator';
12
12
  import { map, distinctUntilChanged, switchMap, finalize } from 'rxjs';
@@ -107,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
107
107
  }] });
108
108
 
109
109
  export { PropertyManageViewingsIndexComponent };
110
- //# sourceMappingURL=rolatech-angular-property-property-manage-viewings-index.component-CVaWx-fd.mjs.map
110
+ //# sourceMappingURL=rolatech-angular-property-property-manage-viewings-index.component-B2PH-aQu.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"rolatech-angular-property-property-manage-viewings-index.component-CVaWx-fd.mjs","sources":["../../../../packages/angular-property/src/lib/pages/property-manage/property-manage-viewings-index/property-manage-viewings-index.component.ts","../../../../packages/angular-property/src/lib/pages/property-manage/property-manage-viewings-index/property-manage-viewings-index.component.html"],"sourcesContent":["import { Component, inject, OnInit, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n BaseComponent,\n EmptyComponent,\n TabComponent,\n TabsComponent,\n ToolbarComponent,\n ListComponent,\n} from '@rolatech/angular-components';\nimport { MatButtonModule } from '@angular/material/button';\nimport { RouterModule } from '@angular/router';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { PropertyViewingItemComponent } from '../../../components/property-viewing-item/property-viewing-item.component';\nimport { PropertyViewing } from '../../../interfaces';\nimport { MatPaginatorModule, PageEvent } from '@angular/material/paginator';\nimport { map, distinctUntilChanged, switchMap, finalize } from 'rxjs';\n\n@Component({\n selector: 'rolatech-property-manage-viewings-index',\n imports: [\n CommonModule,\n ToolbarComponent,\n MatButtonModule,\n TabsComponent,\n TabComponent,\n RouterModule,\n EmptyComponent,\n PropertyViewingItemComponent,\n MatPaginatorModule,\n ListComponent,\n ],\n templateUrl: './property-manage-viewings-index.component.html',\n styleUrl: './property-manage-viewings-index.component.scss',\n})\nexport class PropertyManageViewingsIndexComponent extends BaseComponent implements OnInit {\n propertyService = inject(PropertyService);\n select = 0;\n links = [\n {\n name: 'All',\n icon: 'dashboard',\n },\n {\n name: 'Completed',\n icon: 'category',\n status: 'completed',\n },\n {\n name: 'Cancelled',\n icon: 'category',\n status: 'cancelled',\n },\n ];\n filterOptions: any = {\n type: '',\n status: '',\n };\n loading = false;\n viewings = signal<PropertyViewing[]>([]);\n meta: any;\n pageEvent!: PageEvent;\n length = 100;\n pageSize = 15;\n pageSizeOptions: number[] = [5, 10, 25, 100];\n pageIndex = signal(0);\n\n ngOnInit(): void {\n const sub = this.route.queryParamMap\n .pipe(\n map((p) => {\n const page = p.get('page') ? Number(p.get('page')) : 1;\n this.pageIndex.set(Math.max(page - 1, 0));\n const status = p.get('status') || undefined;\n\n let filter = '';\n if (status) {\n this.select = this.links.findIndex((item) => item.status === status);\n filter = `status:${status?.toUpperCase()}`;\n }\n return {\n page,\n filter,\n limit: p.get('limit') ? Number(p.get('limit')) : 15,\n sort: p.get('sort') || undefined,\n };\n }),\n // Cheap deep compare via JSON to avoid spam calls when nothing changed\n map((o) => JSON.stringify(o)),\n distinctUntilChanged(),\n map((s) => JSON.parse(s)),\n switchMap((params) => {\n this.loading = true;\n params['sort'] = 'updatedAt desc';\n return this.propertyService.findViewings(params).pipe(finalize(() => (this.loading = false)));\n }),\n )\n .subscribe({\n next: (res: any) => {\n this.viewings.set(res.data);\n this.meta = res.meta;\n this.length = res.meta.pagination.count;\n },\n error: () => {\n this.viewings.set([]);\n this.length = 0;\n },\n });\n\n // // auto-unsubscribe on destroy\n this.destroyRef.onDestroy(() => sub.unsubscribe());\n }\n onPage(e: PageEvent) {\n this.router.navigate([], {\n queryParams: { page: e.pageIndex + 1, limit: e.pageSize },\n queryParamsHandling: 'merge',\n replaceUrl: true, // optional: avoid stacking history on every page click\n });\n }\n}\n","<rolatech-toolbar title=\"Viewings\">\n <div class=\"flex items-center gap-2\"></div>\n</rolatech-toolbar>\n<rolatech-tabs [select]=\"select\">\n @for (item of links; track item) {\n @if (item.status) {\n <rolatech-tab [label]=\"item.name\" routerLink=\"./\" [queryParams]=\"{ status: item.status }\"></rolatech-tab>\n } @else {\n <rolatech-tab [label]=\"item.name\" routerLink=\"./\"></rolatech-tab>\n }\n }\n</rolatech-tabs>\n<!-- <div>\n @if (viewings(); as viewings) {\n @for (item of viewings; track $index) {\n <rolatech-property-viewing-item [routerLink]=\"['./', item.id]\" [viewing]=\"item\"></rolatech-property-viewing-item>\n }\n } @else {\n <rolatech-empty></rolatech-empty>\n }\n</div> -->\n<rolatech-list>\n @if (viewings(); as viewings) {\n @for (item of viewings; track item) {\n <rolatech-property-viewing-item\n [loading]=\"loading\"\n [routerLink]=\"['./', item.id]\"\n [viewing]=\"item\"\n ></rolatech-property-viewing-item>\n }\n } @else {\n <rolatech-empty></rolatech-empty>\n }\n</rolatech-list>\n<mat-paginator\n #paginator\n [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageIndex]=\"pageIndex()\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"onPage($event)\"\n hidePageSize\n showFirstLastButtons\n>\n</mat-paginator>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rolatech-angular-property-property-manage-viewings-index.component-B2PH-aQu.mjs","sources":["../../../../packages/angular-property/src/lib/pages/property-manage/property-manage-viewings-index/property-manage-viewings-index.component.ts","../../../../packages/angular-property/src/lib/pages/property-manage/property-manage-viewings-index/property-manage-viewings-index.component.html"],"sourcesContent":["import { Component, inject, OnInit, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n BaseComponent,\n EmptyComponent,\n TabComponent,\n TabsComponent,\n ToolbarComponent,\n ListComponent,\n} from '@rolatech/angular-components';\nimport { MatButtonModule } from '@angular/material/button';\nimport { RouterModule } from '@angular/router';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { PropertyViewingItemComponent } from '../../../components/property-viewing-item/property-viewing-item.component';\nimport { PropertyViewing } from '../../../interfaces';\nimport { MatPaginatorModule, PageEvent } from '@angular/material/paginator';\nimport { map, distinctUntilChanged, switchMap, finalize } from 'rxjs';\n\n@Component({\n selector: 'rolatech-property-manage-viewings-index',\n imports: [\n CommonModule,\n ToolbarComponent,\n MatButtonModule,\n TabsComponent,\n TabComponent,\n RouterModule,\n EmptyComponent,\n PropertyViewingItemComponent,\n MatPaginatorModule,\n ListComponent,\n ],\n templateUrl: './property-manage-viewings-index.component.html',\n styleUrl: './property-manage-viewings-index.component.scss',\n})\nexport class PropertyManageViewingsIndexComponent extends BaseComponent implements OnInit {\n propertyService = inject(PropertyService);\n select = 0;\n links = [\n {\n name: 'All',\n icon: 'dashboard',\n },\n {\n name: 'Completed',\n icon: 'category',\n status: 'completed',\n },\n {\n name: 'Cancelled',\n icon: 'category',\n status: 'cancelled',\n },\n ];\n filterOptions: any = {\n type: '',\n status: '',\n };\n loading = false;\n viewings = signal<PropertyViewing[]>([]);\n meta: any;\n pageEvent!: PageEvent;\n length = 100;\n pageSize = 15;\n pageSizeOptions: number[] = [5, 10, 25, 100];\n pageIndex = signal(0);\n\n ngOnInit(): void {\n const sub = this.route.queryParamMap\n .pipe(\n map((p) => {\n const page = p.get('page') ? Number(p.get('page')) : 1;\n this.pageIndex.set(Math.max(page - 1, 0));\n const status = p.get('status') || undefined;\n\n let filter = '';\n if (status) {\n this.select = this.links.findIndex((item) => item.status === status);\n filter = `status:${status?.toUpperCase()}`;\n }\n return {\n page,\n filter,\n limit: p.get('limit') ? Number(p.get('limit')) : 15,\n sort: p.get('sort') || undefined,\n };\n }),\n // Cheap deep compare via JSON to avoid spam calls when nothing changed\n map((o) => JSON.stringify(o)),\n distinctUntilChanged(),\n map((s) => JSON.parse(s)),\n switchMap((params) => {\n this.loading = true;\n params['sort'] = 'updatedAt desc';\n return this.propertyService.findViewings(params).pipe(finalize(() => (this.loading = false)));\n }),\n )\n .subscribe({\n next: (res: any) => {\n this.viewings.set(res.data);\n this.meta = res.meta;\n this.length = res.meta.pagination.count;\n },\n error: () => {\n this.viewings.set([]);\n this.length = 0;\n },\n });\n\n // // auto-unsubscribe on destroy\n this.destroyRef.onDestroy(() => sub.unsubscribe());\n }\n onPage(e: PageEvent) {\n this.router.navigate([], {\n queryParams: { page: e.pageIndex + 1, limit: e.pageSize },\n queryParamsHandling: 'merge',\n replaceUrl: true, // optional: avoid stacking history on every page click\n });\n }\n}\n","<rolatech-toolbar title=\"Viewings\">\n <div class=\"flex items-center gap-2\"></div>\n</rolatech-toolbar>\n<rolatech-tabs [select]=\"select\">\n @for (item of links; track item) {\n @if (item.status) {\n <rolatech-tab [label]=\"item.name\" routerLink=\"./\" [queryParams]=\"{ status: item.status }\"></rolatech-tab>\n } @else {\n <rolatech-tab [label]=\"item.name\" routerLink=\"./\"></rolatech-tab>\n }\n }\n</rolatech-tabs>\n<!-- <div>\n @if (viewings(); as viewings) {\n @for (item of viewings; track $index) {\n <rolatech-property-viewing-item [routerLink]=\"['./', item.id]\" [viewing]=\"item\"></rolatech-property-viewing-item>\n }\n } @else {\n <rolatech-empty></rolatech-empty>\n }\n</div> -->\n<rolatech-list>\n @if (viewings(); as viewings) {\n @for (item of viewings; track item) {\n <rolatech-property-viewing-item\n [loading]=\"loading\"\n [routerLink]=\"['./', item.id]\"\n [viewing]=\"item\"\n ></rolatech-property-viewing-item>\n }\n } @else {\n <rolatech-empty></rolatech-empty>\n }\n</rolatech-list>\n<mat-paginator\n #paginator\n [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageIndex]=\"pageIndex()\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"onPage($event)\"\n hidePageSize\n showFirstLastButtons\n>\n</mat-paginator>\n"],"names":[],"mappings":"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"}
@@ -2891,11 +2891,11 @@ class OfferNegotiationSection {
2891
2891
  });
2892
2892
  }
2893
2893
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: OfferNegotiationSection, deps: [], target: i0.ɵɵFactoryTarget.Component });
2894
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: OfferNegotiationSection, isStandalone: true, selector: "rolatech-offer-negotiation-section", host: { classAttribute: "block" }, ngImport: i0, template: "<section class=\"rounded-2xl border border-[--rt-outline] p-4 bg-[--rt-base-background] space-y-3\">\n <header class=\"flex items-start justify-between gap-3\">\n <div class=\"space-y-1\">\n <div class=\"text-sm font-semibold\">Negotiation</div>\n <div class=\"text-xs opacity-70\">Status: <span class=\"font-medium\">{{ statusLabel() }}</span></div>\n @if (f.lock(); as lk) { @if (lk.locked) {\n <div class=\"text-xs text-amber-600\">Locked by {{ lk.lockedByName ?? lk.lockedById }}</div>\n } }\n </div>\n\n @if (f.error(); as err) {\n <div class=\"text-xs text-red-600 max-w-[420px] text-right\">{{ err }}</div>\n }\n </header>\n\n <!-- Primary negotiation actions -->\n <div class=\"flex flex-wrap items-center gap-2\">\n <!-- <button mat-stroked-button [disabled]=\"!f.canEdit() || f.editMode()\" (click)=\"f.enterEdit()\">Edit</button> -->\n <button mat-stroked-button [disabled]=\"!f.canCounter() || f.editMode()\" (click)=\"f.enterEdit()\">Counter</button>\n\n <!-- <button mat-stroked-button [disabled]=\"!f.editMode()\" (click)=\"f.cancelEdit()\">Cancel edit</button> -->\n\n <!-- <button mat-raised-button [disabled]=\"!f.canCounter() || !f.editMode() || f.sending()\" (click)=\"f.sendCounter()\">\n @if (f.sending()) { Sending\u2026 } @else { Send counter }\n </button> -->\n <!-- Cancel (terminal) -->\n <button mat-stroked-button color=\"warn\" [disabled]=\"!f.canCancel() || f.cancelling()\" (click)=\"cancelOffer()\">\n @if (f.cancelling()) { Working\u2026 } @else { Cancel }\n </button>\n <button mat-stroked-button color=\"warn\" [disabled]=\"!f.canWithdraw() || f.withdrawing()\" (click)=\"f.withdraw()\">\n @if (f.withdrawing()) { Working\u2026 } @else { {{ f.withdrawLabel() }} }\n </button>\n\n <span class=\"flex-1\"></span>\n\n <!-- Accept/Reject -->\n <button mat-flat-button color=\"primary\" [disabled]=\"!f.canAccept() || f.loading()\" (click)=\"f.accept()\">Accept</button>\n\n <button mat-stroked-button color=\"warn\" [disabled]=\"!f.canReject() || f.loading()\" (click)=\"reject()\">Reject</button>\n </div>\n <!-- Lifecycle actions (agent/admin) -->\n @if (f.showLifecycleActions()) {\n <div class=\"pt-3 border-t border-[--rt-outline]\">\n <div class=\"text-xs font-semibold opacity-70 mb-2\">Next steps</div>\n\n <div class=\"flex flex-wrap items-center gap-2\">\n <button\n mat-stroked-button\n [disabled]=\"!(f.permissions()?.canMarkUnderOffer ?? false) || f.loading()\"\n (click)=\"f.markUnderOffer()\"\n >\n Mark under offer\n </button>\n\n <button\n mat-stroked-button\n [disabled]=\"!(f.permissions()?.canStartReferencing ?? false) || f.loading()\"\n (click)=\"f.startReferencing()\"\n >\n Start referencing\n </button>\n\n <button\n mat-stroked-button\n [disabled]=\"!(f.permissions()?.canMarkReferencesPassed ?? false) || f.loading()\"\n (click)=\"f.markReferencesPassed()\"\n >\n References passed\n </button>\n\n <button\n mat-stroked-button\n color=\"warn\"\n [disabled]=\"!(f.permissions()?.canMarkReferencesFailed ?? false) || f.loading()\"\n (click)=\"openReferenceFailedDialog()\"\n >\n References failed\n </button>\n\n <button\n mat-raised-button\n color=\"primary\"\n [disabled]=\"!(f.permissions()?.canMarkCompleted ?? false) || f.loading()\"\n (click)=\"f.markCompleted()\"\n >\n Mark completed\n </button>\n </div>\n </div>\n }\n</section>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }], encapsulation: i0.ViewEncapsulation.None });
2894
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: OfferNegotiationSection, isStandalone: true, selector: "rolatech-offer-negotiation-section", host: { classAttribute: "block" }, ngImport: i0, template: "<section class=\"rounded-2xl border border-[--rt-outline] p-4 bg-[--rt-base-background] space-y-3\">\n <header class=\"flex items-start justify-between gap-3\">\n <div class=\"space-y-1\">\n <div class=\"text-sm font-semibold\">Negotiation</div>\n <div class=\"text-xs opacity-70\">Status: <span class=\"font-medium\">{{ statusLabel() }}</span></div>\n @if (f.lock(); as lk) { @if (lk.locked) {\n <div class=\"text-xs text-amber-600\">Locked by {{ lk.lockedByName ?? lk.lockedById }}</div>\n } }\n </div>\n\n @if (f.error(); as err) {\n <div class=\"text-xs text-red-600 max-w-[420px] text-right\">{{ err }}</div>\n }\n </header>\n\n <!-- Primary negotiation actions -->\n <div class=\"flex flex-wrap items-center gap-2\">\n <!-- <button mat-stroked-button [disabled]=\"!f.canEdit() || f.editMode()\" (click)=\"f.enterEdit()\">Edit</button> -->\n <button mat-stroked-button [disabled]=\"!f.canCounter() || f.editMode()\" (click)=\"f.enterEdit()\">Counter</button>\n\n <!-- <button mat-stroked-button [disabled]=\"!f.editMode()\" (click)=\"f.cancelEdit()\">Cancel edit</button> -->\n\n <!-- <button mat-raised-button [disabled]=\"!f.canCounter() || !f.editMode() || f.sending()\" (click)=\"f.sendCounter()\">\n @if (f.sending()) { Sending\u2026 } @else { Send counter }\n </button> -->\n\n @if (f.canWithdraw()) {\n <button mat-stroked-button color=\"warn\" [disabled]=\"!f.canWithdraw() || f.withdrawing()\" (click)=\"f.withdraw()\">\n @if (f.withdrawing()) { Working\u2026 } @else { Withdraw }\n </button>\n }\n\n <span class=\"flex-1\"></span>\n\n <!-- Accept/Reject -->\n\n <button mat-flat-button color=\"primary\" [disabled]=\"!f.canAccept() || f.loading()\" (click)=\"f.accept()\">Accept</button>\n\n <button mat-stroked-button color=\"warn\" [disabled]=\"!f.canReject() || f.loading()\" (click)=\"reject()\">Reject</button>\n\n <!-- Cancel (terminal) -->\n <button mat-stroked-button color=\"warn\" [disabled]=\"!f.canCancel() || f.cancelling()\" (click)=\"cancelOffer()\">\n @if (f.cancelling()) { Working\u2026 } @else { Cancel }\n </button>\n </div>\n <!-- Lifecycle actions (agent/admin) -->\n @if (f.showLifecycleActions()) {\n <div class=\"pt-3 border-t border-[--rt-outline]\">\n <div class=\"text-xs font-semibold opacity-70 mb-2\">Next steps</div>\n\n <div class=\"flex flex-wrap items-center gap-2\">\n <button\n mat-stroked-button\n [disabled]=\"!(f.permissions()?.canMarkUnderOffer ?? false) || f.loading()\"\n (click)=\"f.markUnderOffer()\"\n >\n Mark under offer\n </button>\n\n <button\n mat-stroked-button\n [disabled]=\"!(f.permissions()?.canStartReferencing ?? false) || f.loading()\"\n (click)=\"f.startReferencing()\"\n >\n Start referencing\n </button>\n\n <button\n mat-stroked-button\n [disabled]=\"!(f.permissions()?.canMarkReferencesPassed ?? false) || f.loading()\"\n (click)=\"f.markReferencesPassed()\"\n >\n References passed\n </button>\n\n <button\n mat-stroked-button\n color=\"warn\"\n [disabled]=\"!(f.permissions()?.canMarkReferencesFailed ?? false) || f.loading()\"\n (click)=\"openReferenceFailedDialog()\"\n >\n References failed\n </button>\n\n <button\n mat-raised-button\n color=\"primary\"\n [disabled]=\"!(f.permissions()?.canMarkCompleted ?? false) || f.loading()\"\n (click)=\"f.markCompleted()\"\n >\n Mark completed\n </button>\n </div>\n </div>\n }\n</section>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }], encapsulation: i0.ViewEncapsulation.None });
2895
2895
  }
2896
2896
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: OfferNegotiationSection, decorators: [{
2897
2897
  type: Component,
2898
- args: [{ selector: 'rolatech-offer-negotiation-section', imports: [MatButtonModule], encapsulation: ViewEncapsulation.None, host: { class: 'block' }, template: "<section class=\"rounded-2xl border border-[--rt-outline] p-4 bg-[--rt-base-background] space-y-3\">\n <header class=\"flex items-start justify-between gap-3\">\n <div class=\"space-y-1\">\n <div class=\"text-sm font-semibold\">Negotiation</div>\n <div class=\"text-xs opacity-70\">Status: <span class=\"font-medium\">{{ statusLabel() }}</span></div>\n @if (f.lock(); as lk) { @if (lk.locked) {\n <div class=\"text-xs text-amber-600\">Locked by {{ lk.lockedByName ?? lk.lockedById }}</div>\n } }\n </div>\n\n @if (f.error(); as err) {\n <div class=\"text-xs text-red-600 max-w-[420px] text-right\">{{ err }}</div>\n }\n </header>\n\n <!-- Primary negotiation actions -->\n <div class=\"flex flex-wrap items-center gap-2\">\n <!-- <button mat-stroked-button [disabled]=\"!f.canEdit() || f.editMode()\" (click)=\"f.enterEdit()\">Edit</button> -->\n <button mat-stroked-button [disabled]=\"!f.canCounter() || f.editMode()\" (click)=\"f.enterEdit()\">Counter</button>\n\n <!-- <button mat-stroked-button [disabled]=\"!f.editMode()\" (click)=\"f.cancelEdit()\">Cancel edit</button> -->\n\n <!-- <button mat-raised-button [disabled]=\"!f.canCounter() || !f.editMode() || f.sending()\" (click)=\"f.sendCounter()\">\n @if (f.sending()) { Sending\u2026 } @else { Send counter }\n </button> -->\n <!-- Cancel (terminal) -->\n <button mat-stroked-button color=\"warn\" [disabled]=\"!f.canCancel() || f.cancelling()\" (click)=\"cancelOffer()\">\n @if (f.cancelling()) { Working\u2026 } @else { Cancel }\n </button>\n <button mat-stroked-button color=\"warn\" [disabled]=\"!f.canWithdraw() || f.withdrawing()\" (click)=\"f.withdraw()\">\n @if (f.withdrawing()) { Working\u2026 } @else { {{ f.withdrawLabel() }} }\n </button>\n\n <span class=\"flex-1\"></span>\n\n <!-- Accept/Reject -->\n <button mat-flat-button color=\"primary\" [disabled]=\"!f.canAccept() || f.loading()\" (click)=\"f.accept()\">Accept</button>\n\n <button mat-stroked-button color=\"warn\" [disabled]=\"!f.canReject() || f.loading()\" (click)=\"reject()\">Reject</button>\n </div>\n <!-- Lifecycle actions (agent/admin) -->\n @if (f.showLifecycleActions()) {\n <div class=\"pt-3 border-t border-[--rt-outline]\">\n <div class=\"text-xs font-semibold opacity-70 mb-2\">Next steps</div>\n\n <div class=\"flex flex-wrap items-center gap-2\">\n <button\n mat-stroked-button\n [disabled]=\"!(f.permissions()?.canMarkUnderOffer ?? false) || f.loading()\"\n (click)=\"f.markUnderOffer()\"\n >\n Mark under offer\n </button>\n\n <button\n mat-stroked-button\n [disabled]=\"!(f.permissions()?.canStartReferencing ?? false) || f.loading()\"\n (click)=\"f.startReferencing()\"\n >\n Start referencing\n </button>\n\n <button\n mat-stroked-button\n [disabled]=\"!(f.permissions()?.canMarkReferencesPassed ?? false) || f.loading()\"\n (click)=\"f.markReferencesPassed()\"\n >\n References passed\n </button>\n\n <button\n mat-stroked-button\n color=\"warn\"\n [disabled]=\"!(f.permissions()?.canMarkReferencesFailed ?? false) || f.loading()\"\n (click)=\"openReferenceFailedDialog()\"\n >\n References failed\n </button>\n\n <button\n mat-raised-button\n color=\"primary\"\n [disabled]=\"!(f.permissions()?.canMarkCompleted ?? false) || f.loading()\"\n (click)=\"f.markCompleted()\"\n >\n Mark completed\n </button>\n </div>\n </div>\n }\n</section>\n" }]
2898
+ args: [{ selector: 'rolatech-offer-negotiation-section', imports: [MatButtonModule], encapsulation: ViewEncapsulation.None, host: { class: 'block' }, template: "<section class=\"rounded-2xl border border-[--rt-outline] p-4 bg-[--rt-base-background] space-y-3\">\n <header class=\"flex items-start justify-between gap-3\">\n <div class=\"space-y-1\">\n <div class=\"text-sm font-semibold\">Negotiation</div>\n <div class=\"text-xs opacity-70\">Status: <span class=\"font-medium\">{{ statusLabel() }}</span></div>\n @if (f.lock(); as lk) { @if (lk.locked) {\n <div class=\"text-xs text-amber-600\">Locked by {{ lk.lockedByName ?? lk.lockedById }}</div>\n } }\n </div>\n\n @if (f.error(); as err) {\n <div class=\"text-xs text-red-600 max-w-[420px] text-right\">{{ err }}</div>\n }\n </header>\n\n <!-- Primary negotiation actions -->\n <div class=\"flex flex-wrap items-center gap-2\">\n <!-- <button mat-stroked-button [disabled]=\"!f.canEdit() || f.editMode()\" (click)=\"f.enterEdit()\">Edit</button> -->\n <button mat-stroked-button [disabled]=\"!f.canCounter() || f.editMode()\" (click)=\"f.enterEdit()\">Counter</button>\n\n <!-- <button mat-stroked-button [disabled]=\"!f.editMode()\" (click)=\"f.cancelEdit()\">Cancel edit</button> -->\n\n <!-- <button mat-raised-button [disabled]=\"!f.canCounter() || !f.editMode() || f.sending()\" (click)=\"f.sendCounter()\">\n @if (f.sending()) { Sending\u2026 } @else { Send counter }\n </button> -->\n\n @if (f.canWithdraw()) {\n <button mat-stroked-button color=\"warn\" [disabled]=\"!f.canWithdraw() || f.withdrawing()\" (click)=\"f.withdraw()\">\n @if (f.withdrawing()) { Working\u2026 } @else { Withdraw }\n </button>\n }\n\n <span class=\"flex-1\"></span>\n\n <!-- Accept/Reject -->\n\n <button mat-flat-button color=\"primary\" [disabled]=\"!f.canAccept() || f.loading()\" (click)=\"f.accept()\">Accept</button>\n\n <button mat-stroked-button color=\"warn\" [disabled]=\"!f.canReject() || f.loading()\" (click)=\"reject()\">Reject</button>\n\n <!-- Cancel (terminal) -->\n <button mat-stroked-button color=\"warn\" [disabled]=\"!f.canCancel() || f.cancelling()\" (click)=\"cancelOffer()\">\n @if (f.cancelling()) { Working\u2026 } @else { Cancel }\n </button>\n </div>\n <!-- Lifecycle actions (agent/admin) -->\n @if (f.showLifecycleActions()) {\n <div class=\"pt-3 border-t border-[--rt-outline]\">\n <div class=\"text-xs font-semibold opacity-70 mb-2\">Next steps</div>\n\n <div class=\"flex flex-wrap items-center gap-2\">\n <button\n mat-stroked-button\n [disabled]=\"!(f.permissions()?.canMarkUnderOffer ?? false) || f.loading()\"\n (click)=\"f.markUnderOffer()\"\n >\n Mark under offer\n </button>\n\n <button\n mat-stroked-button\n [disabled]=\"!(f.permissions()?.canStartReferencing ?? false) || f.loading()\"\n (click)=\"f.startReferencing()\"\n >\n Start referencing\n </button>\n\n <button\n mat-stroked-button\n [disabled]=\"!(f.permissions()?.canMarkReferencesPassed ?? false) || f.loading()\"\n (click)=\"f.markReferencesPassed()\"\n >\n References passed\n </button>\n\n <button\n mat-stroked-button\n color=\"warn\"\n [disabled]=\"!(f.permissions()?.canMarkReferencesFailed ?? false) || f.loading()\"\n (click)=\"openReferenceFailedDialog()\"\n >\n References failed\n </button>\n\n <button\n mat-raised-button\n color=\"primary\"\n [disabled]=\"!(f.permissions()?.canMarkCompleted ?? false) || f.loading()\"\n (click)=\"f.markCompleted()\"\n >\n Mark completed\n </button>\n </div>\n </div>\n }\n</section>\n" }]
2899
2899
  }] });
2900
2900
 
2901
2901
  class PropertyManageOfferDetailComponent extends BaseComponent {
@@ -6504,7 +6504,7 @@ const propertyRoutes = [
6504
6504
  children: [
6505
6505
  {
6506
6506
  path: '',
6507
- loadComponent: () => import('./rolatech-angular-property-property-index.component-yauoMVPm.mjs').then((x) => x.PropertyIndexComponent),
6507
+ loadComponent: () => import('./rolatech-angular-property-property-index.component-Be_i7df_.mjs').then((x) => x.PropertyIndexComponent),
6508
6508
  },
6509
6509
  ],
6510
6510
  },
@@ -8418,7 +8418,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
8418
8418
  const propertyManageViewingsRoutes = [
8419
8419
  {
8420
8420
  path: '',
8421
- loadComponent: () => import('./rolatech-angular-property-property-manage-viewings-index.component-CVaWx-fd.mjs').then((x) => x.PropertyManageViewingsIndexComponent),
8421
+ loadComponent: () => import('./rolatech-angular-property-property-manage-viewings-index.component-B2PH-aQu.mjs').then((x) => x.PropertyManageViewingsIndexComponent),
8422
8422
  },
8423
8423
  {
8424
8424
  path: ':id',
@@ -9675,4 +9675,4 @@ const propertyManageOverviewRoutes = [
9675
9675
  */
9676
9676
 
9677
9677
  export { PropertyOfferTimelineStatus as A, PropertyOfferType as B, PropertyOfferStatus as C, ResidencyStatus as D, EmploymentStatus as E, PropertyApplicantType as F, AdverseCreditStatus as G, BedroomRange as H, PriceRange as I, Market as M, PropertyUtil as P, RentFrequency as R, ViewingTime as V, PropertyViewType as a, PropertyManageItemSkeleton as b, PropertyViewingItemComponent as c, propertyManageOffersRoutes as d, propertyRoutes as e, featureManageRoutes as f, propertyManageRoutes as g, propertyManageViewingsRoutes as h, propertyAgentViewingRoutes as i, propertyAgentOfferRoutes as j, propertyAgentOverviewRoutes as k, lettingManageRoutes as l, propertyManageOverviewRoutes as m, PropertyActionsComponent as n, PropertyItemComponent as o, propertyReviewRoutes as p, PropertyPricingComponent as q, PropertyPriceType as r, PropertyVideoProvider as s, tenantManageRoutes as t, PropertyStatus as u, PropertyType as v, PropertyInventoryStatus as w, PropertyScope as x, PropertyViewingStatus as y, PropertyViewerCategory as z };
9678
- //# sourceMappingURL=rolatech-angular-property-rolatech-angular-property-LUKMn_fs.mjs.map
9678
+ //# sourceMappingURL=rolatech-angular-property-rolatech-angular-property-GMffi4JO.mjs.map