import { isDemo } from "@saasquatch/component-boilerplate";
import { withHooks } from "@saasquatch/stencil-hooks";
import { Component, h, Host, Prop } from "@stencil/core";
import deepmerge from "deepmerge";
import { getProps } from "../../../utils/utils";
import { TaxAndCashDashboardView } from "./sqm-tax-and-cash-dashboard-view";
import { useTaxAndCashDashboard, } from "./useTaxAndCashDashboard";
/**
 * @uiName Tax and Cash Status Dashboard
 */
export class TaxAndCashDashboard {
  constructor() {
    /**
     * @uiName Active tax form badge label
     */
    this.statusTextActive = "Active";
    /**
     * @uiName Invalid tax form badge label
     */
    this.statusTextNotActive = "Invalid Tax Form";
    /**
     * Displayed when the participant submitted their form but it is awaiting review.
     *
     * @uiName Not verified tax form badge label
     */
    this.statusTextNotVerified = "Not Verified";
    /**
     * Displayed when the participant has not submitted their required tax form.
     *
     * @uiName Required tax form badge label
     */
    this.statusTextRequired = "Required";
    /**
     * Additional text displayed next to the tax form's status badge
     *
     * @uiName Required tax form description
     */
    this.requiredTaxForm = "Your payouts are on hold until you submit a {taxFormType} tax form.";
    /**
     * Additional text displayed next to the tax form's status badge
     *
     * @uiName Active W-9 description
     */
    this.badgeTextSubmittedOn = "Submitted on {dateSubmitted}.";
    /**
     * Additional text displayed next to the tax form's status badge.
     *
     * @uiName Active W-8 description
     */
    this.badgeTextSubmittedOnW8 = "Submitted on {dateSubmitted}. Valid for three years after submission.";
    /**
     * Additional text displayed next to the tax form's status badge.
     *
     * @uiName Tax form in review description
     */
    this.badgeTextAwaitingReview = "Awaiting review. Submitted on {dateSubmitted}.";
    /**
     * Part of the alert displayed at the top of the page.
     *
     * @uiName Inactive W-9 error message title
     * @uiWidget textArea
     */
    this.taxAlertHeaderNotActiveW9 = "Your W-9 tax form has personal information that doesn’t match your profile";
    /**
     * Part of the alert displayed at the top of the page.
     *
     * @uiName Inactive W-8 error message title
     * @uiWidget textArea
     */
    this.taxAlertHeaderNotActiveW8 = "{documentType} tax form is invalid";
    /**
     * Part of the alert displayed at the top of the page.
     *
     * @uiName Inactive W-9 error message description
     * @uiWidget textArea
     */
    this.taxAlertNotActiveMessageW9 = "Please resubmit a new {documentType} form.";
    /**
     * Part of the alert displayed at the top of the page.
     *
     * @uiName Inactive W-8 error message description
     */
    this.taxAlertNotActiveMessageW8 = "Your tax form may have expired or has personal information that doesn’t match your profile. Please submit a new {documentType} form.";
    /**
     * Additional text displayed next to the tax form's status badge.
     *
     * @uiName Invalid tax form description
     * @uiWidget textArea
     */
    this.invalidForm = "Make sure your information is correct and submit new form.";
    /**
     * @uiName Payout information section header
     */
    this.bankingInformationSectionHeader = "Payout information";
    /**
     * @uiName Tax document section header
     */
    this.taxDocumentSectionHeader = "Tax documents";
    /**
     * Displayed under the tax document section header.
     *
     * @uiName Tax documents section description
     */
    this.taxDocumentSectionSubHeader = "{documentType} tax form";
    /**
     * Displayed under the tax document section header.
     *
     * @uiName Tax documents section description
     */
    this.taxDocumentSectionSubHeaderNoDocument = "Tax form";
    /**
     *
     * @uiName Indirect tax section header
     */
    this.indirectTaxInfoSectionHeader = "Indirect tax";
    /**
     * If the participant is registered for indirect tax in Canada, display the province they’re registered in.
     *
     * @uiName Canadian province of indirect tax
     */
    this.indirectTaxInfoCanada = "Registered in {province}, {country}";
    /**
     * If the participant is registered for indirect tax, display the country they’re registered in.
     *
     * @uiName Indirect tax country
     */
    this.indirectTaxInfoOtherCountry = "Registered in {country}";
    /**
     * If the participant is registered for indirect tax in Spain, display the region they’re registered in.
     *
     * @uiName Spanish region of indirect tax
     */
    this.indirectTaxInfoSpain = "Registered in {country}, {subRegion}";
    /**
     * @uiName Indirect tax tooltip
     * @uiWidget textArea
     */
    this.indirectTaxTooltipSupport = "To make changes to your indirect tax information, please contact our {supportLink}.";
    /**
     * Displayed to participants who have submitted their indirect tax information.
     *
     * @uiName Indirect tax details
     */
    this.indirectTaxDetails = "{indirectTaxType} number: {indirectTaxNumber}";
    /**
     * @uiName Submit new tax form button label
     */
    this.newFormButton = "Submit new tax form";
    /**
     *
     * @uiName Edit payment info button label
     */
    this.editPaymentInformationButton = "Edit payout information";
    /**
     * @uiName Not registered for indirect tax text
     * @uiWidget textArea
     */
    this.notRegisteredForTax = "Not registered for indirect tax. If you’ve previously registered with your tax authority, contact our {supportLink} to add your information to stay tax compliant.";
    /**
     * Displayed to participants registered in Quebec, Canada.
     * @uiName QST indirect tax details
     */
    this.qstNumber = "QST number: {qstNumber}";
    /**
     * @uiName Spain sub-region indirect tax number
     */
    this.subRegionTaxNumber = "Income tax number: {subRegionTaxNumber}";
    /**
     * @uiName Payout status badge
     */
    this.statusBadgeText = "{badgeText, select, payoutToday {Payout Today} nextPayout {Next Payout} other {Failed} }";
    /**
     * Display participants' payout preference on the payout information card, indicating the balance at which they want to get paid.
     * @uiName Payout schedule by threshold text
     */
    this.thresholdPayoutText = "Next payout occurs when balance is {thresholdBalance}";
    /**
     * Shown before the participant’s bank account information.
     * @uiName Bank account field label
     */
    this.accountText = "Account";
    /**
     * Part of the alert displayed at the top of the page when there’s been an issue preventing payouts.
     * @uiName Payout error message title
     * @uiWidget textArea
     */
    this.payoutHoldAlertHeader = "Your payout is on hold";
    /**
     * Part of the alert displayed at the top of the page when there’s been an issue preventing payouts.
     * @uiName Payout error message description
     * @uiWidget textArea
     */
    this.payoutHoldAlertDescription = "Please contact our {supportLink} or check your inbox for an email from our referral program provider, impact.com.";
    /**
     * Text displayed for existing publishers that do not have saved banking information.
     * @uiName Payout missing information subtext
     */
    this.payoutMissingInformationText = "Missing banking information, go to Impact.com to resolve.";
    /**
     * Part of the alert displayed at the top of the page when the user needs to verify their identity.
     * @uiName Verification required alert message title
     * @uiWidget textArea
     */
    this.verificationRequiredHeader = "Verify your identity";
    /**
     * Part of the alert displayed at the top of the page when the user needs to verify their identity
     * @uiName Verification required alert message description
     * @uiWidget textArea
     */
    this.verificationRequiredDescription = "Complete your verification to start receiving your cash rewards. It should only take a few minutes verify. If you run in to an issue verifying your identity contact our {supportLink}.";
    /**
     * @uiName Verification required internal alert header
     */
    this.verificationRequiredInternalHeader = "Identity verification in progress";
    /**
     * @uiName Verification required internal alert description
     */
    this.verificationRequiredInternalDescription = "Identity verification submission has been received. Our system is currently performing additional checks and analyzing the results. You will be updated shortly. If you don't hear from us contact our {supportLink}.";
    /**
     * @uiName Verification review internal alert header
     */
    this.verificationReviewInternalHeader = "Identity verification under review";
    /**
     * @uiName Verification review internal alert description
     */
    this.verificationReviewInternalDescription = "Identity verification requires further review due to a potential error. Our team is reviewing the information and will update you shortly. If you don't hear from us contact our {supportLink}.";
    /**
     * @uiName Verification failed internal alert header
     */
    this.verificationFailedInternalHeader = "Identity verification unsuccessful";
    /**
     * @uiName Verification failed internal alert description
     */
    this.verificationFailedInternalDescription = "Identity verification has failed. Our team is reviewing the report and will contact you with further information. If you don't hear from us contact our {supportLink}.";
    /**
     * Part of the alert displayed at the top of the page when the user needs to verify their identity.
     * @uiName Verification required alert button text
     */
    this.verificationRequiredButtonText = "Start Verification";
    /**
     * @uiName W-9 payment threshold alert header
     */
    this.w9RequiredHeader = "Your next payout is on hold";
    /**
     * @uiName W-9 payment threshold alert description
     */
    this.w9RequiredDescription = "You have surpassed the $2000 threshold requiring a W-9 form or have multiple accounts with impact.com. To remove the hold, please submit your W-9 form.";
    /**
     * @uiName Account review alert header
     */
    this.accountReviewHeader = "Your account is under review";
    /**
     * @uiName Account review alert description
     */
    this.accountReviewDescription = "This process takes 48 hours, payouts are on hold until it's completed. You will receive an email from our referral provider, Impact.com, if any issues arise.  It contains details on how to resolve this issue. If you need further assistance, please reach out to our {supportLink}.";
    /**
     * @uiName Payment hold on change alert header
     */
    this.paymentHoldOnChangeHeader = "We are reviewing your new payout settings";
    /**
     * @uiName Payment hold on change alert description
     */
    this.paymentHoldOnChangeDescription = "Your payout is temporarily on hold while we review your new payment information, this process is usually resolved within 48 hours.";
    /**
     * @uiName Beneficiary name invalid alert header
     */
    this.beneficiaryNameInvalidHeader = "Your payment information does not match your tax form";
    /**
     * @uiName Beneficiary name invalid description
     */
    this.beneficiaryNameInvalidDescription = "The account holder (beneficiary) name in your payment information does not match what was submitted in your tax form. Please review and update your payment information or tax form so that they match exactly and do not include any invalid characters. Your payouts are on hold until this is resolved.";
    /**
     * @uiName Beneficiary name mismatch alert header
     */
    this.beneficiaryNameMismatchHeader = "Your payment information does not match your tax form";
    /**
     * @uiName Beneficiary name mismatch alert description
     */
    this.beneficiaryNameMismatchDescription = "The account holder (beneficiary) name in your payment information does not match what was submitted in your tax form. Please review and update your payment information or tax form so that they match exactly and do not include any invalid characters. Your payouts are on hold until this is resolved.";
    /**
     * @uiName Bank name mismatch alert header
     */
    this.bankTaxNameMismatchHeader = "Your payment information does not match your tax form";
    /**
     * @uiName Bank name mismatch alert description
     */
    this.bankTaxNameMismatchDescription = "The bank account (beneficiary) name in your payment information does not match what was submitted in your tax form. Please review and update your payment information or tax form so that they match exactly and do not include any invalid characters. Your payouts are on hold until this is resolved.";
    /**
     * @uiName Withdrawal settings invalid alert header
     */
    this.withdrawalSettingsInvalidHeader = "Your payment information is incomplete or includes invalid characters";
    /**
     * @uiName Withdrawal settings invalid alert description
     */
    this.withdrawalSettingsInvalidDescription = "There are missing fields or invalid characters in your payment information. Please review your information and make sure it is correct. Your payouts are on hold until this is resolved.";
    /**
     * @uiName Payment returned alert header
     */
    this.paymentReturnedHeader = "Payout unsuccessful";
    /**
     * @uiName Payment returned alert description
     */
    this.paymentReturnedDescription = "Our recent payment attempt for your earnings was unsuccessful. Please review your payment information and make sure it is correct.";
    /**
     * @uiName Terms and Conditions text
     */
    this.termsAndConditions = "Terms and Conditions";
    /**
     * @uiName W-9 payment threshold alert button text
     */
    this.w9RequiredButtonText = "Submit W-9";
    /**
     * Part of the alert displayed at the top of the page.
     * @uiName Form submission error message title
     * @uiWidget textArea
     */
    this.generalErrorTitle = "There was a problem submitting your information";
    /**
     * Part of the alert displayed at the top of the page.
     * @uiName Form submission error message description
     * @uiWidget textArea
     */
    this.generalErrorDescription = "Please review your information and try again. If this problem continues, contact our {supportLink}.";
    /**
     * Displayed under the payout details card.
     * @uiName Payout from impact text
     * @uiWidget textArea
     */
    this.payoutFromImpact = "Your balance may take up to 24 hours to update. Payouts will be sent from our referral program provider, impact.com.";
    /**
     * Part of the alert displayed at the top of the page.
     * @uiName Page load error message title
     * @uiWidget textArea
     */
    this.loadingErrorAlertHeader = "There was a problem loading your form";
    /**
     * Part of the alert displayed at the top of the page.
     * @uiName Page load error message description
     * @uiWidget textArea
     */
    this.loadingErrorAlertDescription = "Please refresh the page and try again. If this problem continues, contact our {supportLink}.";
    /**
     * Part of the Invoice table displayed at the bottom of the page.
     * @uiName Invoice number column title
     */
    this.invoiceColumnTitle = "Invoice";
    /**
     * Part of the Invoice table displayed at the bottom of the page.
     * @uiName Date column title
     */
    this.dateColumnTitle = "Date";
    /**
     * Part of the Invoice table displayed at the bottom of the page.
     * @uiName Earnings column title
     */
    this.earningsColumnTitle = "Earnings";
    /**
     * Part of the Invoice table displayed at the bottom of the page.
     * @uiName Indirect tax column title
     */
    this.indirectTaxColumnTitle = "Indirect tax";
    /**
     * Part of the Invoice table displayed at the bottom of the page.
     * @uiName Earnings after tax column title
     */
    this.earningsAfterTaxColumnTitle = "Earnings after tax";
    /** @uiName Invoice table description  */
    this.invoiceDescription = "View and download your invoices to report your earnings and stay tax compliant.";
    /** @uiName Invoice table previous page button label  */
    this.invoicePrevLabel = "Prev";
    /** @uiName Invoice table next page button label  */
    this.invoiceMoreLabel = "Next";
    /** @uiName Invoice table title */
    this.invoiceHeader = "Invoices";
    /** @uiName Empty invoice table header  */
    this.invoiceEmptyStateHeader = "View your invoice details";
    /** @uiName Empty invoice table description  */
    this.invoiceEmptyStateText = "Refer a friend to view the status of your invoices and rewards earned";
    /**
     * @uiName Replace tax form modal header
     */
    this.replaceTaxFormModalHeader = "Replace existing tax form";
    /**
     * @uiName Replace tax form modal body text
     */
    this.replaceTaxFormModalBodyText = "Submitting a new tax form will remove your existing form. Make sure to sign and complete your new tax form to prevent any issues with your next payout.";
    /**
     * @uiName Support link text
     */
    this.supportLink = "support team";
    /**
     * @uiName Cancel button label
     */
    this.cancelButton = "Cancel";
    /**
     * @undocumented
     * @componentState { "title": "Payouts on hold", "props": { "states": { "payoutStatus": "HOLD" } }, "uiGroup": "Dashboard Properties" }
     */
    this.stateController = "{}";
    withHooks(this);
  }
  disconnectedCallback() { }
  getTextProps() {
    const props = getProps(this);
    return {
      ...props,
      error: {
        generalDescription: props.generalErrorDescription,
        generalTitle: props.generalErrorTitle,
        loadingErrorAlertHeader: props.loadingErrorAlertHeader,
        loadingErrorAlertDescription: props.loadingErrorAlertDescription,
      },
    };
  }
  render() {
    const props = isDemo()
      ? useDemoTaxAndCashDashboard(this)
      : useTaxAndCashDashboard(this);
    return (h(Host, null,
      h(TaxAndCashDashboardView, { callbacks: props.callbacks, states: props.states, text: props.text, slots: {
          payoutDetailsCardSlot: (h("sqm-payout-details-card", Object.assign({}, this.getTextProps()))),
        } })));
  }
  static get is() { return "sqm-tax-and-cash-dashboard"; }
  static get encapsulation() { return "shadow"; }
  static get properties() { return {
    "statusTextActive": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": true,
      "docs": {
        "tags": [{
            "text": "Active tax form badge label",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "status-text-active",
      "reflect": false,
      "defaultValue": "\"Active\""
    },
    "statusTextNotActive": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": true,
      "docs": {
        "tags": [{
            "text": "Invalid tax form badge label",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "status-text-not-active",
      "reflect": false,
      "defaultValue": "\"Invalid Tax Form\""
    },
    "statusTextNotVerified": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": true,
      "docs": {
        "tags": [{
            "text": "Not verified tax form badge label",
            "name": "uiName"
          }],
        "text": "Displayed when the participant submitted their form but it is awaiting review."
      },
      "attribute": "status-text-not-verified",
      "reflect": false,
      "defaultValue": "\"Not Verified\""
    },
    "statusTextRequired": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": true,
      "docs": {
        "tags": [{
            "text": "Required tax form badge label",
            "name": "uiName"
          }],
        "text": "Displayed when the participant has not submitted their required tax form."
      },
      "attribute": "status-text-required",
      "reflect": false,
      "defaultValue": "\"Required\""
    },
    "requiredTaxForm": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": true,
      "docs": {
        "tags": [{
            "text": "Required tax form description",
            "name": "uiName"
          }],
        "text": "Additional text displayed next to the tax form's status badge"
      },
      "attribute": "required-tax-form",
      "reflect": false,
      "defaultValue": "\"Your payouts are on hold until you submit a {taxFormType} tax form.\""
    },
    "badgeTextSubmittedOn": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": true,
      "docs": {
        "tags": [{
            "text": "Active W-9 description",
            "name": "uiName"
          }],
        "text": "Additional text displayed next to the tax form's status badge"
      },
      "attribute": "badge-text-submitted-on",
      "reflect": false,
      "defaultValue": "\"Submitted on {dateSubmitted}.\""
    },
    "badgeTextSubmittedOnW8": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": true,
      "docs": {
        "tags": [{
            "text": "Active W-8 description",
            "name": "uiName"
          }],
        "text": "Additional text displayed next to the tax form's status badge."
      },
      "attribute": "badge-text-submitted-on-w-8",
      "reflect": false,
      "defaultValue": "\"Submitted on {dateSubmitted}. Valid for three years after submission.\""
    },
    "badgeTextAwaitingReview": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": true,
      "docs": {
        "tags": [{
            "text": "Tax form in review description",
            "name": "uiName"
          }],
        "text": "Additional text displayed next to the tax form's status badge."
      },
      "attribute": "badge-text-awaiting-review",
      "reflect": false,
      "defaultValue": "\"Awaiting review. Submitted on {dateSubmitted}.\""
    },
    "taxAlertHeaderNotActiveW9": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": true,
      "docs": {
        "tags": [{
            "text": "Inactive W-9 error message title",
            "name": "uiName"
          }, {
            "text": "textArea",
            "name": "uiWidget"
          }],
        "text": "Part of the alert displayed at the top of the page."
      },
      "attribute": "tax-alert-header-not-active-w-9",
      "reflect": false,
      "defaultValue": "\"Your W-9 tax form has personal information that doesn\u2019t match your profile\""
    },
    "taxAlertHeaderNotActiveW8": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": true,
      "docs": {
        "tags": [{
            "text": "Inactive W-8 error message title",
            "name": "uiName"
          }, {
            "text": "textArea",
            "name": "uiWidget"
          }],
        "text": "Part of the alert displayed at the top of the page."
      },
      "attribute": "tax-alert-header-not-active-w-8",
      "reflect": false,
      "defaultValue": "\"{documentType} tax form is invalid\""
    },
    "taxAlertNotActiveMessageW9": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": true,
      "docs": {
        "tags": [{
            "text": "Inactive W-9 error message description",
            "name": "uiName"
          }, {
            "text": "textArea",
            "name": "uiWidget"
          }],
        "text": "Part of the alert displayed at the top of the page."
      },
      "attribute": "tax-alert-not-active-message-w-9",
      "reflect": false,
      "defaultValue": "\"Please resubmit a new {documentType} form.\""
    },
    "taxAlertNotActiveMessageW8": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": true,
      "docs": {
        "tags": [{
            "text": "Inactive W-8 error message description",
            "name": "uiName"
          }],
        "text": "Part of the alert displayed at the top of the page."
      },
      "attribute": "tax-alert-not-active-message-w-8",
      "reflect": false,
      "defaultValue": "\"Your tax form may have expired or has personal information that doesn\u2019t match your profile. Please submit a new {documentType} form.\""
    },
    "invalidForm": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": true,
      "docs": {
        "tags": [{
            "text": "Invalid tax form description",
            "name": "uiName"
          }, {
            "text": "textArea",
            "name": "uiWidget"
          }],
        "text": "Additional text displayed next to the tax form's status badge."
      },
      "attribute": "invalid-form",
      "reflect": false,
      "defaultValue": "\"Make sure your information is correct and submit new form.\""
    },
    "bankingInformationSectionHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Payout information section header",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "banking-information-section-header",
      "reflect": false,
      "defaultValue": "\"Payout information\""
    },
    "taxDocumentSectionHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Tax document section header",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "tax-document-section-header",
      "reflect": false,
      "defaultValue": "\"Tax documents\""
    },
    "taxDocumentSectionSubHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Tax documents section description",
            "name": "uiName"
          }],
        "text": "Displayed under the tax document section header."
      },
      "attribute": "tax-document-section-sub-header",
      "reflect": false,
      "defaultValue": "\"{documentType} tax form\""
    },
    "taxDocumentSectionSubHeaderNoDocument": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Tax documents section description",
            "name": "uiName"
          }],
        "text": "Displayed under the tax document section header."
      },
      "attribute": "tax-document-section-sub-header-no-document",
      "reflect": false,
      "defaultValue": "\"Tax form\""
    },
    "indirectTaxInfoSectionHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Indirect tax section header",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "indirect-tax-info-section-header",
      "reflect": false,
      "defaultValue": "\"Indirect tax\""
    },
    "indirectTaxInfoCanada": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Canadian province of indirect tax",
            "name": "uiName"
          }],
        "text": "If the participant is registered for indirect tax in Canada, display the province they\u2019re registered in."
      },
      "attribute": "indirect-tax-info-canada",
      "reflect": false,
      "defaultValue": "\"Registered in {province}, {country}\""
    },
    "indirectTaxInfoOtherCountry": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Indirect tax country",
            "name": "uiName"
          }],
        "text": "If the participant is registered for indirect tax, display the country they\u2019re registered in."
      },
      "attribute": "indirect-tax-info-other-country",
      "reflect": false,
      "defaultValue": "\"Registered in {country}\""
    },
    "indirectTaxInfoSpain": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Spanish region of indirect tax",
            "name": "uiName"
          }],
        "text": "If the participant is registered for indirect tax in Spain, display the region they\u2019re registered in."
      },
      "attribute": "indirect-tax-info-spain",
      "reflect": false,
      "defaultValue": "\"Registered in {country}, {subRegion}\""
    },
    "indirectTaxTooltipSupport": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Indirect tax tooltip",
            "name": "uiName"
          }, {
            "text": "textArea",
            "name": "uiWidget"
          }],
        "text": ""
      },
      "attribute": "indirect-tax-tooltip-support",
      "reflect": false,
      "defaultValue": "\"To make changes to your indirect tax information, please contact our {supportLink}.\""
    },
    "indirectTaxDetails": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Indirect tax details",
            "name": "uiName"
          }],
        "text": "Displayed to participants who have submitted their indirect tax information."
      },
      "attribute": "indirect-tax-details",
      "reflect": false,
      "defaultValue": "\"{indirectTaxType} number: {indirectTaxNumber}\""
    },
    "newFormButton": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Submit new tax form button label",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "new-form-button",
      "reflect": false,
      "defaultValue": "\"Submit new tax form\""
    },
    "editPaymentInformationButton": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Edit payment info button label",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "edit-payment-information-button",
      "reflect": false,
      "defaultValue": "\"Edit payout information\""
    },
    "notRegisteredForTax": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Not registered for indirect tax text",
            "name": "uiName"
          }, {
            "text": "textArea",
            "name": "uiWidget"
          }],
        "text": ""
      },
      "attribute": "not-registered-for-tax",
      "reflect": false,
      "defaultValue": "\"Not registered for indirect tax. If you\u2019ve previously registered with your tax authority, contact our {supportLink} to add your information to stay tax compliant.\""
    },
    "qstNumber": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "QST indirect tax details",
            "name": "uiName"
          }],
        "text": "Displayed to participants registered in Quebec, Canada."
      },
      "attribute": "qst-number",
      "reflect": false,
      "defaultValue": "\"QST number: {qstNumber}\""
    },
    "subRegionTaxNumber": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Spain sub-region indirect tax number",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "sub-region-tax-number",
      "reflect": false,
      "defaultValue": "\"Income tax number: {subRegionTaxNumber}\""
    },
    "statusBadgeText": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Payout status badge",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "status-badge-text",
      "reflect": false,
      "defaultValue": "\"{badgeText, select, payoutToday {Payout Today} nextPayout {Next Payout} other {Failed} }\""
    },
    "thresholdPayoutText": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Payout schedule by threshold text",
            "name": "uiName"
          }],
        "text": "Display participants' payout preference on the payout information card, indicating the balance at which they want to get paid."
      },
      "attribute": "threshold-payout-text",
      "reflect": false,
      "defaultValue": "\"Next payout occurs when balance is {thresholdBalance}\""
    },
    "accountText": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Bank account field label",
            "name": "uiName"
          }],
        "text": "Shown before the participant\u2019s bank account information."
      },
      "attribute": "account-text",
      "reflect": false,
      "defaultValue": "\"Account\""
    },
    "payoutHoldAlertHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Payout error message title",
            "name": "uiName"
          }, {
            "text": "textArea",
            "name": "uiWidget"
          }],
        "text": "Part of the alert displayed at the top of the page when there\u2019s been an issue preventing payouts."
      },
      "attribute": "payout-hold-alert-header",
      "reflect": false,
      "defaultValue": "\"Your payout is on hold\""
    },
    "payoutHoldAlertDescription": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Payout error message description",
            "name": "uiName"
          }, {
            "text": "textArea",
            "name": "uiWidget"
          }],
        "text": "Part of the alert displayed at the top of the page when there\u2019s been an issue preventing payouts."
      },
      "attribute": "payout-hold-alert-description",
      "reflect": false,
      "defaultValue": "\"Please contact our {supportLink} or check your inbox for an email from our referral program provider, impact.com.\""
    },
    "payoutMissingInformationText": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Payout missing information subtext",
            "name": "uiName"
          }],
        "text": "Text displayed for existing publishers that do not have saved banking information."
      },
      "attribute": "payout-missing-information-text",
      "reflect": false,
      "defaultValue": "\"Missing banking information, go to Impact.com to resolve.\""
    },
    "verificationRequiredHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Verification required alert message title",
            "name": "uiName"
          }, {
            "text": "textArea",
            "name": "uiWidget"
          }],
        "text": "Part of the alert displayed at the top of the page when the user needs to verify their identity."
      },
      "attribute": "verification-required-header",
      "reflect": false,
      "defaultValue": "\"Verify your identity\""
    },
    "verificationRequiredDescription": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Verification required alert message description",
            "name": "uiName"
          }, {
            "text": "textArea",
            "name": "uiWidget"
          }],
        "text": "Part of the alert displayed at the top of the page when the user needs to verify their identity"
      },
      "attribute": "verification-required-description",
      "reflect": false,
      "defaultValue": "\"Complete your verification to start receiving your cash rewards. It should only take a few minutes verify. If you run in to an issue verifying your identity contact our {supportLink}.\""
    },
    "verificationRequiredInternalHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Verification required internal alert header",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "verification-required-internal-header",
      "reflect": false,
      "defaultValue": "\"Identity verification in progress\""
    },
    "verificationRequiredInternalDescription": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Verification required internal alert description",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "verification-required-internal-description",
      "reflect": false,
      "defaultValue": "\"Identity verification submission has been received. Our system is currently performing additional checks and analyzing the results. You will be updated shortly. If you don't hear from us contact our {supportLink}.\""
    },
    "verificationReviewInternalHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Verification review internal alert header",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "verification-review-internal-header",
      "reflect": false,
      "defaultValue": "\"Identity verification under review\""
    },
    "verificationReviewInternalDescription": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Verification review internal alert description",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "verification-review-internal-description",
      "reflect": false,
      "defaultValue": "\"Identity verification requires further review due to a potential error. Our team is reviewing the information and will update you shortly. If you don't hear from us contact our {supportLink}.\""
    },
    "verificationFailedInternalHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Verification failed internal alert header",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "verification-failed-internal-header",
      "reflect": false,
      "defaultValue": "\"Identity verification unsuccessful\""
    },
    "verificationFailedInternalDescription": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Verification failed internal alert description",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "verification-failed-internal-description",
      "reflect": false,
      "defaultValue": "\"Identity verification has failed. Our team is reviewing the report and will contact you with further information. If you don't hear from us contact our {supportLink}.\""
    },
    "verificationRequiredButtonText": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Verification required alert button text",
            "name": "uiName"
          }],
        "text": "Part of the alert displayed at the top of the page when the user needs to verify their identity."
      },
      "attribute": "verification-required-button-text",
      "reflect": false,
      "defaultValue": "\"Start Verification\""
    },
    "w9RequiredHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "W-9 payment threshold alert header",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "w-9-required-header",
      "reflect": false,
      "defaultValue": "\"Your next payout is on hold\""
    },
    "w9RequiredDescription": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "W-9 payment threshold alert description",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "w-9-required-description",
      "reflect": false,
      "defaultValue": "\"You have surpassed the $2000 threshold requiring a W-9 form or have multiple accounts with impact.com. To remove the hold, please submit your W-9 form.\""
    },
    "accountReviewHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Account review alert header",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "account-review-header",
      "reflect": false,
      "defaultValue": "\"Your account is under review\""
    },
    "accountReviewDescription": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Account review alert description",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "account-review-description",
      "reflect": false,
      "defaultValue": "\"This process takes 48 hours, payouts are on hold until it's completed. You will receive an email from our referral provider, Impact.com, if any issues arise.  It contains details on how to resolve this issue. If you need further assistance, please reach out to our {supportLink}.\""
    },
    "paymentHoldOnChangeHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Payment hold on change alert header",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "payment-hold-on-change-header",
      "reflect": false,
      "defaultValue": "\"We are reviewing your new payout settings\""
    },
    "paymentHoldOnChangeDescription": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Payment hold on change alert description",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "payment-hold-on-change-description",
      "reflect": false,
      "defaultValue": "\"Your payout is temporarily on hold while we review your new payment information, this process is usually resolved within 48 hours.\""
    },
    "beneficiaryNameInvalidHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Beneficiary name invalid alert header",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "beneficiary-name-invalid-header",
      "reflect": false,
      "defaultValue": "\"Your payment information does not match your tax form\""
    },
    "beneficiaryNameInvalidDescription": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Beneficiary name invalid description",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "beneficiary-name-invalid-description",
      "reflect": false,
      "defaultValue": "\"The account holder (beneficiary) name in your payment information does not match what was submitted in your tax form. Please review and update your payment information or tax form so that they match exactly and do not include any invalid characters. Your payouts are on hold until this is resolved.\""
    },
    "beneficiaryNameMismatchHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Beneficiary name mismatch alert header",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "beneficiary-name-mismatch-header",
      "reflect": false,
      "defaultValue": "\"Your payment information does not match your tax form\""
    },
    "beneficiaryNameMismatchDescription": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Beneficiary name mismatch alert description",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "beneficiary-name-mismatch-description",
      "reflect": false,
      "defaultValue": "\"The account holder (beneficiary) name in your payment information does not match what was submitted in your tax form. Please review and update your payment information or tax form so that they match exactly and do not include any invalid characters. Your payouts are on hold until this is resolved.\""
    },
    "bankTaxNameMismatchHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Bank name mismatch alert header",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "bank-tax-name-mismatch-header",
      "reflect": false,
      "defaultValue": "\"Your payment information does not match your tax form\""
    },
    "bankTaxNameMismatchDescription": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Bank name mismatch alert description",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "bank-tax-name-mismatch-description",
      "reflect": false,
      "defaultValue": "\"The bank account (beneficiary) name in your payment information does not match what was submitted in your tax form. Please review and update your payment information or tax form so that they match exactly and do not include any invalid characters. Your payouts are on hold until this is resolved.\""
    },
    "withdrawalSettingsInvalidHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Withdrawal settings invalid alert header",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "withdrawal-settings-invalid-header",
      "reflect": false,
      "defaultValue": "\"Your payment information is incomplete or includes invalid characters\""
    },
    "withdrawalSettingsInvalidDescription": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Withdrawal settings invalid alert description",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "withdrawal-settings-invalid-description",
      "reflect": false,
      "defaultValue": "\"There are missing fields or invalid characters in your payment information. Please review your information and make sure it is correct. Your payouts are on hold until this is resolved.\""
    },
    "paymentReturnedHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Payment returned alert header",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "payment-returned-header",
      "reflect": false,
      "defaultValue": "\"Payout unsuccessful\""
    },
    "paymentReturnedDescription": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Payment returned alert description",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "payment-returned-description",
      "reflect": false,
      "defaultValue": "\"Our recent payment attempt for your earnings was unsuccessful. Please review your payment information and make sure it is correct.\""
    },
    "termsAndConditions": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Terms and Conditions text",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "terms-and-conditions",
      "reflect": false,
      "defaultValue": "\"Terms and Conditions\""
    },
    "w9RequiredButtonText": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "W-9 payment threshold alert button text",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "w-9-required-button-text",
      "reflect": false,
      "defaultValue": "\"Submit W-9\""
    },
    "generalErrorTitle": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Form submission error message title",
            "name": "uiName"
          }, {
            "text": "textArea",
            "name": "uiWidget"
          }],
        "text": "Part of the alert displayed at the top of the page."
      },
      "attribute": "general-error-title",
      "reflect": false,
      "defaultValue": "\"There was a problem submitting your information\""
    },
    "generalErrorDescription": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Form submission error message description",
            "name": "uiName"
          }, {
            "text": "textArea",
            "name": "uiWidget"
          }],
        "text": "Part of the alert displayed at the top of the page."
      },
      "attribute": "general-error-description",
      "reflect": false,
      "defaultValue": "\"Please review your information and try again. If this problem continues, contact our {supportLink}.\""
    },
    "payoutFromImpact": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Payout from impact text",
            "name": "uiName"
          }, {
            "text": "textArea",
            "name": "uiWidget"
          }],
        "text": "Displayed under the payout details card."
      },
      "attribute": "payout-from-impact",
      "reflect": false,
      "defaultValue": "\"Your balance may take up to 24 hours to update. Payouts will be sent from our referral program provider, impact.com.\""
    },
    "loadingErrorAlertHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Page load error message title",
            "name": "uiName"
          }, {
            "text": "textArea",
            "name": "uiWidget"
          }],
        "text": "Part of the alert displayed at the top of the page."
      },
      "attribute": "loading-error-alert-header",
      "reflect": false,
      "defaultValue": "\"There was a problem loading your form\""
    },
    "loadingErrorAlertDescription": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Page load error message description",
            "name": "uiName"
          }, {
            "text": "textArea",
            "name": "uiWidget"
          }],
        "text": "Part of the alert displayed at the top of the page."
      },
      "attribute": "loading-error-alert-description",
      "reflect": false,
      "defaultValue": "\"Please refresh the page and try again. If this problem continues, contact our {supportLink}.\""
    },
    "invoiceColumnTitle": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Invoice number column title",
            "name": "uiName"
          }],
        "text": "Part of the Invoice table displayed at the bottom of the page."
      },
      "attribute": "invoice-column-title",
      "reflect": false,
      "defaultValue": "\"Invoice\""
    },
    "dateColumnTitle": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Date column title",
            "name": "uiName"
          }],
        "text": "Part of the Invoice table displayed at the bottom of the page."
      },
      "attribute": "date-column-title",
      "reflect": false,
      "defaultValue": "\"Date\""
    },
    "earningsColumnTitle": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Earnings column title",
            "name": "uiName"
          }],
        "text": "Part of the Invoice table displayed at the bottom of the page."
      },
      "attribute": "earnings-column-title",
      "reflect": false,
      "defaultValue": "\"Earnings\""
    },
    "indirectTaxColumnTitle": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Indirect tax column title",
            "name": "uiName"
          }],
        "text": "Part of the Invoice table displayed at the bottom of the page."
      },
      "attribute": "indirect-tax-column-title",
      "reflect": false,
      "defaultValue": "\"Indirect tax\""
    },
    "earningsAfterTaxColumnTitle": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Earnings after tax column title",
            "name": "uiName"
          }],
        "text": "Part of the Invoice table displayed at the bottom of the page."
      },
      "attribute": "earnings-after-tax-column-title",
      "reflect": false,
      "defaultValue": "\"Earnings after tax\""
    },
    "invoiceDescription": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Invoice table description",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "invoice-description",
      "reflect": false,
      "defaultValue": "\"View and download your invoices to report your earnings and stay tax compliant.\""
    },
    "invoicePrevLabel": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Invoice table previous page button label",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "invoice-prev-label",
      "reflect": false,
      "defaultValue": "\"Prev\""
    },
    "invoiceMoreLabel": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Invoice table next page button label",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "invoice-more-label",
      "reflect": false,
      "defaultValue": "\"Next\""
    },
    "invoiceHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Invoice table title",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "invoice-header",
      "reflect": false,
      "defaultValue": "\"Invoices\""
    },
    "invoiceEmptyStateHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Empty invoice table header",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "invoice-empty-state-header",
      "reflect": false,
      "defaultValue": "\"View your invoice details\""
    },
    "invoiceEmptyStateText": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Empty invoice table description",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "invoice-empty-state-text",
      "reflect": false,
      "defaultValue": "\"Refer a friend to view the status of your invoices and rewards earned\""
    },
    "replaceTaxFormModalHeader": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Replace tax form modal header",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "replace-tax-form-modal-header",
      "reflect": false,
      "defaultValue": "\"Replace existing tax form\""
    },
    "replaceTaxFormModalBodyText": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Replace tax form modal body text",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "replace-tax-form-modal-body-text",
      "reflect": false,
      "defaultValue": "\"Submitting a new tax form will remove your existing form. Make sure to sign and complete your new tax form to prevent any issues with your next payout.\""
    },
    "supportLink": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Support link text",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "support-link",
      "reflect": false,
      "defaultValue": "\"support team\""
    },
    "cancelButton": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "text": "Cancel button label",
            "name": "uiName"
          }],
        "text": ""
      },
      "attribute": "cancel-button",
      "reflect": false,
      "defaultValue": "\"Cancel\""
    },
    "demoData": {
      "type": "unknown",
      "mutable": false,
      "complexType": {
        "original": "DemoData<UseTaxAndCashDashboardResult>",
        "resolved": "{ states?: { status?: string; documentType: TaxDocumentType; documentTypeString: string; canEditPayoutInfo: boolean; disabled?: boolean; dateSubmitted?: string; noFormNeeded?: boolean; indirectTaxType?: string; qstNumber?: string; subRegionTaxNumber?: string; subRegion?: string; indirectTaxNumber?: string; province?: string; country?: string; notRegistered?: boolean; isBusinessEntity?: boolean; loading?: boolean; loadingError?: boolean; showNewFormDialog: boolean; hasHold: boolean; payoutStatus: PayoutStatus; veriffLoading: boolean; errors?: { general?: boolean; }; enforceUsTaxComplianceOption?: string; }; }",
        "references": {
          "DemoData": {
            "location": "import",
            "path": "../../../global/demo"
          },
          "UseTaxAndCashDashboardResult": {
            "location": "import",
            "path": "./useTaxAndCashDashboard"
          }
        }
      },
      "required": false,
      "optional": true,
      "docs": {
        "tags": [{
            "text": undefined,
            "name": "undocumented"
          }, {
            "text": "object",
            "name": "uiType"
          }],
        "text": ""
      }
    },
    "stateController": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": true,
      "docs": {
        "tags": [{
            "text": undefined,
            "name": "undocumented"
          }, {
            "text": "{ \"title\": \"Payouts on hold\", \"props\": { \"states\": { \"payoutStatus\": \"HOLD\" } }, \"uiGroup\": \"Dashboard Properties\" }",
            "name": "componentState"
          }],
        "text": ""
      },
      "attribute": "state-controller",
      "reflect": false,
      "defaultValue": "\"{}\""
    }
  }; }
}
function useDemoTaxAndCashDashboard(props) {
  // @ts-ignore
  return deepmerge({
    states: {
      dateSubmitted: "today",
      documentType: "W9",
      documentTypeString: "W-9",
      status: "ACTIVE",
      country: "United States",
      indirectTaxNumber: "55555555",
      indirectTaxType: "Indirect Tax",
      noFormNeeded: false,
      disabled: false,
      loading: false,
      showNewFormDialog: false,
      hasHold: false,
      subRegion: "CA",
      subRegionTaxNumber: undefined,
      qstNumber: undefined,
      isBusinessEntity: false,
      province: undefined,
      notRegistered: true,
      loadingError: false,
      payoutStatus: "DONE",
      veriffLoading: false,
      canEditPayoutInfo: true,
    },
    callbacks: {
      onClick: () => console.debug("check step"),
      onEditPayoutInfo: () => console.debug("payout info"),
      onNewFormCancel: () => console.log("hide"),
      onNewFormClick: () => console.log("show"),
      onVerifyClick: () => console.log("verify"),
    },
    text: props.getTextProps(),
    slots: {
      payoutDetailsCardSlot: (h("sqm-payout-details-card", { demoData: {
          states: {
            badgeStatus: "nextPayout",
          },
        } })),
    },
  }, props.demoData || props.stateController || {}, { arrayMerge: (_, a) => a });
}
