@rolatech/angular-property 20.3.2-beta.4 → 20.3.3-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (17) hide show
  1. package/fesm2022/{rolatech-angular-property-feature-unavailable-v3kEKNm1.mjs → rolatech-angular-property-feature-unavailable-CuX8vT15.mjs} +9 -9
  2. package/fesm2022/{rolatech-angular-property-feature-unavailable-v3kEKNm1.mjs.map → rolatech-angular-property-feature-unavailable-CuX8vT15.mjs.map} +1 -1
  3. package/fesm2022/{rolatech-angular-property-property-agent-overview-DAVd3S1f.mjs → rolatech-angular-property-property-agent-overview-DFKqCo3z.mjs} +4 -4
  4. package/fesm2022/{rolatech-angular-property-property-agent-overview-DAVd3S1f.mjs.map → rolatech-angular-property-property-agent-overview-DFKqCo3z.mjs.map} +1 -1
  5. package/fesm2022/{rolatech-angular-property-property-index.component-B2kgOaBK.mjs → rolatech-angular-property-property-index.component-BXQGrEU9.mjs} +7 -7
  6. package/fesm2022/{rolatech-angular-property-property-index.component-B2kgOaBK.mjs.map → rolatech-angular-property-property-index.component-BXQGrEU9.mjs.map} +1 -1
  7. package/fesm2022/{rolatech-angular-property-property-manage-overview-6dhTJwwA.mjs → rolatech-angular-property-property-manage-overview-BF-U0dm2.mjs} +4 -4
  8. package/fesm2022/{rolatech-angular-property-property-manage-overview-6dhTJwwA.mjs.map → rolatech-angular-property-property-manage-overview-BF-U0dm2.mjs.map} +1 -1
  9. package/fesm2022/{rolatech-angular-property-property-manage-viewings-index.component-C22Z-C7z.mjs → rolatech-angular-property-property-manage-viewings-index.component-CDDhdhXt.mjs} +7 -7
  10. package/fesm2022/{rolatech-angular-property-property-manage-viewings-index.component-C22Z-C7z.mjs.map → rolatech-angular-property-property-manage-viewings-index.component-CDDhdhXt.mjs.map} +1 -1
  11. package/fesm2022/{rolatech-angular-property-rolatech-angular-property-DdE64dzT.mjs → rolatech-angular-property-rolatech-angular-property-Bc-daTQY.mjs} +1128 -944
  12. package/fesm2022/rolatech-angular-property-rolatech-angular-property-Bc-daTQY.mjs.map +1 -0
  13. package/fesm2022/rolatech-angular-property.mjs +1 -1
  14. package/package.json +6 -6
  15. package/themes/_default.scss +2 -2
  16. package/types/rolatech-angular-property.d.ts +19 -2
  17. package/fesm2022/rolatech-angular-property-rolatech-angular-property-DdE64dzT.mjs.map +0 -1
