{"version":3,"file":"rolatech-angular-onboarding-agent-apply-form-page-BZO07hKm.mjs","sources":["../../../../packages/angular-onboarding/src/lib/pages/agent-apply/agent-apply-form-page.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject, ViewEncapsulation } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { OnboardingDocumentType, onboardingApplicantTypeLabel } from '@rolatech/angular-services';\nimport { OnboardingBankingSection } from '../../components/onboarding/onboarding-banking-section';\nimport { OnboardingQualificationUploadSection } from '../../components/onboarding/onboarding-qualification-upload-section';\nimport { OnboardingReviewIssuesBanner } from '../../components/onboarding/onboarding-review-issues-banner';\nimport { OnboardingVatSection } from '../../components/onboarding/onboarding-vat-section';\nimport { AgentApplyFacade } from '../../store/agent-apply.facade';\n\n@Component({\n  selector: 'rolatech-agent-apply-form-page',\n  standalone: true,\n  imports: [\n    ReactiveFormsModule,\n    OnboardingQualificationUploadSection,\n    OnboardingVatSection,\n    OnboardingBankingSection,\n    OnboardingReviewIssuesBanner,\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: { class: 'block' },\n  template: `\n    <div class=\"space-y-6\">\n      @if (facade.status() === 'NEED_MORE_INFO' && facade.issues().length > 0) {\n        <rolatech-onboarding-review-issues-banner [issues]=\"facade.issues()\" [status]=\"facade.status()\" />\n      }\n\n      <section class=\"grid gap-4 md:grid-cols-3\">\n        <article class=\"rounded-3xl border border-(--rt-border-color) bg-(--rt-base-background) p-5 shadow-sm\">\n          <p class=\"text-xs font-semibold uppercase tracking-[0.2em] text-(--rt-text-secondary)\">Applicant Type</p>\n          <p class=\"mt-2 text-lg font-semibold text-(--rt-text-primary)\">{{ applicantTypeLabel(facade.applicantType()) }}</p>\n        </article>\n\n        <article class=\"rounded-3xl border border-(--rt-border-color) bg-(--rt-base-background) p-5 shadow-sm\">\n          <p class=\"text-xs font-semibold uppercase tracking-[0.2em] text-(--rt-text-secondary)\">Operating Region</p>\n          <p class=\"mt-2 text-lg font-semibold text-(--rt-text-primary)\">{{ countryCodeLabel() }}</p>\n        </article>\n\n        <article class=\"rounded-3xl border border-(--rt-border-color) bg-(--rt-base-background) p-5 shadow-sm\">\n          <p class=\"text-xs font-semibold uppercase tracking-[0.2em] text-(--rt-text-secondary)\">Section Progress</p>\n          <div class=\"mt-3 flex flex-wrap gap-2\">\n            @for (item of progressPills(); track item.label) {\n              <span\n                class=\"rounded-full px-3 py-1 text-xs font-semibold\"\n                [class]=\"\n                  item.complete\n                    ? 'bg-(--rt-raised-background) text-emerald-700'\n                    : 'bg-(--rt-raised-background) text-(--rt-text-secondary)'\n                \"\n              >\n                {{ item.label }}\n              </span>\n            }\n          </div>\n        </article>\n      </section>\n\n      @if (canEditStart()) {\n        <section class=\"flex justify-end\">\n          <button\n            type=\"button\"\n            class=\"rounded-xl border border-(--rt-border-color) bg-(--rt-base-background) px-4 py-2 text-sm font-medium text-(--rt-text-secondary) transition hover:bg-(--rt-raised-background)\"\n            (click)=\"editStart()\"\n          >\n            Edit type and country\n          </button>\n        </section>\n      }\n\n      <form\n        [formGroup]=\"facade.profileForm\"\n        class=\"space-y-4 rounded-3xl border border-(--rt-border-color) bg-(--rt-base-background) p-6 shadow-sm\"\n      >\n        <div class=\"space-y-2\">\n          <h2 class=\"text-lg font-semibold text-(--rt-text-primary)\">{{ profileTitle() }}</h2>\n          <p class=\"max-w-2xl text-sm text-(--rt-text-secondary)\">\n            {{ profileDescription() }}\n          </p>\n        </div>\n\n        <div class=\"grid gap-4 md:grid-cols-2\">\n          @if (facade.isCompany()) {\n            <label class=\"grid gap-2 md:col-span-2\">\n              <span class=\"text-sm font-medium text-(--rt-text-secondary)\">Company legal name</span>\n              <input\n                formControlName=\"organizationName\"\n                class=\"h-11 rounded-xl border border-(--rt-border-color) px-3\"\n                [readonly]=\"facade.isFieldLocked('organizationName')\"\n              />\n              @if (facade.getFieldIssueComment('organizationName')) {\n                <span class=\"text-xs text-amber-800\">{{ facade.getFieldIssueComment('organizationName') }}</span>\n              }\n              @if (hasProfileError('organizationName', 'required')) {\n                <span class=\"text-xs text-rose-700\">Company legal name is required.</span>\n              }\n            </label>\n          }\n\n          <label class=\"grid gap-2\">\n            <span class=\"text-sm font-medium text-(--rt-text-secondary)\">{{ contactNameLabel() }}</span>\n            <input\n              formControlName=\"contactName\"\n              class=\"h-11 rounded-xl border border-(--rt-border-color) px-3\"\n              [readonly]=\"facade.isFieldLocked('contactName')\"\n            />\n            @if (facade.getFieldIssueComment('contactName')) {\n              <span class=\"text-xs text-amber-800\">{{ facade.getFieldIssueComment('contactName') }}</span>\n            }\n            @if (hasProfileError('contactName', 'required')) {\n              <span class=\"text-xs text-rose-700\">{{ contactNameLabel() }} is required.</span>\n            }\n          </label>\n\n          <label class=\"grid gap-2\">\n            <span class=\"text-sm font-medium text-(--rt-text-secondary)\">Primary email</span>\n            <input\n              formControlName=\"contactEmail\"\n              class=\"h-11 rounded-xl border border-(--rt-border-color) px-3\"\n              [readonly]=\"facade.isFieldLocked('contactEmail')\"\n            />\n            @if (facade.getFieldIssueComment('contactEmail')) {\n              <span class=\"text-xs text-amber-800\">{{ facade.getFieldIssueComment('contactEmail') }}</span>\n            }\n            @if (hasProfileError('contactEmail', 'required')) {\n              <span class=\"text-xs text-rose-700\">Primary email is required.</span>\n            }\n            @if (hasProfileError('contactEmail', 'email')) {\n              <span class=\"text-xs text-rose-700\">Enter a valid email address.</span>\n            }\n          </label>\n\n          <label class=\"grid gap-2\">\n            <span class=\"text-sm font-medium text-(--rt-text-secondary)\">Phone number</span>\n            <input\n              formControlName=\"contactPhone\"\n              class=\"h-11 rounded-xl border border-(--rt-border-color) px-3\"\n              [readonly]=\"facade.isFieldLocked('contactPhone')\"\n            />\n            @if (facade.getFieldIssueComment('contactPhone')) {\n              <span class=\"text-xs text-amber-800\">{{ facade.getFieldIssueComment('contactPhone') }}</span>\n            }\n            @if (hasProfileError('contactPhone', 'required')) {\n              <span class=\"text-xs text-rose-700\">Phone number is required.</span>\n            }\n          </label>\n        </div>\n      </form>\n\n      <rolatech-onboarding-qualification-upload-section\n        [required]=\"facade.requiresDocuments()\"\n        [documentSpecs]=\"facade.requiredDocuments()\"\n        [documents]=\"facade.documents()\"\n        [issueComments]=\"facade.documentIssueComments()\"\n        [lockedDocuments]=\"lockedDocuments()\"\n        [uploadStates]=\"facade.uploadStates()\"\n        [busy]=\"facade.saving()\"\n        (fileSelected)=\"onUpload($event.documentType, $event.file, $event.replacedDocumentId)\"\n      />\n\n      <rolatech-onboarding-vat-section\n        [form]=\"facade.financialForm\"\n        [applicantType]=\"facade.applicantType()\"\n        [countryCode]=\"facade.countryCode()\"\n        [fieldLocks]=\"financialFieldLocks()\"\n        [vatRateLabel]=\"vatRateLabel()\"\n        [issueComments]=\"facade.fieldIssueComments()\"\n      />\n\n      <rolatech-onboarding-banking-section\n        [form]=\"facade.bankingForm\"\n        [required]=\"facade.requiresBanking()\"\n        [fieldLocks]=\"bankingFieldLocks()\"\n        [expectedAccountHolderName]=\"facade.expectedAccountHolderName()\"\n        [issueComments]=\"facade.fieldIssueComments()\"\n      />\n\n      <section\n        class=\"flex flex-wrap items-center justify-between gap-4 rounded-3xl border border-(--rt-border-color) bg-(--rt-base-background) p-5 shadow-sm\"\n      >\n        <div class=\"space-y-1 text-sm text-(--rt-text-secondary)\">\n          @if (facade.lastLocalDraftSavedAt()) {\n            <p>Local draft saved {{ draftSavedAt() }}.</p>\n          } @else {\n            <p>Changes are stored locally while you work.</p>\n          }\n          @if (facade.hasActiveUploads()) {\n            <p class=\"text-amber-800\">A document upload is still running.</p>\n          }\n        </div>\n\n        <button\n          type=\"button\"\n          class=\"rounded-xl bg-(--rt-brand-color) px-5 py-2.5 text-sm font-semibold text-(--rt-text-primary-inverse) transition hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-60\"\n          [disabled]=\"facade.saving() || facade.hasActiveUploads()\"\n          (click)=\"continueToReview()\"\n        >\n          {{ primaryActionLabel() }}\n        </button>\n      </section>\n    </div>\n  `,\n})\nexport class AgentApplyFormPage {\n  readonly facade = inject(AgentApplyFacade);\n  readonly applicantTypeLabel = onboardingApplicantTypeLabel;\n  private readonly router = inject(Router);\n  private readonly route = inject(ActivatedRoute);\n\n  readonly countryCodeLabel = computed(() => {\n    switch (this.facade.countryCode()) {\n      case 'CN':\n        return 'China';\n      case 'GB':\n        return 'United Kingdom';\n      default:\n        return 'Other';\n    }\n  });\n\n  readonly progressPills = computed(() => {\n    const completion = this.facade.completion();\n\n    return [\n      { label: 'Profile', complete: completion.profile },\n      {\n        label: this.facade.requiresDocuments() ? 'Documents' : 'Documents (optional)',\n        complete: completion.qualification,\n      },\n      { label: 'VAT', complete: completion.financial },\n      {\n        label: this.facade.requiresBanking() ? 'Banking' : 'Banking (optional)',\n        complete: completion.banking,\n      },\n    ];\n  });\n\n  readonly lockedDocuments = computed(() =>\n    this.facade\n      .requiredDocuments()\n      .filter((spec) => this.facade.isDocumentLocked(spec.type))\n      .map((spec) => spec.type),\n  );\n\n  readonly financialFieldLocks = computed(() => ({\n    vatMode: this.facade.isIndividual() || this.facade.isFieldLocked('vatMode'),\n    vatNumber: this.facade.isIndividual() || this.facade.isFieldLocked('vatNumber'),\n  }));\n\n  readonly bankingFieldLocks = computed(() => ({\n    bankName: this.facade.isFieldLocked('bankName'),\n    accountHolderName: this.facade.isFieldLocked('accountHolderName'),\n    sortCode: this.facade.isFieldLocked('sortCode'),\n    accountNumber: this.facade.isFieldLocked('accountNumber'),\n  }));\n\n  readonly profileTitle = computed(() => (this.facade.isCompany() ? 'Company Contact Details' : 'Applicant Details'));\n  readonly profileDescription = computed(() =>\n    this.facade.isCompany()\n      ? 'Enter the legal company name and the contact person responsible for this onboarding submission.'\n      : 'Enter the personal details for the applicant who is joining as an agent.',\n  );\n  readonly contactNameLabel = computed(() => (this.facade.isCompany() ? 'Company representative' : 'Full name'));\n  readonly vatRateLabel = computed(() => (this.facade.isIndividual() ? '0%' : '20%'));\n  readonly draftSavedAt = computed(() => {\n    const value = this.facade.lastLocalDraftSavedAt();\n    return value ? new Date(value).toLocaleString() : '';\n  });\n  readonly primaryActionLabel = computed(() => (this.facade.hasSubmittedState() ? 'Open review' : 'Continue to review'));\n  readonly canEditStart = computed(() => {\n    const status = this.facade.status();\n    return status === null || status === 'DRAFT' || status === 'IN_PROGRESS';\n  });\n\n  hasProfileError(controlName: string, errorCode: string): boolean {\n    const control = this.facade.profileForm.get(controlName);\n    return Boolean(control?.touched && control.hasError(errorCode));\n  }\n\n  async onUpload(documentType: OnboardingDocumentType, file: File, replacedDocumentId?: string): Promise<void> {\n    await this.facade.uploadDocument(documentType, file, replacedDocumentId);\n  }\n\n  async continueToReview(): Promise<void> {\n    if (!this.facade.hasSubmittedState()) {\n      const saved = await this.facade.saveFormProgress();\n\n      if (!saved) {\n        return;\n      }\n    }\n    await this.router.navigate(['../review'], {\n      relativeTo: this.route,\n    });\n  }\n\n  async editStart(): Promise<void> {\n    await this.router.navigate(['../start'], {\n      relativeTo: this.route,\n    });\n  }\n}\n"],"names":[],"mappings":"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"}