{"version":3,"file":"rolatech-angular-onboarding-agent-apply-shell-page-DQE7_vvN.mjs","sources":["../../../../packages/angular-onboarding/src/lib/pages/agent-apply/agent-apply-shell-page.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, effect, inject, ViewEncapsulation } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute, Router, RouterOutlet } from '@angular/router';\nimport { map, startWith } from 'rxjs';\nimport { OnboardingPageShell } from '../../components/onboarding/onboarding-page-shell';\nimport { OnboardingStatusBadge } from '../../components/onboarding/onboarding-status-badge';\nimport { OnboardingStepNav } from '../../components/onboarding/onboarding-step-nav';\nimport { ApplyStepNavItem } from '../../models/onboarding-ui.models';\nimport { AgentApplyFacade } from '../../store/agent-apply.facade';\n\n@Component({\n  selector: 'rolatech-agent-apply-shell-page',\n  standalone: true,\n  imports: [RouterOutlet, OnboardingPageShell, OnboardingStatusBadge, OnboardingStepNav],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: { class: 'block' },\n  template: `\n    <rolatech-onboarding-page-shell\n      title=\"PrimeCasa Agent Application\"\n      subtitle=\"Complete the onboarding form, review the submission package, and then send it for manual approval.\"\n      kicker=\"Public Apply\"\n    >\n      <div header-actions>\n        <rolatech-onboarding-status-badge [status]=\"facade.status()\" />\n      </div>\n\n      <rolatech-onboarding-step-nav [steps]=\"steps()\" [activeStep]=\"activeStep()\" />\n\n      @if (facade.error()) {\n        <div class=\"rounded-2xl border border-(--rt-border-color) bg-(--rt-raised-background) px-4 py-3 text-sm text-rose-700\">\n          {{ facade.error() }}\n        </div>\n      }\n\n      @if (!facade.detail() && facade.loading()) {\n        <div class=\"rounded-2xl border border-(--rt-border-color) bg-(--rt-base-background) px-4 py-6 text-sm text-(--rt-text-secondary) shadow-sm\">Loading application...</div>\n      }\n\n      <router-outlet />\n    </rolatech-onboarding-page-shell>\n  `,\n})\nexport class AgentApplyShellPage {\n  readonly facade = inject(AgentApplyFacade);\n  private readonly route = inject(ActivatedRoute);\n  private readonly router = inject(Router);\n\n  private readonly paramMap = toSignal(this.route.paramMap, {\n    initialValue: this.route.snapshot.paramMap,\n  });\n\n  private readonly currentUrl = toSignal(\n    this.router.events.pipe(\n      startWith(null),\n      map(() => this.router.url),\n    ),\n    {\n      initialValue: this.router.url,\n    },\n  );\n\n  readonly activeStep = computed(() => {\n    const parts = this.currentUrl().split('/').filter(Boolean);\n    const maybeStep = parts[parts.length - 1] ?? '';\n    switch (maybeStep) {\n      case 'form':\n      case 'review':\n      case 'result':\n        return maybeStep;\n      case 'profile':\n      case 'qualification':\n      case 'financial':\n      case 'banking':\n        return 'form';\n      case 'submitted':\n        return 'result';\n      default:\n        return 'form';\n    }\n  });\n\n  readonly steps = computed<ApplyStepNavItem[]>(() => {\n    const completion = this.facade.completion();\n\n    return [\n      {\n        label: 'Application',\n        step: 'form',\n        link: ['form'],\n        completed: completion.form,\n        accessible: this.facade.canAccessStep('form'),\n      },\n      {\n        label: 'Review',\n        step: 'review',\n        link: ['review'],\n        completed: completion.form,\n        accessible: this.facade.canAccessStep('review'),\n      },\n      {\n        label: 'Result',\n        step: 'result',\n        link: ['result'],\n        completed: this.facade.canAccessStep('result'),\n        accessible: this.facade.canAccessStep('result'),\n      },\n    ];\n  });\n\n  constructor() {\n    effect(() => {\n      this.currentUrl();\n      const applicationId = this.resolveApplicationId();\n\n      if (!applicationId) {\n        return;\n      }\n\n      void this.facade.ensureLoaded(applicationId);\n    });\n  }\n\n  private resolveApplicationId(): string | null {\n    return (\n      this.paramMap().get('applicationId') ??\n      this.route.snapshot.pathFromRoot\n        .map((item) => item.paramMap.get('applicationId'))\n        .find((value) => Boolean(value)) ??\n      null\n    );\n  }\n}\n"],"names":[],"mappings":"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"}