@@ -29,16 +29,16 @@ class FeatureUnavailable {
29
29
  snackBar = inject(MatSnackBar);
30
30
  routeData = toSignal(this.route.data, { initialValue: this.route.snapshot.data });
31
31
  fallbackSupportUrl = this.environment.supportUrl ?? this.environment.www ?? '/';
32
- waitlistSubmitting = signal(false, ...(ngDevMode ? [{ debugName: "waitlistSubmitting" }] : []));
32
+ waitlistSubmitting = signal(false, ...(ngDevMode ? [{ debugName: "waitlistSubmitting" }] : /* istanbul ignore next */ []));
33
33
  feature = computed(() => {
34
34
  return this.routeData()['featureAvailability'] ?? DEFAULT_FEATURE_DATA;
35
- }, ...(ngDevMode ? [{ debugName: "feature" }] : []));
36
- highlights = computed(() => this.feature().highlights ?? [], ...(ngDevMode ? [{ debugName: "highlights" }] : []));
37
- primaryAction = computed(() => this.resolveAction(this.feature().primaryAction, 'Contact support'), ...(ngDevMode ? [{ debugName: "primaryAction" }] : []));
35
+ }, ...(ngDevMode ? [{ debugName: "feature" }] : /* istanbul ignore next */ []));
36
+ highlights = computed(() => this.feature().highlights ?? [], ...(ngDevMode ? [{ debugName: "highlights" }] : /* istanbul ignore next */ []));
37
+ primaryAction = computed(() => this.resolveAction(this.feature().primaryAction, 'Contact support'), ...(ngDevMode ? [{ debugName: "primaryAction" }] : /* istanbul ignore next */ []));
38
38
  secondaryAction = computed(() => {
39
39
  const action = this.feature().secondaryAction;
40
40
  return action ? this.resolveAction(action, action.label) : null;
41
- }, ...(ngDevMode ? [{ debugName: "secondaryAction" }] : []));
41
+ }, ...(ngDevMode ? [{ debugName: "secondaryAction" }] : /* istanbul ignore next */ []));
42
42
  async triggerPrimaryAction(action) {
43
43
  if (action.actionType !== 'joinWaitlist' || !action.featureCode || this.waitlistSubmitting()) {
44
44
  return;
@@ -94,13 +94,13 @@ class FeatureUnavailable {
94
94
  target: action?.target ?? '_blank',
95
95
  };
96
96
  }
97
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: FeatureUnavailable, deps: [], target: i0.ɵɵFactoryTarget.Component });
98
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: FeatureUnavailable, isStandalone: true, selector: "rolatech-feature-unavailable", ngImport: i0, template: "<section class=\"feature-unavailable\">\n <div class=\"feature-unavailable__hero\">\n <div class=\"feature-unavailable__copy\">\n <span class=\"feature-unavailable__badge\">{{ feature().badge ?? 'Limited access' }}</span>\n <h1 class=\"feature-unavailable__title\">{{ feature().title }}</h1>\n <p class=\"feature-unavailable__message\">{{ feature().message }}</p>\n </div>\n\n <div class=\"feature-unavailable__actions\">\n @if (primaryAction().actionType === 'joinWaitlist') {\n <button mat-flat-button color=\"primary\" type=\"button\" [disabled]=\"waitlistSubmitting()\" (click)=\"triggerPrimaryAction(primaryAction())\">\n {{ waitlistSubmitting() ? 'Joining...' : primaryAction().label }}\n </button>\n } @else if (primaryAction().routerLink) {\n <a mat-flat-button color=\"primary\" [routerLink]=\"primaryAction().routerLink\">\n {{ primaryAction().label }}\n </a>\n } @else {\n <a\n mat-flat-button\n color=\"primary\"\n [href]=\"primaryAction().href\"\n [attr.target]=\"primaryAction().target ?? null\"\n rel=\"noreferrer\"\n >\n {{ primaryAction().label }}\n </a>\n }\n\n @if (secondaryAction(); as secondaryAction) {\n @if (secondaryAction.routerLink) {\n <a mat-stroked-button [routerLink]=\"secondaryAction.routerLink\">\n {{ secondaryAction.label }}\n </a>\n } @else {\n <a\n mat-stroked-button\n [href]=\"secondaryAction.href\"\n [attr.target]=\"secondaryAction.target ?? null\"\n rel=\"noreferrer\"\n >\n {{ secondaryAction.label }}\n </a>\n }\n }\n </div>\n </div>\n\n @if (highlights().length > 0) {\n <div class=\"feature-unavailable__highlights\">\n @for (highlight of highlights(); track highlight.title) {\n <article class=\"feature-unavailable__card\">\n <div class=\"feature-unavailable__icon\">\n <mat-icon>{{ highlight.icon }}</mat-icon>\n </div>\n <div class=\"feature-unavailable__card-copy\">\n <h2>{{ highlight.title }}</h2>\n <p>{{ highlight.detail }}</p>\n </div>\n </article>\n }\n </div>\n }\n</section>\n", styles: [":host{display:block}.feature-unavailable{display:grid;gap:1.5rem;padding:1.5rem}.feature-unavailable__hero{display:grid;gap:1.5rem;border:1px solid var(--rt-border-color, rgba(15, 23, 42, .08));border-radius:1.5rem;padding:2rem;background:var(--rt-raised-background, #f8fafc);color:var(--rt-text-primary, #0f172a);box-shadow:0 18px 44px -36px #0f172a59}.feature-unavailable__copy{max-width:42rem}.feature-unavailable__badge{display:inline-flex;align-items:center;margin-bottom:1rem;border:1px solid var(--rt-border-color, rgba(15, 23, 42, .08));border-radius:9999px;padding:.35rem .8rem;background:var(--rt-base-background, #ffffff);color:var(--rt-text-secondary, #475569);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.feature-unavailable__title{margin:0;font-size:clamp(2rem,3vw,3rem);line-height:1.05;font-weight:700}.feature-unavailable__message{margin:1rem 0 0;max-width:36rem;color:var(--rt-text-secondary, #475569);font-size:1rem;line-height:1.7}.feature-unavailable__actions{display:flex;flex-wrap:wrap;gap:.75rem}.feature-unavailable__highlights{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}.feature-unavailable__card{display:flex;gap:1rem;border:1px solid var(--rt-border-color, rgba(15, 23, 42, .08));border-radius:1.25rem;padding:1.25rem;background:var(--rt-base-background, #ffffff);box-shadow:0 18px 44px -36px #0f172a40}.feature-unavailable__icon{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:1rem;background:var(--rt-raised-background, rgba(15, 23, 42, .04));color:var(--rt-brand-color, currentColor);flex-shrink:0}.feature-unavailable__card-copy h2{margin:0;color:var(--rt-text-primary, #0f172a);font-size:1rem;font-weight:700}.feature-unavailable__card-copy p{margin:.45rem 0 0;color:var(--rt-text-secondary, #475569);line-height:1.6}@media(max-width:960px){.feature-unavailable{padding:1rem}.feature-unavailable__hero{padding:1.5rem}.feature-unavailable__highlights{grid-template-columns:1fr}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSnackBarModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
97
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: FeatureUnavailable, deps: [], target: i0.ɵɵFactoryTarget.Component });
98
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: FeatureUnavailable, isStandalone: true, selector: "rolatech-feature-unavailable", ngImport: i0, template: "<section class=\"feature-unavailable\">\n <div class=\"feature-unavailable__hero\">\n <div class=\"feature-unavailable__copy\">\n <span class=\"feature-unavailable__badge\">{{ feature().badge ?? 'Limited access' }}</span>\n <h1 class=\"feature-unavailable__title\">{{ feature().title }}</h1>\n <p class=\"feature-unavailable__message\">{{ feature().message }}</p>\n </div>\n\n <div class=\"feature-unavailable__actions\">\n @if (primaryAction().actionType === 'joinWaitlist') {\n <button mat-flat-button color=\"primary\" type=\"button\" [disabled]=\"waitlistSubmitting()\" (click)=\"triggerPrimaryAction(primaryAction())\">\n {{ waitlistSubmitting() ? 'Joining...' : primaryAction().label }}\n </button>\n } @else if (primaryAction().routerLink) {\n <a mat-flat-button color=\"primary\" [routerLink]=\"primaryAction().routerLink\">\n {{ primaryAction().label }}\n </a>\n } @else {\n <a\n mat-flat-button\n color=\"primary\"\n [href]=\"primaryAction().href\"\n [attr.target]=\"primaryAction().target ?? null\"\n rel=\"noreferrer\"\n >\n {{ primaryAction().label }}\n </a>\n }\n\n @if (secondaryAction(); as secondaryAction) {\n @if (secondaryAction.routerLink) {\n <a mat-stroked-button [routerLink]=\"secondaryAction.routerLink\">\n {{ secondaryAction.label }}\n </a>\n } @else {\n <a\n mat-stroked-button\n [href]=\"secondaryAction.href\"\n [attr.target]=\"secondaryAction.target ?? null\"\n rel=\"noreferrer\"\n >\n {{ secondaryAction.label }}\n </a>\n }\n }\n </div>\n </div>\n\n @if (highlights().length > 0) {\n <div class=\"feature-unavailable__highlights\">\n @for (highlight of highlights(); track highlight.title) {\n <article class=\"feature-unavailable__card\">\n <div class=\"feature-unavailable__icon\">\n <mat-icon>{{ highlight.icon }}</mat-icon>\n </div>\n <div class=\"feature-unavailable__card-copy\">\n <h2>{{ highlight.title }}</h2>\n <p>{{ highlight.detail }}</p>\n </div>\n </article>\n }\n </div>\n }\n</section>\n", styles: [":host{display:block}.feature-unavailable{display:grid;gap:1.5rem;padding:1.5rem}.feature-unavailable__hero{display:grid;gap:1.5rem;border:1px solid var(--rt-border-color, rgba(15, 23, 42, .08));border-radius:1.5rem;padding:2rem;background:var(--rt-raised-background, #f8fafc);color:var(--rt-text-primary, #0f172a);box-shadow:0 18px 44px -36px #0f172a59}.feature-unavailable__copy{max-width:42rem}.feature-unavailable__badge{display:inline-flex;align-items:center;margin-bottom:1rem;border:1px solid var(--rt-border-color, rgba(15, 23, 42, .08));border-radius:9999px;padding:.35rem .8rem;background:var(--rt-base-background, #ffffff);color:var(--rt-text-secondary, #475569);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.feature-unavailable__title{margin:0;font-size:clamp(2rem,3vw,3rem);line-height:1.05;font-weight:700}.feature-unavailable__message{margin:1rem 0 0;max-width:36rem;color:var(--rt-text-secondary, #475569);font-size:1rem;line-height:1.7}.feature-unavailable__actions{display:flex;flex-wrap:wrap;gap:.75rem}.feature-unavailable__highlights{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}.feature-unavailable__card{display:flex;gap:1rem;border:1px solid var(--rt-border-color, rgba(15, 23, 42, .08));border-radius:1.25rem;padding:1.25rem;background:var(--rt-base-background, #ffffff);box-shadow:0 18px 44px -36px #0f172a40}.feature-unavailable__icon{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:1rem;background:var(--rt-raised-background, rgba(15, 23, 42, .04));color:var(--rt-brand-color, currentColor);flex-shrink:0}.feature-unavailable__card-copy h2{margin:0;color:var(--rt-text-primary, #0f172a);font-size:1rem;font-weight:700}.feature-unavailable__card-copy p{margin:.45rem 0 0;color:var(--rt-text-secondary, #475569);line-height:1.6}@media(max-width:960px){.feature-unavailable{padding:1rem}.feature-unavailable__hero{padding:1.5rem}.feature-unavailable__highlights{grid-template-columns:1fr}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSnackBarModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
99
99
  }
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: FeatureUnavailable, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: FeatureUnavailable, decorators: [{
101
101
  type: Component,
102
102
  args: [{ selector: 'rolatech-feature-unavailable', imports: [CommonModule, MatButtonModule, MatIconModule, MatSnackBarModule, RouterLink], template: "<section class=\"feature-unavailable\">\n <div class=\"feature-unavailable__hero\">\n <div class=\"feature-unavailable__copy\">\n <span class=\"feature-unavailable__badge\">{{ feature().badge ?? 'Limited access' }}</span>\n <h1 class=\"feature-unavailable__title\">{{ feature().title }}</h1>\n <p class=\"feature-unavailable__message\">{{ feature().message }}</p>\n </div>\n\n <div class=\"feature-unavailable__actions\">\n @if (primaryAction().actionType === 'joinWaitlist') {\n <button mat-flat-button color=\"primary\" type=\"button\" [disabled]=\"waitlistSubmitting()\" (click)=\"triggerPrimaryAction(primaryAction())\">\n {{ waitlistSubmitting() ? 'Joining...' : primaryAction().label }}\n </button>\n } @else if (primaryAction().routerLink) {\n <a mat-flat-button color=\"primary\" [routerLink]=\"primaryAction().routerLink\">\n {{ primaryAction().label }}\n </a>\n } @else {\n <a\n mat-flat-button\n color=\"primary\"\n [href]=\"primaryAction().href\"\n [attr.target]=\"primaryAction().target ?? null\"\n rel=\"noreferrer\"\n >\n {{ primaryAction().label }}\n </a>\n }\n\n @if (secondaryAction(); as secondaryAction) {\n @if (secondaryAction.routerLink) {\n <a mat-stroked-button [routerLink]=\"secondaryAction.routerLink\">\n {{ secondaryAction.label }}\n </a>\n } @else {\n <a\n mat-stroked-button\n [href]=\"secondaryAction.href\"\n [attr.target]=\"secondaryAction.target ?? null\"\n rel=\"noreferrer\"\n >\n {{ secondaryAction.label }}\n </a>\n }\n }\n </div>\n </div>\n\n @if (highlights().length > 0) {\n <div class=\"feature-unavailable__highlights\">\n @for (highlight of highlights(); track highlight.title) {\n <article class=\"feature-unavailable__card\">\n <div class=\"feature-unavailable__icon\">\n <mat-icon>{{ highlight.icon }}</mat-icon>\n </div>\n <div class=\"feature-unavailable__card-copy\">\n <h2>{{ highlight.title }}</h2>\n <p>{{ highlight.detail }}</p>\n </div>\n </article>\n }\n </div>\n }\n</section>\n", styles: [":host{display:block}.feature-unavailable{display:grid;gap:1.5rem;padding:1.5rem}.feature-unavailable__hero{display:grid;gap:1.5rem;border:1px solid var(--rt-border-color, rgba(15, 23, 42, .08));border-radius:1.5rem;padding:2rem;background:var(--rt-raised-background, #f8fafc);color:var(--rt-text-primary, #0f172a);box-shadow:0 18px 44px -36px #0f172a59}.feature-unavailable__copy{max-width:42rem}.feature-unavailable__badge{display:inline-flex;align-items:center;margin-bottom:1rem;border:1px solid var(--rt-border-color, rgba(15, 23, 42, .08));border-radius:9999px;padding:.35rem .8rem;background:var(--rt-base-background, #ffffff);color:var(--rt-text-secondary, #475569);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.feature-unavailable__title{margin:0;font-size:clamp(2rem,3vw,3rem);line-height:1.05;font-weight:700}.feature-unavailable__message{margin:1rem 0 0;max-width:36rem;color:var(--rt-text-secondary, #475569);font-size:1rem;line-height:1.7}.feature-unavailable__actions{display:flex;flex-wrap:wrap;gap:.75rem}.feature-unavailable__highlights{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}.feature-unavailable__card{display:flex;gap:1rem;border:1px solid var(--rt-border-color, rgba(15, 23, 42, .08));border-radius:1.25rem;padding:1.25rem;background:var(--rt-base-background, #ffffff);box-shadow:0 18px 44px -36px #0f172a40}.feature-unavailable__icon{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:1rem;background:var(--rt-raised-background, rgba(15, 23, 42, .04));color:var(--rt-brand-color, currentColor);flex-shrink:0}.feature-unavailable__card-copy h2{margin:0;color:var(--rt-text-primary, #0f172a);font-size:1rem;font-weight:700}.feature-unavailable__card-copy p{margin:.45rem 0 0;color:var(--rt-text-secondary, #475569);line-height:1.6}@media(max-width:960px){.feature-unavailable{padding:1rem}.feature-unavailable__hero{padding:1.5rem}.feature-unavailable__highlights{grid-template-columns:1fr}}\n"] }]
103
103
  }] });
104
104
 
105
105
  export { FeatureUnavailable };
106
- //# sourceMappingURL=rolatech-angular-property-feature-unavailable-v3kEKNm1.mjs.map
106
+ //# sourceMappingURL=rolatech-angular-property-feature-unavailable-CuX8vT15.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"rolatech-angular-property-feature-unavailable-v3kEKNm1.mjs","sources":["../../../../packages/angular-property/src/lib/pages/feature-unavailable/feature-unavailable.ts","../../../../packages/angular-property/src/lib/pages/feature-unavailable/feature-unavailable.html"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, computed, inject, signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSnackBar, MatSnackBarModule } from '@angular/material/snack-bar';\nimport { ActivatedRoute, Router, RouterLink } from '@angular/router';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { AuthService } from '@rolatech/angular-auth';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { FeatureAvailabilityAction, FeatureAvailabilityData } from '../../routing/feature-availability';\nimport { firstValueFrom } from 'rxjs';\n\ninterface ResolvedFeatureAction {\n label: string;\n href?: string;\n routerLink?: string | readonly string[];\n target?: '_self' | '_blank';\n actionType?: 'joinWaitlist';\n featureCode?: string;\n featureLabel?: string;\n}\n\nconst DEFAULT_FEATURE_DATA: FeatureAvailabilityData = {\n status: 'disabled',\n badge: 'Limited access',\n title: 'This feature is not available yet',\n message: 'We are rolling this area out in stages so your team gets a stable first release.',\n highlights: [],\n};\n\n@Component({\n selector: 'rolatech-feature-unavailable',\n imports: [CommonModule, MatButtonModule, MatIconModule, MatSnackBarModule, RouterLink],\n templateUrl: './feature-unavailable.html',\n styleUrl: './feature-unavailable.scss',\n})\nexport class FeatureUnavailable {\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n private readonly environment = inject(APP_CONFIG);\n private readonly authService = inject(AuthService);\n private readonly propertyService = inject(PropertyService);\n private readonly snackBar = inject(MatSnackBar);\n private readonly routeData = toSignal(this.route.data, { initialValue: this.route.snapshot.data });\n\n private readonly fallbackSupportUrl = this.environment.supportUrl ?? this.environment.www ?? '/';\n readonly waitlistSubmitting = signal(false);\n\n readonly feature = computed<FeatureAvailabilityData>(() => {\n return (this.routeData()['featureAvailability'] as FeatureAvailabilityData | undefined) ?? DEFAULT_FEATURE_DATA;\n });\n\n readonly highlights = computed(() => this.feature().highlights ?? []);\n readonly primaryAction = computed(() => this.resolveAction(this.feature().primaryAction, 'Contact support'));\n readonly secondaryAction = computed(() => {\n const action = this.feature().secondaryAction;\n return action ? this.resolveAction(action, action.label) : null;\n });\n\n async triggerPrimaryAction(action: ResolvedFeatureAction): Promise<void> {\n if (action.actionType !== 'joinWaitlist' || !action.featureCode || this.waitlistSubmitting()) {\n return;\n }\n\n const user = this.authService.user();\n const email = user?.email?.trim();\n if (!email) {\n this.snackBar.open('Add an email address to your account before joining the waitlist.', 'OK', { duration: 3500 });\n return;\n }\n\n this.waitlistSubmitting.set(true);\n try {\n const fullName = `${user?.firstName ?? ''} ${user?.lastName ?? ''}`.trim() || user?.name || null;\n await firstValueFrom(\n this.propertyService.joinFeatureWaitlist(action.featureCode, {\n featureLabel: action.featureLabel ?? this.feature().title,\n pagePath: this.router.url,\n fullName,\n email,\n phone: user?.phone ?? null,\n note: null,\n }),\n );\n\n this.snackBar.open('You joined the waitlist. We will notify your team when this workspace opens.', 'OK', {\n duration: 3500,\n });\n } catch {\n this.snackBar.open('Failed to join the waitlist. Please try again.', 'OK', {\n duration: 3500,\n });\n } finally {\n this.waitlistSubmitting.set(false);\n }\n }\n\n private resolveAction(action: FeatureAvailabilityAction | undefined, fallbackLabel: string): ResolvedFeatureAction {\n if (action?.actionType === 'joinWaitlist' && action.featureCode) {\n return {\n label: action.label,\n actionType: action.actionType,\n featureCode: action.featureCode,\n featureLabel: action.featureLabel,\n };\n }\n\n if (action?.routerLink) {\n return {\n label: action.label,\n routerLink: action.routerLink,\n };\n }\n\n return {\n label: action?.label ?? fallbackLabel,\n href: action?.href ?? this.fallbackSupportUrl,\n target: action?.target ?? '_blank',\n };\n }\n}\n","<section class=\"feature-unavailable\">\n <div class=\"feature-unavailable__hero\">\n <div class=\"feature-unavailable__copy\">\n <span class=\"feature-unavailable__badge\">{{ feature().badge ?? 'Limited access' }}</span>\n <h1 class=\"feature-unavailable__title\">{{ feature().title }}</h1>\n <p class=\"feature-unavailable__message\">{{ feature().message }}</p>\n </div>\n\n <div class=\"feature-unavailable__actions\">\n @if (primaryAction().actionType === 'joinWaitlist') {\n <button mat-flat-button color=\"primary\" type=\"button\" [disabled]=\"waitlistSubmitting()\" (click)=\"triggerPrimaryAction(primaryAction())\">\n {{ waitlistSubmitting() ? 'Joining...' : primaryAction().label }}\n </button>\n } @else if (primaryAction().routerLink) {\n <a mat-flat-button color=\"primary\" [routerLink]=\"primaryAction().routerLink\">\n {{ primaryAction().label }}\n </a>\n } @else {\n <a\n mat-flat-button\n color=\"primary\"\n [href]=\"primaryAction().href\"\n [attr.target]=\"primaryAction().target ?? null\"\n rel=\"noreferrer\"\n >\n {{ primaryAction().label }}\n </a>\n }\n\n @if (secondaryAction(); as secondaryAction) {\n @if (secondaryAction.routerLink) {\n <a mat-stroked-button [routerLink]=\"secondaryAction.routerLink\">\n {{ secondaryAction.label }}\n </a>\n } @else {\n <a\n mat-stroked-button\n [href]=\"secondaryAction.href\"\n [attr.target]=\"secondaryAction.target ?? null\"\n rel=\"noreferrer\"\n >\n {{ secondaryAction.label }}\n </a>\n }\n }\n </div>\n </div>\n\n @if (highlights().length > 0) {\n <div class=\"feature-unavailable__highlights\">\n @for (highlight of highlights(); track highlight.title) {\n <article class=\"feature-unavailable__card\">\n <div class=\"feature-unavailable__icon\">\n <mat-icon>{{ highlight.icon }}</mat-icon>\n </div>\n <div class=\"feature-unavailable__card-copy\">\n <h2>{{ highlight.title }}</h2>\n <p>{{ highlight.detail }}</p>\n </div>\n </article>\n }\n </div>\n }\n</section>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rolatech-angular-property-feature-unavailable-CuX8vT15.mjs","sources":["../../../../packages/angular-property/src/lib/pages/feature-unavailable/feature-unavailable.ts","../../../../packages/angular-property/src/lib/pages/feature-unavailable/feature-unavailable.html"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, computed, inject, signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSnackBar, MatSnackBarModule } from '@angular/material/snack-bar';\nimport { ActivatedRoute, Router, RouterLink } from '@angular/router';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { AuthService } from '@rolatech/angular-auth';\nimport { PropertyService } from '@rolatech/angular-services';\nimport { FeatureAvailabilityAction, FeatureAvailabilityData } from '../../routing/feature-availability';\nimport { firstValueFrom } from 'rxjs';\n\ninterface ResolvedFeatureAction {\n label: string;\n href?: string;\n routerLink?: string | readonly string[];\n target?: '_self' | '_blank';\n actionType?: 'joinWaitlist';\n featureCode?: string;\n featureLabel?: string;\n}\n\nconst DEFAULT_FEATURE_DATA: FeatureAvailabilityData = {\n status: 'disabled',\n badge: 'Limited access',\n title: 'This feature is not available yet',\n message: 'We are rolling this area out in stages so your team gets a stable first release.',\n highlights: [],\n};\n\n@Component({\n selector: 'rolatech-feature-unavailable',\n imports: [CommonModule, MatButtonModule, MatIconModule, MatSnackBarModule, RouterLink],\n templateUrl: './feature-unavailable.html',\n styleUrl: './feature-unavailable.scss',\n})\nexport class FeatureUnavailable {\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n private readonly environment = inject(APP_CONFIG);\n private readonly authService = inject(AuthService);\n private readonly propertyService = inject(PropertyService);\n private readonly snackBar = inject(MatSnackBar);\n private readonly routeData = toSignal(this.route.data, { initialValue: this.route.snapshot.data });\n\n private readonly fallbackSupportUrl = this.environment.supportUrl ?? this.environment.www ?? '/';\n readonly waitlistSubmitting = signal(false);\n\n readonly feature = computed<FeatureAvailabilityData>(() => {\n return (this.routeData()['featureAvailability'] as FeatureAvailabilityData | undefined) ?? DEFAULT_FEATURE_DATA;\n });\n\n readonly highlights = computed(() => this.feature().highlights ?? []);\n readonly primaryAction = computed(() => this.resolveAction(this.feature().primaryAction, 'Contact support'));\n readonly secondaryAction = computed(() => {\n const action = this.feature().secondaryAction;\n return action ? this.resolveAction(action, action.label) : null;\n });\n\n async triggerPrimaryAction(action: ResolvedFeatureAction): Promise<void> {\n if (action.actionType !== 'joinWaitlist' || !action.featureCode || this.waitlistSubmitting()) {\n return;\n }\n\n const user = this.authService.user();\n const email = user?.email?.trim();\n if (!email) {\n this.snackBar.open('Add an email address to your account before joining the waitlist.', 'OK', { duration: 3500 });\n return;\n }\n\n this.waitlistSubmitting.set(true);\n try {\n const fullName = `${user?.firstName ?? ''} ${user?.lastName ?? ''}`.trim() || user?.name || null;\n await firstValueFrom(\n this.propertyService.joinFeatureWaitlist(action.featureCode, {\n featureLabel: action.featureLabel ?? this.feature().title,\n pagePath: this.router.url,\n fullName,\n email,\n phone: user?.phone ?? null,\n note: null,\n }),\n );\n\n this.snackBar.open('You joined the waitlist. We will notify your team when this workspace opens.', 'OK', {\n duration: 3500,\n });\n } catch {\n this.snackBar.open('Failed to join the waitlist. Please try again.', 'OK', {\n duration: 3500,\n });\n } finally {\n this.waitlistSubmitting.set(false);\n }\n }\n\n private resolveAction(action: FeatureAvailabilityAction | undefined, fallbackLabel: string): ResolvedFeatureAction {\n if (action?.actionType === 'joinWaitlist' && action.featureCode) {\n return {\n label: action.label,\n actionType: action.actionType,\n featureCode: action.featureCode,\n featureLabel: action.featureLabel,\n };\n }\n\n if (action?.routerLink) {\n return {\n label: action.label,\n routerLink: action.routerLink,\n };\n }\n\n return {\n label: action?.label ?? fallbackLabel,\n href: action?.href ?? this.fallbackSupportUrl,\n target: action?.target ?? '_blank',\n };\n }\n}\n","<section class=\"feature-unavailable\">\n <div class=\"feature-unavailable__hero\">\n <div class=\"feature-unavailable__copy\">\n <span class=\"feature-unavailable__badge\">{{ feature().badge ?? 'Limited access' }}</span>\n <h1 class=\"feature-unavailable__title\">{{ feature().title }}</h1>\n <p class=\"feature-unavailable__message\">{{ feature().message }}</p>\n </div>\n\n <div class=\"feature-unavailable__actions\">\n @if (primaryAction().actionType === 'joinWaitlist') {\n <button mat-flat-button color=\"primary\" type=\"button\" [disabled]=\"waitlistSubmitting()\" (click)=\"triggerPrimaryAction(primaryAction())\">\n {{ waitlistSubmitting() ? 'Joining...' : primaryAction().label }}\n </button>\n } @else if (primaryAction().routerLink) {\n <a mat-flat-button color=\"primary\" [routerLink]=\"primaryAction().routerLink\">\n {{ primaryAction().label }}\n </a>\n } @else {\n <a\n mat-flat-button\n color=\"primary\"\n [href]=\"primaryAction().href\"\n [attr.target]=\"primaryAction().target ?? null\"\n rel=\"noreferrer\"\n >\n {{ primaryAction().label }}\n </a>\n }\n\n @if (secondaryAction(); as secondaryAction) {\n @if (secondaryAction.routerLink) {\n <a mat-stroked-button [routerLink]=\"secondaryAction.routerLink\">\n {{ secondaryAction.label }}\n </a>\n } @else {\n <a\n mat-stroked-button\n [href]=\"secondaryAction.href\"\n [attr.target]=\"secondaryAction.target ?? null\"\n rel=\"noreferrer\"\n >\n {{ secondaryAction.label }}\n </a>\n }\n }\n </div>\n </div>\n\n @if (highlights().length > 0) {\n <div class=\"feature-unavailable__highlights\">\n @for (highlight of highlights(); track highlight.title) {\n <article class=\"feature-unavailable__card\">\n <div class=\"feature-unavailable__icon\">\n <mat-icon>{{ highlight.icon }}</mat-icon>\n </div>\n <div class=\"feature-unavailable__card-copy\">\n <h2>{{ highlight.title }}</h2>\n <p>{{ highlight.detail }}</p>\n </div>\n </article>\n }\n </div>\n }\n</section>\n"],"names":[],"mappings":"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"}
@@ -2,13 +2,13 @@ import * as i0 from '@angular/core';
2
2
  import { Component } from '@angular/core';
3
3
 
4
4
  class PropertyAgentOverview {
5
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: PropertyAgentOverview, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.1", type: PropertyAgentOverview, isStandalone: true, selector: "rolatech-property-agent-overview", ngImport: i0, template: "<p>property-agent-overview works!</p>\n", styles: [""] });
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: PropertyAgentOverview, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.5", type: PropertyAgentOverview, isStandalone: true, selector: "rolatech-property-agent-overview", ngImport: i0, template: "<p>property-agent-overview works!</p>\n", styles: [""] });
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: PropertyAgentOverview, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: PropertyAgentOverview, decorators: [{
9
9
  type: Component,
10
10
  args: [{ selector: 'rolatech-property-agent-overview', imports: [], template: "<p>property-agent-overview works!</p>\n" }]
11
11
  }] });
12
12
 
13
13
  export { PropertyAgentOverview };
14
- //# sourceMappingURL=rolatech-angular-property-property-agent-overview-DAVd3S1f.mjs.map
14
+ //# sourceMappingURL=rolatech-angular-property-property-agent-overview-DFKqCo3z.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"rolatech-angular-property-property-agent-overview-DAVd3S1f.mjs","sources":["../../../../packages/angular-property/src/lib/pages/property-overview/property-agent-overview/property-agent-overview.ts","../../../../packages/angular-property/src/lib/pages/property-overview/property-agent-overview/property-agent-overview.html"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'rolatech-property-agent-overview',\n imports: [],\n templateUrl: './property-agent-overview.html',\n styleUrl: './property-agent-overview.scss',\n})\nexport class PropertyAgentOverview {}\n","<p>property-agent-overview works!</p>\n"],"names":[],"mappings":";;;MAQa,qBAAqB,CAAA;uGAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,4FCRlC,yCACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kCAAkC,WACnC,EAAE,EAAA,QAAA,EAAA,yCAAA,EAAA;;;;;"}
1
+ {"version":3,"file":"rolatech-angular-property-property-agent-overview-DFKqCo3z.mjs","sources":["../../../../packages/angular-property/src/lib/pages/property-overview/property-agent-overview/property-agent-overview.ts","../../../../packages/angular-property/src/lib/pages/property-overview/property-agent-overview/property-agent-overview.html"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'rolatech-property-agent-overview',\n imports: [],\n templateUrl: './property-agent-overview.html',\n styleUrl: './property-agent-overview.scss',\n})\nexport class PropertyAgentOverview {}\n","<p>property-agent-overview works!</p>\n"],"names":[],"mappings":";;;MAQa,qBAAqB,CAAA;uGAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,4FCRlC,yCACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kCAAkC,WACnC,EAAE,EAAA,QAAA,EAAA,yCAAA,EAAA;;;;;"}
@@ -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-DdE64dzT.mjs';
7
+ import { P as PropertyUtil, a as PropertyViewType, b as PropertyManageItemSkeleton } from './rolatech-angular-property-rolatech-angular-property-Bc-daTQY.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';
@@ -13,12 +13,12 @@ class PropertyIndexComponent extends BaseComponent {
13
13
  propertyService = inject(PropertyService);
14
14
  propertySearchService = inject(PropertySearchService);
15
15
  util = inject(PropertyUtil);
16
- properties = signal([], ...(ngDevMode ? [{ debugName: "properties" }] : []));
16
+ properties = signal([], ...(ngDevMode ? [{ debugName: "properties" }] : /* istanbul ignore next */ []));
17
17
  meta;
18
18
  loading = false;
19
19
  length = 100;
20
20
  pageSize = 15;
21
- pageIndex = signal(0, ...(ngDevMode ? [{ debugName: "pageIndex" }] : []));
21
+ pageIndex = signal(0, ...(ngDevMode ? [{ debugName: "pageIndex" }] : /* istanbul ignore next */ []));
22
22
  pageSizeOptions = [5, 10, 25, 100];
23
23
  viewType = PropertyViewType.GRID;
24
24
  ngOnInit() {
@@ -86,10 +86,10 @@ class PropertyIndexComponent extends BaseComponent {
86
86
  },
87
87
  });
88
88
  }
89
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: PropertyIndexComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
90
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: PropertyIndexComponent, isStandalone: true, selector: "rolatech-property-index", host: { classAttribute: "rolatech-property-index" }, usesInheritance: true, ngImport: i0, template: "<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 class=\"cursor-pointer\"\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", styles: ["rolatech-property-index{display:flex;flex-direction:column;--rt-property-view-items-per-row: 1}@media(min-width:600px){rolatech-property-index{--rt-property-view-items-per-row: 2}}@media(min-width:768px){rolatech-property-index{--rt-property-view-items-per-row: 3}}@media(min-width:1280px){rolatech-property-index{--rt-property-view-items-per-row: 3}}@media(min-width:1536px){rolatech-property-index{--rt-property-view-items-per-row: 4}}@media(min-width:1920px){rolatech-property-index{--rt-property-view-items-per-row: 5}}\n"], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: i2.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: RichViewComponent, selector: "rolatech-rich-view", inputs: ["list", "wrap"] }, { kind: "component", type: PropertyManageItemSkeleton, selector: "rolatech-property-manage-item-skeleton", inputs: ["loading", "list"] }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [i1.RouterLink, RichItemComponent]] });
89
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: PropertyIndexComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
90
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: PropertyIndexComponent, isStandalone: true, selector: "rolatech-property-index", host: { classAttribute: "rolatech-property-index" }, usesInheritance: true, ngImport: i0, template: "<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 class=\"cursor-pointer\"\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", styles: ["rolatech-property-index{display:flex;flex-direction:column;--rt-property-view-items-per-row: 1}@media(min-width:600px){rolatech-property-index{--rt-property-view-items-per-row: 2}}@media(min-width:768px){rolatech-property-index{--rt-property-view-items-per-row: 3}}@media(min-width:1280px){rolatech-property-index{--rt-property-view-items-per-row: 3}}@media(min-width:1536px){rolatech-property-index{--rt-property-view-items-per-row: 4}}@media(min-width:1920px){rolatech-property-index{--rt-property-view-items-per-row: 5}}\n"], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: i2.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: RichViewComponent, selector: "rolatech-rich-view", inputs: ["list", "wrap"] }, { kind: "component", type: PropertyManageItemSkeleton, selector: "rolatech-property-manage-item-skeleton", inputs: ["loading", "list"] }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [i1.RouterLink, RichItemComponent]] });
91
91
  }
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: PropertyIndexComponent, decorators: [{
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: PropertyIndexComponent, decorators: [{
93
93
  type: Component,
94
94
  args: [{ selector: 'rolatech-property-index', imports: [AngularCommonModule, AngularComponentsModule, RichViewComponent, RichItemComponent, PropertyManageItemSkeleton], encapsulation: ViewEncapsulation.None, host: {
95
95
  class: 'rolatech-property-index',
@@ -97,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
97
97
  }] });
98
98
 
99
99
  export { PropertyIndexComponent };
100
- //# sourceMappingURL=rolatech-angular-property-property-index.component-B2kgOaBK.mjs.map
100
+ //# sourceMappingURL=rolatech-angular-property-property-index.component-BXQGrEU9.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"rolatech-angular-property-property-index.component-B2kgOaBK.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 class=\"cursor-pointer\"\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-BXQGrEU9.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 class=\"cursor-pointer\"\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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"}
@@ -2,13 +2,13 @@ import * as i0 from '@angular/core';
2
2
  import { Component } from '@angular/core';
3
3
 
4
4
  class PropertyManageOverview {
5
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: PropertyManageOverview, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.1", type: PropertyManageOverview, isStandalone: true, selector: "rolatech-property-manage-overview", ngImport: i0, template: "<div>22</div>\n", styles: [""] });
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: PropertyManageOverview, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.5", type: PropertyManageOverview, isStandalone: true, selector: "rolatech-property-manage-overview", ngImport: i0, template: "<div>22</div>\n", styles: [""] });
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: PropertyManageOverview, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: PropertyManageOverview, decorators: [{
9
9
  type: Component,
10
10
  args: [{ selector: 'rolatech-property-manage-overview', imports: [], template: "<div>22</div>\n" }]
11
11
  }] });
12
12
 
13
13
  export { PropertyManageOverview };
14
- //# sourceMappingURL=rolatech-angular-property-property-manage-overview-6dhTJwwA.mjs.map
14
+ //# sourceMappingURL=rolatech-angular-property-property-manage-overview-BF-U0dm2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"rolatech-angular-property-property-manage-overview-6dhTJwwA.mjs","sources":["../../../../packages/angular-property/src/lib/pages/property-overview/property-manage-overview/property-manage-overview.ts","../../../../packages/angular-property/src/lib/pages/property-overview/property-manage-overview/property-manage-overview.html"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'rolatech-property-manage-overview',\n imports: [],\n templateUrl: './property-manage-overview.html',\n styleUrl: './property-manage-overview.scss',\n})\nexport class PropertyManageOverview {}\n","<div>22</div>\n"],"names":[],"mappings":";;;MAQa,sBAAsB,CAAA;uGAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,6FCRnC,iBACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mCAAmC,WACpC,EAAE,EAAA,QAAA,EAAA,iBAAA,EAAA;;;;;"}
1
+ {"version":3,"file":"rolatech-angular-property-property-manage-overview-BF-U0dm2.mjs","sources":["../../../../packages/angular-property/src/lib/pages/property-overview/property-manage-overview/property-manage-overview.ts","../../../../packages/angular-property/src/lib/pages/property-overview/property-manage-overview/property-manage-overview.html"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'rolatech-property-manage-overview',\n imports: [],\n templateUrl: './property-manage-overview.html',\n styleUrl: './property-manage-overview.scss',\n})\nexport class PropertyManageOverview {}\n","<div>22</div>\n"],"names":[],"mappings":";;;MAQa,sBAAsB,CAAA;uGAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,6FCRnC,iBACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mCAAmC,WACpC,EAAE,EAAA,QAAA,EAAA,iBAAA,EAAA;;;;;"}
@@ -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-DdE64dzT.mjs';
9
+ import { c as PropertyViewingItemComponent } from './rolatech-angular-property-rolatech-angular-property-Bc-daTQY.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';
@@ -35,13 +35,13 @@ class PropertyManageViewingsIndexComponent extends BaseComponent {
35
35
  status: '',
36
36
  };
37
37
  loading = false;
38
- viewings = signal([], ...(ngDevMode ? [{ debugName: "viewings" }] : []));
38
+ viewings = signal([], ...(ngDevMode ? [{ debugName: "viewings" }] : /* istanbul ignore next */ []));
39
39
  meta;
40
40
  pageEvent;
41
41
  length = 100;
42
42
  pageSize = 15;
43
43
  pageSizeOptions = [5, 10, 25, 100];
44
- pageIndex = signal(0, ...(ngDevMode ? [{ debugName: "pageIndex" }] : []));
44
+ pageIndex = signal(0, ...(ngDevMode ? [{ debugName: "pageIndex" }] : /* istanbul ignore next */ []));
45
45
  ngOnInit() {
46
46
  const sub = this.route.queryParamMap
47
47
  .pipe(map((p) => {
@@ -87,10 +87,10 @@ class PropertyManageViewingsIndexComponent extends BaseComponent {
87
87
  replaceUrl: true, // optional: avoid stacking history on every page click
88
88
  });
89
89
  }
90
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: PropertyManageViewingsIndexComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
91
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: PropertyManageViewingsIndexComponent, isStandalone: true, selector: "rolatech-property-manage-viewings-index", usesInheritance: true, ngImport: i0, template: "<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 class=\"cursor-pointer\" [label]=\"item.name\" routerLink=\"./\" [queryParams]=\"{ status: item.status }\"></rolatech-tab>\n } @else {\n <rolatech-tab class=\"cursor-pointer\" [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 class=\"cursor-pointer\"\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", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: TabsComponent, selector: "rolatech-tabs", inputs: ["select", "loading", "block", "mode"], outputs: ["selectChange"] }, { kind: "component", type: TabComponent, selector: "rolatech-tab", inputs: ["label"], outputs: ["selectRequested"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: EmptyComponent, selector: "rolatech-empty" }, { kind: "component", type: PropertyViewingItemComponent, selector: "rolatech-property-viewing-item", inputs: ["viewing"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i2.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: ListComponent, selector: "rolatech-list" }] });
90
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: PropertyManageViewingsIndexComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
91
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: PropertyManageViewingsIndexComponent, isStandalone: true, selector: "rolatech-property-manage-viewings-index", usesInheritance: true, ngImport: i0, template: "<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 class=\"cursor-pointer\" [label]=\"item.name\" routerLink=\"./\" [queryParams]=\"{ status: item.status }\"></rolatech-tab>\n } @else {\n <rolatech-tab class=\"cursor-pointer\" [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 class=\"cursor-pointer\"\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", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: TabsComponent, selector: "rolatech-tabs", inputs: ["select", "loading", "block", "mode"], outputs: ["selectChange"] }, { kind: "component", type: TabComponent, selector: "rolatech-tab", inputs: ["label"], outputs: ["selectRequested"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: EmptyComponent, selector: "rolatech-empty" }, { kind: "component", type: PropertyViewingItemComponent, selector: "rolatech-property-viewing-item", inputs: ["viewing"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i2.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: ListComponent, selector: "rolatech-list" }] });
92
92
  }
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: PropertyManageViewingsIndexComponent, decorators: [{
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: PropertyManageViewingsIndexComponent, decorators: [{
94
94
  type: Component,
95
95
  args: [{ selector: 'rolatech-property-manage-viewings-index', imports: [
96
96
  CommonModule,
@@ -107,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
107
107
  }] });
108
108
 
109
109
  export { PropertyManageViewingsIndexComponent };
110
- //# sourceMappingURL=rolatech-angular-property-property-manage-viewings-index.component-C22Z-C7z.mjs.map
110
+ //# sourceMappingURL=rolatech-angular-property-property-manage-viewings-index.component-CDDhdhXt.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"rolatech-angular-property-property-manage-viewings-index.component-C22Z-C7z.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 class=\"cursor-pointer\" [label]=\"item.name\" routerLink=\"./\" [queryParams]=\"{ status: item.status }\"></rolatech-tab>\n } @else {\n <rolatech-tab class=\"cursor-pointer\" [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 class=\"cursor-pointer\"\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-CDDhdhXt.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 class=\"cursor-pointer\" [label]=\"item.name\" routerLink=\"./\" [queryParams]=\"{ status: item.status }\"></rolatech-tab>\n } @else {\n <rolatech-tab class=\"cursor-pointer\" [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 class=\"cursor-pointer\"\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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"}