{"version":3,"file":"main.bundle.js?474e8396c276274758f3","mappings":"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","sources":["webpack://taina-validator-web-app/webpack/runtime/chunk loaded","webpack://taina-validator-web-app/webpack/runtime/create fake namespace object","webpack://taina-validator-web-app/webpack/runtime/load script","webpack://taina-validator-web-app/./src/actions/auth/getPiiValidationCodes.js","webpack://taina-validator-web-app/./src/actions/auth/getUserConfig.js","webpack://taina-validator-web-app/./src/actions/auth/getAuthState.js","webpack://taina-validator-web-app/./src/actions/auth/getSiteConfig.js","webpack://taina-validator-web-app/./src/actions/auth/login.js","webpack://taina-validator-web-app/./src/actions/auth/logout.js","webpack://taina-validator-web-app/./src/actions/auth/passwordChangeModal.js","webpack://taina-validator-web-app/./src/actions/auth/changePassword.js","webpack://taina-validator-web-app/./src/actions/auth/selectUserClient.js","webpack://taina-validator-web-app/./src/actions/auth/updateGridSettings.js","webpack://taina-validator-web-app/./src/actions/common/getIgaSubclassifications.js","webpack://taina-validator-web-app/./src/actions/common/getJurisdictions.js","webpack://taina-validator-web-app/./src/actions/common/connectionStatus.js","webpack://taina-validator-web-app/./src/actions/common/downloadFile.js","webpack://taina-validator-web-app/./src/actions/common/getSpecialRateProvisions.js","webpack://taina-validator-web-app/./src/actions/common/about.js","webpack://taina-validator-web-app/./src/actions/common/getStockMarkets.js","webpack://taina-validator-web-app/./src/actions/exceptions/handleConnectionException.js","webpack://taina-validator-web-app/./src/actions/exceptions/handleServerException.js","webpack://taina-validator-web-app/./src/actions/exceptions/handleUncaughtException.js","webpack://taina-validator-web-app/./src/actions/exceptions/handleException.js","webpack://taina-validator-web-app/./src/actions/withholding/changeImyTierParent.js","webpack://taina-validator-web-app/./src/actions/withholding/getWithholding.js","webpack://taina-validator-web-app/./src/actions/withholding/getWithholdingStatement.js","webpack://taina-validator-web-app/./src/actions/withholding/storeStatementPosition.js","webpack://taina-validator-web-app/./src/common/App/ScrollIntoView.js","webpack://taina-validator-web-app/./src/actions/withholding/addNewBeneficialOwner.js","webpack://taina-validator-web-app/./src/actions/withholding/updatePooledRates.js","webpack://taina-validator-web-app/./src/actions/forms/saveImyTreeViewOptions.js","webpack://taina-validator-web-app/./src/actions/withholding/updateWithholdingStatementDetails.js","webpack://taina-validator-web-app/./src/actions/withholding/saveCollapsedTiers.js","webpack://taina-validator-web-app/./src/actions/withholding/deleteWithholdingRow.js","webpack://taina-validator-web-app/./src/actions/withholding/publishStatement.js","webpack://taina-validator-web-app/./src/actions/withholding/confirmEffectiveDate.js","webpack://taina-validator-web-app/./src/actions/withholding/getStatementVersions.js","webpack://taina-validator-web-app/./src/actions/account/manageAccount.js","webpack://taina-validator-web-app/./src/actions/account/getAccounts.js","webpack://taina-validator-web-app/./src/actions/account/dualFormStatus.js","webpack://taina-validator-web-app/./src/actions/account/saveAccountComments.js","webpack://taina-validator-web-app/./src/actions/account/updateAccount.js","webpack://taina-validator-web-app/./src/actions/account/getAccountLinkedImyStructure.js","webpack://taina-validator-web-app/./src/actions/customer/manageCustomer.js","webpack://taina-validator-web-app/./src/actions/customer/getCustomers.js","webpack://taina-validator-web-app/./src/actions/customer/getCustomerDetails.js","webpack://taina-validator-web-app/./src/actions/customer/addCustomerAccount.js","webpack://taina-validator-web-app/./src/actions/customer/getBasicCustomer.js","webpack://taina-validator-web-app/./src/actions/customer/getBasicAccount.js","webpack://taina-validator-web-app/./src/actions/customer/updateCustomer.js","webpack://taina-validator-web-app/./src/actions/customer/customerAddressesModal.js","webpack://taina-validator-web-app/./src/actions/customer/customerJotrsModal.js","webpack://taina-validator-web-app/./src/actions/forms/acceptValidationOverrides.js","webpack://taina-validator-web-app/./src/actions/forms/accountWithholdingModal.js","webpack://taina-validator-web-app/./src/actions/forms/addFormModal.js","webpack://taina-validator-web-app/./src/actions/forms/addForm.js","webpack://taina-validator-web-app/./src/actions/forms/addOnlineForm.js","webpack://taina-validator-web-app/./src/actions/forms/addSupportingDoc.js","webpack://taina-validator-web-app/./src/actions/forms/deleteSupportingDoc.js","webpack://taina-validator-web-app/./src/actions/forms/getSupportingDoc.js","webpack://taina-validator-web-app/./src/actions/forms/getWhdResults.js","webpack://taina-validator-web-app/./src/actions/forms/addWhdForm.js","webpack://taina-validator-web-app/./src/actions/forms/addWhdFormModal.js","webpack://taina-validator-web-app/./src/actions/forms/getForms.js","webpack://taina-validator-web-app/./src/actions/forms/searchForms.js","webpack://taina-validator-web-app/./src/actions/forms/validateForm.js","webpack://taina-validator-web-app/./src/actions/forms/deleteFormModal.js","webpack://taina-validator-web-app/./src/actions/batches/completeBatch.js","webpack://taina-validator-web-app/./src/actions/batches/getBatch.js","webpack://taina-validator-web-app/./src/actions/batches/getBatches.js","webpack://taina-validator-web-app/./src/actions/batches/searchBatches.js","webpack://taina-validator-web-app/./src/actions/batches/getBatchFiles.js","webpack://taina-validator-web-app/./src/actions/batches/searchBatchFiles.js","webpack://taina-validator-web-app/./src/actions/batches/getBatchForms.js","webpack://taina-validator-web-app/./src/actions/batches/searchBatchForms.js","webpack://taina-validator-web-app/./src/actions/batches/getBatchFilePdf.js","webpack://taina-validator-web-app/./src/actions/batches/deleteBatchModal.js","webpack://taina-validator-web-app/./src/actions/batches/deleteBatch.js","webpack://taina-validator-web-app/./src/actions/forms/deleteForm.js","webpack://taina-validator-web-app/./src/actions/forms/deleteForms.js","webpack://taina-validator-web-app/./src/actions/forms/formOverride.js","webpack://taina-validator-web-app/./src/actions/forms/getFormById.js","webpack://taina-validator-web-app/./src/actions/forms/getFormPdf.js","webpack://taina-validator-web-app/./src/actions/forms/getPdfView.js","webpack://taina-validator-web-app/./src/actions/forms/checkFormPdfExistence.js","webpack://taina-validator-web-app/./src/actions/forms/getValidationResults.js","webpack://taina-validator-web-app/./src/actions/forms/searchValidationResults.js","webpack://taina-validator-web-app/./src/actions/forms/exportToExcel.js","webpack://taina-validator-web-app/./src/actions/forms/addBeneficiaryFormModal.js","webpack://taina-validator-web-app/./src/actions/forms/addBeneficiaryForm.js","webpack://taina-validator-web-app/./src/actions/forms/didYouMeanModal.js","webpack://taina-validator-web-app/./src/actions/forms/privacyNoticeModal.js","webpack://taina-validator-web-app/./src/actions/forms/saveDraftValidationOverrides.js","webpack://taina-validator-web-app/./src/actions/forms/saveFormReviewState.js","webpack://taina-validator-web-app/./src/actions/forms/saveAccountReviewComments.js","webpack://taina-validator-web-app/./src/actions/forms/toggleInstruction.js","webpack://taina-validator-web-app/./src/actions/forms/editCustomerLegalEntitiesModal.js","webpack://taina-validator-web-app/./src/actions/forms/editCustomerLegalEntities.js","webpack://taina-validator-web-app/./src/actions/forms/editFormReferenceModal.js","webpack://taina-validator-web-app/./src/actions/forms/editFormReference.js","webpack://taina-validator-web-app/./src/actions/forms/assignToUserModal.js","webpack://taina-validator-web-app/./src/actions/forms/assignFormsToUser.js","webpack://taina-validator-web-app/./src/actions/forms/editFormAssociationsModal.js","webpack://taina-validator-web-app/./src/actions/forms/editFormAssociations.js","webpack://taina-validator-web-app/./src/actions/forms/getFormDetails.js","webpack://taina-validator-web-app/./src/actions/forms/unassignFormModal.js","webpack://taina-validator-web-app/./src/actions/forms/unassignFormToUser.js","webpack://taina-validator-web-app/./src/actions/forms/parentImyFormsModal.js","webpack://taina-validator-web-app/./src/actions/forms/cloneForm.js","webpack://taina-validator-web-app/./src/actions/forms/moveForm.js","webpack://taina-validator-web-app/./src/actions/forms/addWhdStatement.js","webpack://taina-validator-web-app/./src/actions/forms/createWhdStatement.js","webpack://taina-validator-web-app/./src/actions/forms/getWithholdingFromAccount.js","webpack://taina-validator-web-app/./src/actions/forms/addSpecialRates.js","webpack://taina-validator-web-app/./src/actions/forms/updateVersion.js","webpack://taina-validator-web-app/./src/actions/forms/updatePublishedVersions.js","webpack://taina-validator-web-app/./src/actions/forms/checkTin.js","webpack://taina-validator-web-app/./src/actions/forms/editAddressModal.js","webpack://taina-validator-web-app/./src/actions/forms/downloadFormSummary.js","webpack://taina-validator-web-app/./src/actions/home/saveCriteria.js","webpack://taina-validator-web-app/./src/actions/reports/miCustomDateRangeModal.js","webpack://taina-validator-web-app/./src/actions/reports/miDetailsModal.js","webpack://taina-validator-web-app/./src/actions/reports/getMiDashboard.js","webpack://taina-validator-web-app/./src/actions/reports/resetMiDashboard.js","webpack://taina-validator-web-app/./src/actions/reports/getMiDashboardXls.js","webpack://taina-validator-web-app/./src/actions/questionnaire/submitAnswers.js","webpack://taina-validator-web-app/./src/actions/workflow/getUserQueue.js","webpack://taina-validator-web-app/./src/actions/workflow/getWorkflowQueue.js","webpack://taina-validator-web-app/./src/actions/workflow/getWorkflowQueues.js","webpack://taina-validator-web-app/./src/actions/workflow/takeQueueItem.js","webpack://taina-validator-web-app/./src/actions/workflow/ownershipModal.js","webpack://taina-validator-web-app/./src/actions/batchfiles/deleteFileModal.js","webpack://taina-validator-web-app/./src/actions/batchfiles/deleteFile.js","webpack://taina-validator-web-app/./src/actions/legalEntities/getLegalEntities.js","webpack://taina-validator-web-app/./src/actions/monitoring/getCicAlertCounts.js","webpack://taina-validator-web-app/./src/actions/monitoring/getCicAlerts.js","webpack://taina-validator-web-app/./src/actions/monitoring/getCicAlertModal.js","webpack://taina-validator-web-app/./src/actions/monitoring/getCicAlert.js","webpack://taina-validator-web-app/./src/actions/monitoring/saveCicAlertCriteria.js","webpack://taina-validator-web-app/./src/actions/monitoring/saveCicAlertReviewState.js","webpack://taina-validator-web-app/./src/actions/monitoring/assignCicToUserModal.js","webpack://taina-validator-web-app/./src/actions/monitoring/assignCicsToUserWithCallback.js","webpack://taina-validator-web-app/./src/actions/monitoring/getCicAlertDetails.js","webpack://taina-validator-web-app/./src/actions/controllingPersons/getAllControllingPersons.js","webpack://taina-validator-web-app/./src/actions/controllingPersons/addControllingPerson.js","webpack://taina-validator-web-app/./src/actions/controllingPersons/expireControllingPerson.js","webpack://taina-validator-web-app/./src/actions/controllingPersons/removeControllingPerson.js","webpack://taina-validator-web-app/./src/actions/preload/getSitePreload.js","webpack://taina-validator-web-app/./src/actions/storage/getStorageSetting.js","webpack://taina-validator-web-app/./src/common/Accounts/ControllingPersonTypes.js","webpack://taina-validator-web-app/./src/common/Accounts/WhsLinkOperationStatus.js","webpack://taina-validator-web-app/./src/common/Forms/AddressTypes.js","webpack://taina-validator-web-app/./src/components/Blanks/BlankPage/index.js","webpack://taina-validator-web-app/./src/components/Common/Buttons/HintButton/index.js","webpack://taina-validator-web-app/./src/components/Common/DateTimes.js","webpack://taina-validator-web-app/./src/components/Common/FileUpload/index.js","webpack://taina-validator-web-app/./src/components/Common/HintPanel/index.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/RadioInput/index.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/RadioTableGroup/index.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/RenderDatePicker/index.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/StrictInput/index.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/TextAreaInput/index.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/TextInput/index.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/BoxInput/BoxInputDotDivider.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/BoxInput/index.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/FileInput/index.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/MultiFileInput/index.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/SelectInput/index.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/CheckboxInput/index.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/NestedArrayObjectField/index.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/NestedArrayStringField/index.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/NestedArraySelectField/index.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/NestedArrayBooleanField/index.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/index.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/w8bene.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/w8bene_2021.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/w8ben.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/w8ben_2021.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/w8imy.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/w8imy_2017.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/w8imy_2021.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/w9.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/w9_2017.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/w9_2018.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/w9_2024.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/w8eci.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/w8eci_2021.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/w8exp.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/w8exp_2023.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/factcacrsi_2022.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/factcacrse_2022.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/fatcacrsi_2023.js","webpack://taina-validator-web-app/./src/components/FormsInstructions/fatcacrse_2023.js","webpack://taina-validator-web-app/./src/components/InstructionDefinition/index.js","webpack://taina-validator-web-app/./src/components/Modals/ModalWrapper/index.js","webpack://taina-validator-web-app/./src/env.config.js","webpack://taina-validator-web-app/./src/actions/auth/common.js","webpack://taina-validator-web-app/./src/common/App/Preload.js","webpack://taina-validator-web-app/./src/components/Common/LoadingWrapper/index.js","webpack://taina-validator-web-app/./src/components/SiteLoading/index.js","webpack://taina-validator-web-app/./src/components/ErrorBoundaries/AppErrorBoundary/index.js","webpack://taina-validator-web-app/./src/components/ErrorBoundaries/AppErrorBoundary/withAppErrorBoundary.js","webpack://taina-validator-web-app/./src/components/PoweredBy/index.js","webpack://taina-validator-web-app/./src/components/LoginForm/index.js","webpack://taina-validator-web-app/./src/containers/Login/index.js","webpack://taina-validator-web-app/./src/common/Workflows/WorkflowStages.js","webpack://taina-validator-web-app/./src/common/Workflows/FormWorkflowStages.js","webpack://taina-validator-web-app/./src/components/AccessControl/index.js","webpack://taina-validator-web-app/./src/components/IndeterminateCheckbox/index.js","webpack://taina-validator-web-app/./src/components/ReactTable/Filters/FreeTextFilter/index.js","webpack://taina-validator-web-app/./src/components/ReactTable/Hooks/useResetSortBy.js","webpack://taina-validator-web-app/./src/components/ReactTable/Pager/index.js","webpack://taina-validator-web-app/./src/components/ReactTable/index.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/AutoCompleteInput/index.js","webpack://taina-validator-web-app/./src/components/HomePage/formTypeSelectValues.js","webpack://taina-validator-web-app/./src/components/HomePage/SearchPanel/index.js","webpack://taina-validator-web-app/./src/common/Forms/Helpers/DeleteFormsHelper.js","webpack://taina-validator-web-app/./src/components/HomePage/ActionSelect/index.js","webpack://taina-validator-web-app/./src/components/ReactTable/Filters/MultiSelectFilter/index.js","webpack://taina-validator-web-app/./src/components/ReactTable/Filters/WorkflowStageFilter/index.js","webpack://taina-validator-web-app/./src/components/ReactTable/CellRenderers/CustomerLinkCell/index.js","webpack://taina-validator-web-app/./src/components/ReactTable/CellRenderers/AccountLinkCell/index.js","webpack://taina-validator-web-app/./src/components/HomePage/GridColumnDefinitions/formColumnDefs.js","webpack://taina-validator-web-app/./src/components/ReactTable/Filters/SelectFilter/index.js","webpack://taina-validator-web-app/./src/components/HomePage/GridColumnDefinitions/GetOptions/index.js","webpack://taina-validator-web-app/./src/components/HomePage/GridColumnDefinitions/accountColumnDefs.js","webpack://taina-validator-web-app/./src/common/Customers/Chapter3Status.js","webpack://taina-validator-web-app/./src/common/Customers/Chapter4Status.js","webpack://taina-validator-web-app/./src/common/Customers/CRSClassificationStatus.js","webpack://taina-validator-web-app/./src/components/ReactTable/Filters/DateRangeFilter/index.js","webpack://taina-validator-web-app/./src/common/Customers/CertificationStatus.js","webpack://taina-validator-web-app/./src/components/HomePage/GridColumnDefinitions/customerColumnDefs.js","webpack://taina-validator-web-app/./src/components/HomePage/GridColumnDefinitions/legalEntityColumnDefs.js","webpack://taina-validator-web-app/./src/components/HomePage/GridColumnDefinitions/workflowColumnDefs.js","webpack://taina-validator-web-app/./src/components/Common/Buttons/FormViewButton/index.js","webpack://taina-validator-web-app/./src/components/HomePage/GridActions/FormsActions.js","webpack://taina-validator-web-app/./src/components/HomePage/GridActions/WorkflowActions.js","webpack://taina-validator-web-app/./src/components/HomePage/GridActions/AccountsActions.js","webpack://taina-validator-web-app/./src/components/HomePage/GridActions/CustomersActions.js","webpack://taina-validator-web-app/./src/components/Common/FormTypeSelect/index.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/CustomerAccountInput/index.js","webpack://taina-validator-web-app/./src/components/EvidentiaryDocs/index.js","webpack://taina-validator-web-app/./src/common/Forms/FormTypes.js","webpack://taina-validator-web-app/./src/components/Common/BeneficialOwnerFormsUpload/index.js","webpack://taina-validator-web-app/./src/components/Common/WithholdingStatementUpload/index.js","webpack://taina-validator-web-app/./src/components/LinkWhsOperationStatus/index.js","webpack://taina-validator-web-app/./src/components/LinkWhsOperationMultiMonitor/index.js","webpack://taina-validator-web-app/./src/components/Modals/AddFormModal/UploadPdfForm/index.js","webpack://taina-validator-web-app/./src/components/Modals/AddFormModal/index.js","webpack://taina-validator-web-app/./src/components/Modals/AddBeneficiaryFormModal/UploadPdfForm/index.js","webpack://taina-validator-web-app/./src/components/Modals/AddBeneficiaryFormModal/index.js","webpack://taina-validator-web-app/./src/components/Modals/DeleteFormModal/index.js","webpack://taina-validator-web-app/./src/components/Modals/ChangeOwnershipModal/index.js","webpack://taina-validator-web-app/./src/common/Accounts/DualFormRequirement.js","webpack://taina-validator-web-app/./src/components/WithholdingTable/index.js","webpack://taina-validator-web-app/./src/components/Modals/WithholdingRatesModal/index.js","webpack://taina-validator-web-app/./src/components/ImyFormTable/index.js","webpack://taina-validator-web-app/./src/components/Modals/CustomerImyFormsModal/index.js","webpack://taina-validator-web-app/./src/components/Modals/AssignToUserModal/index.js","webpack://taina-validator-web-app/./src/components/Modals/UnassignToUserModal/index.js","webpack://taina-validator-web-app/./src/components/Modals/EditFormReferenceModalForm/index.js","webpack://taina-validator-web-app/./src/components/Errors/ErrorGraphic/index.js","webpack://taina-validator-web-app/./src/components/Errors/UnexpectedErrorPage/index.js","webpack://taina-validator-web-app/./src/components/ErrorBoundaries/ContainerErrorBoundary/index.js","webpack://taina-validator-web-app/./src/components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary.js","webpack://taina-validator-web-app/./src/common/Forms/CertificationStatus.js","webpack://taina-validator-web-app/./src/containers/Home/index.js","webpack://taina-validator-web-app/./src/components/Errors/NoInternetPage/index.js","webpack://taina-validator-web-app/./src/components/Common/ConnectionStatus/index.js","webpack://taina-validator-web-app/./src/components/TinCheckStatus/index.js","webpack://taina-validator-web-app/./src/components/Common/SupportingDocumentsCures/index.js","webpack://taina-validator-web-app/./src/components/IndividualValidationResult/index.js","webpack://taina-validator-web-app/./src/components/ReactTable/CellRenderers/ValidationResultCell/index.js","webpack://taina-validator-web-app/./src/components/ValidationResults/GridColumnDefinitions/rejectedFormColumnDefs.js","webpack://taina-validator-web-app/./src/components/Grids/GridHelper/index.js","webpack://taina-validator-web-app/./src/components/ValidationResults/GridColumnDefinitions/validFormColumnDefs.js","webpack://taina-validator-web-app/./src/components/ValidationResults/GridColumnDefinitions/expiredFormColumnDefs.js","webpack://taina-validator-web-app/./src/components/ValidationResults/GridActions/FormActions.js","webpack://taina-validator-web-app/./src/containers/ValidationResults/index.js","webpack://taina-validator-web-app/./src/components/Modals/ConfirmModal/index.js","webpack://taina-validator-web-app/./src/components/OnlineForms/OnlineForm/index.js","webpack://taina-validator-web-app/./src/containers/OnlineForms/index.js","webpack://taina-validator-web-app/./src/common/Addresses/AddressFormatters/Shared/AddressFormatHelper.js","webpack://taina-validator-web-app/./src/common/Addresses/AddressFormatters/W9AddressFormatter.js","webpack://taina-validator-web-app/./src/common/Addresses/AddressFormatters/W8BenEAddressFormatter.js","webpack://taina-validator-web-app/./src/common/Addresses/AddressFormatters/W8ExpAddressFormatter.js","webpack://taina-validator-web-app/./src/common/Addresses/AddressFormatters/W8ImyAddressFormatter.js","webpack://taina-validator-web-app/./src/common/Addresses/AddressFormatters/W8EciAddressFormatter.js","webpack://taina-validator-web-app/./src/common/Addresses/AddressFormatters/W8BenAddressFormatter.js","webpack://taina-validator-web-app/./src/common/Addresses/AddressFormatters/CrsiAddressFormatter.js","webpack://taina-validator-web-app/./src/common/Addresses/AddressFormatters/CombinedFormAddressFormatter/CommonCombinedFormAddressFormatter.js","webpack://taina-validator-web-app/./src/common/Addresses/AddressFormatters/CombinedFormAddressFormatter/FatcaCrseAddressFormatter.js","webpack://taina-validator-web-app/./src/common/Addresses/AddressFormatters/CrseAddressFormatter.js","webpack://taina-validator-web-app/./src/common/Addresses/AddressFormatters/CrsCpAddressFormatter.js","webpack://taina-validator-web-app/./src/components/Modals/EditAddressModal/index.js","webpack://taina-validator-web-app/./src/common/Addresses/AddressFormatters/AddressFormatterFactory.js","webpack://taina-validator-web-app/./src/components/Common/Buttons/RedirectButton/index.js","webpack://taina-validator-web-app/./src/components/Errors/NotFoundPage/index.js","webpack://taina-validator-web-app/./src/components/ScrollPdfViewer/index.js","webpack://taina-validator-web-app/./src/components/FormReviewWorkflow/index.js","webpack://taina-validator-web-app/./src/components/WhdStatementLineValidationResult/index.js","webpack://taina-validator-web-app/./src/components/WhdStatementValidationResult/index.js","webpack://taina-validator-web-app/./src/components/ValidationResultsSection/index.js","webpack://taina-validator-web-app/./src/components/SupportingDocs/index.js","webpack://taina-validator-web-app/./src/components/FormReviewerComments/index.js","webpack://taina-validator-web-app/./src/components/IndividualValidationOverrides/OverrideReasonDropdown.js","webpack://taina-validator-web-app/./src/components/IndividualValidationOverrides/index.js","webpack://taina-validator-web-app/./src/common/Forms/StatementTypes.js","webpack://taina-validator-web-app/./src/common/App/valueOrEmpty.js","webpack://taina-validator-web-app/./src/components/Modals/PublishedVersionsUpdateModal/index.js","webpack://taina-validator-web-app/./src/components/UploadWithholdingSection/WhdStatementVersions.js","webpack://taina-validator-web-app/./src/components/UploadWithholdingSection/index.js","webpack://taina-validator-web-app/./src/components/Modals/FormOverrideModal/index.js","webpack://taina-validator-web-app/./src/components/FormReviewHeader/index.js","webpack://taina-validator-web-app/./src/components/FormReviewPanel/FormReviewPanelSections.js","webpack://taina-validator-web-app/./src/components/FormReviewPanel/index.js","webpack://taina-validator-web-app/./src/common/App/QueryParams.js","webpack://taina-validator-web-app/./src/components/Common/Buttons/SplitButton/index.js","webpack://taina-validator-web-app/./src/containers/Blank/asyncBlanks.js","webpack://taina-validator-web-app/./src/containers/Blank/index.js","webpack://taina-validator-web-app/./src/containers/OriginalPdfForm/index.js","webpack://taina-validator-web-app/./src/components/MIDashboard/MICustomDateRange/index.js","webpack://taina-validator-web-app/./src/components/MIDashboard/MiResults/index.js","webpack://taina-validator-web-app/./src/containers/MIDashboard/index.js","webpack://taina-validator-web-app/./src/components/Questionnaire/Introduction/index.js","webpack://taina-validator-web-app/./src/components/Questionnaire/TINQuestions/index.js","webpack://taina-validator-web-app/./src/components/Questionnaire/BlankQuestionnaire/index.js","webpack://taina-validator-web-app/./src/containers/Questionnaire/index.js","webpack://taina-validator-web-app/./src/containers/SupportingDocumentViewer/index.js","webpack://taina-validator-web-app/./src/components/Modals/AccountNumberChangeModal/index.js","webpack://taina-validator-web-app/./src/components/Account/AddAccountCustomerForm/index.js","webpack://taina-validator-web-app/./src/components/Common/ActiveChip/index.js","webpack://taina-validator-web-app/./src/components/Account/AccountCustomerList/index.js","webpack://taina-validator-web-app/./src/components/Account/AccountFormList/index.js","webpack://taina-validator-web-app/./src/components/Modals/UpdateDualFormStatusModal/index.js","webpack://taina-validator-web-app/./src/components/WithholdingRates/index.js","webpack://taina-validator-web-app/./src/hooks/usePrevious.js","webpack://taina-validator-web-app/./src/components/MoveForm/index.js","webpack://taina-validator-web-app/./src/components/CloneForm/index.js","webpack://taina-validator-web-app/./src/components/Common/DirectChip/index.js","webpack://taina-validator-web-app/./src/components/Account/AccountComments/index.js","webpack://taina-validator-web-app/./src/components/Account/AccountControllingPersonsList/index.js","webpack://taina-validator-web-app/./src/components/Account/AddAccountControllingPerson/index.js","webpack://taina-validator-web-app/./src/components/Modals/ControllingPersonUnlinkModal/index.js","webpack://taina-validator-web-app/./src/components/LinkedImyStructure/index.js","webpack://taina-validator-web-app/./src/components/UnlinkedImyStructure/index.js","webpack://taina-validator-web-app/./src/components/LinkWhsOperationMonitor/index.js","webpack://taina-validator-web-app/./src/components/Modals/LinkWhsAccountModal/index.js","webpack://taina-validator-web-app/./src/containers/Account/index.js","webpack://taina-validator-web-app/./src/common/Accounts/GetAccountName.js","webpack://taina-validator-web-app/./src/components/Customer/AddCustomerAccountForm/index.js","webpack://taina-validator-web-app/./src/components/Customer/CustomerAccountList/index.js","webpack://taina-validator-web-app/./src/components/Customer/CustomerFormList/index.js","webpack://taina-validator-web-app/./src/common/App/isNullOrWhiteSpace.js","webpack://taina-validator-web-app/./src/components/Customer/CustomerAddressCard/index.js","webpack://taina-validator-web-app/./src/components/Modals/CustomerAddressesModal/index.js","webpack://taina-validator-web-app/./src/components/Customer/CustomerAddresses/index.js","webpack://taina-validator-web-app/./src/components/Customer/CustomerJotrCard/index.js","webpack://taina-validator-web-app/./src/components/Modals/CustomerJotrsModal/index.js","webpack://taina-validator-web-app/./src/components/Customer/CustomerJotrs/index.js","webpack://taina-validator-web-app/./src/components/Modals/CustomerIdChangeModal/index.js","webpack://taina-validator-web-app/./src/components/Customer/CustomerSupportingDocsList/supportingDocsColumnDefs.js","webpack://taina-validator-web-app/./src/components/Customer/CustomerSupportingDocsList/supportingDocsActions.js","webpack://taina-validator-web-app/./src/components/Customer/CustomerSupportingDocsList/supportingDocsUpload.js","webpack://taina-validator-web-app/./src/containers/Customer/index.js","webpack://taina-validator-web-app/./src/components/Monitoring/SearchPanel/index.js","webpack://taina-validator-web-app/./src/components/Monitoring/ActionSelect/index.js","webpack://taina-validator-web-app/./src/components/ReactTable/Filters/NumberRangeFilter/index.js","webpack://taina-validator-web-app/./src/components/Monitoring/CicColumnDefinitions/index.js","webpack://taina-validator-web-app/./src/common/Workflows/CiCWorkflowStages.js","webpack://taina-validator-web-app/./src/components/Monitoring/GridActions/index.js","webpack://taina-validator-web-app/./src/common/CiCAlerts/ClosureReason.js","webpack://taina-validator-web-app/./src/components/Modals/CicAlertModal/ReviewerComment/index.js","webpack://taina-validator-web-app/./src/components/Modals/CicAlertModal/index.js","webpack://taina-validator-web-app/./src/containers/Monitoring/index.js","webpack://taina-validator-web-app/./src/components/Grids/PagingButtons/index.js","webpack://taina-validator-web-app/./src/components/Grids/CellRenderers/AccountLinkCellRenderer/index.js","webpack://taina-validator-web-app/./src/components/Common/Buttons/BatchFilesButton/index.js","webpack://taina-validator-web-app/./src/components/Common/Buttons/BatchFileFormsButton/index.js","webpack://taina-validator-web-app/./src/common/Batches/BatchStatus.js","webpack://taina-validator-web-app/./src/components/Grids/CellRenderers/BatchActionsCellRenderer/index.js","webpack://taina-validator-web-app/./src/components/Grids/CellRenderers/BatchFileActionsCellRenderer/index.js","webpack://taina-validator-web-app/./src/components/Grids/CellRenderers/BatchFormActionsCellRenderer/index.js","webpack://taina-validator-web-app/./src/components/Grids/CellRenderers/CustomerLinkCellRenderer/index.js","webpack://taina-validator-web-app/./src/components/Grids/CellRenderers/GeneralCellRenderer/index.js","webpack://taina-validator-web-app/./src/components/Grids/CellRenderers/NumberCellRenderer/index.js","webpack://taina-validator-web-app/./src/components/Batches/BatchesColumnDefinitions.js","webpack://taina-validator-web-app/./src/components/Batches/index.js","webpack://taina-validator-web-app/./src/components/Modals/DeleteBatchModal/index.js","webpack://taina-validator-web-app/./src/containers/BatchesContainer/index.js","webpack://taina-validator-web-app/./src/components/BatchBreadcrumbs/index.js","webpack://taina-validator-web-app/./src/components/BatchFiles/BatchFilesColumnDefinitions.js","webpack://taina-validator-web-app/./src/components/BatchFiles/index.js","webpack://taina-validator-web-app/./src/components/Modals/EditCustomerLegalEntitiesModal/index.js","webpack://taina-validator-web-app/./src/components/Modals/DeleteFileModal/index.js","webpack://taina-validator-web-app/./src/containers/BatchFilesContainer/index.js","webpack://taina-validator-web-app/./src/components/BatchForms/BatchFormsColumnDefinitions.js","webpack://taina-validator-web-app/./src/components/BatchForms/index.js","webpack://taina-validator-web-app/./src/components/Modals/EditFormAssociationsModal/index.js","webpack://taina-validator-web-app/./src/containers/BatchFormsContainer/index.js","webpack://taina-validator-web-app/./src/components/ClientSelectForm/index.js","webpack://taina-validator-web-app/./src/containers/ClientSelect/index.js","webpack://taina-validator-web-app/./src/components/Errors/UnauthorizedPage/index.js","webpack://taina-validator-web-app/./src/components/Errors/UnlicensedPage/index.js","webpack://taina-validator-web-app/./src/components/Modals/PasswordChangeModal/PasswordChangeForm/index.js","webpack://taina-validator-web-app/./src/components/Modals/PasswordChangeModal/index.js","webpack://taina-validator-web-app/./src/components/Modals/AboutModal/index.js","webpack://taina-validator-web-app/./src/components/Header/index.js","webpack://taina-validator-web-app/./src/components/Common/Banner/index.js","webpack://taina-validator-web-app/./src/components/VisualiseW8Imy/ColourKey/index.js","webpack://taina-validator-web-app/./src/components/VisualiseW8Imy/imyNode.js","webpack://taina-validator-web-app/./src/components/VisualiseW8Imy/index.js","webpack://taina-validator-web-app/./src/common/Forms/ImyChapter3Status.js","webpack://taina-validator-web-app/./src/common/Validation/ValidationInspector.js","webpack://taina-validator-web-app/./src/common/Customers/LimitationOnBenefits.js","webpack://taina-validator-web-app/./src/components/WhdStatement/WhdValidationSummary.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/JurisdictionDropDown/index.js","webpack://taina-validator-web-app/./src/components/WhdStatement/beneficialOwner.js","webpack://taina-validator-web-app/./src/components/WhdStatement/intermediaryDetailsPanel.js","webpack://taina-validator-web-app/./src/common/Forms/PaymentTypes.js","webpack://taina-validator-web-app/./src/common/Forms/FatcaExemptions.js","webpack://taina-validator-web-app/./src/components/Modals/PooledRatesModal/index.js","webpack://taina-validator-web-app/./src/components/WhdStatement/statementOptionsPanel.js","webpack://taina-validator-web-app/./src/components/Modals/EffectiveDateConfirmationModal/index.js","webpack://taina-validator-web-app/./src/components/WhdStatement/statementActionsPanel.js","webpack://taina-validator-web-app/./src/components/Common/Inputs/SimpleAutoComplete/index.js","webpack://taina-validator-web-app/./src/components/WhdStatement/index.js","webpack://taina-validator-web-app/./src/common/Customers/EntityType.js","webpack://taina-validator-web-app/./src/containers/AddCustomerAccount/index.js","webpack://taina-validator-web-app/./src/containers/App/index.js","webpack://taina-validator-web-app/./src/reducers/auth.js","webpack://taina-validator-web-app/./src/reducers/account.js","webpack://taina-validator-web-app/./src/reducers/common.js","webpack://taina-validator-web-app/./src/reducers/customer.js","webpack://taina-validator-web-app/./src/reducers/exceptions.js","webpack://taina-validator-web-app/./src/reducers/forms.js","webpack://taina-validator-web-app/./src/reducers/form.js","webpack://taina-validator-web-app/./src/reducers/home.js","webpack://taina-validator-web-app/./src/reducers/reports.js","webpack://taina-validator-web-app/./src/reducers/questionnaire.js","webpack://taina-validator-web-app/./src/reducers/workflow.js","webpack://taina-validator-web-app/./src/reducers/monitoring.js","webpack://taina-validator-web-app/./src/reducers/batches.js","webpack://taina-validator-web-app/./src/reducers/batchFiles.js","webpack://taina-validator-web-app/./src/reducers/batchForms.js","webpack://taina-validator-web-app/./src/reducers/withholding.js","webpack://taina-validator-web-app/./src/reducers/legalEntities.js","webpack://taina-validator-web-app/./src/reducers/withholdingStatement.js","webpack://taina-validator-web-app/./src/reducers/index.js","webpack://taina-validator-web-app/./src/store/index.js","webpack://taina-validator-web-app/./src/index.js","webpack://taina-validator-web-app/./src/logger.js","webpack://taina-validator-web-app/./src/services/api.js","webpack://taina-validator-web-app/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://taina-validator-web-app/webpack/bootstrap","webpack://taina-validator-web-app/webpack/runtime/compat get default export","webpack://taina-validator-web-app/webpack/runtime/define property getters","webpack://taina-validator-web-app/webpack/runtime/ensure chunk","webpack://taina-validator-web-app/webpack/runtime/get javascript chunk filename","webpack://taina-validator-web-app/webpack/runtime/get mini-css chunk filename","webpack://taina-validator-web-app/webpack/runtime/global","webpack://taina-validator-web-app/webpack/runtime/harmony module decorator","webpack://taina-validator-web-app/webpack/runtime/hasOwnProperty shorthand","webpack://taina-validator-web-app/webpack/runtime/make namespace object","webpack://taina-validator-web-app/webpack/runtime/node module decorator","webpack://taina-validator-web-app/webpack/runtime/publicPath","webpack://taina-validator-web-app/webpack/runtime/jsonp chunk loading","webpack://taina-validator-web-app/webpack/runtime/nonce","webpack://taina-validator-web-app/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"taina-validator-web-app:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","import { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\nimport { getStorageSetting } from '../storage';\r\n\r\nexport const GET_PII_VALIDATION_CODES_REQUEST = 'GET_PII_VALIDATION_CODES_REQUEST';\r\nexport const GET_PII_VALIDATION_CODES_SUCCESS = 'GET_PII_VALIDATION_CODES_SUCCESS';\r\nexport const GET_PII_VALIDATION_CODES_FAILURE = 'GET_PII_VALIDATION_CODES_FAILURE';\r\n\r\nfunction requestGetPiiValidationCodes() {\r\n return {\r\n type: GET_PII_VALIDATION_CODES_REQUEST\r\n };\r\n}\r\n\r\nfunction receiveGetPiiValidationCodes(piiValidationCodes) {\r\n return {\r\n type: GET_PII_VALIDATION_CODES_SUCCESS,\r\n piiValidationCodes\r\n };\r\n}\r\n\r\nfunction rejectGetPiiValidationCodes() {\r\n return {\r\n type: GET_PII_VALIDATION_CODES_FAILURE\r\n };\r\n}\r\n\r\nexport function getPiiValidationCodes() {\r\n return (dispatch) => {\r\n const selectedClient = getStorageSetting('selectedClient');\r\n if (!selectedClient || !selectedClient.isPiiProtectionEnabled) {\r\n return dispatch(receiveGetPiiValidationCodes(null));\r\n }\r\n\r\n dispatch(requestGetPiiValidationCodes());\r\n\r\n const promise = () => ApiService\r\n .getPiiValidationCodes()\r\n .then((response) => {\r\n dispatch(receiveGetPiiValidationCodes(response.data));\r\n }).catch((error) => {\r\n if (!error.response) {\r\n ApiService.addQueuedPromise(promise, error);\r\n } else if (error.retries && error.retries > 1) {\r\n dispatch(handleException(error, rejectGetPiiValidationCodes));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import CryptoJS from 'crypto-js';\r\nimport EnvConfig from 'env.config';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { getStorageSetting } from '../storage';\r\nimport { getPiiValidationCodes } from './getPiiValidationCodes';\r\n\r\nexport const USER_CONFIG_REQUEST = 'USER_CONFIG_REQUEST';\r\nexport const USER_CONFIG_SUCCESS = 'USER_CONFIG_SUCCESS';\r\nexport const USER_CONFIG_FAILURE = 'USER_CONFIG_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: USER_CONFIG_REQUEST\r\n };\r\n}\r\n\r\nfunction receive(data) {\r\n let permissions = null;\r\n let noActiveClients = false;\r\n let jsonObject = null;\r\n\r\n if (data) {\r\n const key = sessionStorage.getItem(EnvConfig.tokenName);\r\n const decryptedArray = CryptoJS.AES.decrypt(data, key.substring(64, 96));\r\n const decryptedText = decryptedArray.toString(CryptoJS.enc.Utf8);\r\n jsonObject = JSON.parse(decryptedText);\r\n\r\n if (jsonObject && (!jsonObject.clients || jsonObject.clients.length === 0)) {\r\n noActiveClients = true;\r\n }\r\n\r\n const currentSettings = getStorageSetting();\r\n if (currentSettings && currentSettings.selectedClient) {\r\n if (jsonObject.clients) {\r\n const newSelectedClient = jsonObject.clients.filter(x => x.key === currentSettings.selectedClient.key);\r\n if (newSelectedClient && newSelectedClient.length > 0) {\r\n // eslint-disable-next-line prefer-destructuring\r\n jsonObject.selectedClient = newSelectedClient[0];\r\n } else {\r\n jsonObject.selectedClient = currentSettings.selectedClient;\r\n }\r\n } else {\r\n jsonObject.selectedClient = currentSettings.selectedClient;\r\n }\r\n\r\n data = CryptoJS.AES.encrypt(JSON.stringify(jsonObject), key.substring(64, 96));\r\n }\r\n\r\n sessionStorage.setItem(EnvConfig.firstTokenName, key);\r\n sessionStorage.setItem(EnvConfig.optionsName, data);\r\n\r\n if (jsonObject.permissions) {\r\n permissions = JSON.parse(JSON.stringify(jsonObject.permissions));\r\n delete data.permissions;\r\n } else {\r\n permissions = null;\r\n }\r\n }\r\n\r\n return {\r\n type: USER_CONFIG_SUCCESS,\r\n username: jsonObject.username,\r\n settings: jsonObject,\r\n permissions,\r\n noActiveClients\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: USER_CONFIG_FAILURE\r\n };\r\n}\r\n\r\nexport function getUserConfig() {\r\n return (dispatch) => {\r\n dispatch(request());\r\n const promise = () => ApiService\r\n .getUserConfig()\r\n .then((response) => {\r\n const decryptedData = receive(response.data);\r\n dispatch(decryptedData);\r\n if (decryptedData.settings.selectedClient && decryptedData.settings.selectedClient.isPiiProtectionEnabled) {\r\n dispatch(getPiiValidationCodes());\r\n }\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, false));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import EnvConfig from 'env.config';\r\nimport { ApiService } from 'services';\r\n\r\nimport { handleException } from 'actions/exceptions';\r\nimport { getUserConfig } from './getUserConfig';\r\n\r\nexport const AUTH_STATE_REQUEST = 'AUTH_STATE_REQUEST';\r\nexport const AUTH_STATE_SUCCESS = 'AUTH_STATE_SUCCESS';\r\nexport const AUTH_STATE_FAILURE = 'AUTH_STATE_FAILURE';\r\nexport const AUTH_STATE_UNAUTHORISED = 'AUTH_STATE_UNAUTHORISED';\r\nexport const SET_AUTH_STATE = 'SET_AUTH_STATE';\r\n\r\nfunction request() {\r\n return {\r\n type: AUTH_STATE_REQUEST\r\n };\r\n}\r\n\r\nfunction receive(token, sessionAuthMode) {\r\n return {\r\n type: AUTH_STATE_SUCCESS,\r\n isFetching: false,\r\n isAuthenticated: true,\r\n token,\r\n sessionAuthMode\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: AUTH_STATE_FAILURE\r\n };\r\n}\r\n\r\nfunction unauthorised() {\r\n return {\r\n type: AUTH_STATE_UNAUTHORISED\r\n };\r\n}\r\n\r\nfunction setAuth(state) {\r\n return {\r\n type: SET_AUTH_STATE,\r\n state\r\n };\r\n}\r\n\r\nexport function getAuthState() {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .getAuthState()\r\n .then((response) => {\r\n const { token, sessionAuthMode } = response.data;\r\n const originalToken = sessionStorage.getItem(EnvConfig.firstTokenName);\r\n if (!originalToken) {\r\n sessionStorage.setItem(EnvConfig.firstTokenName, token);\r\n }\r\n sessionStorage.setItem(EnvConfig.tokenName, token);\r\n dispatch(receive(token, sessionAuthMode));\r\n dispatch(getUserConfig());\r\n }).catch((error) => {\r\n if (!error.response) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response) {\r\n if (error.response.data.code === 403) {\r\n dispatch(handleException(error, unauthorised, false));\r\n } else if (error.response.status === 401) {\r\n dispatch(reject());\r\n } else {\r\n dispatch(handleException(error, reject, false));\r\n }\r\n } else if (error.retries && error.retries > 1) {\r\n dispatch(handleException(error, reject, false));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function setAuthState(state) {\r\n return dispatch => dispatch(setAuth(state));\r\n}\r\n","import { ApiService } from 'services';\r\n\r\nimport { handleException } from 'actions/exceptions';\r\nimport { getJurisdictions } from 'actions/common/getJurisdictions';\r\nimport { getIgaSubClassificationCombos } from 'actions/common/getIgaSubclassifications';\r\nimport { updateGridSettings } from 'actions/auth/updateGridSettings';\r\nimport { getAuthState } from './getAuthState';\r\n\r\nexport const SITE_CONFIG_REQUEST = 'SITE_CONFIG_REQUEST';\r\nexport const SITE_CONFIG_SUCCESS = 'SITE_CONFIG_SUCCESS';\r\nexport const SITE_CONFIG_FAILURE = 'SITE_CONFIG_FAILURE';\r\nexport const SITE_CONFIG_UNLICENSED = 'SITE_CONFIG_UNLICENSED';\r\n\r\nfunction request() {\r\n return {\r\n type: SITE_CONFIG_REQUEST\r\n };\r\n}\r\n\r\nfunction receive(data) {\r\n return {\r\n type: SITE_CONFIG_SUCCESS,\r\n authMode: data.authMode,\r\n supportingDocTypes: data.supportingDocTypes,\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: SITE_CONFIG_FAILURE\r\n };\r\n}\r\n\r\nfunction unlicensed() {\r\n return {\r\n type: SITE_CONFIG_UNLICENSED\r\n };\r\n}\r\n\r\nexport function getSiteConfig() {\r\n return (dispatch) => {\r\n dispatch(request());\r\n const promise = () => ApiService\r\n .getSiteConfig()\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n dispatch(updateGridSettings(response.data.gridTotalLimit ?? 0));\r\n dispatch(getAuthState());\r\n dispatch(getJurisdictions());\r\n dispatch(getIgaSubClassificationCombos());\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response) {\r\n if (error.response.status === 403) {\r\n dispatch(handleException(error, unlicensed, false, false));\r\n } else {\r\n dispatch(handleException(error, reject, false, false));\r\n }\r\n } else if (error.retries && error.retries > 1) {\r\n dispatch(handleException(error, reject, false, false));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport EnvConfig from 'env.config';\r\n\r\nimport { handleException } from 'actions/exceptions';\r\nimport { getUserConfig } from './getUserConfig';\r\n\r\nexport const LOGIN_REQUEST = 'LOGIN_REQUEST';\r\nexport const LOGIN_SUCCESS = 'LOGIN_SUCCESS';\r\nexport const LOGIN_FAILURE = 'LOGIN_FAILURE';\r\nexport const REMEMBER_PATH_BEFORE_LOGIN = 'REMEMBER_PATH_BEFORE_LOGIN';\r\nexport const RESTORE_PATH_AFTER_LOGIN = 'RESTORE_PATH_AFTER_LOGIN';\r\nexport const RESET_AUTH_ERROR = 'RESET_AUTH_ERROR';\r\n\r\nfunction requestLogin({ login: username }) {\r\n return {\r\n type: LOGIN_REQUEST,\r\n isFetching: true,\r\n isFetchingUserConfig: true,\r\n isAuthenticated: false,\r\n username,\r\n errorMessage: null\r\n };\r\n}\r\n\r\nfunction receiveLogin(token) {\r\n return {\r\n type: LOGIN_SUCCESS,\r\n isFetching: false,\r\n isAuthenticated: true,\r\n token\r\n };\r\n}\r\n\r\nfunction loginError(errorMessage) {\r\n return {\r\n type: LOGIN_FAILURE,\r\n isFetching: false,\r\n isAuthenticated: false,\r\n username: null,\r\n token: null,\r\n errorMessage\r\n };\r\n}\r\n\r\nfunction requestResetAuthError() {\r\n return {\r\n type: RESET_AUTH_ERROR,\r\n errorMessage: null\r\n };\r\n}\r\n\r\nexport function loginUser(creds) {\r\n return (dispatch) => {\r\n dispatch(requestLogin(creds));\r\n\r\n const promise = () => ApiService\r\n .signIn(creds)\r\n .then((response) => {\r\n const { token } = response.data;\r\n sessionStorage.setItem(EnvConfig.firstTokenName, token);\r\n sessionStorage.setItem(EnvConfig.tokenName, token);\r\n dispatch(receiveLogin(token));\r\n dispatch(getUserConfig());\r\n })\r\n .catch((error) => {\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, loginError));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function externalLogin() {\r\n window.location = ApiService.getExternalLoginUrl();\r\n}\r\n\r\nfunction requestRememberPathBeforeLogin(restorePath) {\r\n return {\r\n type: REMEMBER_PATH_BEFORE_LOGIN,\r\n restorePath\r\n };\r\n}\r\n\r\nexport function rememberPathBeforeLogin(path) {\r\n return dispatch => dispatch(requestRememberPathBeforeLogin(path));\r\n}\r\n\r\nfunction requestRestorePathAfterLogin() {\r\n return {\r\n type: RESTORE_PATH_AFTER_LOGIN,\r\n restorePath: null\r\n };\r\n}\r\n\r\nexport function resetRestorePath() {\r\n return (dispatch) => {\r\n dispatch(requestRestorePathAfterLogin());\r\n };\r\n}\r\n\r\nexport function resetAuthError() {\r\n return (dispatch) => {\r\n dispatch(requestResetAuthError());\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { clearSelectedClient } from 'actions';\r\n\r\nexport const LOGOUT_REQUEST = 'LOGOUT_REQUEST';\r\nexport const LOGOUT_SUCCESS = 'LOGOUT_SUCCESS';\r\nexport const LOGOUT_FAILURE = 'LOGOUT_FAILURE';\r\n\r\nfunction receive() {\r\n return {\r\n type: LOGOUT_SUCCESS\r\n };\r\n}\r\n\r\nexport function logoutUser(switchClient, useExtenalLogout) {\r\n return (dispatch) => {\r\n // When authenticating via SSO and the user has multiple clients accesible just return them to the Client Select page\r\n if (switchClient) {\r\n dispatch(clearSelectedClient());\r\n return;\r\n }\r\n\r\n // Log the user out fully\r\n sessionStorage.clear();\r\n if (useExtenalLogout) {\r\n const url = ApiService.getLogoutUrl();\r\n window.location = url;\r\n } else {\r\n dispatch(receive());\r\n }\r\n };\r\n}\r\n\r\nexport function triggerSessionReset() {\r\n const e = new Event('tainaSessionReset');\r\n e.key = 'taina.reset';\r\n document.dispatchEvent(e);\r\n}\r\n","export const OPEN_PASSWORD_CHANGE_MODAL = 'OPEN_PASSWORD_CHANGE_MODAL';\r\nexport const CLOSE_PASSWORD_CHANGE_MODAL = 'CLOSE_PASSWORD_CHANGE_MODAL';\r\nexport const FAILED_PASSWORD_CHANGE_MODAL = 'FAILED_PASSWORD_CHANGE_MODAL';\r\n\r\nfunction openPasswordChangeModal() {\r\n return {\r\n type: OPEN_PASSWORD_CHANGE_MODAL,\r\n isPasswordChangeModalShown: true\r\n };\r\n}\r\n\r\nfunction closePasswordChangeModal() {\r\n return {\r\n type: CLOSE_PASSWORD_CHANGE_MODAL,\r\n isPasswordChangeModalShown: false,\r\n changePasswordError: null\r\n };\r\n}\r\n\r\nfunction failedPasswordChangeModal(changePasswordError) {\r\n return {\r\n type: FAILED_PASSWORD_CHANGE_MODAL,\r\n isPasswordChangeModalShown: true,\r\n changePasswordError\r\n };\r\n}\r\n\r\nfunction closeFailedPasswordChangeModal() {\r\n return {\r\n type: FAILED_PASSWORD_CHANGE_MODAL,\r\n isPasswordChangeModalShown: true,\r\n changePasswordError: null\r\n };\r\n}\r\n\r\nexport function showPasswordChangeModal() {\r\n return (dispatch) => {\r\n dispatch(openPasswordChangeModal());\r\n };\r\n}\r\n\r\nexport function hidePasswordChangeModal() {\r\n return (dispatch) => {\r\n dispatch(closePasswordChangeModal());\r\n };\r\n}\r\n\r\nexport function showFailedPasswordChangeModal(changePasswordError) {\r\n return (dispatch) => {\r\n dispatch(failedPasswordChangeModal(changePasswordError));\r\n };\r\n}\r\n\r\nexport function closeFailedPasswordChangeModalError() {\r\n return (dispatch) => {\r\n dispatch(closeFailedPasswordChangeModal());\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\n\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nimport { hidePasswordChangeModal, showFailedPasswordChangeModal } from './passwordChangeModal';\r\n\r\nexport const CHANGE_PASSWORD_REQUEST = 'CHANGE_PASSWORD_REQUEST';\r\n\r\nfunction requestPasswordChange() {\r\n return {\r\n type: CHANGE_PASSWORD_REQUEST\r\n };\r\n}\r\n\r\nexport function userPasswordChange(username, data) {\r\n const updateData = new FormData();\r\n updateData.append('userName', username);\r\n updateData.append('newPassword', data.newPwd);\r\n updateData.append('confirmPassword', data.confirmPwd);\r\n\r\n return (dispatch) => {\r\n dispatch(requestPasswordChange());\r\n\r\n const promise = () => ApiService\r\n .updatePassword(updateData)\r\n .then((response) => {\r\n dispatch(hidePasswordChangeModal());\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, showFailedPasswordChangeModal));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import CryptoJS from 'crypto-js';\r\nimport EnvConfig from 'env.config';\r\nimport { ApiService } from 'services';\r\nimport { triggerSessionReset } from 'actions/auth';\r\nimport { getStorageKey } from '../storage/getStorageSetting';\r\nimport { getPiiValidationCodes } from './getPiiValidationCodes';\r\n\r\nexport const UPDATE_SELECTED_CLIENT = 'UPDATE_SELECTED_CLIENT';\r\n\r\n// ok, so a number of things are going on here:\r\n// the permisssions object in *redux* is set in a separate permissions variable, ignoring settings.permissions\r\n// on a page refresh, the permissions are taken from settings.permissions in *sessionStorage*\r\n// you need both of these (settings.permissions in sessionStorage and permissions in redux) to be set for full functionality\r\n// that's why getActivityPermissions() does both\r\n// the api call is async, hence the async/await below\r\nfunction updateSelectedClient(jsonObject, permissions) {\r\n return {\r\n type: UPDATE_SELECTED_CLIENT,\r\n settings: jsonObject,\r\n permissions\r\n };\r\n}\r\n\r\nfunction decryptSettings() {\r\n const key = getStorageKey();\r\n if (!key) {\r\n return null;\r\n }\r\n const options = sessionStorage.getItem(EnvConfig.optionsName);\r\n if (!options) {\r\n return null;\r\n }\r\n return JSON.parse(CryptoJS.AES.decrypt(options, key.substring(64, 96)).toString(CryptoJS.enc.Utf8));\r\n}\r\n\r\nfunction encryptSettings(jsonObject) {\r\n const key = getStorageKey();\r\n if (!key) {\r\n return null;\r\n }\r\n return CryptoJS.AES.encrypt(JSON.stringify(jsonObject), key.substring(64, 96));\r\n}\r\n\r\nfunction getActivityPermissions() {\r\n const jsonObject = decryptSettings();\r\n\r\n return ApiService.getActivityPermissions().then((response) => {\r\n if (response != null && response.data != null && response.data !== '') {\r\n jsonObject.permissions = response.data;\r\n const encryptedData = encryptSettings(jsonObject);\r\n sessionStorage.setItem(EnvConfig.optionsName, encryptedData);\r\n return jsonObject;\r\n }\r\n return jsonObject;\r\n });\r\n}\r\n\r\nexport function proceedWithClient(client) {\r\n let jsonObject = decryptSettings();\r\n if (!jsonObject) {\r\n localStorage.setItem('taina.reset', Date.now());\r\n triggerSessionReset();\r\n }\r\n\r\n if (jsonObject) {\r\n jsonObject.selectedClient = client;\r\n const encryptedData = encryptSettings(jsonObject);\r\n sessionStorage.setItem(EnvConfig.optionsName, encryptedData);\r\n }\r\n\r\n return async (dispatch) => {\r\n jsonObject = await getActivityPermissions();\r\n await ApiService.switchClientRefreshToken();\r\n dispatch(updateSelectedClient(jsonObject, jsonObject.permissions));\r\n dispatch(getPiiValidationCodes());\r\n };\r\n}\r\n\r\nexport function clearSelectedClient() {\r\n const jsonObject = decryptSettings();\r\n if (!jsonObject) {\r\n localStorage.setItem('taina.reset', Date.now());\r\n triggerSessionReset();\r\n }\r\n\r\n if (jsonObject) {\r\n jsonObject.selectedClient = null;\r\n const encryptedData = encryptSettings(jsonObject);\r\n sessionStorage.setItem(EnvConfig.optionsName, encryptedData);\r\n }\r\n\r\n return async (dispatch) => {\r\n dispatch(updateSelectedClient(jsonObject, null));\r\n };\r\n}\r\n","export const UPDATE_GRID_TOTAL_LIMIT = 'UPDATE_GRID_TOTAL_LIMIT';\r\n\r\nexport function updateGridSettings(limit) {\r\n return {\r\n type: UPDATE_GRID_TOTAL_LIMIT,\r\n gridTotalLimit: limit\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_IGACOMBOS_SUCCESS = 'GET_IGACOMBOS_SUCCESS';\r\nexport const GET_IGACOMBOS_FAILURE = 'GET_IGACOMBOS_FAILURE';\r\n\r\nfunction receive(igaSubClassificationsCombos) {\r\n return {\r\n type: GET_IGACOMBOS_SUCCESS,\r\n igaSubClassificationsCombos\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: GET_IGACOMBOS_FAILURE\r\n };\r\n}\r\n\r\nexport function getIgaSubClassificationCombos() {\r\n return (dispatch) => {\r\n const promise = () => ApiService\r\n .getIgaSubClassificationCombos()\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n }).catch((error) => {\r\n if (!error.response) {\r\n ApiService.addQueuedPromise(promise, error);\r\n } else if (error.retries && error.retries > 1) {\r\n dispatch(handleException(error, reject, false));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\n\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_JURISDICTIONS_SUCCESS = 'GET_JURISDICTIONS_SUCCESS';\r\nexport const GET_JURISDICTIONS_FAILURE = 'GET_JURISDICTIONS_FAILURE';\r\n\r\nfunction receive(jurisdictions) {\r\n return {\r\n type: GET_JURISDICTIONS_SUCCESS,\r\n jurisdictions\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: GET_JURISDICTIONS_FAILURE\r\n };\r\n}\r\n\r\nexport function getJurisdictions() {\r\n return (dispatch) => {\r\n const promise = () => ApiService\r\n .getJurisdictions()\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n }).catch((error) => {\r\n if (!error.response) {\r\n ApiService.addQueuedPromise(promise, error);\r\n } else if (error.retries && error.retries > 1) {\r\n dispatch(handleException(error, reject, false));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","export const CONNECTION_STATUS = 'CONNECTION_STATUS';\r\n\r\nfunction pushUpdatedConnectionStatus(isOnline, connectionInfo, retries) {\r\n return {\r\n type: CONNECTION_STATUS,\r\n isOnline,\r\n connectionInfo,\r\n retries\r\n };\r\n}\r\n\r\nexport function updateConnectionStatus(isOnline, retries) {\r\n return (dispatch) => {\r\n const { navigator } = window;\r\n const connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;\r\n\r\n if (typeof connection === 'undefined' || typeof connection.rtt === 'undefined') {\r\n return dispatch(pushUpdatedConnectionStatus(isOnline, null, retries));\r\n }\r\n\r\n return dispatch(pushUpdatedConnectionStatus(isOnline, connection, retries));\r\n };\r\n}\r\n","export const DOWNLOAD_FILE = 'DOWNLOAD_FILE';\r\n\r\nfunction requestDownloadFile(filename) {\r\n return {\r\n type: DOWNLOAD_FILE,\r\n downloadedFilename: filename\r\n };\r\n}\r\n\r\nexport function downloadFile(\r\n data,\r\n filename,\r\n mimeType\r\n) {\r\n return (dispatch) => {\r\n const blob = new Blob([data], { type: mimeType });\r\n if (typeof window.navigator.msSaveBlob !== 'undefined') {\r\n window.navigator.msSaveBlob(blob, filename);\r\n } else {\r\n const blobUrl = window.URL.createObjectURL(blob);\r\n const tempLink = document.createElement('a');\r\n tempLink.href = blobUrl;\r\n tempLink.setAttribute('download', filename);\r\n document.body.appendChild(tempLink);\r\n tempLink.click();\r\n document.body.removeChild(tempLink);\r\n }\r\n dispatch(requestDownloadFile());\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\n\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_SPECIALRATEPROVISIONS_SUCCESS = 'GET_SPECIALRATEPROVISIONS_SUCCESS';\r\nexport const GET_SPECIALRATEPROVISIONS_CLEAR = 'GET_SPECIALRATEPROVISIONS_CLEAR';\r\n\r\nfunction receive(specialRateProvisions) {\r\n return {\r\n type: GET_SPECIALRATEPROVISIONS_SUCCESS,\r\n specialRateProvisions\r\n };\r\n}\r\n\r\nfunction clear() {\r\n return {\r\n type: GET_SPECIALRATEPROVISIONS_CLEAR\r\n };\r\n}\r\n\r\nexport function getSpecialRateProvisions(treatCountry, lobProvisions) {\r\n return (dispatch) => {\r\n const hasPensionClaim = lobProvisions && lobProvisions.length === 1 && lobProvisions.includes('2');\r\n const promise = () => ApiService\r\n .getSpecialRateProvisions(treatCountry, hasPensionClaim)\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n }).catch((error) => {\r\n if (!error.response) {\r\n ApiService.addQueuedPromise(promise, error);\r\n } else if (error.retries && error.retries > 1) {\r\n dispatch(handleException(error, clear, false));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function clearSpecialRateProvisions() {\r\n return dispatch => dispatch(clear());\r\n}\r\n","import { ApiService } from 'services';\r\n\r\nexport const OPEN_ABOUT = 'OPEN_ABOUT';\r\nexport const CLOSE_ABOUT = 'CLOSE_ABOUT';\r\nexport const API_STATUS = 'API_STATUS';\r\n\r\nfunction open() {\r\n return {\r\n type: OPEN_ABOUT\r\n };\r\n}\r\n\r\nfunction close() {\r\n return {\r\n type: CLOSE_ABOUT\r\n };\r\n}\r\n\r\nfunction receive(data) {\r\n return {\r\n type: API_STATUS,\r\n apiStatus: data\r\n };\r\n}\r\n\r\nexport function openAboutModal() {\r\n return dispatch => dispatch(open());\r\n}\r\n\r\nexport function closeAboutModal() {\r\n return dispatch => dispatch(close());\r\n}\r\n\r\nexport function getApiStatus() {\r\n return (dispatch) => {\r\n const promise = () => ApiService\r\n .getApiStatus()\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n }).catch(() => {\r\n dispatch(receive({\r\n status: 'Not Running',\r\n assemblies: []\r\n }));\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_STOCKMARKETS_SUCCESS = 'GET_STOCKMARKETS_SUCCESS';\r\nexport const GET_STOCKMARKETS_FAILURE = 'GET_STOCKMARKETS_FAILURE';\r\n\r\nfunction receive(stockMarkets) {\r\n return {\r\n type: GET_STOCKMARKETS_SUCCESS,\r\n stockMarkets\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: GET_STOCKMARKETS_FAILURE\r\n };\r\n}\r\n\r\nexport function getStockMarkets() {\r\n return (dispatch) => {\r\n const promise = () => ApiService\r\n .getStockMarkets()\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n }).catch((error) => {\r\n if (!error.response) {\r\n ApiService.addQueuedPromise(promise, error);\r\n } else if (error.retries && error.retries > 1) {\r\n dispatch(handleException(error, reject, false));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\nimport Logger from 'logger';\r\n\r\nexport const HANDLE_CONNECTION_EXCEPTION = 'HANDLE_CONNECTION_EXCEPTION';\r\n\r\nconst connectionException = {\r\n code: 0,\r\n title: 'Network error',\r\n message: 'Something went wrong during sending request to the server. Please check your internet connection or try again later.'\r\n};\r\n\r\nfunction requestHandleConnectionException() {\r\n return {\r\n type: HANDLE_CONNECTION_EXCEPTION,\r\n code: 0,\r\n message: connectionException.message\r\n };\r\n}\r\n\r\nexport function handleConnectionException(exception, callbackActionCreator, showNetworkErrorAlert) {\r\n connectionException.error = { message: exception.errorMessage ?? connectionException.title };\r\n console.error('Network exception', exception);\r\n Logger.error({\r\n message: connectionException.title,\r\n request: {\r\n method: exception.config && exception.config.method,\r\n URL: exception.config && exception.config.url\r\n },\r\n type: 'NETWORK'\r\n });\r\n\r\n return (dispatch) => {\r\n if (showNetworkErrorAlert) {\r\n toastr.error(connectionException.title, connectionException.message);\r\n }\r\n if (callbackActionCreator && typeof callbackActionCreator === 'function') {\r\n return dispatch(callbackActionCreator(connectionException));\r\n }\r\n return dispatch(requestHandleConnectionException());\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\nimport Logger from 'logger';\r\n\r\nexport const HANDLE_SERVER_EXCEPTION = 'HANDLE_SERVER_EXCEPTION';\r\n\r\nfunction requestHandleServerException(exceptionResponse) {\r\n return {\r\n type: HANDLE_SERVER_EXCEPTION,\r\n ...exceptionResponse\r\n };\r\n}\r\n\r\nexport function handleServerException(exceptionResponse, callbackActionCreator, showAlert) {\r\n if (exceptionResponse.data && exceptionResponse.data.code === 401) {\r\n console.error('API request: Unauthorized');\r\n } else {\r\n console.error('Exception from server', exceptionResponse.data);\r\n Logger.error({\r\n message: `API request error: ${ (exceptionResponse && exceptionResponse.data && exceptionResponse.data.message) || 'Unknown exception' }`,\r\n request: {\r\n method: exceptionResponse.config && exceptionResponse.config.method,\r\n URL: exceptionResponse.config && exceptionResponse.config.url,\r\n data: exceptionResponse.config && exceptionResponse.config.data\r\n },\r\n response: {\r\n ...exceptionResponse.data\r\n },\r\n type: 'API_REQUEST'\r\n });\r\n }\r\n return (dispatch) => {\r\n if (showAlert) {\r\n toastr.error(\r\n 'Error',\r\n exceptionResponse.data && exceptionResponse.data.message\r\n ? exceptionResponse.data.message\r\n : \"Something's not quite right. Please try again or speak to your system administrator.\"\r\n );\r\n }\r\n if (callbackActionCreator && typeof callbackActionCreator === 'function') {\r\n return dispatch(callbackActionCreator(exceptionResponse.data));\r\n }\r\n return dispatch(requestHandleServerException(exceptionResponse));\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\nimport Logger from 'logger';\r\n\r\nexport const HANDLE_UNCAUGHT_EXCEPTION = 'HANDLE_UNCAUGHT_EXCEPTION';\r\n\r\nfunction requestHandleUncaughtException(exception) {\r\n return {\r\n type: HANDLE_UNCAUGHT_EXCEPTION,\r\n code: 0,\r\n message: exception.message\r\n };\r\n}\r\n\r\nexport function handleUncaughtException(exception, callbackActionCreator, showAlert) {\r\n console.error('Uncaught error has happened', exception);\r\n Logger.error({\r\n message: exception.message,\r\n stack: exception.error.stack,\r\n filename: exception.filename,\r\n colno: exception.colno,\r\n lineno: exception.lineno,\r\n type: 'UNCAUGHT'\r\n });\r\n return (dispatch) => {\r\n if (showAlert) {\r\n toastr.error(\r\n 'Error',\r\n exception.message\r\n ? exception.message\r\n : \"Something's not quite right. Please try again or speak to your system administrator.\"\r\n );\r\n }\r\n if (callbackActionCreator && typeof callbackActionCreator === 'function') {\r\n return dispatch(callbackActionCreator(exception.data));\r\n }\r\n return dispatch(requestHandleUncaughtException(exception));\r\n };\r\n}\r\n","import { handleConnectionException } from './handleConnectionException';\r\nimport { handleServerException } from './handleServerException';\r\nimport { handleUncaughtException } from './handleUncaughtException';\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport function handleException(\r\n exception,\r\n callbackActionCreator,\r\n showAlert = false,\r\n showNetworkErrorAlert = true\r\n) {\r\n if (exception instanceof ErrorEvent) {\r\n return handleUncaughtException(exception, callbackActionCreator, showAlert);\r\n }\r\n if (exception.response) {\r\n return handleServerException(exception.response, callbackActionCreator, showAlert);\r\n }\r\n\r\n return handleConnectionException(exception, callbackActionCreator, showNetworkErrorAlert);\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const CHANGE_IMY_PARENT_ACCOUNT_REQUEST = 'CHANGE_IMY_PARENT_ACCOUNT_REQUEST';\r\nexport const CHANGE_IMY_PARENT_ACCOUNT_SUCCESS = 'CHANGE_IMY_PARENT_ACCOUNT_SUCCESS';\r\nexport const CHANGE_IMY_PARENT_ACCOUNT_FAILURE = 'CHANGE_IMY_PARENT_ACCOUNT_FAILURE';\r\n\r\nfunction requestChangeImyParentAccount(name, changeDetails) {\r\n return {\r\n type: CHANGE_IMY_PARENT_ACCOUNT_REQUEST,\r\n name,\r\n changeDetails\r\n };\r\n}\r\n\r\nfunction receiveChangeImyParentAccount(accountId, statementContainer) {\r\n return {\r\n type: CHANGE_IMY_PARENT_ACCOUNT_SUCCESS,\r\n accountId,\r\n statementContainer\r\n };\r\n}\r\n\r\nfunction rejectChangeImyParentAccount(accountId) {\r\n return {\r\n type: CHANGE_IMY_PARENT_ACCOUNT_FAILURE,\r\n accountId\r\n };\r\n}\r\n\r\nexport function changeImyTierParent(accountId, changeDetails) {\r\n return (dispatch) => {\r\n dispatch(requestChangeImyParentAccount(accountId, changeDetails));\r\n const promise = () => ApiService\r\n .updateWithholdingStatementImyParent(accountId, changeDetails)\r\n .then((response) => {\r\n dispatch(receiveChangeImyParentAccount(accountId, response.data));\r\n if (response.data) {\r\n toastr.success('Save Successful', 'IMY Tier Parent change successful');\r\n } else {\r\n toastr.error('Save Failed', 'There was an unexpected response when changing the IMY Tier parent');\r\n }\r\n })\r\n .catch(error => dispatch(handleException(error, () => dispatch(rejectChangeImyParentAccount(accountId)), true)));\r\n\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_CUSTOMER_WHD_REQUEST = 'GET_CUSTOMER_WHD_REQUEST';\r\nexport const GET_CUSTOMER_WHD_SUCCESS = 'GET_CUSTOMER_WHD_SUCCESS';\r\nexport const GET_CUSTOMER_WHD_FAILURE = 'GET_CUSTOMER_WHD_FAILURE';\r\nexport const RESET_WHD_RATES = 'RESET_WHD_RATES';\r\n\r\nfunction requestGetWhd(customerId, accountId) {\r\n return {\r\n type: GET_CUSTOMER_WHD_REQUEST,\r\n isGettingWhd: true,\r\n accountId,\r\n customerId,\r\n };\r\n}\r\n\r\nfunction receiveGetWhd(accountWithholdingRates, customerId, accountId) {\r\n return {\r\n type: GET_CUSTOMER_WHD_SUCCESS,\r\n isGettingWhd: false,\r\n accountWithholdingRates,\r\n customerId,\r\n accountId\r\n };\r\n}\r\n\r\nfunction rejectGetWhd(customerId, accountId) {\r\n return {\r\n type: GET_CUSTOMER_WHD_FAILURE,\r\n isGettingWhd: false,\r\n customerId,\r\n accountId\r\n };\r\n}\r\n\r\nfunction resetWhdRates() {\r\n return {\r\n type: RESET_WHD_RATES,\r\n };\r\n}\r\n\r\nexport function getWhdDetails(customerId, accountId) {\r\n return (dispatch) => {\r\n dispatch(requestGetWhd(customerId, accountId));\r\n const promise = () => ApiService\r\n .getCustomerAccountWithholdingRates(customerId, accountId)\r\n .then((response) => {\r\n dispatch(receiveGetWhd(response.data, customerId, accountId));\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectGetWhd(customerId, accountId), true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function resetWithholdingRates() {\r\n return dispatch => dispatch(resetWhdRates());\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_WHD_STMT_REQUEST = 'GET_WHD_STMT_REQUEST';\r\nexport const GET_WHD_STMT_SUCCESS = 'GET_WHD_STMT_SUCCESS';\r\nexport const GET_WHD_STMT_FAILURE = 'GET_WHD_STMT_FAILURE';\r\nexport const RESET_WHD_STMT_LIST = 'RESET_WHD_STMT_LIST';\r\nexport const RESET_ACCOUNT_WHS_LINKING = 'RESET_ACCOUNT_WHS_LINKING';\r\n\r\nfunction requestGetWhdStatement(accountId) {\r\n return {\r\n type: GET_WHD_STMT_REQUEST,\r\n isGettingStatement: true,\r\n accountId\r\n };\r\n}\r\n\r\nfunction receiveGetWhdStatement(accountId, statementContainer) {\r\n return {\r\n type: GET_WHD_STMT_SUCCESS,\r\n isGettingStatement: false,\r\n accountId,\r\n statementContainer\r\n };\r\n}\r\n\r\nfunction rejectGetWhdStatement(accountId) {\r\n return {\r\n type: GET_WHD_STMT_FAILURE,\r\n isGettingStatement: false,\r\n accountId\r\n };\r\n}\r\n\r\nfunction resetWhdStatementList() {\r\n return {\r\n type: RESET_WHD_STMT_LIST\r\n };\r\n}\r\n\r\nexport function resetIsWhsLinkingActive() {\r\n return {\r\n type: RESET_ACCOUNT_WHS_LINKING,\r\n isWhsLinkingActive: false\r\n };\r\n}\r\n\r\nexport function getWhdStatement(accountId, versionNumber) {\r\n return (dispatch) => {\r\n dispatch(requestGetWhdStatement(accountId));\r\n let promise = null;\r\n const apiCall = !versionNumber ? ApiService.getAccountWithholdingStatement : ApiService.getAccountWithholdingStatementVersion;\r\n promise = () => apiCall(accountId, versionNumber)\r\n .then((response) => {\r\n dispatch(receiveGetWhdStatement(accountId, response.data));\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(rejectGetWhdStatement(accountId));\r\n dispatch(handleException(error, null, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function resetAccountWhdStatementList() {\r\n return dispatch => dispatch(resetWhdStatementList());\r\n}\r\n","export const SET_WHD_SCROLL_POSITION = 'SET_WHD_SCROLL_POSITION';\r\n\r\nfunction storeStatementPosition(accountId, scrollPosition) {\r\n return {\r\n type: SET_WHD_SCROLL_POSITION,\r\n accountId,\r\n scrollPosition\r\n };\r\n}\r\n\r\nexport function setStatementPosition(accountId, scrollPosition) {\r\n return dispatch => dispatch(storeStatementPosition(accountId, scrollPosition));\r\n}\r\n","function ScrollIntoView(elementId, attempt) {\r\n setTimeout(() => {\r\n const element = document.getElementById(elementId);\r\n\r\n if (element) {\r\n const yOffset = 90;\r\n const scrollToY = element.offsetTop - yOffset;\r\n if (element.closest) {\r\n window.scrollTo({ top: scrollToY, behavior: 'smooth' });\r\n } else {\r\n let y = window.pageYOffset || window.screenTop || 0;\r\n const direction = y < scrollToY ? 1 : -1;\r\n\r\n const smoothScroll = () => setTimeout(() => {\r\n y += 40 * direction;\r\n y = direction === 1 ? Math.min(y, scrollToY) : Math.max(y, scrollToY);\r\n window.scrollTo(0, y);\r\n if ((direction === 1 && y < scrollToY) || (direction === -1 && y > scrollToY)) {\r\n smoothScroll();\r\n }\r\n }, 30);\r\n\r\n smoothScroll();\r\n }\r\n } else {\r\n const nextAttempt = (attempt || 0) + 1;\r\n if (nextAttempt < 5) {\r\n setTimeout(() => ScrollIntoView(elementId, nextAttempt), 100);\r\n }\r\n }\r\n }, 100);\r\n}\r\n\r\nexport default ScrollIntoView;\r\n","import { ApiService } from 'services';\r\nimport { toastr } from 'react-redux-toastr';\r\nimport { handleException } from 'actions/exceptions';\r\nimport ScrollIntoView from 'common/App/ScrollIntoView';\r\n\r\nexport const ADD_NEW_BO_REQUEST = 'ADD_NEW_BO_REQUEST';\r\nexport const ADD_NEW_BO_SUCCESS = 'ADD_NEW_BO_SUCCESS';\r\nexport const ADD_NEW_BO_FAILURE = 'ADD_NEW_BO_FAILURE';\r\n\r\nfunction requestAddNewBeneficialOwner() {\r\n return {\r\n type: ADD_NEW_BO_REQUEST,\r\n isAddingNewBeneficalOwner: true,\r\n };\r\n}\r\n\r\nfunction receiveAddNewBeneficialOwner(addNewRowContainer) {\r\n return {\r\n type: ADD_NEW_BO_SUCCESS,\r\n isAddingNewBeneficalOwner: false,\r\n newRowGuid: addNewRowContainer && addNewRowContainer.RowGuid,\r\n statementContainer: addNewRowContainer && addNewRowContainer.statementContainer\r\n };\r\n}\r\n\r\nfunction rejectAddNewBeneficialOwner() {\r\n return {\r\n type: ADD_NEW_BO_FAILURE,\r\n isAddingNewBeneficalOwner: false,\r\n };\r\n}\r\n\r\nexport function addNewBeneficialOwner(accountId, parentGuid, isImylayer, isPooled) {\r\n return (dispatch) => {\r\n dispatch(requestAddNewBeneficialOwner());\r\n const promise = () => ApiService\r\n .addBeneficialOwner(accountId, parentGuid, isImylayer)\r\n .then((response) => {\r\n dispatch(receiveAddNewBeneficialOwner(response.data));\r\n if (isImylayer) {\r\n toastr.success('Save Successful', 'New IMY Tier successfully added');\r\n } else {\r\n toastr.success('Save Successful', `New ${ isPooled ? 'Pooled Account' : 'Beneficial Owner' } successfully added`);\r\n }\r\n\r\n const { rowGuid } = response.data;\r\n if (rowGuid) {\r\n ScrollIntoView(rowGuid);\r\n }\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectAddNewBeneficialOwner(), true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const UPDATE_POOLED_RATES_REQUEST = 'UPDATE_POOLED_RATES_REQUEST';\r\nexport const UPDATE_POOLED_RATES_SUCCESS = 'UPDATE_POOLED_RATES_SUCCESS';\r\nexport const UPDATE_POOLED_RATES_FAILURE = 'UPDATE_POOLED_RATES_FAILURE';\r\n\r\nfunction requestUpdatePooledRates() {\r\n return {\r\n type: UPDATE_POOLED_RATES_REQUEST,\r\n\r\n };\r\n}\r\n\r\nfunction receiveUpdatePooledRates(structure, validationResult, topAccount) {\r\n return {\r\n type: UPDATE_POOLED_RATES_SUCCESS,\r\n structure,\r\n validationResult,\r\n topAccount\r\n };\r\n}\r\n\r\nfunction rejectUpdatePooledRates() {\r\n return {\r\n type: UPDATE_POOLED_RATES_FAILURE,\r\n };\r\n}\r\n\r\nexport function updatePooledRates(accountId, accountName, rates) {\r\n return (dispatch) => {\r\n dispatch(requestUpdatePooledRates());\r\n const promise = () => ApiService\r\n .updatePooledRates(accountId, accountName, rates)\r\n .then((response) => {\r\n dispatch(receiveUpdatePooledRates(response.data.structure, response.data.validationResult, response.data.topAccount));\r\n if (Object.prototype.hasOwnProperty.call(response.data, 'structure')) {\r\n toastr.success('Save Successful', 'Update pooled rates was successful');\r\n } else {\r\n toastr.error('Save Failed', 'There was an unexpected response when trying to save the changes');\r\n }\r\n })\r\n .catch(error => dispatch(handleException(error, () => dispatch(rejectUpdatePooledRates()), true)));\r\n\r\n return promise();\r\n };\r\n}\r\n","export const SAVE_IMY_TREEVIEW_OPTIONS = 'SAVE_IMY_TREEVIEW_OPTIONS';\r\nexport const SET_PAYMENT_TYPES = 'SET_PAYMENT_TYPES';\r\nexport const UPDATE_AVAILABLE_PAYMENT_TYPES = 'UPDATE_AVAILABLE_PAYMENT_TYPES';\r\nexport const SET_STRUCTURE_ID = 'SET_STRUCTURE_ID';\r\n\r\nfunction processSave(id, options) {\r\n return {\r\n type: SAVE_IMY_TREEVIEW_OPTIONS,\r\n options,\r\n id\r\n };\r\n}\r\n\r\nexport function saveImyTreeViewOptions(id, options) {\r\n return (dispatch) => {\r\n if (options) {\r\n dispatch(processSave(id, options));\r\n }\r\n };\r\n}\r\n\r\nexport function setPaymentTypes(structureId, options) {\r\n return {\r\n type: SET_PAYMENT_TYPES,\r\n structureId,\r\n options\r\n };\r\n}\r\n\r\nexport function setStructureId(id) {\r\n return {\r\n type: SET_STRUCTURE_ID,\r\n id\r\n };\r\n}\r\n\r\nexport function updateAvailablePaymentTypes(structureId, paymentTypes) {\r\n return {\r\n type: UPDATE_AVAILABLE_PAYMENT_TYPES,\r\n structureId,\r\n paymentTypes\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { updateAvailablePaymentTypes } from 'actions/forms/saveImyTreeViewOptions';\r\n\r\nexport const UPDATE_WHD_STMT_REQUEST = 'UPDATE_WHD_STMT_REQUEST';\r\nexport const UPDATE_WHD_STMT_SUCCESS = 'UPDATE_WHD_STMT_SUCCESS';\r\nexport const UPDATE_WHD_STMT_FAILURE = 'UPDATE_WHD_STMT_FAILURE';\r\nexport const UPDATE_WHD_STMT_ROW_REQUEST = 'UPDATE_WHD_STMT_ROW_REQUEST';\r\nexport const UPDATE_WHD_STMT_ROW_SUCCESS = 'UPDATE_WHD_STMT_ROW_SUCCESS';\r\nexport const UPDATE_WHD_STMT_ROW_FAILURE = 'UPDATE_WHD_STMT_ROW_FAILURE';\r\n\r\nfunction requestUpdateWhdStatement() {\r\n return {\r\n type: UPDATE_WHD_STMT_REQUEST,\r\n };\r\n}\r\n\r\nfunction receiveUpdateWhdStatement(statement, structure, validationResult, topAccount) {\r\n return {\r\n type: UPDATE_WHD_STMT_SUCCESS,\r\n statement,\r\n structure,\r\n validationResult,\r\n topAccount\r\n };\r\n}\r\n\r\nfunction rejectUpdateWhdStatement(accountId) {\r\n return {\r\n type: UPDATE_WHD_STMT_FAILURE,\r\n accountId\r\n };\r\n}\r\n\r\nfunction requestUpdateWhdStatementRow() {\r\n return {\r\n type: UPDATE_WHD_STMT_ROW_REQUEST,\r\n };\r\n}\r\n\r\nfunction receiveUpdateWhdStatementRow(statement, structure, isStructureValid, validationResult, topAccount) {\r\n return {\r\n type: UPDATE_WHD_STMT_ROW_SUCCESS,\r\n isStructureValid,\r\n statement,\r\n structure,\r\n validationResult,\r\n topAccount\r\n };\r\n}\r\n\r\nfunction rejectUpdateWhdStatementRow(accountId) {\r\n return {\r\n type: UPDATE_WHD_STMT_ROW_FAILURE,\r\n accountId\r\n };\r\n}\r\n\r\nexport function updateStatement(accountId, statement, newPaymentTypeOptions) {\r\n return (dispatch) => {\r\n dispatch(requestUpdateWhdStatement());\r\n const promise = () => ApiService\r\n .updateStatement(accountId, statement)\r\n .then((response) => {\r\n if (response.data && response.data.statement && response.data.validationResult) {\r\n dispatch(receiveUpdateWhdStatement(response.data.statement, response.data.structure, response.data.validationResult, response.data.topAccount));\r\n toastr.success('Save Successful', 'Statement updated');\r\n } else {\r\n toastr.error('Save Failed', 'There was an unexpected response when trying to save the changes');\r\n }\r\n if (newPaymentTypeOptions && newPaymentTypeOptions.structureId > 0 && newPaymentTypeOptions.paymentTypes.length > 0) {\r\n dispatch(updateAvailablePaymentTypes(newPaymentTypeOptions.structureId, newPaymentTypeOptions.paymentTypes));\r\n }\r\n })\r\n .catch(error => dispatch(handleException(error, () => dispatch(rejectUpdateWhdStatement(accountId)), true)));\r\n\r\n return promise();\r\n };\r\n}\r\n\r\nexport function updateStatementRow(accountId, rowUpdate) {\r\n return (dispatch) => {\r\n dispatch(requestUpdateWhdStatementRow());\r\n const promise = () => ApiService\r\n .updateStatementRow(accountId, rowUpdate)\r\n .then((response) => {\r\n if (response.data && response.data.statement && response.data.structure) {\r\n dispatch(receiveUpdateWhdStatementRow(response.data.statement, response.data.structure, response.data.isStructureValid, response.data.validationResult, response.data.topAccount));\r\n toastr.success('Save Successful', 'Statement updated');\r\n } else {\r\n toastr.error('Save Failed', 'There was an unexpected response when trying to save the changes');\r\n }\r\n })\r\n .catch(error => dispatch(handleException(error, () => dispatch(rejectUpdateWhdStatementRow(accountId)), true)));\r\n\r\n return promise();\r\n };\r\n}\r\n","export const SAVE_WHD_COLLAPSED_TIERS = 'SAVE_WHD_COLLAPSED_TIERS';\r\n\r\nfunction saveWhdCollapsedTiers(tiersObject) {\r\n return {\r\n type: SAVE_WHD_COLLAPSED_TIERS,\r\n tiersObject\r\n };\r\n}\r\n\r\nexport function saveCollapsedTiers(tiersObject) {\r\n return (dispatch) => {\r\n dispatch(saveWhdCollapsedTiers(tiersObject));\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const DELETE_WHD_STMT_ROW_REQUEST = 'DELETE_WHD_STMT_ROW_REQUEST';\r\nexport const DELETE_WHD_STMT_ROW_SUCCESS = 'DELETE_WHD_STMT_ROW_SUCCESS';\r\nexport const DELETE_WHD_STMT_ROW_FAILURE = 'DELETE_WHD_STMT_ROW_FAILURE';\r\n\r\nfunction requestDeleteStatementRow() {\r\n return {\r\n type: DELETE_WHD_STMT_ROW_REQUEST,\r\n };\r\n}\r\n\r\nfunction receiveDeleteStatementRow(structure, statement, isStructureValid, validationResult, topAccount) {\r\n return {\r\n type: DELETE_WHD_STMT_ROW_SUCCESS,\r\n isStructureValid,\r\n structure,\r\n statement,\r\n validationResult,\r\n topAccount\r\n };\r\n}\r\n\r\nfunction rejectDeleteStatementRow() {\r\n return {\r\n type: DELETE_WHD_STMT_ROW_FAILURE,\r\n };\r\n}\r\n\r\nexport function deleteStatementRow(accountId, rowToDelete) {\r\n return (dispatch) => {\r\n dispatch(requestDeleteStatementRow());\r\n const promise = () => ApiService\r\n .deleteStatementRow(accountId, rowToDelete)\r\n .then((response) => {\r\n if (response.data && response.data.structure && response.data.statement) {\r\n toastr.success('Save Successful', 'Deletion of row was successful');\r\n dispatch(receiveDeleteStatementRow(response.data.structure, response.data.statement, response.data.isStructureValid, response.data.validationResult, response.topAccount));\r\n } else {\r\n toastr.error('Save Failed', 'There was an unexpected response when trying to save the changes');\r\n }\r\n })\r\n .catch(error => dispatch(handleException(error, () => dispatch(rejectDeleteStatementRow()), true)));\r\n\r\n return promise();\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { getWhdStatement } from 'actions';\r\n\r\nexport const PUBLISH_WHD_STMT_REQUEST = 'PUBLISH_WHD_STMT_REQUEST';\r\nexport const PUBLISH_WHD_STMT_SUCCESS = 'PUBLISH_WHD_STMT_SUCCESS';\r\nexport const PUBLISH_WHD_STMT_FAILURE = 'PUBLISH_WHD_STMT_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: PUBLISH_WHD_STMT_REQUEST\r\n };\r\n}\r\n\r\nfunction receive(versionWindow) {\r\n return {\r\n type: PUBLISH_WHD_STMT_SUCCESS,\r\n effectiveDate: versionWindow.effectiveFromDate,\r\n effectiveToDate: versionWindow.effectiveToDate\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: PUBLISH_WHD_STMT_FAILURE\r\n };\r\n}\r\n\r\nexport function publishStatement(accountId, versionWindow) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n const promise = () => ApiService\r\n .publishStatement(accountId, versionWindow)\r\n .then((response) => {\r\n if (!response.data) {\r\n toastr.success('Publish Failed', 'There was a problem publishing the statement');\r\n } else {\r\n dispatch(receive(versionWindow));\r\n dispatch(getWhdStatement([accountId]));\r\n toastr.success('Publish Successful', `Statement Version ${ response.data.version } ${ response.data.isRepublish ? 're' : '' }published`);\r\n }\r\n })\r\n .catch(error => dispatch(handleException(error, () => dispatch(reject(accountId)), true)));\r\n\r\n return promise();\r\n };\r\n}\r\n","export const OPEN_EFFECTIVE_DATE_CONFIRM_MODAL = 'OPEN_EFFECTIVE_DATE_CONFIRM_MODAL';\r\nexport const CLOSE_EFFECTIVE_DATE_CONFIRM_MODAL = 'CLOSE_EFFECTIVE_DATE_CONFIRM_MODAL';\r\n\r\nfunction openModal() {\r\n return {\r\n type: OPEN_EFFECTIVE_DATE_CONFIRM_MODAL\r\n };\r\n}\r\n\r\nfunction closeModal() {\r\n return {\r\n type: CLOSE_EFFECTIVE_DATE_CONFIRM_MODAL\r\n };\r\n}\r\n\r\nexport function showEffectiveDateConfirmation() {\r\n return dispatch => dispatch(openModal());\r\n}\r\n\r\nexport function hideEffectiveDateConfirmation() {\r\n return dispatch => dispatch(closeModal());\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_WHD_VERSIONS_REQUEST = 'GET_WHD_VERSIONS_REQUEST';\r\nexport const GET_WHD_VERSIONS_SUCCESS = 'GET_WHD_VERSIONS_SUCCESS';\r\nexport const GET_WHD_VERSIONS_FAILURE = 'GET_WHD_VERSIONS_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: GET_WHD_VERSIONS_REQUEST\r\n };\r\n}\r\n\r\nfunction receive(versions) {\r\n return {\r\n type: GET_WHD_VERSIONS_SUCCESS,\r\n versions\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: GET_WHD_VERSIONS_FAILURE\r\n };\r\n}\r\n\r\nexport function getStatementVersions(accountId, pageNumber) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n const promise = () => ApiService\r\n .getStatementVersions(accountId, pageNumber)\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { resetIsWhsLinkingActive } from 'actions/withholding';\r\nimport WhsLinkOperationStatus from 'common/Accounts/WhsLinkOperationStatus';\r\n\r\nexport const LOAD_ACCOUNT = 'LOAD_ACCOUNT';\r\nexport const LOAD_ACCOUNT_DATA = 'LOAD_ACCOUNT_DATA';\r\nexport const LOAD_ACCOUNT_DATA_FAILURE = 'LOAD_ACCOUNT_DATA_FAILURE';\r\nexport const LINK_ACCOUNT_CUSTOMER = 'LINK_ACCOUNT_CUSTOMER';\r\nexport const UNLINK_ACCOUNT_CUSTOMER = 'UNLINK_ACCOUNT_CUSTOMER';\r\nexport const LINK_ACCOUNT_FORM = 'LINK_ACCOUNT_FORM';\r\nexport const UNLINK_ACCOUNT_FORM_REQUEST = 'UNLINK_ACCOUNT_FORM_REQUEST';\r\nexport const UNLINK_ACCOUNT_FORM_SUCCESS = 'UNLINK_ACCOUNT_FORM_SUCCESS';\r\nexport const UNLINK_ACCOUNT_FORM_FAILURE = 'UNLINK_ACCOUNT_FORM_FAILURE';\r\nexport const CLEAR_ACCOUNT_REQUEST = 'CLEAR_ACCOUNT_REQUEST';\r\nexport const OPEN_UNLINK_FORM_MODAL = 'OPEN_UNLINK_FORM_MODAL';\r\nexport const CLOSE_UNLINK_FORM_MODAL = 'CLOSE_UNLINK_FORM_MODAL';\r\nexport const OPEN_ACCOUNT_NUMBER_CHANGE_FORM_MODAL = 'OPEN_ACCOUNT_NUMBER_CHANGE_FORM_MODAL';\r\nexport const CLOSE_ACCOUNT_NUMBER_CHANGE_FORM_MODAL = 'CLOSE_ACCOUNT_NUMBER_CHANGE_FORM_MODAL';\r\nexport const CLOSE_ACCOUNT_NUMBER_CHANGE_FORM_ERROR = 'CLOSE_ACCOUNT_NUMBER_CHANGE_FORM_ERROR';\r\nexport const ACCOUNT_NUMBER_CHANGE_CLEAR_REQUEST = 'ACCOUNT_NUMBER_CHANGE_CLEAR_REQUEST';\r\nexport const OPEN_LINK_IMY_STRUCTURE_CONFIRM_MODAL = 'OPEN_LINK_IMY_STRUCTURE_CONFIRM_MODAL';\r\nexport const CLOSE_LINK_IMY_STRUCTURE_CONFIRM_MODAL = 'CLOSE_LINK_IMY_STRUCTURE_CONFIRM_MODAL';\r\nexport const LINK_ACCOUNT_TO_IMY_STRUCTURE_REQUEST = 'LINK_ACCOUNT_TO_IMY_STRUCTURE_REQUEST';\r\nexport const LINK_ACCOUNT_TO_IMY_STRUCTURE_SUCCESS = 'LINK_ACCOUNT_TO_IMY_STRUCTURE_SUCESS';\r\nexport const LINK_ACCOUNT_TO_IMY_STRUCTURE_FAILURE = 'LINK_ACCOUNT_TO_IMY_STRUCTURE_FAILURE';\r\nexport const WHS_LINK_OPERATION_STATUS_REQUEST = 'WHS_LINK_OPERATION_STATUS_REQUEST';\r\nexport const WHS_LINK_OPERATION_STATUS_SUCCESS = 'WHS_LINK_OPERATION_STATUS_SUCCESS';\r\nexport const WHS_LINK_OPERATION_STATUS_FAILED = 'WHS_LINK_OPERATION_STATUS_FAILED ';\r\nexport const WHS_LINK_OPERATION_STATUS_RETRIES_FAILED = 'WHS_LINK_OPERATION_STATUS_RETRIES_FAILED';\r\nexport const WHS_LINK_OPERATION_STATUS_LIST_REQUEST = 'WHS_LINK_OPERATION_STATUS_LIST_REQUEST';\r\nexport const WHS_LINK_OPERATION_STATUS_LIST_SUCCESS = 'WHS_LINK_OPERATION_STATUS_LIST_SUCCESS';\r\nexport const WHS_LINK_OPERATION_STATUS_LIST_FAILED = 'WHS_LINK_OPERATION_STATUS_LIST_FAILED';\r\n\r\nfunction requestLoadAccount(account) {\r\n return {\r\n type: LOAD_ACCOUNT,\r\n storeAccount: account\r\n };\r\n}\r\n\r\nfunction requestLoadAccountData() {\r\n return {\r\n type: LOAD_ACCOUNT_DATA,\r\n };\r\n}\r\n\r\nfunction clearAccount() {\r\n return {\r\n type: CLEAR_ACCOUNT_REQUEST,\r\n };\r\n}\r\n\r\nfunction requestLinkAccountCustomer() {\r\n return {\r\n type: LINK_ACCOUNT_CUSTOMER,\r\n };\r\n}\r\n\r\nfunction requestUnlinkAccountCustomer() {\r\n return {\r\n type: UNLINK_ACCOUNT_CUSTOMER,\r\n };\r\n}\r\n\r\nfunction requestLinkAccountForm() {\r\n return {\r\n type: LINK_ACCOUNT_FORM,\r\n };\r\n}\r\n\r\nfunction requestUnlinkAccountForm() {\r\n return {\r\n type: UNLINK_ACCOUNT_FORM_REQUEST,\r\n };\r\n}\r\n\r\nfunction rejectUnlinkAccountForm(error) {\r\n return {\r\n type: UNLINK_ACCOUNT_FORM_FAILURE,\r\n unlinkFormError: error.message\r\n };\r\n}\r\n\r\nfunction receiveUnlinkAccountForm() {\r\n return {\r\n type: UNLINK_ACCOUNT_FORM_SUCCESS\r\n };\r\n}\r\n\r\nfunction rejectAccountDataLoad(accountDataLoadError) {\r\n return {\r\n type: LOAD_ACCOUNT_DATA_FAILURE,\r\n accountDataLoadError\r\n };\r\n}\r\n\r\nfunction openUnlinkFormModal() {\r\n return {\r\n type: OPEN_UNLINK_FORM_MODAL\r\n };\r\n}\r\n\r\nfunction closeUnlinkFormModal() {\r\n return {\r\n type: CLOSE_UNLINK_FORM_MODAL\r\n };\r\n}\r\n\r\nfunction closeAccountNumberChangeFormError() {\r\n return {\r\n type: CLOSE_ACCOUNT_NUMBER_CHANGE_FORM_ERROR,\r\n isAccountNumberChangeModalShown: true\r\n };\r\n}\r\n\r\nfunction openAccountNumberChangeModal() {\r\n return {\r\n type: OPEN_ACCOUNT_NUMBER_CHANGE_FORM_MODAL,\r\n isAccountNumberChangeModalShown: true\r\n };\r\n}\r\n\r\nfunction openLinkToImyStructureConfirmModal(targetWhsLinkAccount) {\r\n return {\r\n type: OPEN_LINK_IMY_STRUCTURE_CONFIRM_MODAL,\r\n targetWhsLinkAccount\r\n };\r\n}\r\n\r\nfunction closeLinkToImyStructureConfirmModal() {\r\n return {\r\n type: CLOSE_LINK_IMY_STRUCTURE_CONFIRM_MODAL\r\n };\r\n}\r\n\r\nfunction closeAccountNumberChangeModal(id) {\r\n if (id === true || id === false) {\r\n return {\r\n type: CLOSE_ACCOUNT_NUMBER_CHANGE_FORM_MODAL,\r\n isAccountNumberChangeModalShown: false\r\n };\r\n }\r\n return {\r\n type: CLOSE_ACCOUNT_NUMBER_CHANGE_FORM_MODAL,\r\n isAccountNumberChangeModalShown: false,\r\n returnedExistingAccountId: id\r\n };\r\n}\r\n\r\nfunction linkAccountToImyStructureRequest() {\r\n return {\r\n type: LINK_ACCOUNT_TO_IMY_STRUCTURE_REQUEST\r\n };\r\n}\r\n\r\nfunction receiveLinkAccountToImyStructure(accountWhsLinkStatus) {\r\n return {\r\n type: LINK_ACCOUNT_TO_IMY_STRUCTURE_SUCCESS,\r\n accountWhsLinkStatus,\r\n isLinkingToImyStructureModalShown: !!(accountWhsLinkStatus && accountWhsLinkStatus.status !== 100)\r\n };\r\n}\r\n\r\nfunction rejectLinkAccountToImyStructure() {\r\n return {\r\n type: LINK_ACCOUNT_TO_IMY_STRUCTURE_FAILURE\r\n };\r\n}\r\n\r\nfunction refreshAccountPage(accountWhsLinkStatus) {\r\n if (accountWhsLinkStatus && accountWhsLinkStatus.status === 100) {\r\n window.location.reload(false);\r\n }\r\n}\r\n\r\nfunction getLinkOperationStatusRequest() {\r\n return {\r\n type: WHS_LINK_OPERATION_STATUS_REQUEST,\r\n isGettingWhsLinkOperationStatus: true\r\n };\r\n}\r\n\r\nfunction getWhsLinkOperationStatusReceived(accountWhsLinkStatus, dispatch) {\r\n if (accountWhsLinkStatus && accountWhsLinkStatus.status === 100) {\r\n dispatch(resetIsWhsLinkingActive());\r\n }\r\n\r\n return {\r\n type: WHS_LINK_OPERATION_STATUS_SUCCESS,\r\n isGettingWhsLinkOperationStatus: false,\r\n accountWhsLinkStatus,\r\n isLinkingToImyStructureModalShown: !!(accountWhsLinkStatus && accountWhsLinkStatus.status !== 100)\r\n };\r\n}\r\n\r\nfunction getLinkOperationStatusRetriesFailed() {\r\n return {\r\n type: WHS_LINK_OPERATION_STATUS_RETRIES_FAILED\r\n };\r\n}\r\n\r\nfunction getLinkOperationStatusFailed() {\r\n return {\r\n type: WHS_LINK_OPERATION_STATUS_FAILED,\r\n isGettingWhsLinkOperationStatus: true\r\n };\r\n}\r\n\r\nfunction getLinkOperationStatusesRequest() {\r\n return {\r\n type: WHS_LINK_OPERATION_STATUS_LIST_REQUEST,\r\n };\r\n}\r\n\r\nfunction getWhsLinkOperationStatusesReceived(whsLinkStatuses) {\r\n return {\r\n type: WHS_LINK_OPERATION_STATUS_LIST_SUCCESS,\r\n whsLinkStatuses\r\n };\r\n}\r\n\r\nfunction getLinkOperationStatusesFailed() {\r\n return {\r\n type: WHS_LINK_OPERATION_STATUS_LIST_FAILED,\r\n };\r\n}\r\n\r\nexport function GetLinkOperationStatus(accountId, reloadOnComplete) {\r\n return (dispatch) => {\r\n dispatch(getLinkOperationStatusRequest());\r\n\r\n const promise = () => ApiService\r\n .getLinkOperationStatus(accountId)\r\n .then((response) => {\r\n if (response.data.status === WhsLinkOperationStatus.Error) {\r\n dispatch(getLinkOperationStatusRetriesFailed());\r\n return;\r\n }\r\n dispatch(getWhsLinkOperationStatusReceived(response.data, dispatch));\r\n if (reloadOnComplete) {\r\n dispatch(refreshAccountPage(response.data));\r\n }\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, getLinkOperationStatusFailed, true));\r\n if (error.retries && error.retries > 1) {\r\n dispatch(getLinkOperationStatusRetriesFailed());\r\n }\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function GetLinkOperationStatuses(accountIds) {\r\n return (dispatch) => {\r\n dispatch(getLinkOperationStatusesRequest());\r\n\r\n const promise = () => ApiService\r\n .getLinkOperationStatuses(accountIds)\r\n .then((response) => {\r\n dispatch(getWhsLinkOperationStatusesReceived(response.data));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, getLinkOperationStatusesFailed, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function accountDataLoad(accountId) {\r\n return (dispatch) => {\r\n dispatch(requestLoadAccountData());\r\n\r\n const promise = () => ApiService\r\n .getAccountData(accountId)\r\n .then((response) => {\r\n dispatch(requestLoadAccount(response.data));\r\n if (response.data && !!response.data.isWhsLinkingActive) {\r\n dispatch(GetLinkOperationStatus(response.data.id));\r\n }\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n dispatch(handleException(error, rejectAccountDataLoad));\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n\r\nexport function clearAccountData() {\r\n return dispatch => dispatch(clearAccount());\r\n}\r\n\r\nexport function accountCustomerLink(accountId, addedCustomerData) {\r\n return (dispatch) => {\r\n dispatch(requestLinkAccountCustomer());\r\n\r\n const accountCustomer = {\r\n CustomerId: addedCustomerData.customerId,\r\n Capacity: addedCustomerData.capacity,\r\n ValidFrom: addedCustomerData.validFrom,\r\n ValidUntil: addedCustomerData.validUntil,\r\n Account: {\r\n id: accountId\r\n }\r\n };\r\n\r\n const customerAccount = [accountCustomer];\r\n\r\n const promise = () => ApiService\r\n .linkCustomerAccount(addedCustomerData.customerId, customerAccount)\r\n .then((response) => {\r\n dispatch(accountDataLoad(accountId));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, true, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function hideAccountNumberChangeFormError() {\r\n return (dispatch) => {\r\n dispatch(closeAccountNumberChangeFormError());\r\n };\r\n}\r\n\r\nexport function showAccountNumberChangeModal() {\r\n return (dispatch) => {\r\n dispatch(openAccountNumberChangeModal());\r\n };\r\n}\r\n\r\nexport function hideAccountNumberChangeModal(id) {\r\n return (dispatch) => {\r\n dispatch(closeAccountNumberChangeModal(id));\r\n };\r\n}\r\n\r\nexport function accountCustomerUnlink(accountId, customerId) {\r\n const accountCustomer = [accountId];\r\n\r\n return (dispatch) => {\r\n dispatch(requestUnlinkAccountCustomer());\r\n\r\n const promise = () => ApiService\r\n .unLinkCustomerAccount(customerId, accountCustomer)\r\n .then((response) => {\r\n dispatch(accountDataLoad(accountId));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, true, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function accountFormLink(accountId, formId) {\r\n return (dispatch) => {\r\n dispatch(requestLinkAccountForm());\r\n\r\n const promise = () => ApiService\r\n .linkAccountForm(accountId, formId)\r\n .then((response) => {\r\n dispatch(accountDataLoad(accountId));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, true, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function accountFormUnlink(accountId, formId) {\r\n const formIds = [formId];\r\n\r\n return (dispatch) => {\r\n dispatch(requestUnlinkAccountForm());\r\n\r\n const promise = () => ApiService\r\n .unLinkAccountForm(accountId, formIds)\r\n .then((response) => {\r\n dispatch(receiveUnlinkAccountForm());\r\n dispatch(accountDataLoad(accountId));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectUnlinkAccountForm, false));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function showUnlinkFormModal() {\r\n return (dispatch) => {\r\n dispatch(openUnlinkFormModal());\r\n };\r\n}\r\n\r\nexport function hideUnlinkFormModal() {\r\n return (dispatch) => {\r\n dispatch(closeUnlinkFormModal());\r\n };\r\n}\r\n\r\nexport function processAccountNumberChange(data) {\r\n const formData = new FormData();\r\n formData.append('newAccountNumber', data.newNumber);\r\n\r\n return (dispatch) => {\r\n const promise = () => ApiService\r\n .updateAccountNumber(data.id, formData)\r\n .then((response) => {\r\n dispatch(hideAccountNumberChangeModal(response.data));\r\n if (response.data === true || response.data === false) {\r\n dispatch(accountDataLoad(data.id));\r\n }\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, null, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function showLinkToImyStructureConfirmModal(targetWhsLinkAccount) {\r\n return (dispatch) => {\r\n dispatch(openLinkToImyStructureConfirmModal(targetWhsLinkAccount));\r\n };\r\n}\r\n\r\nexport function hideLinkToImyStructureConfirmModal() {\r\n return (dispatch) => {\r\n dispatch(closeLinkToImyStructureConfirmModal());\r\n };\r\n}\r\n\r\nexport function linkAccountToImyStructure(accountId, accountIdToLinkTo) {\r\n return (dispatch) => {\r\n dispatch(linkAccountToImyStructureRequest());\r\n\r\n const promise = () => ApiService\r\n .linkAccountToImyStructure(accountId, accountIdToLinkTo)\r\n .then((response) => {\r\n dispatch(receiveLinkAccountToImyStructure(response.data));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectLinkAccountToImyStructure, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_ACCOUNTS_REQUEST = 'GET_ACCOUNTS_REQUEST';\r\nexport const GET_ACCOUNTS_SUCCESS = 'GET_ACCOUNTS_SUCCESS';\r\nexport const GET_ACCOUNTS_FAILURE = 'GET_ACCOUNTS_FAILURE';\r\n\r\nfunction requestGetAccounts() {\r\n return {\r\n type: GET_ACCOUNTS_REQUEST,\r\n isGettingAccounts: true\r\n };\r\n}\r\n\r\nfunction receiveGetAccounts(accounts, accountsCount) {\r\n return {\r\n type: GET_ACCOUNTS_SUCCESS,\r\n isGettingAccounts: false,\r\n accounts,\r\n accountsCount\r\n };\r\n}\r\n\r\nfunction rejectGetAccounts() {\r\n return {\r\n type: GET_ACCOUNTS_FAILURE,\r\n isGettingAccounts: false\r\n };\r\n}\r\n\r\nexport function getAccounts(pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected) {\r\n return (dispatch) => {\r\n dispatch(requestGetAccounts());\r\n const promise = () => ApiService\r\n .getAccounts(pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected)\r\n .then((response) => {\r\n dispatch(receiveGetAccounts(response.data.items, response.data.totalCount));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectGetAccounts, true));\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n\r\nexport function getAccountsByObject(requestObject) {\r\n return getAccounts(\r\n requestObject.pageNumber,\r\n requestObject.pageSize,\r\n requestObject.totalLimit,\r\n requestObject.sortByField,\r\n requestObject.sortDirection,\r\n requestObject.filterList,\r\n requestObject.searchQuery,\r\n requestObject.legalEntity,\r\n requestObject.legalEntitySelected,\r\n requestObject.accountNumber,\r\n requestObject.accountNumberSelected\r\n );\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { accountDataLoad } from './manageAccount';\r\n\r\nexport const OPEN_UPDATE_DUAL_FORM_STATUS_MODAL = 'OPEN_UPDATE_DUAL_FORM_STATUS_MODAL';\r\nexport const CLOSE_UPDATE_DUAL_FORM_STATUS_MODAL = 'CLOSE_UPDATE_DUAL_FORM_STATUS_MODAL';\r\nexport const REQUEST_UPDATE_DUAL_FORM_STATUS = 'REQUEST_UPDATE_DUAL_FORM_STATUS';\r\nexport const RECIEVE_UPDATE_DUAL_FORM_STATUS = 'RECIEVE_UPDATE_DUAL_FORM_STATUS';\r\nexport const UPDATE_DUAL_FORM_STATUS_FAILURE = 'UPDATE_DUAL_FORM_STATUS_FAILURE';\r\n\r\nfunction openUpdateDualFormStatusModal(checkStatus, accountId, accountNumber) {\r\n return {\r\n type: OPEN_UPDATE_DUAL_FORM_STATUS_MODAL,\r\n showModal: true,\r\n dualFormCheckStatus: checkStatus,\r\n dualFormSelectedAccountId: accountId,\r\n dualFormSeletedAccountNumber: accountNumber\r\n };\r\n}\r\n\r\nfunction closeUpdateDualFormStatusModal() {\r\n return {\r\n type: CLOSE_UPDATE_DUAL_FORM_STATUS_MODAL,\r\n showModal: false\r\n };\r\n}\r\n\r\nfunction request() {\r\n return {\r\n type: REQUEST_UPDATE_DUAL_FORM_STATUS\r\n };\r\n}\r\n\r\nfunction receive() {\r\n return {\r\n type: RECIEVE_UPDATE_DUAL_FORM_STATUS,\r\n updateDualFormStatusError: null\r\n };\r\n}\r\n\r\nfunction reject(updateDualFormStatusError) {\r\n return {\r\n type: UPDATE_DUAL_FORM_STATUS_FAILURE,\r\n updateDualFormStatusError: updateDualFormStatusError.message\r\n };\r\n}\r\n\r\nexport function showUpdateDualFormStatusModal(checkStatus, accountId, accountNumber) {\r\n return (dispatch) => {\r\n dispatch(openUpdateDualFormStatusModal(checkStatus, accountId, accountNumber));\r\n };\r\n}\r\n\r\nexport function hideUpdateDualFormStatusModal() {\r\n return (dispatch) => {\r\n dispatch(closeUpdateDualFormStatusModal());\r\n };\r\n}\r\n\r\nexport function updateDualFormStatus(checkStatus, accountId) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .updateDualFormStatus(accountId, checkStatus)\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n dispatch(closeUpdateDualFormStatusModal());\r\n dispatch(accountDataLoad(accountId));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const SAVE_ACCOUNT_COMMENTS_REQUEST = 'SAVE_ACCOUNT_COMMENTS_REQUEST';\r\nexport const SAVE_ACCOUNT_COMMENTS_SUCCESS = 'SAVE_ACCOUNT_COMMENTS_SUCCESS';\r\nexport const SAVE_ACCOUNT_COMMENTS_FAILURE = 'SAVE_ACCOUNT_COMMENTS_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: SAVE_ACCOUNT_COMMENTS_REQUEST,\r\n isSavingAccount: true,\r\n };\r\n}\r\n\r\nfunction receive(savedComment) {\r\n return {\r\n type: SAVE_ACCOUNT_COMMENTS_SUCCESS,\r\n isSavingAccount: false,\r\n savedComment,\r\n accountError: null\r\n };\r\n}\r\n\r\nfunction reject(accountError) {\r\n return {\r\n type: SAVE_ACCOUNT_COMMENTS_FAILURE,\r\n isSavingAccount: false,\r\n accountError\r\n };\r\n}\r\n\r\nexport function saveAccountComments(accountId, newComment) {\r\n const formData = new FormData();\r\n formData.append('newComment', newComment);\r\n\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .saveAccountComments(accountId, formData)\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n toastr.success('Success', 'Comments saved successfully');\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { toastr } from 'react-redux-toastr';\r\n\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const EDIT_ACCOUNT_NAME = 'EDIT_ACCOUNT_NAME';\r\nexport const EDIT_ACCOUNT_NAME_CANCEL = 'EDIT_ACCOUNT_NAME_CANCEL';\r\nexport const UPDATE_ACCOUNT_NAME_REQUEST = 'UPDATE_ACCOUNT_NAME_REQUEST';\r\nexport const UPDATE_ACCOUNT_NAME_SUCCESS = 'UPDATE_ACCOUNT_NAME_SUCCESS';\r\nexport const UPDATE_ACCOUNT_NAME_ERROR = 'UPDATE_ACCOUNT_NAME_ERROR';\r\n\r\nfunction edit() {\r\n return {\r\n type: EDIT_ACCOUNT_NAME\r\n };\r\n}\r\n\r\nfunction cancelEdit() {\r\n return {\r\n type: EDIT_ACCOUNT_NAME_CANCEL\r\n };\r\n}\r\n\r\nfunction request() {\r\n return {\r\n type: UPDATE_ACCOUNT_NAME_REQUEST\r\n };\r\n}\r\n\r\nfunction receive(accountName) {\r\n return {\r\n type: UPDATE_ACCOUNT_NAME_SUCCESS,\r\n accountName\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: UPDATE_ACCOUNT_NAME_ERROR\r\n };\r\n}\r\n\r\nexport function editAccountName() {\r\n return (dispatch) => {\r\n dispatch(edit());\r\n };\r\n}\r\n\r\nexport function cancelEditAccountName() {\r\n return (dispatch) => {\r\n dispatch(cancelEdit());\r\n };\r\n}\r\n\r\nexport function updateAccountName(accountId, accountName) {\r\n const formData = new FormData();\r\n formData.append('accountName', accountName);\r\n\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .updateAccountName(accountId, formData)\r\n .then(() => {\r\n dispatch(receive(accountName));\r\n toastr.success('Success', 'Account name updated successfully');\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_ACCOUNT_LINKED_IMY_STRUCTURE_REQUEST = 'GET_ACCOUNT_LINKED_IMY_STRUCTURE_REQUEST';\r\nexport const GET_ACCOUNT_LINKED_IMY_STRUCTURE_SUCCESS = 'GET_ACCOUNT_LINKED_IMY_STRUCTURE_SUCCESS';\r\nexport const GET_ACCOUNT_LINKED_IMY_STRUCTURE_FAILURE = 'GET_ACCOUNT_LINKED_IMY_STRUCTURE_FAILURE';\r\nexport const GET_ACCOUNT_LINKED_IMY_STRUCTURE_CLEAR = 'GET_ACCOUNT_LINKED_IMY_STRUCTURE_CLEAR';\r\n\r\nfunction request() {\r\n return {\r\n type: GET_ACCOUNT_LINKED_IMY_STRUCTURE_REQUEST,\r\n };\r\n}\r\n\r\nfunction receive(linkedImyStructure) {\r\n return {\r\n type: GET_ACCOUNT_LINKED_IMY_STRUCTURE_SUCCESS,\r\n linkedImyStructure\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: GET_ACCOUNT_LINKED_IMY_STRUCTURE_FAILURE,\r\n };\r\n}\r\n\r\nfunction clear() {\r\n return {\r\n type: GET_ACCOUNT_LINKED_IMY_STRUCTURE_CLEAR,\r\n };\r\n}\r\n\r\nexport function clearAccountLinkedImyStructure() {\r\n return (dispatch) => {\r\n dispatch(clear());\r\n };\r\n}\r\n\r\nexport function getAccountLinkedImyStructure(id) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n const promise = () => ApiService\r\n .getAccountLinkedImyStructure(id)\r\n .then((response) => {\r\n if (response.data) {\r\n dispatch(receive(response.data));\r\n }\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const LOAD_CUSTOMER = 'LOAD_CUSTOMER';\r\nexport const LOAD_CUSTOMER_DATA = 'LOAD_CUSTOMER_DATA';\r\nexport const LOAD_CUSTOMER_DATA_FAILURE = 'LOAD_CUSTOMER_DATA_FAILURE';\r\nexport const LINK_CUSTOMER_ACCOUNT = 'LINK_CUSTOMER_ACCOUNT';\r\nexport const UNLINK_CUSTOMER_ACCOUNT = 'UNLINK_CUSTOMER_ACCOUNT';\r\nexport const OPEN_CUSTOMERID_CHANGE_FORM_MODAL = 'OPEN_CUSTOMERID_CHANGE_FORM_MODAL';\r\nexport const CLOSE_CUSTOMERID_CHANGE_FORM_MODAL = 'CLOSE_CUSTOMERID_CHANGE_FORM_MODAL';\r\nexport const CLOSE_CUSTOMERID_CHANGE_FORM_ERROR = 'CLOSE_CUSTOMERID_CHANGE_FORM_ERROR';\r\nexport const CLEAR_CHANGECUSTOMERID_REQUEST = 'CLEAR_CHANGECUSTOMERID_REQUEST';\r\nexport const CLEAR_CUSTOMER_REQUEST = 'CLEAR_CUSTOMER_REQUEST';\r\n\r\nfunction requestLoadCustomer(customer) {\r\n return {\r\n type: LOAD_CUSTOMER,\r\n storeCustomer: customer\r\n };\r\n}\r\n\r\nfunction requestLoadCustomerData() {\r\n return {\r\n type: LOAD_CUSTOMER_DATA,\r\n };\r\n}\r\n\r\nfunction requestLinkCustomerAccount() {\r\n return {\r\n type: LINK_CUSTOMER_ACCOUNT,\r\n };\r\n}\r\n\r\nfunction requestUnlinkCustomerAccount() {\r\n return {\r\n type: UNLINK_CUSTOMER_ACCOUNT,\r\n };\r\n}\r\n\r\nfunction openCustomerIdChangeModal() {\r\n return {\r\n type: OPEN_CUSTOMERID_CHANGE_FORM_MODAL,\r\n isCustomerIdChangeModalShown: true\r\n };\r\n}\r\n\r\nfunction closeCustomerIdChangeModal(id) {\r\n if (id === true || id === false) {\r\n return {\r\n type: CLOSE_CUSTOMERID_CHANGE_FORM_MODAL,\r\n isCustomerIdChangeModalShown: false\r\n };\r\n }\r\n return {\r\n type: CLOSE_CUSTOMERID_CHANGE_FORM_MODAL,\r\n isCustomerIdChangeModalShown: false,\r\n returnedExistingCustomerId: id\r\n };\r\n}\r\n\r\nfunction closeCustomerIdChangeFormError() {\r\n return {\r\n type: CLOSE_CUSTOMERID_CHANGE_FORM_ERROR,\r\n isCustomerIdChangeModalShown: true\r\n };\r\n}\r\n\r\nexport function clearCompletedCustomerIdChange() {\r\n return {\r\n type: CLEAR_CHANGECUSTOMERID_REQUEST\r\n };\r\n}\r\n\r\nexport function clearCustomer() {\r\n return {\r\n type: CLEAR_CUSTOMER_REQUEST\r\n };\r\n}\r\n\r\nfunction rejectCustomerDataLoad(customerDataLoadError) {\r\n return {\r\n type: LOAD_CUSTOMER_DATA_FAILURE,\r\n customerDataLoadError\r\n };\r\n}\r\n\r\nexport function customerDataLoad(customerId) {\r\n return (dispatch) => {\r\n dispatch(requestLoadCustomerData());\r\n\r\n const promise = () => ApiService\r\n .getCustomerData(customerId)\r\n .then((response) => {\r\n dispatch(requestLoadCustomer(response.data));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectCustomerDataLoad));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function clearCustomerData() {\r\n return dispatch => dispatch(clearCustomer());\r\n}\r\n\r\nexport function customerAccountLink(customerId, addedAccountData) {\r\n return (dispatch) => {\r\n dispatch(requestLinkCustomerAccount());\r\n\r\n const customerAccount = {\r\n CustomerId: customerId,\r\n Capacity: addedAccountData.capacity,\r\n ValidFrom: addedAccountData.validFrom,\r\n ValidUntil: addedAccountData.validUntil,\r\n Account: {\r\n id: addedAccountData.accountNumber ? addedAccountData.accountNumber.id : 0,\r\n accountNumber: addedAccountData.accountNumber ? addedAccountData.accountNumber.value : ''\r\n }\r\n };\r\n\r\n const customerAccounts = [customerAccount];\r\n const promise = () => ApiService\r\n .linkCustomerAccount(customerId, customerAccounts)\r\n .then((response) => {\r\n dispatch(customerDataLoad(customerId));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, true, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function customerAccountUnlink(customerId, accountId) {\r\n const customerAccounts = [accountId];\r\n\r\n return (dispatch) => {\r\n dispatch(requestUnlinkCustomerAccount());\r\n\r\n const promise = () => ApiService\r\n .unLinkCustomerAccount(customerId, customerAccounts)\r\n .then((response) => {\r\n dispatch(customerDataLoad(customerId));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, true, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function hideCustomerIdChangeFormError() {\r\n return (dispatch) => {\r\n dispatch(closeCustomerIdChangeFormError());\r\n };\r\n}\r\n\r\nexport function showCustomerIdChangeModal() {\r\n return (dispatch) => {\r\n dispatch(openCustomerIdChangeModal());\r\n };\r\n}\r\n\r\nexport function hideCustomerIdChangeModal(id) {\r\n return (dispatch) => {\r\n dispatch(closeCustomerIdChangeModal(id));\r\n };\r\n}\r\n\r\nexport function processCustomerIdChange(data) {\r\n const formData = new FormData();\r\n formData.append('newCustomerId', data.newId);\r\n\r\n return (dispatch) => {\r\n const promise = () => ApiService\r\n .updateCustomerId(data.id, formData)\r\n .then((response) => {\r\n dispatch(hideCustomerIdChangeModal(response.data));\r\n if (response.data === true || response.data === false) {\r\n dispatch(customerDataLoad(data.id));\r\n }\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, null, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\n\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_CUSTOMERS_REQUEST = 'GET_CUSTOMERS_REQUEST';\r\nexport const GET_CUSTOMERS_SUCCESS = 'GET_CUSTOMERS_SUCCESS';\r\nexport const GET_CUSTOMERS_FAILURE = 'GET_CUSTOMERS_FAILURE';\r\n\r\nfunction requestGetCustomers() {\r\n return {\r\n type: GET_CUSTOMERS_REQUEST,\r\n isGettingCustomers: true\r\n };\r\n}\r\n\r\nfunction receiveGetCustomers(customers, customersCount) {\r\n return {\r\n type: GET_CUSTOMERS_SUCCESS,\r\n isGettingCustomers: false,\r\n customers,\r\n customersCount\r\n };\r\n}\r\n\r\nfunction rejectGetCustomers() {\r\n return {\r\n type: GET_CUSTOMERS_FAILURE,\r\n isGettingCustomers: false\r\n };\r\n}\r\n\r\nexport function getCustomers(pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, searchQuery, legalEntity, legalEntitySelected, accountNumberSelected, accountNumber, customer, customerSelected) {\r\n return (dispatch) => {\r\n dispatch(requestGetCustomers());\r\n const promise = () => ApiService\r\n .getCustomers(pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, searchQuery, legalEntity, legalEntitySelected, accountNumberSelected, accountNumber, customer, customerSelected)\r\n .then((response) => {\r\n dispatch(receiveGetCustomers(response.data.items, response.data.totalCount));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectGetCustomers, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function getCustomersByObject(requestObject) {\r\n return getCustomers(\r\n requestObject.pageNumber,\r\n requestObject.pageSize,\r\n requestObject.totalLimit,\r\n requestObject.sortByField,\r\n requestObject.sortDirection,\r\n requestObject.filterList,\r\n requestObject.searchQuery,\r\n requestObject.legalEntity,\r\n requestObject.legalEntitySelected,\r\n requestObject.accountNumberSelected,\r\n requestObject.accountNumber,\r\n requestObject.customer,\r\n requestObject.customerSelected\r\n );\r\n}\r\n","import { ApiService } from 'services';\r\n\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_CUSTOMER_DETAILS_REQUEST = 'GET_CUSTOMER_DETAILS_REQUEST';\r\nexport const GET_CUSTOMER_DETAILS_SUCCESS = 'GET_CUSTOMER_DETAILS_SUCCESS';\r\nexport const GET_CUSTOMER_DETAILS_FAILURE = 'GET_CUSTOMER_DETAILS_FAILURE';\r\nexport const GET_CUSTOMER_DETAILS_CLEAR = 'GET_CUSTOMER_DETAILS_CLEAR';\r\n\r\nfunction request(customerId, rowId) {\r\n return {\r\n type: GET_CUSTOMER_DETAILS_REQUEST,\r\n rowId,\r\n customerId\r\n };\r\n}\r\n\r\nfunction receive(customerDetails, customerId, rowId) {\r\n return {\r\n type: GET_CUSTOMER_DETAILS_SUCCESS,\r\n customerId,\r\n rowId,\r\n customerDetails\r\n };\r\n}\r\n\r\nfunction reject(customerId, rowId, getCustomerDetailsError) {\r\n return {\r\n type: GET_CUSTOMER_DETAILS_FAILURE,\r\n customerId,\r\n rowId,\r\n getCustomerDetailsError\r\n };\r\n}\r\n\r\nfunction clear(customerId, rowId) {\r\n return {\r\n type: GET_CUSTOMER_DETAILS_CLEAR,\r\n customerId,\r\n rowId\r\n };\r\n}\r\n\r\nexport function getCustomerDetails(customerId, accountId, rowId) {\r\n return (dispatch) => {\r\n dispatch(request(customerId, rowId));\r\n return ApiService\r\n .getCustomerDetails(customerId, accountId)\r\n .then((response) => {\r\n dispatch(receive(response.data, customerId, rowId));\r\n }).catch((error) => {\r\n if (error && error.response) {\r\n error.response.data = { code: error.response.status, message: 'Sorry, we were unable to retrieve your customer details at this time, please try again later' };\r\n }\r\n dispatch(handleException(error, null, true));\r\n dispatch(reject(customerId, rowId, error.response.data));\r\n });\r\n };\r\n}\r\n\r\nexport function clearCustomerDetails(customerId, rowId) {\r\n return (dispatch) => {\r\n dispatch(clear(customerId, rowId));\r\n };\r\n}\r\n","import React from 'react';\r\nimport { toastr } from 'react-redux-toastr';\r\nimport { Link } from 'react-router-dom';\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { reset } from 'redux-form';\r\n\r\nexport const ADD_CUSTOMER_ACCOUNT_REQUEST = 'ADD_CUSTOMER_ACCOUNT_REQUEST';\r\nexport const ADD_CUSTOMER_ACCOUNT_SUCCESS = 'ADD_CUSTOMER_ACCOUNT_SUCCESS';\r\nexport const ADD_CUSTOMER_ACCOUNT_FAILURE = 'ADD_CUSTOMER_ACCOUNT_FAILURE';\r\nexport const ADD_CUSTOMER_ACCOUNT_CLEAR_CUSTOMER = 'ADD_CUSTOMER_ACCOUNT_CLEAR_CUSTOMER';\r\nexport const ADD_CUSTOMER_ACCOUNT_CLEAR_ACCOUNT = 'ADD_CUSTOMER_ACCOUNT_CLEAR_ACCOUNT';\r\n\r\nfunction request() {\r\n return {\r\n type: ADD_CUSTOMER_ACCOUNT_REQUEST,\r\n isAddingCustomerAccount: true,\r\n };\r\n}\r\n\r\nfunction clear() {\r\n toastr.removeByType('confirm');\r\n return {\r\n type: ADD_CUSTOMER_ACCOUNT_SUCCESS,\r\n isAddingCustomerAccount: false,\r\n addCustomerAccountErrors: []\r\n };\r\n}\r\n\r\nfunction requestClearAccount() {\r\n return {\r\n type: ADD_CUSTOMER_ACCOUNT_CLEAR_ACCOUNT\r\n };\r\n}\r\n\r\nfunction requestClearCustomer() {\r\n return {\r\n type: ADD_CUSTOMER_ACCOUNT_CLEAR_CUSTOMER\r\n };\r\n}\r\n\r\nfunction reject(addCustomerAccountErrors) {\r\n return {\r\n type: ADD_CUSTOMER_ACCOUNT_FAILURE,\r\n isAddingCustomerAccount: false,\r\n addCustomerAccountErrors\r\n };\r\n}\r\n\r\nfunction ErrorItem(error) {\r\n return error &&
  • { error }
  • ;\r\n}\r\n\r\nconst ResultToastr = (result) => {\r\n const { success, errors, customerDbId, accountDbId, customerId, accountNumber, newCustomer, newAccount } = result;\r\n const idsGiven = customerDbId > 0 && accountDbId > 0;\r\n return (
    \r\n { (!result || (!success && !idsGiven)) &&

    Missing/incorrect data

    }\r\n { (success || (idsGiven)) &&

    Success

    }\r\n
    \r\n { (success || idsGiven) &&

    \r\n Customer:{'\\u00A0'}\r\n {customerId}\r\n {'\\u00A0'}and Account:{'\\u00A0'}\r\n {accountNumber}\r\n {'\\u00A0'}successfully { newCustomer || newAccount ? 'created &' : '' } linked.\r\n

    }\r\n { idsGiven && errors &&

    Notices:

    }\r\n { (!success || errors) &&

    \r\n { errors && errors.split(/\\n/).map(ErrorItem) }\r\n

    }\r\n
    );\r\n};\r\n\r\nexport function clearForm(selectionValue) {\r\n return (dispatch) => {\r\n dispatch(clear(selectionValue));\r\n dispatch(reset('addCustomerAccount'));\r\n };\r\n}\r\n\r\nexport function clearSelectedCustomer() {\r\n return (dispatch) => {\r\n dispatch(requestClearCustomer());\r\n };\r\n}\r\n\r\nexport function clearSelectedAccount() {\r\n return (dispatch) => {\r\n dispatch(requestClearAccount());\r\n };\r\n}\r\n\r\nexport function addCustomerAccount(data) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .addCustomerAccount(data)\r\n .then((response) => {\r\n const toastOptions = {\r\n id: 'add-confirm',\r\n disableCancel: true,\r\n component: () => ()\r\n };\r\n if (response.data) {\r\n if (response.data.success === true) {\r\n dispatch(clearForm());\r\n }\r\n toastOptions.component = () => ();\r\n }\r\n toastr.confirm(null, toastOptions);\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, false));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_BASIC_CUSTOMER_REQUEST = 'GET_BASIC_CUSTOMER_REQUEST';\r\nexport const GET_BASIC_CUSTOMER_SUCCESS = 'GET_BASIC_CUSTOMER_SUCCESS';\r\nexport const GET_BASIC_CUSTOMER_FAILURE = 'GET_BASIC_CUSTOMER_FAILURE';\r\n\r\nfunction requestGetBasicCustomer() {\r\n return {\r\n type: GET_BASIC_CUSTOMER_REQUEST,\r\n isGettingBasicCustomer: true\r\n };\r\n}\r\n\r\nfunction receiveGetBasicCustomer(basicCustomer) {\r\n return {\r\n type: GET_BASIC_CUSTOMER_SUCCESS,\r\n isGettingBasicCustomer: false,\r\n basicCustomer\r\n };\r\n}\r\n\r\nfunction rejectGetBasicCustomer() {\r\n return {\r\n type: GET_BASIC_CUSTOMER_FAILURE,\r\n isGettingBasicCustomer: false\r\n };\r\n}\r\n\r\nexport function getBasicCustomer(customerId) {\r\n return (dispatch) => {\r\n dispatch(requestGetBasicCustomer());\r\n\r\n const promise = () => ApiService\r\n .getBasicCustomer(customerId)\r\n .then((response) => {\r\n dispatch(receiveGetBasicCustomer(response.data));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectGetBasicCustomer));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_BASIC_ACCOUNT_REQUEST = 'GET_BASIC_ACCOUNT_REQUEST';\r\nexport const GET_BASIC_ACCOUNT_SUCCESS = 'GET_BASIC_ACCOUNT_SUCCESS';\r\nexport const GET_BASIC_ACCOUNT_FAILURE = 'GET_BASIC_ACCOUNT_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: GET_BASIC_ACCOUNT_REQUEST,\r\n isGettingBasicAccount: true\r\n };\r\n}\r\n\r\nfunction receive(basicAccount) {\r\n return {\r\n type: GET_BASIC_ACCOUNT_SUCCESS,\r\n isGettingBasicAccount: false,\r\n basicAccount\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: GET_BASIC_ACCOUNT_FAILURE,\r\n isGettingBasicAccount: false\r\n };\r\n}\r\n\r\nexport function getBasicAccount(accountId) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .getBasicAccount(accountId)\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { toastr } from 'react-redux-toastr';\r\n\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const EDIT_CUSTOMER = 'EDIT_CUSTOMER';\r\nexport const EDIT_CUSTOMER_CANCEL = 'EDIT_CUSTOMER_CANCEL';\r\nexport const UPDATE_CUSTOMER_REQUEST = 'UPDATE_CUSTOMER_REQUEST';\r\nexport const UPDATE_CUSTOMER_SUCCESS = 'UPDATE_CUSTOMER_SUCCESS';\r\nexport const UPDATE_CUSTOMER_ERROR = 'UPDATE_CUSTOMER_ERROR';\r\n\r\nfunction edit() {\r\n return {\r\n type: EDIT_CUSTOMER\r\n };\r\n}\r\n\r\nfunction cancelEdit() {\r\n return {\r\n type: EDIT_CUSTOMER_CANCEL\r\n };\r\n}\r\n\r\nfunction request() {\r\n return {\r\n type: UPDATE_CUSTOMER_REQUEST\r\n };\r\n}\r\n\r\nfunction receive(emailAddress) {\r\n return {\r\n type: UPDATE_CUSTOMER_SUCCESS,\r\n emailAddress\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: UPDATE_CUSTOMER_ERROR\r\n };\r\n}\r\n\r\nexport function editCustomer() {\r\n return (dispatch) => {\r\n dispatch(edit());\r\n };\r\n}\r\n\r\nexport function cancelEditCustomer() {\r\n return (dispatch) => {\r\n dispatch(cancelEdit());\r\n };\r\n}\r\n\r\nexport function updateCustomer(customerId, emailAddress) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .updateCustomer(customerId, emailAddress)\r\n .then(() => {\r\n dispatch(receive(emailAddress));\r\n toastr.success('Success', 'Email address updated successfully');\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const OPEN_CUSTOMER_ADDRESSES_MODAL = 'OPEN_CUSTOMER_ADDRESSES_MODAL';\r\nexport const CLOSE_CUSTOMER_ADDRESSES_MODAL = 'CLOSE_CUSTOMER_ADDRESSES_MODAL';\r\nexport const CHANGE_PRIMARY_ADDRESS_REQUEST = 'CHANGE_PRIMARY_ADDRESS_REQUEST';\r\nexport const CHANGE_PRIMARY_ADDRESS_SUCCESS = 'CHANGE_PRIMARY_ADDRESS_SUCCESS';\r\nexport const CHANGE_PRIMARY_ADDRESS_FAILURE = 'CHANGE_PRIMARY_ADDRESS_FAILURE';\r\n\r\nfunction open(addressType) {\r\n return {\r\n type: OPEN_CUSTOMER_ADDRESSES_MODAL,\r\n addressType\r\n };\r\n}\r\n\r\nfunction close() {\r\n return {\r\n type: CLOSE_CUSTOMER_ADDRESSES_MODAL\r\n };\r\n}\r\n\r\nfunction request() {\r\n return {\r\n type: CHANGE_PRIMARY_ADDRESS_REQUEST,\r\n };\r\n}\r\n\r\nfunction receive(data) {\r\n return {\r\n type: CHANGE_PRIMARY_ADDRESS_SUCCESS,\r\n addresses: data\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: CHANGE_PRIMARY_ADDRESS_FAILURE,\r\n };\r\n}\r\n\r\nexport function openCustomerAddressesModal(addressType) {\r\n return (dispatch) => {\r\n dispatch(open(addressType));\r\n };\r\n}\r\n\r\nexport function closeCustomerAddressesModal() {\r\n return (dispatch) => {\r\n dispatch(close());\r\n };\r\n}\r\n\r\nexport function changePrimaryAddress(customerId, addressId) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .changePrimaryAddress(customerId, addressId)\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const OPEN_CUSTOMER_JOTRS_MODAL = 'OPEN_CUSTOMER_JOTRS_MODAL';\r\nexport const CLOSE_CUSTOMER_JOTRS_MODAL = 'CLOSE_CUSTOMER_JOTRS_MODAL';\r\nexport const CHANGE_PRIMARY_JOTR_REQUEST = 'CHANGE_PRIMARY_JOTR_REQUEST';\r\nexport const CHANGE_PRIMARY_JOTR_SUCCESS = 'CHANGE_PRIMARY_JOTR_SUCCESS';\r\nexport const CHANGE_PRIMARY_JOTR_FAILURE = 'CHANGE_PRIMARY_JOTR_FAILURE';\r\nexport const CHANGE_WHD_JOTR_REQUEST = 'CHANGE_WHD_JOTR_REQUEST';\r\nexport const CHANGE_WHD_JOTR_SUCCESS = 'CHANGE_WHD_JOTR_SUCCESS';\r\nexport const CHANGE_WHD_JOTR_FAILURE = 'CHANGE_WHD_JOTR_FAILURE';\r\n\r\nfunction open() {\r\n return {\r\n type: OPEN_CUSTOMER_JOTRS_MODAL,\r\n };\r\n}\r\n\r\nfunction close() {\r\n return {\r\n type: CLOSE_CUSTOMER_JOTRS_MODAL\r\n };\r\n}\r\n\r\nfunction requestPrimary() {\r\n return {\r\n type: CHANGE_PRIMARY_JOTR_REQUEST,\r\n };\r\n}\r\n\r\nfunction receivePrimary(data) {\r\n return {\r\n type: CHANGE_PRIMARY_JOTR_SUCCESS,\r\n jotrs: data\r\n };\r\n}\r\n\r\nfunction rejectPrimary() {\r\n return {\r\n type: CHANGE_PRIMARY_JOTR_FAILURE,\r\n };\r\n}\r\n\r\nfunction requestWhd() {\r\n return {\r\n type: CHANGE_WHD_JOTR_REQUEST,\r\n };\r\n}\r\n\r\nfunction receiveWhd(data) {\r\n return {\r\n type: CHANGE_WHD_JOTR_SUCCESS,\r\n jotrs: data\r\n };\r\n}\r\n\r\nfunction rejectWhd() {\r\n return {\r\n type: CHANGE_WHD_JOTR_FAILURE,\r\n };\r\n}\r\n\r\nexport function openCustomerJotrsModal() {\r\n return (dispatch) => {\r\n dispatch(open());\r\n };\r\n}\r\n\r\nexport function closeCustomerJotrsModal() {\r\n return (dispatch) => {\r\n dispatch(close());\r\n };\r\n}\r\n\r\nexport function changePrimaryJotr(customerId, jotrId) {\r\n return (dispatch) => {\r\n dispatch(requestPrimary());\r\n\r\n const promise = () => ApiService\r\n .changePrimaryJotr(customerId, jotrId)\r\n .then((response) => {\r\n dispatch(receivePrimary(response.data));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectPrimary, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function changeWhdJotr(customerId, jotrId) {\r\n return (dispatch) => {\r\n dispatch(requestWhd());\r\n\r\n const promise = () => ApiService\r\n .changeWhdJotr(customerId, jotrId)\r\n .then((response) => {\r\n dispatch(receiveWhd(response.data));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectWhd, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const ACCEPT_OVERRIDES_REQUEST = 'ACCEPT_OVERRIDES_REQUEST';\r\nexport const ACCEPT_OVERRIDES_SUCCESS = 'ACCEPT_OVERRIDES_SUCCESS';\r\nexport const ACCEPT_OVERRIDES_FAILURE = 'ACCEPT_OVERRIDES_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: ACCEPT_OVERRIDES_REQUEST,\r\n isSavingValidationOverrides: true,\r\n };\r\n}\r\n\r\nfunction receive(validationResult) {\r\n return {\r\n type: ACCEPT_OVERRIDES_SUCCESS,\r\n isSavingValidationOverrides: false,\r\n validationResult,\r\n validationOverridesError: null\r\n };\r\n}\r\n\r\nfunction reject(validationOverridesError) {\r\n return {\r\n type: ACCEPT_OVERRIDES_FAILURE,\r\n isSavingValidationOverrides: false,\r\n validationOverridesError\r\n };\r\n}\r\n\r\nexport function acceptValidationOverrides(formId, accountId, data) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .acceptValidationOverrides(formId, accountId, data)\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n toastr.success('Success', 'Your validation overrides have been accepted.');\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { push } from 'connected-react-router';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const ACCOUNT_WITHHOLDING_OPEN_MODAL = 'ACCOUNT_WITHHOLDING_OPEN_MODAL';\r\nexport const ACCOUNT_WITHHOLDING_CLOSE_MODAL = 'ACCOUNT_WITHHOLDING_CLOSE_MODAL';\r\nexport const ACCOUNT_WITHHOLDING_REQUEST = 'ACCOUNT_WITHHOLDING_REQUEST';\r\nexport const ACCOUNT_WITHHOLDING_SUCCESS = 'ACCOUNT_WITHHOLDING_SUCCESS';\r\nexport const ACCOUNT_WITHHOLDING_FAILURE = 'ACCOUNT_WITHHOLDING_FAILURE';\r\nexport const IMYTREE_WITHHOLDING_FLAG = 'IMYTREE_WITHHOLDING_FLAG';\r\nexport const POOLED_RATES_OPEN_MODAL = 'POOLED_RATES_OPEN_MODAL';\r\nexport const POOLED_RATES_CLOSE_MODAL = 'POOLED_RATES_CLOSE_MODAL';\r\n\r\nfunction openAccountWithholdingModal() {\r\n return {\r\n type: ACCOUNT_WITHHOLDING_OPEN_MODAL\r\n };\r\n}\r\n\r\nfunction closeAccountWithholdingModalModal() {\r\n return {\r\n type: ACCOUNT_WITHHOLDING_CLOSE_MODAL\r\n };\r\n}\r\n\r\nfunction requestAccountWithholding() {\r\n return {\r\n type: ACCOUNT_WITHHOLDING_REQUEST\r\n };\r\n}\r\n\r\nfunction setImyTreeWithholdingFlag(flag) {\r\n return {\r\n type: IMYTREE_WITHHOLDING_FLAG,\r\n showRate: flag\r\n };\r\n}\r\n\r\nfunction receiveAccountWithholding(accountWithholding) {\r\n return {\r\n type: ACCOUNT_WITHHOLDING_SUCCESS,\r\n accountWithholding\r\n };\r\n}\r\n\r\nfunction rejectAccountWithholding() {\r\n return {\r\n type: ACCOUNT_WITHHOLDING_FAILURE\r\n };\r\n}\r\n\r\nfunction openPooledRatesModal(guid, rates) {\r\n return {\r\n type: POOLED_RATES_OPEN_MODAL,\r\n pooledRates: rates,\r\n selectedPooledAccount: guid\r\n };\r\n}\r\n\r\nfunction closePooledRatesModal() {\r\n return {\r\n type: POOLED_RATES_CLOSE_MODAL\r\n };\r\n}\r\n\r\n// In ideal scenario it would be preferrable to have this abstracted out between form and customer\r\nfunction getWithholdingRates(formId, customerId, accountId) {\r\n return (dispatch) => {\r\n dispatch(requestAccountWithholding());\r\n const promise = () => ApiService\r\n .getDetectedWithholdingRates(formId, customerId, accountId)\r\n .then(response => dispatch(receiveAccountWithholding(response.data)))\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectAccountWithholding, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function getImyTreeWithholdingRates() {\r\n return (dispatch) => {\r\n dispatch(setImyTreeWithholdingFlag(true));\r\n };\r\n}\r\n\r\nexport function resetImyTreeWithholdingRatesFlag() {\r\n return (dispatch) => {\r\n dispatch(setImyTreeWithholdingFlag(false));\r\n };\r\n}\r\n\r\nexport function showImyTreeWithholding(accountId, versionNumber) {\r\n return (dispatch) => {\r\n dispatch(getImyTreeWithholdingRates());\r\n if (typeof versionNumber !== 'undefined' && versionNumber !== null) {\r\n return dispatch(push(`/w8imystructure/${ accountId }/${ versionNumber }`));\r\n }\r\n return dispatch(push(`/w8imystructure/${ accountId }`));\r\n };\r\n}\r\n\r\nexport function hideImyTreeWithholding() {\r\n return (dispatch) => {\r\n dispatch(resetImyTreeWithholdingRatesFlag());\r\n };\r\n}\r\n\r\nexport function showAccountWithholdingModal(formId, customerId, accountId) {\r\n return (dispatch) => {\r\n dispatch(getWithholdingRates(formId, customerId, accountId));\r\n return dispatch(openAccountWithholdingModal());\r\n };\r\n}\r\n\r\nexport function hideAccountWithholdingModal() {\r\n return (dispatch) => {\r\n dispatch(closeAccountWithholdingModalModal());\r\n };\r\n}\r\n\r\nexport function switchAccountForWithholding(accountId) {\r\n return (dispatch) => {\r\n dispatch(getWithholdingRates(null, null, accountId));\r\n };\r\n}\r\n\r\nexport function showPooledRatesModal(guid, rates) {\r\n return (dispatch) => {\r\n dispatch(openPooledRatesModal(guid, rates));\r\n };\r\n}\r\n\r\nexport function hidePooledRatesModal() {\r\n return (dispatch) => {\r\n dispatch(closePooledRatesModal());\r\n };\r\n}\r\n","export const OPEN_ADD_FORM_MODAL = 'OPEN_ADD_FORM_MODAL';\r\nexport const CLOSE_ADD_FORM_MODAL = 'CLOSE_ADD_FORM_MODAL';\r\n\r\nfunction openAddFormModal(imyTier, addImyLayer) {\r\n return {\r\n type: OPEN_ADD_FORM_MODAL,\r\n imyTier,\r\n addImyLayer,\r\n isAddFormModalShown: true,\r\n results: null\r\n };\r\n}\r\n\r\nfunction closeAddFormModal() {\r\n return {\r\n type: CLOSE_ADD_FORM_MODAL,\r\n imyTier: null,\r\n addImyLayer: false,\r\n isAddFormModalShown: false,\r\n isAddingForm: false,\r\n addingFormResults: null\r\n };\r\n}\r\n\r\nexport function showAddFormModal(imyTier, addImyLayer) {\r\n return (dispatch) => {\r\n dispatch(openAddFormModal(imyTier, addImyLayer));\r\n };\r\n}\r\n\r\nexport function hideAddFormModal() {\r\n return (dispatch) => {\r\n dispatch(closeAddFormModal());\r\n };\r\n}\r\n","import { push } from 'connected-react-router';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { hideAddFormModal } from './addFormModal';\r\n\r\nexport const ADD_FORM_REQUEST = 'ADD_FORM_REQUEST';\r\nexport const ADD_FORM_SUCCESS = 'ADD_FORM_SUCCESS';\r\nexport const ADD_FORM_FAILURE = 'ADD_FORM_FAILURE';\r\nexport const RESET_ADDING_FORM = 'RESET_ADDING_FORM';\r\n\r\nfunction requestAddForm() {\r\n return {\r\n type: ADD_FORM_REQUEST,\r\n isAddingForm: true\r\n };\r\n}\r\n\r\nfunction receiveAddForm(addingFormResults) {\r\n return {\r\n type: ADD_FORM_SUCCESS,\r\n isAddingForm: false,\r\n addingFormResults\r\n };\r\n}\r\n\r\nfunction rejectAddForm(addingFormResults) {\r\n return {\r\n type: ADD_FORM_FAILURE,\r\n isAddingForm: false,\r\n addingFormResults\r\n };\r\n}\r\n\r\nfunction resetAddForm() {\r\n return {\r\n type: RESET_ADDING_FORM,\r\n addingFormResults: null\r\n };\r\n}\r\n\r\nexport function addForm(imyTier, data, onlineForm) {\r\n const postData = {\r\n parentAccountId: imyTier?.accountId || null,\r\n isOnline: onlineForm,\r\n client: data.clientId,\r\n legalEntities: data.customerObject && data.customerObject.legalEntities ? data.customerObject.legalEntities.map(le => le.value) : [],\r\n wFormReference: data.wFormReference,\r\n crsFormReference: data.crsFormReference,\r\n fatcaCrsFormReference: data.fatcaCrsFormReference,\r\n customerId: imyTier && data.imyParentCustomer ? data.imyParentCustomer.id : data.customerObject && data.customerObject.customerId,\r\n accounts: data.customerObject && data.customerObject.accounts && data.customerObject.accounts.length > 0 ? data.customerObject.accounts.map(a => a.value) : [],\r\n isNewAccount: data.customerObject !== null && data.customerObject.newAccount,\r\n isNewCustomer: !imyTier && data.customerObject !== null && data.customerObject.newCustomer,\r\n customerType: data.customerType,\r\n usNonUs: data.usNonUs,\r\n wForm: (((imyTier && data.addImyLayer))\r\n || (data.customerObject && (data.customerObject.customerId || data.customerObject.newCustomer) && (data.wForms && data.wForms.length > 0))) ? {\r\n type: data.formType,\r\n forms: data.wForms,\r\n date: data.wFormDate\r\n } : null,\r\n crsForm: (data.crsForms && data.crsForms.length > 0) ? {\r\n type: data.crsFormType,\r\n forms: data.crsForms,\r\n date: data.crsFormDate\r\n } : null,\r\n fatcaCrsForm: (data.fatcaCrsForms && data.fatcaCrsForms.length > 0) ? {\r\n type: data.fatcaCrsFormType,\r\n forms: data.fatcaCrsForms,\r\n date: data.fatcaCrsFormDate\r\n } : null,\r\n imy: imyTier || (!imyTier\r\n && !onlineForm && data.formType && data.formType.indexOf('imy') !== -1) ? {\r\n statementType: data.whdStatementType,\r\n statement: data.whdStatement && data.whdStatement.file,\r\n accountGuid: data.imyAccountGuid,\r\n beneficiaryForms: data.benefForms,\r\n imyReplacement: (imyTier && !data.addImyLayer && data.wForms && data.wForms.length > 0 && {\r\n ...data.wForms[0],\r\n accountId: imyTier.accountId,\r\n accountName: imyTier.accountName,\r\n customerDbId: imyTier.customerDbId,\r\n customerName: imyTier.customerName,\r\n }) || null\r\n } : null,\r\n supportingDocs: {\r\n documents: data.supportingDocs,\r\n originEmail: data.originEmail\r\n }\r\n };\r\n\r\n return (dispatch) => {\r\n dispatch(requestAddForm());\r\n\r\n const promise = () => ApiService\r\n .addForm(postData)\r\n .then((response) => {\r\n if (response.data.redirectUrl) {\r\n dispatch(hideAddFormModal());\r\n return dispatch(push(response.data.redirectUrl));\r\n }\r\n return dispatch(receiveAddForm(response.data));\r\n })\r\n .catch((error) => {\r\n if (error.response) {\r\n dispatch(handleException(error, rejectAddForm));\r\n } else {\r\n error.errorMessage = 'There was a problem communicating with the server. Please check the status of your uploaded form.';\r\n dispatch(handleException(error, rejectAddForm));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function hideAddFormResults() {\r\n return dispatch => dispatch(resetAddForm());\r\n}\r\n","import { push } from 'connected-react-router';\r\nimport { toastr } from 'react-redux-toastr';\r\n\r\nimport { ApiService } from 'services';\r\n\r\nexport const ADD_ONLINE_FORM_REQUEST = 'ADD_ONLINE_FORM_REQUEST';\r\nexport const ADD_ONLINE_FORM_SUCCESS = 'ADD_ONLINE_FORM_SUCCESS';\r\nexport const ADD_ONLINE_FORM_FAILURE = 'ADD_ONLINE_FORM_FAILURE';\r\n\r\nfunction requestAddOnlineForm() {\r\n return {\r\n type: ADD_ONLINE_FORM_REQUEST,\r\n isAddingOnlineForm: true\r\n };\r\n}\r\n\r\nfunction receiveAddOnlineForm() {\r\n return {\r\n type: ADD_ONLINE_FORM_SUCCESS,\r\n isAddingOnlineForm: false\r\n };\r\n}\r\n\r\nexport function addOnlineForm(formType, clientId, customerAccount, formReference) {\r\n const formCategory = formType.includes('crs') || formType.startsWith('rc') ? 'crs' : 'w';\r\n\r\n const postData = {\r\n isOnline: true,\r\n client: clientId,\r\n isNewCustomer: customerAccount && customerAccount.newCustomer,\r\n customerId: customerAccount && customerAccount.customerId,\r\n isNewAccount: customerAccount && customerAccount.newAccount,\r\n accounts: customerAccount && customerAccount.accounts && customerAccount.accounts.length > 0 ? customerAccount.accounts.map(a => a.value) : [],\r\n legalEntities: customerAccount && customerAccount.legalEntities && customerAccount.legalEntities.length > 0 ? customerAccount.legalEntities.map(le => le.value) : [],\r\n wForm: formCategory === 'w' ? {\r\n type: formType\r\n } : null,\r\n crsForm: formCategory === 'crs' ? {\r\n type: formType\r\n } : null,\r\n wFormReference: formCategory === 'w' ? formReference : null,\r\n crsFormReference: formCategory === 'crs' ? formReference : null\r\n };\r\n\r\n return (dispatch) => {\r\n dispatch(requestAddOnlineForm());\r\n\r\n const promise = () => ApiService\r\n .addForm(postData)\r\n .then((response) => {\r\n if (response.data.redirectUrl) {\r\n return dispatch(push(response.data.redirectUrl));\r\n }\r\n return dispatch(receiveAddOnlineForm(response.data));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n toastr.error(\r\n 'Error',\r\n error.response?.data?.error?.message\r\n ? error.response.data.error.message\r\n : \"Something's not quite right. Please try again or speak to your system administrator.\"\r\n );\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","export const SUPPORTING_DOC_ADDED = 'SUPPORTING_DOC_ADDED';\r\n\r\nfunction supportingDocAdded(newSupportingDoc) {\r\n return {\r\n type: SUPPORTING_DOC_ADDED,\r\n newSupportingDoc\r\n };\r\n}\r\n\r\nexport function addSupportingDoc(newSupportingDoc) {\r\n return dispatch => dispatch(supportingDocAdded(newSupportingDoc));\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const SUPPORTING_DOC_DELETE_REQUEST = 'SUPPORTING_DOC_DELETE_REQUEST';\r\nexport const SUPPORTING_DOC_DELETE_SUCCESS = 'SUPPORTING_DOC_DELETE_SUCCESS';\r\nexport const SUPPORTING_DOC_DELETE_FAILURE = 'SUPPORTING_DOC_DELETE_FAILURE';\r\n\r\nfunction requestSupportingDocDelete(id) {\r\n return {\r\n type: SUPPORTING_DOC_DELETE_REQUEST,\r\n isDeletingSupportingDocId: id,\r\n };\r\n}\r\n\r\nfunction receiveSupportingDocDelete(id) {\r\n return {\r\n type: SUPPORTING_DOC_DELETE_SUCCESS,\r\n isDeletingSupportingDocId: id,\r\n };\r\n}\r\n\r\nfunction rejectSupportingDocDelete(supportingDocError) {\r\n return {\r\n type: SUPPORTING_DOC_DELETE_FAILURE,\r\n isDeletingSupportingDocId: null,\r\n supportingDocError,\r\n };\r\n}\r\n\r\nexport function deleteSupportingDoc(docId) {\r\n return (dispatch) => {\r\n dispatch(requestSupportingDocDelete(docId));\r\n\r\n const promise = () => ApiService\r\n .deleteSupportingDoc(docId)\r\n .then((response) => {\r\n dispatch(receiveSupportingDocDelete(docId));\r\n toastr.success('Success', 'The supporting document has been successfully deleted');\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n\r\n if (error.response) {\r\n const status = error.response && error.response.data && error.response.data.code;\r\n if (status !== 401) {\r\n dispatch(handleException(error, rejectSupportingDocDelete, true));\r\n }\r\n } else if (error.retries && error.retries > 1) {\r\n dispatch(handleException(error, rejectSupportingDocDelete, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const GET_SUPPORTING_DOC_REQUEST = 'GET_SUPPORTING_DOC_REQUEST';\r\nexport const GET_SUPPORTING_DOC_SUCCESS = 'GET_SUPPORTING_DOC_SUCCESS';\r\nexport const GET_SUPPORTING_DOC_FAILURE = 'GET_SUPPORTING_DOC_FAILURE';\r\n\r\nfunction requestGetSupportingDoc() {\r\n return {\r\n type: GET_SUPPORTING_DOC_REQUEST,\r\n isFetchingSupportingDoc: true\r\n };\r\n}\r\n\r\nfunction receiveGetSupportingDoc(supportingDocData, supportingDocContentType, supportingDocFilename) {\r\n return {\r\n type: GET_SUPPORTING_DOC_SUCCESS,\r\n isFetchingSupportingDoc: false,\r\n supportingDocData,\r\n supportingDocContentType,\r\n getSupportingDocError: null,\r\n supportingDocFilename\r\n };\r\n}\r\n\r\nfunction rejectGetSupportingDoc(getSupportingDocError) {\r\n return {\r\n type: GET_SUPPORTING_DOC_FAILURE,\r\n isFetchingSupportingDoc: false,\r\n getSupportingDocError\r\n };\r\n}\r\n\r\nexport function getSupportingDoc(id) {\r\n return (dispatch) => {\r\n dispatch(requestGetSupportingDoc());\r\n\r\n return ApiService\r\n .getSupportingDoc(id, { responseType: 'arraybuffer' })\r\n .then((response) => {\r\n let filename = '';\r\n const disposition = response.headers['content-disposition'];\r\n if (disposition && disposition.indexOf('attachment') !== -1) {\r\n const filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n const matches = filenameRegex.exec(disposition);\r\n if (matches != null && matches[1]) {\r\n filename = matches[1].replace(/['\"]/g, '');\r\n }\r\n }\r\n dispatch(receiveGetSupportingDoc(response.data, response.headers['content-type'], filename));\r\n }).catch((error) => {\r\n const status = error.response && error.response.status;\r\n if (status !== 401) {\r\n dispatch(\r\n handleException(error, rejectGetSupportingDoc, !status || (status !== 404 && status !== 401))\r\n );\r\n }\r\n });\r\n };\r\n}\r\n","import { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const GET_WHD_FORMS_REQUEST = 'GET_WHD_FORMS_REQUEST';\r\nexport const GET_WHD_FORMS_SUCCESS = 'GET_WHD_FORMS_SUCCESS';\r\nexport const GET_WHD_FORMS_FAILURE = 'GET_WHD_FORMS_FAILURE';\r\n\r\nfunction requestGetWhdForms() {\r\n return {\r\n type: GET_WHD_FORMS_REQUEST,\r\n isGettingWhdForms: true\r\n };\r\n}\r\n\r\nfunction receiveGetWhdForms(whdForms) {\r\n return {\r\n type: GET_WHD_FORMS_SUCCESS,\r\n isGettingWhdForms: false,\r\n whdForms\r\n };\r\n}\r\n\r\nfunction rejectGetWhdForms() {\r\n return {\r\n type: GET_WHD_FORMS_FAILURE,\r\n isGettingWhdForms: false\r\n };\r\n}\r\n\r\nexport function getWhdForms(accountNo) {\r\n return (dispatch) => {\r\n dispatch(requestGetWhdForms());\r\n const promise = () => ApiService\r\n .getWhdPaymentCalculations(accountNo)\r\n .then((response) => {\r\n dispatch(receiveGetWhdForms(response.data));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectGetWhdForms, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nimport { hideAddWhdFormModal } from './addWhdFormModal';\r\nimport { getWhdForms } from './getWhdResults';\r\n\r\nexport const ADD_WHD_FORM_REQUEST = 'ADD_WHD_FORM_REQUEST';\r\nexport const ADD_WHD_FORM_SUCCESS = 'ADD_WHD_FORM_SUCCESS';\r\nexport const ADD_WHD_FORM_FAILURE = 'ADD_WHD_FORM_FAILURE';\r\nexport const RESET_ADDING_WHD_FORM = 'RESET_ADDING_WHD_FORM';\r\n\r\nfunction requestAddWhdForm() {\r\n return {\r\n type: ADD_WHD_FORM_REQUEST,\r\n isAddingWhdForm: true\r\n };\r\n}\r\n\r\nfunction rejectAddWhdForm(addingWhdFormError) {\r\n return {\r\n type: ADD_WHD_FORM_FAILURE,\r\n isAddingWhdForm: false,\r\n addingWhdFormError\r\n };\r\n}\r\n\r\nfunction resetAddWhdForm() {\r\n return {\r\n type: RESET_ADDING_WHD_FORM,\r\n addingWhdFormError: null\r\n };\r\n}\r\n\r\nexport function addWhdForm(data) {\r\n const formData = new FormData();\r\n\r\n if (data.accountNo) {\r\n formData.append('accountNo', data.accountNo);\r\n }\r\n if (data.paymentType) {\r\n formData.append('paymentType', data.paymentType);\r\n }\r\n if (data.dateOfPayment) {\r\n formData.append('dateOfPayment', data.dateOfPayment);\r\n }\r\n if (data.paymentAmount) {\r\n formData.append('paymentAmount', data.paymentAmount);\r\n }\r\n return (dispatch) => {\r\n dispatch(requestAddWhdForm());\r\n\r\n const promise = () => ApiService\r\n .addWhdForm(data.formType, formData)\r\n .then((response) => {\r\n dispatch(hideAddWhdFormModal());\r\n dispatch(getWhdForms(data.accountNo));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectAddWhdForm));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function hideAddWhdFormError() {\r\n return dispatch => dispatch(resetAddWhdForm());\r\n}\r\n","export const OPEN_ADD_WHD_FORM_MODAL = 'OPEN_ADD_WHD_FORM_MODAL';\r\nexport const CLOSE_ADD_WHD_FORM_MODAL = 'CLOSE_ADD_WHD_FORM_MODAL';\r\n\r\nfunction openAddWhdFormModal() {\r\n return {\r\n type: OPEN_ADD_WHD_FORM_MODAL,\r\n isAddWhdCalcModalShown: true\r\n };\r\n}\r\n\r\nfunction closeAddWhdFormModal() {\r\n return {\r\n type: CLOSE_ADD_WHD_FORM_MODAL,\r\n isAddWhdCalcModalShown: false,\r\n isAddingWhdForm: false,\r\n addingWhdFormError: null\r\n };\r\n}\r\n\r\nexport function showAddWhdFormModal() {\r\n return (dispatch) => {\r\n dispatch(openAddWhdFormModal());\r\n };\r\n}\r\n\r\nexport function hideAddWhdFormModal() {\r\n return (dispatch) => {\r\n dispatch(closeAddWhdFormModal());\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\n\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_FORMS_REQUEST = 'GET_FORMS_REQUEST';\r\nexport const GET_FORMS_SUCCESS = 'GET_FORMS_SUCCESS';\r\nexport const GET_FORMS_FAILURE = 'GET_FORMS_FAILURE';\r\n\r\nfunction requestGetForms() {\r\n return {\r\n type: GET_FORMS_REQUEST,\r\n isGettingForms: true\r\n };\r\n}\r\n\r\nfunction receiveGetForms(forms, formsCount, gridTotalLimit) {\r\n return {\r\n type: GET_FORMS_SUCCESS,\r\n isGettingForms: false,\r\n forms,\r\n formsCount,\r\n gridTotalLimit\r\n };\r\n}\r\n\r\nfunction rejectGetForms() {\r\n return {\r\n type: GET_FORMS_FAILURE,\r\n isGettingForms: false\r\n };\r\n}\r\n\r\nexport function getForms(pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected, formTypes) {\r\n return (dispatch) => {\r\n dispatch(requestGetForms());\r\n const promise = () => ApiService\r\n .getForms(pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected, formTypes)\r\n .then((response) => {\r\n dispatch(receiveGetForms(response.data.items, response.data.totalCount, response.data.totalLimit));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectGetForms, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function getFormsByObject(requestObject) {\r\n return getForms(\r\n requestObject.pageNumber,\r\n requestObject.pageSize,\r\n requestObject.totalLimit,\r\n requestObject.sortByField,\r\n requestObject.sortDirection,\r\n requestObject.filterList,\r\n requestObject.searchQuery,\r\n requestObject.legalEntity,\r\n requestObject.legalEntitySelected,\r\n requestObject.accountNumber,\r\n requestObject.accountNumberSelected,\r\n requestObject.customer,\r\n requestObject.customerSelected,\r\n requestObject.formTypes\r\n );\r\n}\r\n","import { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const SEARCH_FORMS_REQUEST = 'SEARCH_FORMS_REQUEST';\r\nexport const SEARCH_FORMS_SUCCESS = 'SEARCH_FORMS_SUCCESS';\r\nexport const SEARCH_FORMS_FAILURE = 'SEARCH_FORMS_FAILURE';\r\n\r\nfunction requestSearchForms() {\r\n return {\r\n type: SEARCH_FORMS_REQUEST,\r\n isGettingForms: true\r\n };\r\n}\r\n\r\nfunction receiveSearchForms(forms, formsCount, gridTotalLimit) {\r\n return {\r\n type: SEARCH_FORMS_SUCCESS,\r\n isGettingForms: false,\r\n forms,\r\n formsCount,\r\n gridTotalLimit\r\n };\r\n}\r\n\r\nfunction rejectSearchForms() {\r\n return {\r\n type: SEARCH_FORMS_FAILURE,\r\n isGettingForms: false\r\n };\r\n}\r\n\r\nexport function searchForms(pageNumber, pageSize, sortBy, sortDirection, filters, accountNumber, clientId, customer, legalEntity, searchQuery) {\r\n return (dispatch) => {\r\n dispatch(requestSearchForms());\r\n const promise = () => ApiService\r\n .searchForms(pageNumber, pageSize, sortBy, sortDirection, filters, accountNumber, clientId, customer, legalEntity, searchQuery)\r\n .then((response) => {\r\n dispatch(receiveSearchForms(response.data.forms, response.data.totalCount, response.data.totalLimit));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectSearchForms, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { initialize } from 'redux-form';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const VALIDATE_FORM_REQUEST = 'VALIDATE_FORM_REQUEST';\r\nexport const VALIDATE_FORM_SUCCESS = 'VALIDATE_FORM_SUCCESS';\r\nexport const VALIDATE_FORM_FAILURE = 'VALIDATE_FORM_FAILURE';\r\n\r\nfunction requestValidateForm(formId) {\r\n return {\r\n type: VALIDATE_FORM_REQUEST,\r\n isValidatingForm: true,\r\n formId\r\n };\r\n}\r\n\r\nfunction receiveValidateForm(validationResult) {\r\n return {\r\n type: VALIDATE_FORM_SUCCESS,\r\n isValidatingForm: false,\r\n validationResult,\r\n validationFormError: null\r\n };\r\n}\r\n\r\nfunction rejectValidateForm(validationFormError) {\r\n return {\r\n type: VALIDATE_FORM_FAILURE,\r\n isValidatingForm: false,\r\n validationFormError\r\n };\r\n}\r\n\r\nfunction getFormName(formType) {\r\n let reduxFormName = '';\r\n if (formType) {\r\n let formName = formType;\r\n const splitIndex = formType.lastIndexOf('_');\r\n if (splitIndex > -1) {\r\n formName = formType.substring(0, splitIndex);\r\n }\r\n reduxFormName = `${ formName }-form`;\r\n }\r\n return reduxFormName;\r\n}\r\n\r\nexport function validateForm(formType, formId, formData) {\r\n return (dispatch) => {\r\n dispatch(requestValidateForm(formId));\r\n\r\n const promise = () => ApiService\r\n .validateForm(formType, formId, formData)\r\n .then((response) => {\r\n dispatch(receiveValidateForm(response.data));\r\n dispatch(initialize(getFormName(formType), formData, false));\r\n })\r\n .catch((error) => {\r\n if (!error.reponse && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n\r\n if (!error.reponse || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectValidateForm, true, false));\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n","export const OPEN_DELETE_FORM_MODAL = 'OPEN_DELETE_FORM_MODAL';\r\nexport const CLOSE_DELETE_FORM_MODAL = 'CLOSE_DELETE_FORM_MODAL';\r\n\r\nfunction openDeleteFormModal(formsToDelete) {\r\n return {\r\n type: OPEN_DELETE_FORM_MODAL,\r\n isDeleteFormModalShown: true,\r\n formsToDelete\r\n };\r\n}\r\n\r\nfunction closeDeleteFormModal() {\r\n return {\r\n type: CLOSE_DELETE_FORM_MODAL,\r\n isDeleteFormModalShown: false,\r\n deleteFormResponse: null,\r\n deleteFormError: null\r\n };\r\n}\r\n\r\nexport function showDeleteFormModal(formsToDelete) {\r\n return (dispatch) => {\r\n dispatch(openDeleteFormModal(formsToDelete));\r\n };\r\n}\r\n\r\nexport function hideDeleteFormModal() {\r\n return (dispatch) => {\r\n dispatch(closeDeleteFormModal());\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const COMPLETE_BATCH_REQUEST = 'COMPLETE_BATCH_REQUEST';\r\nexport const COMPLETE_BATCH_SUCCESS = 'COMPLETE_BATCH_SUCCESS';\r\nexport const COMPLETE_BATCH_FAILURE = 'COMPLETE_BATCH_FAILURE';\r\n\r\nfunction requestCompleteBatch() {\r\n return {\r\n type: COMPLETE_BATCH_REQUEST,\r\n isCompletingBatch: true\r\n };\r\n}\r\n\r\nfunction receiveCompleteBatch(batchCompleteSuccessful) {\r\n return {\r\n type: COMPLETE_BATCH_SUCCESS,\r\n isCompletingBatch: false,\r\n batchCompleteSuccessful\r\n };\r\n}\r\n\r\nfunction rejectCompleteBatch() {\r\n return {\r\n type: COMPLETE_BATCH_FAILURE,\r\n isCompletingBatch: false\r\n };\r\n}\r\n\r\nexport function completeBatch(batchId, completeCallback, callbackParameters) {\r\n return (dispatch) => {\r\n dispatch(requestCompleteBatch());\r\n const promise = () => ApiService\r\n .getCompleteBatch(batchId)\r\n .then((response) => {\r\n if (response.data === true) {\r\n toastr.success('Batch Complete Successful', 'The batch has been completed successfully');\r\n } else {\r\n toastr.error('Batch Complete Failed', 'There was an error completing the batch. Please try again');\r\n }\r\n dispatch(completeCallback(...callbackParameters || [batchId]));\r\n return dispatch(receiveCompleteBatch(response.data));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectCompleteBatch, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const GET_BATCH_REQUEST = 'GET_BATCH_REQUEST';\r\nexport const GET_BATCH_SUCCESS = 'GET_BATCH_SUCCESS';\r\nexport const GET_BATCH_FAILURE = 'GET_BATCH_FAILURE';\r\n\r\nfunction requestGetBatch() {\r\n return {\r\n type: GET_BATCH_REQUEST,\r\n isGettingBatch: true\r\n };\r\n}\r\n\r\nfunction receiveGetBatch(batchItem) {\r\n return {\r\n type: GET_BATCH_SUCCESS,\r\n isGettingBatch: false,\r\n batchItem\r\n };\r\n}\r\n\r\nfunction rejectGetBatch() {\r\n return {\r\n type: GET_BATCH_FAILURE,\r\n isGettingBatch: false\r\n };\r\n}\r\n\r\nexport function getBatch(batchId) {\r\n return (dispatch) => {\r\n dispatch(requestGetBatch());\r\n const promise = () => ApiService\r\n .getBatch(batchId)\r\n .then((response) => {\r\n dispatch(receiveGetBatch(response.data));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectGetBatch, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const GET_BATCHES_REQUEST = 'GET_BATCHES_REQUEST';\r\nexport const GET_BATCHES_SUCCESS = 'GET_BATCHES_SUCCESS';\r\nexport const GET_BATCHES_FAILURE = 'GET_BATCHES_FAILURE';\r\n\r\nfunction requestGetBatches() {\r\n return {\r\n type: GET_BATCHES_REQUEST,\r\n isGettingBatches: true\r\n };\r\n}\r\n\r\nfunction receiveGetBatches(batches, batchesCount) {\r\n return {\r\n type: GET_BATCHES_SUCCESS,\r\n isGettingBatches: false,\r\n batches,\r\n batchesCount\r\n };\r\n}\r\n\r\nfunction rejectGetBatches() {\r\n return {\r\n type: GET_BATCHES_FAILURE,\r\n isGettingBatches: false\r\n };\r\n}\r\n\r\nexport function getBatches(pageNumber, pageSize, sortBy, sortDirection, filters) {\r\n return (dispatch) => {\r\n dispatch(requestGetBatches());\r\n const promise = () => ApiService\r\n .getBatches(pageNumber, pageSize, sortBy, sortDirection, filters)\r\n .then((response) => {\r\n dispatch(receiveGetBatches(response.data.batches, response.data.totalCount));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectGetBatches, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const SEARCH_BATCHES_REQUEST = 'SEARCH_BATCHES_REQUEST';\r\nexport const SEARCH_BATCHES_SUCCESS = 'SEARCH_BATCHES_SUCCESS';\r\nexport const SEARCH_BATCHES_FAILURE = 'SEARCH_BATCHES_FAILURE';\r\n\r\nfunction requestSearchBatches() {\r\n return {\r\n type: SEARCH_BATCHES_REQUEST,\r\n isGettingBatches: true\r\n };\r\n}\r\n\r\nfunction receiveSearchBatches(batches, batchesCount) {\r\n return {\r\n type: SEARCH_BATCHES_SUCCESS,\r\n isGettingBatches: false,\r\n batches,\r\n batchesCount\r\n };\r\n}\r\n\r\nfunction rejectSearchBatches() {\r\n return {\r\n type: SEARCH_BATCHES_FAILURE,\r\n isGettingBatches: false\r\n };\r\n}\r\n\r\nexport function searchBatches(pageNumber, pageSize, sortBy, sortDirection, filters, searchQuery) {\r\n return (dispatch) => {\r\n dispatch(requestSearchBatches());\r\n const promise = () => ApiService\r\n .searchBatches(pageNumber, pageSize, sortBy, sortDirection, filters, searchQuery)\r\n .then((response) => {\r\n dispatch(receiveSearchBatches(response.data.batches, response.data.totalCount));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectSearchBatches, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const GET_BATCH_FILES_REQUEST = 'GET_BATCH_FILES_REQUEST';\r\nexport const GET_BATCH_FILES_SUCCESS = 'GET_BATCH_FILES_SUCCESS';\r\nexport const GET_BATCH_FILES_FAILURE = 'GET_BATCH_FILES_FAILURE';\r\n\r\nfunction requestGetBatchFiles() {\r\n return {\r\n type: GET_BATCH_FILES_REQUEST,\r\n isGettingBatchFiles: true\r\n };\r\n}\r\n\r\nfunction receiveGetBatchFiles(batchFiles, batchFilesCount) {\r\n return {\r\n type: GET_BATCH_FILES_SUCCESS,\r\n isGettingBatchFiles: false,\r\n batchFiles,\r\n batchFilesCount\r\n };\r\n}\r\n\r\nfunction rejectGetBatchFiles() {\r\n return {\r\n type: GET_BATCH_FILES_FAILURE,\r\n isGettingBatchFiles: false\r\n };\r\n}\r\n\r\nexport function getBatchFiles(batchId, pageNumber, pageSize, sortBy, sortDirection, filters) {\r\n return (dispatch) => {\r\n dispatch(requestGetBatchFiles());\r\n const promise = () => ApiService\r\n .getBatchFiles(batchId, pageNumber, pageSize, sortBy, sortDirection, filters)\r\n .then((response) => {\r\n dispatch(receiveGetBatchFiles(response.data.batchFiles, response.data.totalCount));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectGetBatchFiles, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const SEARCH_BATCH_FILES_REQUEST = 'SEARCH_BATCH_FILES_REQUEST';\r\nexport const SEARCH_BATCH_FILES_SUCCESS = 'SEARCH_BATCH_FILES_SUCCESS';\r\nexport const SEARCH_BATCH_FILES_FAILURE = 'SEARCH_BATCH_FILES_FAILURE';\r\n\r\nfunction requestSearchBatchFiles() {\r\n return {\r\n type: SEARCH_BATCH_FILES_REQUEST,\r\n isGettingBatchFiles: true\r\n };\r\n}\r\n\r\nfunction receiveSearchBatchFiles(batchFiles, batchFilesCount) {\r\n return {\r\n type: SEARCH_BATCH_FILES_SUCCESS,\r\n isGettingBatchFiles: false,\r\n batchFiles,\r\n batchFilesCount\r\n };\r\n}\r\n\r\nfunction rejectSearchBatchFiles() {\r\n return {\r\n type: SEARCH_BATCH_FILES_FAILURE,\r\n isGettingBatchFiles: false\r\n };\r\n}\r\n\r\nexport function searchBatchFiles(batchId, pageNumber, pageSize, sortBy, sortDirection, filters, searchQuery) {\r\n return (dispatch) => {\r\n dispatch(requestSearchBatchFiles());\r\n const promise = () => ApiService\r\n .searchBatchFiles(batchId, pageNumber, pageSize, sortBy, sortDirection, filters, searchQuery)\r\n .then((response) => {\r\n dispatch(receiveSearchBatchFiles(response.data.batchFiles, response.data.totalCount));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectSearchBatchFiles, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const GET_BATCH_FORMS_REQUEST = 'GET_BATCH_FORMS_REQUEST';\r\nexport const GET_BATCH_FORMS_SUCCESS = 'GET_BATCH_FORMS_SUCCESS';\r\nexport const GET_BATCH_FORMS_FAILURE = 'GET_BATCH_FORMS_FAILURE';\r\n\r\nfunction requestGetBatchForms() {\r\n return {\r\n type: GET_BATCH_FORMS_REQUEST,\r\n isGettingBatchForms: true\r\n };\r\n}\r\n\r\nfunction receiveGetBatchForms(batchItem, batchFileItem, batchForms, batchFormsCount) {\r\n return {\r\n type: GET_BATCH_FORMS_SUCCESS,\r\n isGettingBatchForms: false,\r\n batchItem,\r\n batchFileItem,\r\n batchForms,\r\n batchFormsCount\r\n };\r\n}\r\n\r\nfunction rejectGetBatchForms() {\r\n return {\r\n type: GET_BATCH_FORMS_FAILURE,\r\n isGettingBatchForms: false\r\n };\r\n}\r\n\r\nexport function getBatchForms(batchId, batchFileId, pageNumber, pageSize, sortBy, sortDirection, filters) {\r\n return (dispatch) => {\r\n dispatch(requestGetBatchForms());\r\n const promise = () => ApiService\r\n .getBatchForms(batchId, batchFileId, pageNumber, pageSize, sortBy, sortDirection, filters)\r\n .then((response) => {\r\n dispatch(receiveGetBatchForms(response.data.batch, response.data.batchFile, response.data.batchForms, response.data.totalCount));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectGetBatchForms, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const SEARCH_BATCH_FORMS_REQUEST = 'SEARCH_BATCH_FORMS_REQUEST';\r\nexport const SEARCH_BATCH_FORMS_SUCCESS = 'SEARCH_BATCH_FORMS_SUCCESS';\r\nexport const SEARCH_BATCH_FORMS_FAILURE = 'SEARCH_BATCH_FORMS_FAILURE';\r\n\r\nfunction requestSearchBatchForms() {\r\n return {\r\n type: SEARCH_BATCH_FORMS_REQUEST,\r\n isGettingBatchForms: true\r\n };\r\n}\r\n\r\nfunction receiveSearchBatchForms(batchForms, batchFormsCount) {\r\n return {\r\n type: SEARCH_BATCH_FORMS_SUCCESS,\r\n isGettingBatchForms: false,\r\n batchForms,\r\n batchFormsCount\r\n };\r\n}\r\n\r\nfunction rejectSearchBatchForms() {\r\n return {\r\n type: SEARCH_BATCH_FORMS_FAILURE,\r\n isGettingBatchForms: false\r\n };\r\n}\r\n\r\nexport function searchBatchForms(batchId, batchFileId, pageNumber, pageSize, sortBy, sortDirection, filters, searchQuery) {\r\n return (dispatch) => {\r\n dispatch(requestSearchBatchForms());\r\n const promise = () => ApiService\r\n .searchBatchForms(batchId, batchFileId, pageNumber, pageSize, sortBy, sortDirection, filters, searchQuery)\r\n .then((response) => {\r\n dispatch(receiveSearchBatchForms(response.data.batchForms, response.data.totalCount));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectSearchBatchForms, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_BATCH_FILE_PDF_REQUEST = 'GET_BATCH_FILE_PDF_REQUEST';\r\nexport const GET_BATCH_FILE_PDF_SUCCESS = 'GET_BATCH_FILE_PDF_SUCCESS';\r\nexport const GET_BATCH_FILE_PDF_FAILURE = 'GET_BATCH_FILE_PDF_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: GET_BATCH_FILE_PDF_REQUEST,\r\n isFetchingBatchFilePdf: true,\r\n };\r\n}\r\n\r\nfunction receive(batchFilePdfData, originalFileName) {\r\n return {\r\n type: GET_BATCH_FILE_PDF_SUCCESS,\r\n isFetchingBatchFilePdf: false,\r\n batchFilePdfData,\r\n batchFileOriginalFileName: originalFileName,\r\n };\r\n}\r\n\r\nfunction reject(batchFilePdfError) {\r\n return {\r\n type: GET_BATCH_FILE_PDF_FAILURE,\r\n isFetchingBatchFilePdf: false,\r\n batchFilePdfError\r\n };\r\n}\r\n\r\nexport function getBatchFilePdf(batchFile) {\r\n return (dispatch) => {\r\n dispatch(request(batchFile.originalFileName));\r\n\r\n const promise = () => ApiService\r\n .getBatchFilePdf(batchFile.batchId, batchFile.id, { responseType: 'arraybuffer' })\r\n .then((response) => {\r\n dispatch(receive(response.data, batchFile.originalFileName));\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response) {\r\n const status = error.response && error.response.status;\r\n if (status !== 401) {\r\n dispatch(\r\n handleException({ response: { data: { code: status, message: 'Sorry, there was a problem retreiving batch file. Please try again.' } } }, reject, !status || (status !== 401))\r\n );\r\n }\r\n } else if (error.retries && error.retries > 1) {\r\n dispatch(handleException(error, reject, false));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","export const OPEN_DELETE_BATCH_MODAL = 'OPEN_DELETE_BATCH_MODAL';\r\nexport const CLOSE_DELETE_BATCH_MODAL = 'CLOSE_DELETE_BATCH_MODAL';\r\n\r\nfunction openDeleteBatchModal(batchToDelete) {\r\n return {\r\n type: OPEN_DELETE_BATCH_MODAL,\r\n isDeleteBatchModalShown: true,\r\n batchToDelete\r\n };\r\n}\r\n\r\nfunction closeDeleteBatchModal() {\r\n return {\r\n type: CLOSE_DELETE_BATCH_MODAL,\r\n isDeleteBatchModalShown: false,\r\n deleteBatchResponse: null,\r\n deleteBatchError: null\r\n };\r\n}\r\n\r\nexport function showDeleteBatchModal(batchToDelete) {\r\n return (dispatch) => {\r\n dispatch(openDeleteBatchModal(batchToDelete));\r\n };\r\n}\r\n\r\nexport function hideDeleteBatchModal() {\r\n return (dispatch) => {\r\n dispatch(closeDeleteBatchModal());\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { hideDeleteBatchModal } from './deleteBatchModal';\r\n\r\nexport const DELETE_BATCH_REQUEST = 'DELETE_BATCH_REQUEST';\r\nexport const DELETE_BATCH_SUCCESS = 'DELETE_BATCH_SUCCESS';\r\nexport const DELETE_BATCH_FAILURE = 'DELETE_BATCH_FAILURE';\r\n\r\nfunction requestDeleteBatch() {\r\n return {\r\n type: DELETE_BATCH_REQUEST,\r\n isDeletingBatch: true\r\n };\r\n}\r\n\r\nfunction receiveDeleteBatch(deleteBatchResponse) {\r\n return {\r\n type: DELETE_BATCH_SUCCESS,\r\n isDeletingBatch: false,\r\n deleteBatchResponse\r\n };\r\n}\r\n\r\nfunction rejectDeleteBatch() {\r\n return {\r\n type: DELETE_BATCH_FAILURE,\r\n isDeletingBatch: false\r\n };\r\n}\r\n\r\nexport function deleteBatch(batchId, batchDisplayId, refreshAction) {\r\n return (dispatch) => {\r\n dispatch(requestDeleteBatch(batchId));\r\n\r\n const promise = () => ApiService\r\n .deleteBatch(batchId)\r\n .then((response) => {\r\n dispatch(receiveDeleteBatch(response.data));\r\n if (refreshAction.length === 2) {\r\n dispatch(refreshAction[0](...refreshAction[1]));\r\n }\r\n toastr.success('', `The batch '${ batchDisplayId || '' }' was successfully deleted`);\r\n return dispatch(hideDeleteBatchModal());\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectDeleteBatch, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { push } from 'connected-react-router';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { getBatchForms } from 'actions/batches';\r\nimport { hideDeleteFormModal } from './deleteFormModal';\r\nimport { getForms } from './getForms';\r\n\r\nexport const DELETE_FORM_REQUEST = 'DELETE_FORM_REQUEST';\r\nexport const DELETE_FORM_SUCCESS = 'DELETE_FORM_SUCCESS';\r\nexport const DELETE_FORM_FAILURE = 'DELETE_FORM_FAILURE';\r\n\r\nfunction requestDeleteForm() {\r\n return {\r\n type: DELETE_FORM_REQUEST,\r\n isDeletingForm: true\r\n };\r\n}\r\n\r\nfunction receiveDeleteForm(deleteFormResponse) {\r\n return {\r\n type: DELETE_FORM_SUCCESS,\r\n isDeletingForm: false,\r\n deleteFormResponse\r\n };\r\n}\r\n\r\nfunction rejectDeleteForm() {\r\n return {\r\n type: DELETE_FORM_FAILURE,\r\n isDeletingForm: false\r\n };\r\n}\r\n\r\nexport function deleteForm(formType, formId, pageNumber, pageSize) {\r\n return (dispatch) => {\r\n dispatch(requestDeleteForm(formId));\r\n\r\n const promise = () => ApiService\r\n .deleteForm(formType && formType.toLowerCase(), formId)\r\n .then((response) => {\r\n dispatch(receiveDeleteForm(response.data));\r\n const action = dispatch(hideDeleteFormModal());\r\n if (typeof pageNumber === 'undefined' && typeof pageSize === 'undefined') {\r\n return action;\r\n }\r\n\r\n return dispatch(getForms(pageNumber, pageSize));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectDeleteForm, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function deleteFormFromTree(formType, formId, redirectAfterDelete) {\r\n return (dispatch) => {\r\n dispatch(requestDeleteForm(formId));\r\n\r\n const promise = () => ApiService\r\n .deleteForm(formType && formType.toLowerCase(), formId)\r\n .then((response) => {\r\n dispatch(receiveDeleteForm(response.data));\r\n if (redirectAfterDelete) {\r\n dispatch(hideDeleteFormModal());\r\n return dispatch(push('/'));\r\n }\r\n return dispatch(hideDeleteFormModal());\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectDeleteForm, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function deleteBatchForm(batchId, batchFileId, formType, formId, pageNumber, pageSize) {\r\n return (dispatch) => {\r\n dispatch(requestDeleteForm(formId));\r\n\r\n const promise = () => ApiService\r\n .deleteForm(formType && formType.toLowerCase(), formId)\r\n .then((response) => {\r\n dispatch(receiveDeleteForm(response.data));\r\n dispatch(hideDeleteFormModal());\r\n return dispatch(getBatchForms(batchId, batchFileId, pageNumber, pageSize));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectDeleteForm, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const DELETE_FORMS_REQUEST = 'DELETE_FORMS_REQUEST';\r\nexport const DELETE_FORMS_SUCCESS = 'DELETE_FORMS_SUCCESS';\r\nexport const DELETE_FORMS_FAILURE = 'DELETE_FORMS_FAILURE';\r\n\r\nfunction requestDeleteForms() {\r\n return {\r\n type: DELETE_FORMS_REQUEST,\r\n isDeletingForms: true,\r\n deleteFormsResponse: null\r\n };\r\n}\r\n\r\nfunction receiveDeleteForms(deleteFormsResponse) {\r\n return {\r\n type: DELETE_FORMS_SUCCESS,\r\n isDeletingForms: false,\r\n deleteFormsResponse,\r\n deleteFormsError: null\r\n };\r\n}\r\n\r\nfunction rejectDeleteForms(deleteFormsError) {\r\n return {\r\n type: DELETE_FORMS_FAILURE,\r\n isDeletingForms: false,\r\n deleteFormsResponse: null,\r\n deleteFormsError\r\n };\r\n}\r\n\r\nexport function deleteForms(forms, callback) {\r\n const formData = new FormData();\r\n formData.append('', forms);\r\n return (dispatch) => {\r\n dispatch(requestDeleteForms(forms));\r\n\r\n const promise = () => ApiService\r\n .deleteForms(forms)\r\n .then((response) => {\r\n dispatch(receiveDeleteForms(response.data));\r\n if (callback) {\r\n callback();\r\n }\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectDeleteForms, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const ACCEPT_FORM_OVERRIDE_REQUEST = 'ACCEPT_FORM_OVERRIDE_REQUEST';\r\nexport const ACCEPT_FORM_OVERRIDE_SUCCESS = 'ACCEPT_FORM_OVERRIDE_SUCCESS';\r\nexport const ACCEPT_FORM_OVERRIDE_FAILURE = 'ACCEPT_FORM_OVERRIDE_FAILURE';\r\nexport const OPEN_FORM_OVERRIDE_MODAL = 'OPEN_FORM_OVERRIDE_MODAL';\r\nexport const CLOSE_FORM_OVERRIDE_MODAL = 'CLOSE_FORM_OVERRIDE_MODAL';\r\nexport const OPEN_CANCEL_FORM_OVERRIDE_MODAL = 'OPEN_CANCEL_FORM_OVERRIDE_MODAL';\r\nexport const CLOSE_CANCEL_FORM_OVERRIDE_MODAL = 'CLOSE_CANCEL_FORM_OVERRIDE_MODAL';\r\n\r\nfunction request() {\r\n return {\r\n type: ACCEPT_FORM_OVERRIDE_REQUEST,\r\n isSavingValidationOverrides: true,\r\n };\r\n}\r\n\r\nfunction receive(validationResult) {\r\n return {\r\n type: ACCEPT_FORM_OVERRIDE_SUCCESS,\r\n isSavingValidationOverrides: false,\r\n validationResult,\r\n validationOverridesError: null\r\n };\r\n}\r\n\r\nfunction reject(validationOverridesError) {\r\n return {\r\n type: ACCEPT_FORM_OVERRIDE_FAILURE,\r\n isSavingValidationOverrides: false,\r\n validationOverridesError\r\n };\r\n}\r\n\r\nfunction openModal() {\r\n return {\r\n type: OPEN_FORM_OVERRIDE_MODAL\r\n };\r\n}\r\n\r\nfunction closeModal() {\r\n return {\r\n type: CLOSE_FORM_OVERRIDE_MODAL\r\n };\r\n}\r\n\r\nfunction openCancelModal() {\r\n return {\r\n type: OPEN_CANCEL_FORM_OVERRIDE_MODAL\r\n };\r\n}\r\n\r\nfunction closeCancelModal() {\r\n return {\r\n type: CLOSE_CANCEL_FORM_OVERRIDE_MODAL\r\n };\r\n}\r\n\r\nexport function showFormOverrideModal() {\r\n return dispatch => dispatch(openModal());\r\n}\r\n\r\nexport function hideFormOverrideModal() {\r\n return dispatch => dispatch(closeModal());\r\n}\r\n\r\nexport function showCancelFormOverrideModal() {\r\n return dispatch => dispatch(openCancelModal());\r\n}\r\n\r\nexport function hideCancelFormOverrideModal() {\r\n return dispatch => dispatch(closeCancelModal());\r\n}\r\n\r\nexport function acceptFormOverride(formId, data) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .acceptFormOverride(formId, data)\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n toastr.success('Success', 'Your form override change has been accepted.');\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function cancelFormOverride(formId) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const data = {\r\n isDraft: false,\r\n override: false,\r\n valid: false\r\n };\r\n\r\n const promise = () => ApiService\r\n .acceptFormOverride(formId, data)\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n dispatch(hideCancelFormOverrideModal());\r\n toastr.success('Success', 'Your form override change has been accepted.');\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const GET_FORM_BY_ID_REQUEST = 'GET_FORM_BY_ID_REQUEST';\r\nexport const GET_FORM_BY_ID_SUCCESS = 'GET_FORM_BY_ID_SUCCESS';\r\nexport const GET_FORM_BY_ID_FAILURE = 'GET_FORM_BY_ID_FAILURE';\r\n/* eslint-disable max-len */\r\nfunction requestGetFormById() {\r\n return {\r\n type: GET_FORM_BY_ID_REQUEST,\r\n isGettingFormById: true,\r\n formByIdResponse: null,\r\n validationResult: null,\r\n supportingDocs: null,\r\n formReviewState: null,\r\n workflowState: null,\r\n viewPdfData: null,\r\n formByIdError: null\r\n };\r\n}\r\n\r\nfunction receiveGetFormById(formByIdResponse, validationResult, supportingDocs, formReviewState, workflowState) {\r\n return {\r\n type: GET_FORM_BY_ID_SUCCESS,\r\n isGettingFormById: false,\r\n formByIdResponse,\r\n validationResult,\r\n supportingDocs,\r\n formReviewState,\r\n workflowState,\r\n formByIdError: null\r\n };\r\n}\r\n\r\nfunction rejectGetFormById(formByIdError) {\r\n return {\r\n type: GET_FORM_BY_ID_FAILURE,\r\n isGettingFormById: false,\r\n formByIdError\r\n };\r\n}\r\n\r\nexport function getFormById(formType, formId) {\r\n return (dispatch) => {\r\n const promise = () => {\r\n dispatch(requestGetFormById());\r\n\r\n ApiService\r\n .getFormById(formType, formId)\r\n .then((response) => {\r\n if (response.data != null && response.data.form != null && response.data.form.ocrIssues === true) {\r\n toastr.info('', 'The form appears to be non-standard or corrupt. Recommend manual input.');\r\n }\r\n if (response.data && response.data.form) {\r\n response.data.form.customerDbId = response.data.customer;\r\n response.data.form.accountId = response.data.account;\r\n response.data.form.hasParentAccount = response.data.hasParentAccount;\r\n response.data.form.hasAllocationStatement = response.data.hasAllocationStatement;\r\n response.data.form.hasImyTopLevelAccount = response.data.hasImyTopLevelAccount;\r\n response.data.form.hasSavedPdf = response.data.hasSavedPdf;\r\n response.data.form.accountNumber = response.data.accountNumber;\r\n response.data.form.formId = formId;\r\n response.data.form.tinMatchResult = response.data.tinMatchResult;\r\n response.data.form.collectableSupportingDocs = response.data.collectableSupportingDocs;\r\n }\r\n dispatch(receiveGetFormById(\r\n response.data.form,\r\n response.data.validationResults,\r\n response.data.supportingDocs,\r\n response.data.review,\r\n response.data.workflow\r\n ));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n const status = error.response && error.response.data && error.response.data.code;\r\n if (status !== 401) {\r\n dispatch(handleException(error, rejectGetFormById, !status || (status !== 404 && status !== 401)));\r\n }\r\n }\r\n });\r\n };\r\n\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_FORM_PDF_REQUEST = 'GET_FORM_PDF_REQUEST';\r\nexport const GET_FORM_PDF_SUCCESS = 'GET_FORM_PDF_SUCCESS';\r\nexport const GET_FORM_PDF_FAILURE = 'GET_FORM_PDF_FAILURE';\r\nexport const GET_FORM_PDF_RESET = 'GET_FORM_PDF_RESET';\r\n\r\nfunction requestGetFormPdf() {\r\n return {\r\n type: GET_FORM_PDF_REQUEST,\r\n isFetchingPdfForm: true\r\n };\r\n}\r\n\r\nfunction receiveGetFormPdf(pdfFile) {\r\n return {\r\n type: GET_FORM_PDF_SUCCESS,\r\n isFetchingPdfForm: false,\r\n pdfFile,\r\n getFormPdfError: null\r\n };\r\n}\r\n\r\nfunction rejectGetFormPdf(getFormPdfError) {\r\n return {\r\n type: GET_FORM_PDF_FAILURE,\r\n isFetchingPdfForm: false,\r\n getFormPdfError\r\n };\r\n}\r\n\r\nfunction resetPdfDownloadState() {\r\n return {\r\n type: GET_FORM_PDF_RESET,\r\n };\r\n}\r\n\r\nexport function getFormPdf(file) {\r\n return (dispatch) => {\r\n dispatch(requestGetFormPdf());\r\n\r\n const promise = () => ApiService\r\n .getFormPdf(file, { responseType: 'arraybuffer' })\r\n .then((response) => {\r\n file.blob = response.data;\r\n dispatch(receiveGetFormPdf(file));\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response) {\r\n const status = error.response && error.response.status;\r\n if (status !== 401) {\r\n if (status === 404) {\r\n error.response.data = { code: status, message: 'Form PDF not found or exceeds maximum file download size' };\r\n }\r\n dispatch(\r\n handleException(error, rejectGetFormPdf, !status || (status !== 401))\r\n );\r\n }\r\n } else if (error.retries && error.retries > 1) {\r\n dispatch(\r\n handleException(error, rejectGetFormPdf, false)\r\n );\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function switchFormPdf(file) {\r\n return (dispatch) => {\r\n dispatch(requestGetFormPdf());\r\n dispatch(receiveGetFormPdf(file));\r\n };\r\n}\r\n\r\nexport function resetPdfDownloads() {\r\n return dispatch => dispatch(resetPdfDownloadState());\r\n}\r\n","import { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const GET_PDF_VIEW_REQUEST = 'GET_PDF_VIEW_REQUEST';\r\nexport const GET_PDF_VIEW_SUCCESS = 'GET_PDF_VIEW_SUCCESS';\r\nexport const GET_PDF_VIEW_FAILURE = 'GET_PDF_VIEW_FAILURE';\r\n\r\nfunction requestGetPdfView() {\r\n return {\r\n type: GET_PDF_VIEW_REQUEST,\r\n isFetchingPdfView: true\r\n };\r\n}\r\n\r\nfunction receiveGetPdfView(pdfFile) {\r\n return {\r\n type: GET_PDF_VIEW_SUCCESS,\r\n isFetchingPdfView: false,\r\n pdfFile,\r\n getPdfViewError: null\r\n };\r\n}\r\n\r\nfunction rejectGetPdfView(getPdfViewError) {\r\n return {\r\n type: GET_PDF_VIEW_FAILURE,\r\n isFetchingPdfView: false,\r\n viewPdfData: null,\r\n getPdfViewError\r\n };\r\n}\r\n\r\nexport function getPdfView(file) {\r\n return (dispatch) => {\r\n dispatch(requestGetPdfView());\r\n\r\n const promise = () => ApiService\r\n .getPdfView(file, { responseType: 'arraybuffer' })\r\n .then((response) => {\r\n file.blob = response.data;\r\n dispatch(receiveGetPdfView(file));\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response) {\r\n const status = error.response && error.response.status;\r\n if (status !== 401) {\r\n dispatch(handleException(error, rejectGetPdfView, !status || (status !== 404 && status !== 401)));\r\n }\r\n } else if (error.retries && error.retries > 1) {\r\n dispatch(handleException(error, rejectGetPdfView, false));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\n\r\nexport const CHECK_FORM_PDF_EXISTENCE_REQUEST = 'CHECK_FORM_PDF_EXISTENCE_REQUEST';\r\nexport const CHECK_FORM_PDF_EXISTENCE_SUCCESS = 'CHECK_FORM_PDF_EXISTENCE_SUCCESS';\r\nexport const CHECK_FORM_PDF_EXISTENCE_FAILURE = 'CHECK_FORM_PDF_EXISTENCE_FAILURE';\r\n\r\nfunction requestCheckFormPdfExistence() {\r\n return {\r\n type: CHECK_FORM_PDF_EXISTENCE_REQUEST,\r\n isCheckingFormPdfExistence: true,\r\n formPdfExists: false\r\n };\r\n}\r\n\r\nfunction receiveCheckFormPdfExistence() {\r\n return {\r\n type: CHECK_FORM_PDF_EXISTENCE_SUCCESS,\r\n isCheckingFormPdfExistence: false,\r\n formPdfExists: true\r\n };\r\n}\r\n\r\nfunction rejectCheckFormPdfExistence(formPdfExistenceError) {\r\n return {\r\n type: CHECK_FORM_PDF_EXISTENCE_FAILURE,\r\n isCheckingFormPdfExistence: false,\r\n formPdfExists: false,\r\n formPdfExistenceError\r\n };\r\n}\r\n\r\nexport function checkFormPdfExistence(formId) {\r\n return (dispatch) => {\r\n dispatch(requestCheckFormPdfExistence());\r\n\r\n const promise = () => ApiService\r\n .getFormPdf({ id: formId, isAdditional: false })\r\n .then((response) => {\r\n if (response.status !== 200) {\r\n dispatch(rejectCheckFormPdfExistence(response.status));\r\n return Promise.reject(response);\r\n }\r\n return dispatch(receiveCheckFormPdfExistence());\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(rejectCheckFormPdfExistence(error));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const GET_VALIDATION_RESULTS_REQUEST = 'GET_VALIDATION_RESULTS_REQUEST';\r\nexport const GET_VALIDATION_RESULTS_SUCCESS = 'GET_VALIDATION_RESULTS_SUCCESS';\r\nexport const GET_VALIDATION_RESULTS_FAILURE = 'GET_VALIDATION_RESULTS_FAILURE';\r\n\r\nfunction requestGetValidationResults() {\r\n return {\r\n type: GET_VALIDATION_RESULTS_REQUEST,\r\n isGettingReporting: true\r\n };\r\n}\r\n\r\nfunction receiveGetValidationResults(reportingResponse) {\r\n return {\r\n type: GET_VALIDATION_RESULTS_SUCCESS,\r\n isGettingReporting: false,\r\n reportingResponse,\r\n reportingError: null\r\n };\r\n}\r\n\r\nfunction rejectGetValidationResults(reportingError) {\r\n return {\r\n type: GET_VALIDATION_RESULTS_FAILURE,\r\n isGettingReporting: false,\r\n reportingError\r\n };\r\n}\r\n\r\nexport function getValidationResults(pageNumber, pageSize, totalLimit, sortBy, sortDirection, filters, activeTab) {\r\n return (dispatch) => {\r\n dispatch(requestGetValidationResults());\r\n\r\n const promise = () => ApiService\r\n .getValidationResults(pageNumber, pageSize, totalLimit, sortBy, sortDirection, filters, activeTab)\r\n .then((response) => {\r\n dispatch(receiveGetValidationResults(response.data));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectGetValidationResults, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const SEARCH_VALIDATION_RESULTS_REQUEST = 'SEARCH_VALIDATION_RESULTS_REQUEST';\r\nexport const SEARCH_VALIDATION_RESULTS_SUCCESS = 'SEARCH_VALIDATION_RESULTS_SUCCESS';\r\nexport const SEARCH_VALIDATION_RESULTS_FAILURE = 'SEARCH_VALIDATION_RESULTS_FAILURE';\r\n\r\nfunction requestSearchValidationResults() {\r\n return {\r\n type: SEARCH_VALIDATION_RESULTS_REQUEST,\r\n isGettingReporting: true\r\n };\r\n}\r\n\r\nfunction receiveSearchValidationResults(reportingResponse) {\r\n return {\r\n\r\n type: SEARCH_VALIDATION_RESULTS_SUCCESS,\r\n isGettingReporting: false,\r\n reportingResponse,\r\n reportingError: null\r\n };\r\n}\r\n\r\nfunction rejectSearchValidationResults(reportingError) {\r\n return {\r\n type: SEARCH_VALIDATION_RESULTS_FAILURE,\r\n isGettingReporting: false,\r\n reportingError\r\n };\r\n}\r\n\r\nexport function searchValidationResults(\r\n pageNumber,\r\n pageSize,\r\n totalLimit,\r\n sortBy,\r\n sortDirection,\r\n filters,\r\n searchQuery,\r\n dateFrom,\r\n dateTo,\r\n activeTab\r\n) {\r\n return (dispatch) => {\r\n dispatch(requestSearchValidationResults());\r\n\r\n const promise = () => ApiService\r\n .searchValidationResults(pageNumber, pageSize, totalLimit, sortBy, sortDirection, filters, searchQuery, dateFrom, dateTo, activeTab)\r\n .then((response) => {\r\n dispatch(receiveSearchValidationResults(response.data));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectSearchValidationResults, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import moment from 'moment';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { downloadFile } from 'actions/common';\r\n\r\nexport const EXPORT_TO_EXCEL_REQUEST = 'EXPORT_TO_EXCEL_REQUEST';\r\nexport const EXPORT_TO_EXCEL_SUCCESS = 'EXPORT_TO_EXCEL_SUCCESS';\r\nexport const EXPORT_TO_EXCEL_FAILURE = 'EXPORT_TO_EXCEL_FAILURE';\r\n\r\nfunction requestExportToExcel() {\r\n return {\r\n type: EXPORT_TO_EXCEL_REQUEST,\r\n isExportingToExcel: true\r\n };\r\n}\r\n\r\nfunction receiveExportToExcel(excelData) {\r\n return {\r\n type: EXPORT_TO_EXCEL_SUCCESS,\r\n isExportingToExcel: false,\r\n excelData,\r\n exportToExcelError: null\r\n };\r\n}\r\n\r\nfunction rejectExportToExcel(exportToExcelError) {\r\n return {\r\n type: EXPORT_TO_EXCEL_FAILURE,\r\n isExportingToExcel: false,\r\n exportToExcelError\r\n };\r\n}\r\n\r\nexport function exportToExcel() {\r\n return (dispatch) => {\r\n dispatch(requestExportToExcel());\r\n\r\n const promise = () => ApiService\r\n .getExcelReporting({ responseType: 'arraybuffer' })\r\n .then((response) => {\r\n dispatch(receiveExportToExcel(response.data));\r\n return dispatch(\r\n downloadFile(\r\n response.data,\r\n `${ moment().format('DD_MMM_YYYY') }_report.xlsx`,\r\n 'application/xls'\r\n )\r\n );\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectExportToExcel, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function getCustomerExportFile(requestObject) {\r\n return (dispatch) => {\r\n dispatch(requestExportToExcel());\r\n const promise = () => ApiService\r\n .getCustomerExport(\r\n requestObject.pageNumber,\r\n requestObject.pageSize,\r\n requestObject.totalLimit,\r\n requestObject.sortByField,\r\n requestObject.sortDirection,\r\n requestObject.filterList,\r\n requestObject.searchQuery,\r\n requestObject.legalEntity,\r\n requestObject.legalEntitySelected,\r\n requestObject.accountNumberSelected,\r\n requestObject.accountNumber,\r\n requestObject.customer,\r\n requestObject.customerSelected,\r\n { responseType: 'arraybuffer' }\r\n )\r\n .then((response) => {\r\n dispatch(receiveExportToExcel(response.data));\r\n return dispatch(\r\n downloadFile(\r\n response.data,\r\n `customer_dashboard_export_${ moment().format('DD_MMM_YYYY') }.xlsx`,\r\n 'application/xls'\r\n )\r\n );\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectExportToExcel, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function getAllocationStatementFile(formId) {\r\n return (dispatch) => {\r\n dispatch(requestExportToExcel());\r\n\r\n const promise = () => ApiService\r\n .getAllocationStatementFile(formId, { responseType: 'arraybuffer' })\r\n .then((response) => {\r\n dispatch(receiveExportToExcel(response.data));\r\n let fileName = response.headers['content-disposition'].split('filename=')[1].split(';')[0];\r\n const firstChar = fileName.substring(0, 1);\r\n if (firstChar === '\"') {\r\n fileName = fileName.slice(1, -1);\r\n }\r\n return dispatch(\r\n downloadFile(\r\n response.data,\r\n fileName,\r\n 'application/octet-stream'\r\n )\r\n );\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectExportToExcel, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function getAllocationStatementFileByAccount(accountId) {\r\n return (dispatch) => {\r\n dispatch(requestExportToExcel());\r\n\r\n const promise = () => ApiService\r\n .getAllocationStatementFileByAccount(accountId, { responseType: 'arraybuffer' })\r\n .then((response) => {\r\n dispatch(receiveExportToExcel(response.data));\r\n let fileName = response.headers['content-disposition'].split('filename=')[1].split(';')[0];\r\n const firstChar = fileName.substring(0, 1);\r\n if (firstChar === '\"') {\r\n fileName = fileName.slice(1, -1);\r\n }\r\n return dispatch(\r\n downloadFile(\r\n response.data,\r\n fileName,\r\n 'application/octet-stream'\r\n )\r\n );\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectExportToExcel, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","export const OPEN_ADD_BENEFICIARY_FORM_MODAL = 'OPEN_ADD_BENEFICIARY_FORM_MODAL';\r\nexport const CLOSE_ADD_BENEFICIARY_FORM_MODAL = 'CLOSE_ADD_BENEFICIARY_FORM_MODAL';\r\nexport const CHANGE_LAYER_BENEFICIARY_FORM_MODAL = 'CHANGE_LAYER_BENEFICIARY_FORM_MODAL';\r\n\r\nfunction openBeneficiaryFormModal(parentW8ImyForm, addingImyLayer) {\r\n if (addingImyLayer !== true) {\r\n addingImyLayer = false;\r\n }\r\n\r\n return {\r\n type: OPEN_ADD_BENEFICIARY_FORM_MODAL,\r\n isAddBeneficiarFormModalShown: true,\r\n isAddingImyToExistingLayer: addingImyLayer,\r\n parentW8ImyForm\r\n };\r\n}\r\n\r\nfunction changeImyChoiceOnBeneficiaryFormModal(value) {\r\n return {\r\n type: CHANGE_LAYER_BENEFICIARY_FORM_MODAL,\r\n isAddingImyToExistingLayer: value,\r\n };\r\n}\r\n\r\nfunction closeAddBeneficiaryFormModal() {\r\n return {\r\n type: CLOSE_ADD_BENEFICIARY_FORM_MODAL,\r\n isAddBeneficiarFormModalShown: false,\r\n isAddingImyToExistingLayer: false,\r\n addBeneficiaryFormResponse: null,\r\n addBeneficiaryFormError: null\r\n };\r\n}\r\n\r\nexport function showBeneficiaryFormModal(parentW8ImyForm, addingImyLayer) {\r\n return (dispatch) => {\r\n dispatch(openBeneficiaryFormModal(parentW8ImyForm, addingImyLayer));\r\n };\r\n}\r\n\r\nexport function hideAddBeneficiaryFormModal() {\r\n return (dispatch) => {\r\n dispatch(closeAddBeneficiaryFormModal());\r\n };\r\n}\r\n\r\nexport function changeImyBeneficiaryFormModal(value) {\r\n return (dispatch) => {\r\n dispatch(changeImyChoiceOnBeneficiaryFormModal(value));\r\n };\r\n}\r\n","import { push } from 'connected-react-router';\r\nimport moment from 'moment';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { hideAddBeneficiaryFormModal } from './addBeneficiaryFormModal';\r\n\r\nexport const ADD_BENE_FORM_REQUEST = 'ADD_BENE_FORM_REQUEST';\r\nexport const ADD_BENE_FORM_SUCCESS = 'ADD_BENE_FORM_SUCCESS';\r\nexport const ADD_BENE_FORM_FAILURE = 'ADD_BENE_FORM_FAILURE';\r\nexport const RESET_BENE_ADDING_FORM = 'RESET_BENE_ADDING_FORM';\r\nexport const CLOSE_PAYMENT_MODEL = 'CLOSE_PAYMENT_MODEL';\r\nexport const OPEN_PAYMENT_MODEL = 'OPEN_PAYMENT_MODEL';\r\n\r\nfunction requestAddBeneForm() {\r\n return {\r\n type: ADD_BENE_FORM_REQUEST,\r\n isAddingBeneForm: true\r\n };\r\n}\r\n\r\nfunction receiveAddBeneForm(addingBeneFormResponse) {\r\n return {\r\n type: ADD_BENE_FORM_SUCCESS,\r\n isAddingBeneForm: false,\r\n addingBeneFormResponse\r\n };\r\n}\r\n\r\nfunction rejectAddBeneForm(addingBeneFormError) {\r\n return {\r\n type: ADD_BENE_FORM_FAILURE,\r\n isAddingBeneForm: false,\r\n addingBeneFormError\r\n };\r\n}\r\n\r\nfunction resetAddBeneForm() {\r\n return {\r\n type: RESET_BENE_ADDING_FORM,\r\n addingBeneFormError: null\r\n };\r\n}\r\n\r\nfunction showPaymentBreakdownModal(paymentValues) {\r\n return {\r\n type: OPEN_PAYMENT_MODEL,\r\n isPaymentModalShown: true,\r\n paymentValues\r\n };\r\n}\r\n\r\nfunction hidePaymentBreakdownModal() {\r\n return {\r\n type: CLOSE_PAYMENT_MODEL,\r\n isPaymentModalShown: false\r\n };\r\n}\r\n\r\nexport function addBeneficiaryForm(data, parentW8ImyForm) {\r\n const formData = new FormData();\r\n\r\n formData.append('addImyToLayer', data.addImyToLayer !== 'true' && data.addImyToLayer !== true);\r\n if (data.addImyToLayer !== 'true' && data.addImyToLayer !== true) {\r\n data.formType = parentW8ImyForm.formType.toLowerCase();\r\n }\r\n\r\n if (data.formFile) {\r\n formData.append('pdfFile', data.formFile);\r\n }\r\n\r\n if (data.beneficiaryFormsOfW8BeneType) {\r\n const fileStore = data.beneficiaryFormsOfW8BeneType;\r\n const arr = Array.from(fileStore);\r\n if (arr != null && arr.length > 0) {\r\n arr.forEach((file) => {\r\n if (file != null) {\r\n formData.append('beneficiaryFormsOfW8BeneType', file);\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (data.beneficiaryFormsOfW8Bene2017Type) {\r\n const fileStore = data.beneficiaryFormsOfW8Bene2017Type;\r\n const arr = Array.from(fileStore);\r\n if (arr != null && arr.length > 0) {\r\n arr.forEach((file) => {\r\n formData.append('beneficiaryFormsOfW8Bene2017Type', file);\r\n });\r\n }\r\n }\r\n\r\n if (data.beneficiaryFormsOfW8BenType) {\r\n const fileStore = data.beneficiaryFormsOfW8BenType;\r\n const arr = Array.from(fileStore);\r\n if (arr != null && arr.length > 0) {\r\n arr.forEach((file) => {\r\n if (file != null) {\r\n formData.append('beneficiaryFormsOfW8BenType', file);\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (data.beneficiaryFormsOfW8Ben2014Type) {\r\n const fileStore = data.beneficiaryFormsOfW8Ben2014Type;\r\n const arr = Array.from(fileStore);\r\n if (arr != null && arr.length > 0) {\r\n arr.forEach((file) => {\r\n if (file != null) {\r\n formData.append('beneficiaryFormsOfW8Ben2014Type', file);\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (data.beneficiaryFormsOfW9Type) {\r\n const fileStore = data.beneficiaryFormsOfW9Type;\r\n const arr = Array.from(fileStore);\r\n if (arr != null && arr.length > 0) {\r\n arr.forEach((file) => {\r\n if (file != null) {\r\n formData.append('beneficiaryFormsOfW9Type', file);\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (data.beneficiaryFormsOfW92017Type) {\r\n const fileStore = data.beneficiaryFormsOfW92017Type;\r\n const arr = Array.from(fileStore);\r\n if (arr != null && arr.length > 0) {\r\n arr.forEach((file) => {\r\n if (file != null) {\r\n formData.append('beneficiaryFormsOfW92017Type', file);\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (data.beneficiaryFormsOfW92018Type) {\r\n const fileStore = data.beneficiaryFormsOfW92018Type;\r\n const arr = Array.from(fileStore);\r\n if (arr != null && arr.length > 0) {\r\n arr.forEach((file) => {\r\n if (file != null) {\r\n formData.append('beneficiaryFormsOfW92018Type', file);\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (data.beneficiaryFormsOfW8ExpType) {\r\n const fileStore = data.beneficiaryFormsOfW8ExpType;\r\n const arr = Array.from(fileStore);\r\n if (arr != null && arr.length > 0) {\r\n arr.forEach((file) => {\r\n if (file != null) {\r\n formData.append('beneficiaryFormsOfW8ExpType', file);\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (data.beneficiaryFormsOfW8Exp2016Type) {\r\n const fileStore = data.beneficiaryFormsOfW8Exp2016Type;\r\n const arr = Array.from(fileStore);\r\n if (arr != null && arr.length > 0) {\r\n arr.forEach((file) => {\r\n if (file != null) {\r\n formData.append('beneficiaryFormsOfW8Exp2016Type', file);\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (parentW8ImyForm) {\r\n formData.append('parentW8ImyId', parentW8ImyForm.id);\r\n if (parentW8ImyForm.taxRegimeType) {\r\n formData.append('taxEnumValue', parentW8ImyForm.taxRegimeType);\r\n }\r\n }\r\n\r\n formData.append('dateOfForm', `${ moment().format('MM-DD-YYYY') }`);\r\n formData.append('customerId', parentW8ImyForm.customerId);\r\n formData.append('isFFI', parentW8ImyForm.isFFI);\r\n\r\n return (dispatch) => {\r\n dispatch(requestAddBeneForm());\r\n\r\n const promise = () => ApiService\r\n .addBeneficiaryForm(data.formType, formData)\r\n .then((response) => {\r\n dispatch(hideAddBeneficiaryFormModal());\r\n dispatch(receiveAddBeneForm(response.data));\r\n return dispatch(push(`/forms/${ data.formType }/${ response.data }`));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectAddBeneForm));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function hideAddBeneFormError() {\r\n return dispatch => dispatch(resetAddBeneForm());\r\n}\r\n\r\nexport function showPaymentModal(values) {\r\n return dispatch => dispatch(showPaymentBreakdownModal(values));\r\n}\r\n\r\nexport function hidePaymentModal() {\r\n return dispatch => dispatch(hidePaymentBreakdownModal());\r\n}\r\n","export const OPEN_DID_YOU_MEAN_MODAL = 'OPEN_DID_YOU_MEAN_MODAL';\r\nexport const CLOSE_DID_YOU_MEAN_MODAL = 'CLOSE_DID_YOU_MEAN_MODAL';\r\nexport const UPDATE_FIELD_FROM_DID_YOU_MEAN = 'UPDATE_FIELD_FROM_DID_YOU_MEAN';\r\n\r\nfunction openDidYouMeanModal(values, renderedfieldName, modalId) {\r\n return {\r\n type: OPEN_DID_YOU_MEAN_MODAL,\r\n isDidYouMeanModalShown: true,\r\n filteredValues: values,\r\n renderedfieldName,\r\n modalId\r\n };\r\n}\r\n\r\nfunction closeDidYouMeanModal() {\r\n return {\r\n type: CLOSE_DID_YOU_MEAN_MODAL,\r\n isDidYouMeanModalShown: false,\r\n renderedfieldName: 'NONE',\r\n modalId: 'NONE'\r\n };\r\n}\r\n\r\nfunction updateFromDidYouMean(stateFieldName, stateFieldValue) {\r\n return {\r\n type: UPDATE_FIELD_FROM_DID_YOU_MEAN,\r\n isDidYouMeanModalShown: false,\r\n renderedfieldName: 'NONE',\r\n modalId: 'NONE',\r\n stateFieldName,\r\n stateFieldValue\r\n };\r\n}\r\n\r\nexport function showDidYouMeanModal(values, renderedfieldName, modalId) {\r\n return (dispatch) => {\r\n dispatch(openDidYouMeanModal(values, renderedfieldName, modalId));\r\n };\r\n}\r\n\r\nexport function hideDidYouMeanModal() {\r\n return (dispatch) => {\r\n dispatch(closeDidYouMeanModal());\r\n };\r\n}\r\n\r\nexport function selectFromDidYouMeanModal(stateFieldName, stateFieldValue) {\r\n return (dispatch) => {\r\n dispatch(updateFromDidYouMean(stateFieldName, stateFieldValue));\r\n };\r\n}\r\n","export const OPEN_PRIVACY_NOTICE_MODAL = 'OPEN_PRIVACY_NOTICE_MODAL';\r\nexport const CLOSE_PRIVACY_NOTICE_MODAL = 'CLOSE_PRIVACY_NOTICE_MODAL';\r\n\r\nfunction openPrivacyNoticeModal() {\r\n return {\r\n type: OPEN_PRIVACY_NOTICE_MODAL,\r\n isPrivacyNoticeModalShown: true\r\n };\r\n}\r\n\r\nfunction closePrivacyNoticeModal() {\r\n return {\r\n type: CLOSE_PRIVACY_NOTICE_MODAL,\r\n isPrivacyNoticeModalShown: false\r\n };\r\n}\r\n\r\nexport function showPrivacyNoticeModal() {\r\n return (dispatch) => {\r\n dispatch(openPrivacyNoticeModal());\r\n };\r\n}\r\n\r\nexport function hidePrivacyNoticeModal() {\r\n return (dispatch) => {\r\n dispatch(closePrivacyNoticeModal());\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const SAVE_DRAFT_OVERRIDES_REQUEST = 'SAVE_DRAFT_OVERRIDES_REQUEST';\r\nexport const SAVE_DRAFT_OVERRIDES_SUCCESS = 'SAVE_DRAFT_OVERRIDES_SUCCESS';\r\nexport const SAVE_DRAFT_OVERRIDES_FAILURE = 'SAVE_DRAFT_OVERRIDES_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: SAVE_DRAFT_OVERRIDES_REQUEST,\r\n isSavingValidationOverrides: true,\r\n };\r\n}\r\n\r\nfunction receive(draftOverrides, accountId, formId) {\r\n return {\r\n type: SAVE_DRAFT_OVERRIDES_SUCCESS,\r\n isSavingValidationOverrides: false,\r\n draftOverrides,\r\n accountId,\r\n formId,\r\n validationOverridesError: null\r\n };\r\n}\r\n\r\nfunction reject(validationOverridesError) {\r\n return {\r\n type: SAVE_DRAFT_OVERRIDES_FAILURE,\r\n isSavingValidationOverrides: false,\r\n validationOverridesError\r\n };\r\n}\r\n\r\nexport function saveDraftValidationOverrides(formId, accountId, data) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .saveDraftValidationOverrides(formId, accountId, data)\r\n .then((response) => {\r\n dispatch(receive(data, accountId, formId));\r\n toastr.success('Success', 'Your draft validation overrides have been saved.');\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { push } from 'connected-react-router';\r\nimport { toastr } from 'react-redux-toastr';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const SAVE_FORM_REVIEW_STATE_REQUEST = 'SAVE_FORM_REVIEW_STATE_REQUEST';\r\nexport const SAVE_FORM_REVIEW_STATE_SUCCESS = 'SAVE_FORM_REVIEW_STATE_SUCCESS';\r\nexport const SAVE_FORM_REVIEW_STATE_USER_ASSIGNMENT_SUCCESS = 'SAVE_FORM_REVIEW_STATE_USER_ASSIGNMENT_SUCCESS';\r\nexport const SAVE_FORM_REVIEW_STATE_FAILURE = 'SAVE_FORM_REVIEW_STATE_FAILURE';\r\n\r\nfunction requestSaveFormReviewState() {\r\n return {\r\n type: SAVE_FORM_REVIEW_STATE_REQUEST,\r\n isSavingFormReviewState: true,\r\n };\r\n}\r\n\r\nfunction receiveSaveFormReviewState(formReviewState) {\r\n return {\r\n type: SAVE_FORM_REVIEW_STATE_SUCCESS,\r\n isSavingFormReviewState: false,\r\n formReviewState,\r\n formReviewStateError: null\r\n };\r\n}\r\n\r\nfunction receiveSaveFormReviewStateWithUserAssignment(formReviewState) {\r\n return {\r\n type: SAVE_FORM_REVIEW_STATE_USER_ASSIGNMENT_SUCCESS,\r\n isSavingFormReviewState: false,\r\n formReviewState,\r\n formReviewStateError: null\r\n };\r\n}\r\n\r\nfunction rejectSaveFormReviewState(formReviewStateError) {\r\n return {\r\n type: SAVE_FORM_REVIEW_STATE_FAILURE,\r\n isSavingFormReviewState: false,\r\n formReviewStateError\r\n };\r\n}\r\n\r\nexport function saveFormReviewState(formId, values, preventRedirect) {\r\n const formData = new FormData();\r\n let assignedUser = false;\r\n formData.append('actionId', values.actionId);\r\n if (values.assignToUser) {\r\n formData.append('assignToUser', values.assignToUser.id);\r\n assignedUser = true;\r\n }\r\n formData.append('isKycReviewed', values.isKycReviewed);\r\n\r\n return (dispatch) => {\r\n dispatch(requestSaveFormReviewState());\r\n\r\n const promise = () => ApiService\r\n .saveFormReviewState(formId, formData)\r\n .then((response) => {\r\n if (assignedUser) {\r\n dispatch(receiveSaveFormReviewStateWithUserAssignment(response.data));\r\n } else {\r\n dispatch(receiveSaveFormReviewState(response.data));\r\n }\r\n\r\n if (values.actionId && !preventRedirect) {\r\n // Redirect home if a workflow action has been submitted\r\n dispatch(push('/'));\r\n } else {\r\n toastr.success(`${ assignedUser ? 'Review successfully saved and form assigned to another user at the current workflow stage.' : 'Review successfully saved.' }`);\r\n }\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectSaveFormReviewState, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const SAVE_ACCOUNT_REVIEW_COMMENTS_REQUEST = 'SAVE_ACCOUNT_REVIEW_COMMENTS_REQUEST';\r\nexport const SAVE_ACCOUNT_REVIEW_COMMENTS_SUCCESS = 'SAVE_ACCOUNT_REVIEW_COMMENTS_SUCCESS';\r\nexport const SAVE_ACCOUNT_REVIEW_COMMENTS_FAILURE = 'SAVE_ACCOUNT_REVIEW_COMMENTS_FAILURE';\r\n\r\nfunction requestSaveAccountReviewComments() {\r\n return {\r\n type: SAVE_ACCOUNT_REVIEW_COMMENTS_REQUEST,\r\n isSavingFormReviewState: true,\r\n };\r\n}\r\n\r\nfunction receiveSaveAccountReviewComments(accountReview) {\r\n return {\r\n type: SAVE_ACCOUNT_REVIEW_COMMENTS_SUCCESS,\r\n isSavingFormReviewState: false,\r\n accountReview,\r\n formReviewStateError: null\r\n };\r\n}\r\n\r\nfunction rejectSaveAccountReviewComments(formReviewStateError) {\r\n return {\r\n type: SAVE_ACCOUNT_REVIEW_COMMENTS_FAILURE,\r\n isSavingFormReviewState: false,\r\n formReviewStateError\r\n };\r\n}\r\n\r\nexport function saveAccountReviewComments(formId, accountId, draftComments) {\r\n const formData = new FormData();\r\n formData.append('reviewerComment', draftComments);\r\n\r\n return (dispatch) => {\r\n dispatch(requestSaveAccountReviewComments());\r\n\r\n const promise = () => ApiService\r\n .saveAccountReviewComments(formId, accountId, formData)\r\n .then((response) => {\r\n dispatch(receiveSaveAccountReviewComments(response.data));\r\n toastr.success('Success', 'Comments saved successfully');\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectSaveAccountReviewComments, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","export const TOGGLE_INSTRUCTION = 'TOGGLE_INSTRUCTION';\r\n\r\nfunction S4() {\r\n return (((1 + Math.random()) * 0x10000) || 0).toString(16).substring(1);\r\n}\r\n\r\nfunction toggleInstructionDispatcher() {\r\n return {\r\n type: TOGGLE_INSTRUCTION,\r\n instructionToggled: `${ S4() }${ S4() }-${ S4() }-4${ S4().substr(0, 3) }-${ S4() }-${ S4() }${ S4() }${ S4() }`.toLowerCase()\r\n };\r\n}\r\n\r\nexport function toggleInstruction() {\r\n return (dispatch) => {\r\n dispatch(toggleInstructionDispatcher());\r\n };\r\n}\r\n","import { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const OPEN_EDIT_CUSTOMER_LEGAL_ENTITIES_MODAL = 'OPEN_EDIT_CUSTOMER_LEGAL_ENTITIES_MODAL';\r\nexport const CLOSE_EDIT_CUSTOMER_LEGAL_ENTITIES_MODAL = 'CLOSE_EDIT_CUSTOMER_LEGAL_ENTITIES_MODAL';\r\nexport const CLOSE_EDIT_CUSTOMER_LEGAL_ENTITIES_ERROR = 'CLOSE_EDIT_CUSTOMER_LEGAL_ENTITIES_ERROR';\r\nexport const GET_CUSTOMER_LEGAL_ENTITIES_REQUEST = 'GET_CUSTOMER_LEGAL_ENTITIES_REQUEST';\r\nexport const GET_CUSTOMER_LEGAL_ENTITIES_SUCCESS = 'GET_CUSTOMER_LEGAL_ENTITIES_SUCCESS';\r\nexport const GET_CUSTOMER_LEGAL_ENTITIES_ERROR = 'GET_CUSTOMER_LEGAL_ENTITIES_ERROR';\r\n\r\nfunction openEditCustomerLegalEntitiesModal(currentForm) {\r\n return {\r\n type: OPEN_EDIT_CUSTOMER_LEGAL_ENTITIES_MODAL,\r\n isEditCustomerLegalEntitiesModalShown: true,\r\n currentForm\r\n };\r\n}\r\n\r\nfunction closeEditCustomerLegalEntitiesModal() {\r\n return {\r\n type: CLOSE_EDIT_CUSTOMER_LEGAL_ENTITIES_MODAL,\r\n isEditCustomerLegalEntitiesModalShown: false,\r\n editCustomerLegalEntitiesResponse: null,\r\n editCustomerLegalEntities: null\r\n };\r\n}\r\n\r\nfunction closeEditCustomerLegalEntitiesError() {\r\n return {\r\n type: CLOSE_EDIT_CUSTOMER_LEGAL_ENTITIES_ERROR,\r\n isEditCustomerLegalEntitiesModalShown: true\r\n };\r\n}\r\n\r\nfunction requestGetCustomerLegalEntities() {\r\n return {\r\n type: GET_CUSTOMER_LEGAL_ENTITIES_REQUEST\r\n };\r\n}\r\n\r\nfunction receiveGetCustomerLegalEntities(legalEntityList) {\r\n return {\r\n type: GET_CUSTOMER_LEGAL_ENTITIES_SUCCESS,\r\n legalEntityList\r\n };\r\n}\r\n\r\nfunction rejectGetCustomerLegalEntities() {\r\n return {\r\n type: GET_CUSTOMER_LEGAL_ENTITIES_ERROR\r\n };\r\n}\r\n\r\nexport function getCustomerLegalEntities(customerId) {\r\n return (dispatch) => {\r\n dispatch(requestGetCustomerLegalEntities());\r\n\r\n const promise = () => ApiService\r\n .getCustomerLegalEntities(customerId)\r\n .then(response => dispatch(receiveGetCustomerLegalEntities(response.data)))\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectGetCustomerLegalEntities, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function showEditCustomerLegalEntitiesModal(currentForm) {\r\n return (dispatch) => {\r\n if (currentForm && currentForm.length > 0) {\r\n dispatch(getCustomerLegalEntities(currentForm[0].customerDbId));\r\n }\r\n return dispatch(openEditCustomerLegalEntitiesModal(currentForm));\r\n };\r\n}\r\n\r\nexport function hideEditCustomerLegalEntitiesModal() {\r\n return (dispatch) => {\r\n dispatch(closeEditCustomerLegalEntitiesModal());\r\n };\r\n}\r\n\r\nexport function hideEditCustomerLegalEntitiesError() {\r\n return (dispatch) => {\r\n dispatch(closeEditCustomerLegalEntitiesError());\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { hideEditCustomerLegalEntitiesModal } from './editCustomerLegalEntitiesModal';\r\n\r\nexport const EDIT_CUSTOMER_LEGAL_ENTITIES_REQUEST = 'EDIT_CUSTOMER_LEGAL_ENTITIES_REQUEST';\r\nexport const EDIT_CUSTOMER_LEGAL_ENTITIES_SUCCESS = 'EDIT_CUSTOMER_LEGAL_ENTITIES_SUCCESS';\r\nexport const EDIT_CUSTOMER_LEGAL_ENTITIES_ERROR = 'EDIT_CUSTOMER_LEGAL_ENTITIES_ERROR';\r\n\r\nfunction requestEditCustomerLegalEntities() {\r\n return {\r\n type: EDIT_CUSTOMER_LEGAL_ENTITIES_REQUEST,\r\n };\r\n}\r\n\r\nfunction receiveEditCustomerLegalEntities() {\r\n return {\r\n type: EDIT_CUSTOMER_LEGAL_ENTITIES_SUCCESS\r\n };\r\n}\r\n\r\nfunction rejectEditCustomerLegalEntitiesError() {\r\n return {\r\n type: EDIT_CUSTOMER_LEGAL_ENTITIES_ERROR\r\n };\r\n}\r\n\r\nexport function editCustomerLegalEntities(customerList, newLegalEntityId, refreshAction, refreshParameters, batchId) {\r\n const customerIdList = customerList.map(item => item.id);\r\n\r\n return (dispatch) => {\r\n dispatch(requestEditCustomerLegalEntities());\r\n\r\n const promise = () => ApiService\r\n .editCustomerLegalEntityLinks(customerIdList, newLegalEntityId, batchId)\r\n .then((response) => {\r\n dispatch(hideEditCustomerLegalEntitiesModal());\r\n dispatch(receiveEditCustomerLegalEntities(response.data));\r\n toastr.success('', 'The new legal entity has been applied');\r\n return dispatch(refreshAction(...refreshParameters));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectEditCustomerLegalEntitiesError, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function editCustomerLegalEntitiesWithCallback(customerList, newLegalEntityId, callback) {\r\n const customerIdList = customerList.map(item => item.id);\r\n\r\n return (dispatch) => {\r\n dispatch(requestEditCustomerLegalEntities());\r\n\r\n const promise = () => ApiService\r\n .editCustomerLegalEntityLinks(customerIdList, newLegalEntityId, null)\r\n .then((response) => {\r\n dispatch(hideEditCustomerLegalEntitiesModal());\r\n dispatch(receiveEditCustomerLegalEntities(response.data));\r\n toastr.success('', 'The new legal entity has been applied');\r\n callback();\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectEditCustomerLegalEntitiesError, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const OPEN_EDIT_FORM_REFERENCE_MODAL = 'OPEN_EDIT_FORM_REFERENCE_MODAL';\r\nexport const CLOSE_EDIT_FORM_REFERENCE_MODAL = 'CLOSE_EDIT_FORM_REFERENCE_MODAL';\r\nexport const CLOSE_EDIT_FORM_REFERENCE_ERROR = 'CLOSE_EDIT_FORM_REFERENCE_ERROR';\r\nexport const GET_FORM_REFERENCE_REQUEST = 'GET_FORM_REFERENCE_REQUEST';\r\nexport const GET_FORM_REFERENCE_SUCCESS = 'GET_FORM_REFERENCE_SUCCESS';\r\nexport const GET_FORM_REFERENCE_ERROR = 'GET_FORM_REFERENCE_ERROR';\r\n\r\nfunction openModal(currentForm) {\r\n return {\r\n type: OPEN_EDIT_FORM_REFERENCE_MODAL,\r\n isEditFormReferenceModalShown: true,\r\n currentForm\r\n };\r\n}\r\n\r\nfunction closeModal() {\r\n return {\r\n type: CLOSE_EDIT_FORM_REFERENCE_MODAL,\r\n isEditFormReferenceModalShown: false,\r\n editFormReferenceResponse: null,\r\n editFormReference: null\r\n };\r\n}\r\n\r\nfunction closeError() {\r\n return {\r\n type: CLOSE_EDIT_FORM_REFERENCE_ERROR,\r\n isEditFormReferenceModalShown: true\r\n };\r\n}\r\n\r\nfunction request() {\r\n return {\r\n type: GET_FORM_REFERENCE_REQUEST\r\n };\r\n}\r\n\r\nfunction receive(formData) {\r\n return {\r\n type: GET_FORM_REFERENCE_SUCCESS,\r\n formData\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: GET_FORM_REFERENCE_ERROR\r\n };\r\n}\r\n\r\nexport function getFormReference(id, formType) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n const promise = () => ApiService\r\n .getFormById(formType, id)\r\n .then(response => dispatch(receive(response.data)))\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function showEditFormReferenceModal(item) {\r\n return (dispatch) => {\r\n if (item && item.length === 1) {\r\n dispatch(getFormReference(item[0].id, item[0].formType));\r\n }\r\n return dispatch(openModal(item));\r\n };\r\n}\r\n\r\nexport function hideEditFormReferenceModal() {\r\n return (dispatch) => {\r\n dispatch(closeModal());\r\n };\r\n}\r\n\r\nexport function hideEditFormReferenceError() {\r\n return (dispatch) => {\r\n dispatch(closeError());\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { hideEditFormReferenceModal } from 'actions/forms/editFormReferenceModal';\r\n\r\nexport const EDIT_FORM_REFERENCE_REQUEST = 'EDIT_FORM_REFERENCE_REQUEST';\r\nexport const EDIT_FORM_REFERENCE_SUCCESS = 'EDIT_FORM_REFERENCE_SUCCESS';\r\nexport const EDIT_FORM_REFERENCE_ERROR = 'EDIT_FORM_REFERENCE_ERROR';\r\n\r\nfunction request(newFormReference) {\r\n return {\r\n type: EDIT_FORM_REFERENCE_REQUEST,\r\n newFormReference\r\n };\r\n}\r\n\r\nfunction receive() {\r\n return {\r\n type: EDIT_FORM_REFERENCE_SUCCESS\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: EDIT_FORM_REFERENCE_ERROR\r\n };\r\n}\r\n\r\nexport function editFormReference(formId, newFormRef) {\r\n return (dispatch) => {\r\n dispatch(request(newFormRef));\r\n\r\n const promise = () => ApiService\r\n .updateFormReference(formId, newFormRef)\r\n .then((response) => {\r\n dispatch(hideEditFormReferenceModal());\r\n toastr.success('', 'The new form reference has been applied');\r\n dispatch(receive());\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","export const OPEN_ASSIGN_TO_USER_MODAL = 'OPEN_ASSIGN_TO_USER_MODAL';\r\nexport const CLOSE_ASSIGN_TO_USER_MODAL = 'CLOSE_ASSIGN_TO_USER_MODAL';\r\nexport const CLOSE_ASSIGN_TO_USER_ERROR = 'CLOSE_ASSIGN_TO_USER_ERROR';\r\n\r\nfunction openAssignToUserModal(formsList) {\r\n return {\r\n type: OPEN_ASSIGN_TO_USER_MODAL,\r\n isAssignToUserModalShown: true,\r\n formsList\r\n };\r\n}\r\n\r\nfunction closeAssignToUserModal() {\r\n return {\r\n type: CLOSE_ASSIGN_TO_USER_MODAL,\r\n isAssignToUserModalShown: false\r\n };\r\n}\r\n\r\nfunction closeAssignToUserError() {\r\n return {\r\n type: CLOSE_ASSIGN_TO_USER_ERROR,\r\n isAssignToUserModalShown: true\r\n };\r\n}\r\n\r\nexport function showAssignToUserModal(formsList) {\r\n return (dispatch) => {\r\n dispatch(openAssignToUserModal(formsList));\r\n };\r\n}\r\n\r\nexport function hideAssignToUserModal() {\r\n return (dispatch) => {\r\n dispatch(closeAssignToUserModal());\r\n };\r\n}\r\n\r\nexport function hideAssignToUserError() {\r\n return (dispatch) => {\r\n dispatch(closeAssignToUserError());\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { hideAssignToUserModal } from './assignToUserModal';\r\nimport { getForms } from './getForms';\r\n\r\nexport const ASSIGN_TO_USER_REQUEST = 'ASSIGN_TO_USER_REQUEST';\r\nexport const ASSIGN_TO_USER_SUCCESS = 'ASSIGN_TO_USER_SUCCESS';\r\nexport const ASSIGN_TO_USER_ERROR = 'ASSIGN_TO_USER_ERROR';\r\n\r\nfunction requestAssignToUser() {\r\n return {\r\n type: ASSIGN_TO_USER_REQUEST,\r\n };\r\n}\r\n\r\nfunction receiveAssignToUser() {\r\n return {\r\n type: ASSIGN_TO_USER_SUCCESS\r\n };\r\n}\r\n\r\nfunction rejectAssignToUser() {\r\n return {\r\n type: ASSIGN_TO_USER_ERROR\r\n };\r\n}\r\n\r\nexport function assignFormsToUser(formIdlist, user, currentPageNumber, currentPageSize) {\r\n return (dispatch) => {\r\n dispatch(requestAssignToUser());\r\n\r\n const promise = () => ApiService\r\n .assignFormToUser(formIdlist, user.id)\r\n .then((response) => {\r\n dispatch(hideAssignToUserModal());\r\n dispatch(receiveAssignToUser(response.data));\r\n toastr.success('', 'The user has been successfully assigned');\r\n return dispatch(getForms(currentPageNumber, currentPageSize));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectAssignToUser, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function assignFormsToUserWithCallback(formIdlist, user, callback) {\r\n return (dispatch) => {\r\n dispatch(requestAssignToUser());\r\n\r\n const promise = () => ApiService\r\n .assignFormToUser(formIdlist, user.id)\r\n .then((response) => {\r\n dispatch(hideAssignToUserModal());\r\n dispatch(receiveAssignToUser(true));\r\n toastr.success('', response.data ?? 'The user has been successfully assigned');\r\n callback();\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectAssignToUser, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","export const OPEN_EDIT_FORM_ASSOCIATIONS_MODAL = 'OPEN_EDIT_FORM_ASSOCIATIONS_MODAL';\r\nexport const CLOSE_EDIT_FORM_ASSOCIATIONS_MODAL = 'CLOSE_EDIT_FORM_ASSOCIATIONS_MODAL';\r\nexport const CLOSE_EDIT_FORM_ASSOCIATIONS_ERROR = 'CLOSE_EDIT_FORM_ASSOCIATIONS_ERROR';\r\n\r\nfunction openEditFormAssociationsModal(currentForm) {\r\n return {\r\n type: OPEN_EDIT_FORM_ASSOCIATIONS_MODAL,\r\n isEditFormAssociationsModalShown: true,\r\n currentForm\r\n };\r\n}\r\n\r\nfunction closeEditFormAssociationsModal() {\r\n return {\r\n type: CLOSE_EDIT_FORM_ASSOCIATIONS_MODAL,\r\n isEditFormAssociationsModalShown: false,\r\n editFormAssociationsResponse: null,\r\n editFormAssociationsError: null\r\n };\r\n}\r\n\r\nfunction closeEditFormAssociationsError() {\r\n return {\r\n type: CLOSE_EDIT_FORM_ASSOCIATIONS_ERROR,\r\n isEditFormAssociationsModalShown: true,\r\n };\r\n}\r\n\r\nexport function showEditFormAssociationsModal(currentForm) {\r\n return (dispatch) => {\r\n dispatch(openEditFormAssociationsModal(currentForm));\r\n };\r\n}\r\n\r\nexport function hideEditFormAssociationsModal() {\r\n return (dispatch) => {\r\n dispatch(closeEditFormAssociationsModal());\r\n };\r\n}\r\n\r\nexport function hideEditFormAssociationsError() {\r\n return (dispatch) => {\r\n dispatch(closeEditFormAssociationsError());\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { getBatchForms } from 'actions/batches';\r\nimport { hideEditFormAssociationsModal } from './editFormAssociationsModal';\r\n\r\nexport const EDIT_FORM_ASSOCIATIONS_REQUEST = 'EDIT_FORM_ASSOCIATIONS_REQUEST';\r\nexport const EDIT_FORM_ASSOCIATIONS_SUCCESS = 'EDIT_FORM_ASSOCIATIONS_SUCCESS';\r\nexport const EDIT_FORM_ASSOCIATIONS_ERROR = 'EDIT_FORM_ASSOCIATIONS_ERROR';\r\n\r\nfunction requestEditFormAssociations() {\r\n return {\r\n type: EDIT_FORM_ASSOCIATIONS_REQUEST,\r\n isRequestingEditFormAssociations: true,\r\n editFormAssociationsResponse: null\r\n };\r\n}\r\n\r\nfunction receiveEditFormAssociations(response) {\r\n return {\r\n type: EDIT_FORM_ASSOCIATIONS_SUCCESS,\r\n isRequestingEditFormAssociations: false,\r\n editFormAssociationsResponse: response\r\n };\r\n}\r\n\r\nfunction rejectEditFormAssociationsError(error) {\r\n return {\r\n type: EDIT_FORM_ASSOCIATIONS_ERROR,\r\n isRequestingEditFormAssociations: false,\r\n editFormAssociationsResponse: null,\r\n editFormAssociationsError: error\r\n };\r\n}\r\n\r\nexport function editBatchFormAssociations(formId, changes, currentPageNumber, currentPageSize, batchId, batchFileId) {\r\n const postData = Object.assign(changes, {});\r\n if (postData.legalEntities) {\r\n if (postData.legalEntities.length === 0) {\r\n postData.legalEntities = [];\r\n } else {\r\n postData.legalEntities = postData.legalEntities.map(le => (Number.isInteger(le) ? le : le.value));\r\n }\r\n }\r\n if (postData.accounts) {\r\n if (postData.accounts.length === 0) {\r\n postData.accounts = [];\r\n } else {\r\n postData.accounts = postData.accounts.map(a => (Number.isInteger(a) ? a : a.value));\r\n }\r\n }\r\n\r\n postData.isNewAccount = postData !== null && postData.newAccount;\r\n postData.isNewCustomer = postData !== null && postData.newCustomer;\r\n\r\n return (dispatch) => {\r\n dispatch(requestEditFormAssociations());\r\n\r\n const promise = () => ApiService\r\n .editFormAssociations(formId, postData)\r\n .then((response) => {\r\n dispatch(hideEditFormAssociationsModal());\r\n dispatch(receiveEditFormAssociations(response.data));\r\n toastr.success('', 'The form associations has been updated');\r\n return dispatch(getBatchForms(batchId, batchFileId, currentPageNumber, currentPageSize));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response) {\r\n dispatch(handleException(error, rejectEditFormAssociationsError, true));\r\n } else if (error.retries && error.retries > 1) {\r\n dispatch(handleException(error, rejectEditFormAssociationsError, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const GET_FORM_DETAILS_REQUEST = 'GET_FORM_DETAILS_REQUEST';\r\nexport const GET_FORM_DETAILS_SUCCESS = 'GET_FORM_DETAILS_SUCCESS';\r\nexport const GET_FORM_DETAILS_FAILURE = 'GET_FORM_DETAILS_FAILURE';\r\nexport const GET_FORM_DETAILS_CLEAR = 'GET_FORM_DETAILS_CLEAR';\r\n\r\nfunction request(formId, rowId) {\r\n return {\r\n type: GET_FORM_DETAILS_REQUEST,\r\n formId,\r\n rowId\r\n };\r\n}\r\n\r\nfunction receive(formDetails, formId, rowId) {\r\n return {\r\n type: GET_FORM_DETAILS_SUCCESS,\r\n formId,\r\n rowId,\r\n formDetails,\r\n getFormDetailsDataError: null\r\n };\r\n}\r\n\r\nfunction reject(formId, rowId, getFormDetailsError) {\r\n return {\r\n type: GET_FORM_DETAILS_FAILURE,\r\n formId,\r\n rowId,\r\n getFormDetailsError\r\n };\r\n}\r\n\r\nfunction clear(formId, rowId) {\r\n return {\r\n type: GET_FORM_DETAILS_CLEAR,\r\n formId,\r\n rowId\r\n };\r\n}\r\n\r\nexport function getFormDetails(formId, rowId) {\r\n return (dispatch) => {\r\n dispatch(request(formId, rowId));\r\n\r\n const promise = () => ApiService\r\n .getFormDetails(formId)\r\n .then((response) => {\r\n dispatch(receive(response.data, formId, rowId));\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n if (error.response) {\r\n error.response.data = { code: error.response.status, message: 'Sorry, we were unable to retrieve your form at this time, please try again later' };\r\n dispatch(reject(formId, rowId, error.response.data));\r\n }\r\n dispatch(handleException(error, null, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function clearFormDetails(formId, rowId) {\r\n return (dispatch) => {\r\n dispatch(clear(formId, rowId));\r\n };\r\n}\r\n","export const OPEN_UNASSIGN_FORM_MODAL = 'OPEN_UNASSIGN_FORM_MODAL';\r\nexport const CLOSE_UNASSIGN_FORM_MODAL = 'CLOSE_UNASSIGN_FORM_MODAL';\r\nexport const CLOSE_UNASSIGN_TO_USER_ERROR = 'CLOSE_UNASSIGN_TO_USER_ERROR';\r\n\r\nfunction openUnassignFormModal(form) {\r\n return {\r\n type: OPEN_UNASSIGN_FORM_MODAL,\r\n isUnassignModalShown: true,\r\n form\r\n };\r\n}\r\n\r\nfunction closeUnassignFormModal() {\r\n return {\r\n type: CLOSE_UNASSIGN_FORM_MODAL,\r\n isUnassignModalShown: false,\r\n };\r\n}\r\n\r\nfunction closeUnassignToUserError() {\r\n return {\r\n type: CLOSE_UNASSIGN_TO_USER_ERROR,\r\n isUnassignModalShown: true\r\n };\r\n}\r\n\r\nexport function showUnassignFormModal(form) {\r\n return (dispatch) => {\r\n dispatch(openUnassignFormModal(form));\r\n };\r\n}\r\n\r\nexport function hideUnassignFormModal() {\r\n return (dispatch) => {\r\n dispatch(closeUnassignFormModal());\r\n };\r\n}\r\n\r\nexport function hideUnssignToUserError() {\r\n return (dispatch) => {\r\n dispatch(closeUnassignToUserError());\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { hideUnassignFormModal } from './unassignFormModal';\r\nimport { getForms } from './getForms';\r\n\r\nexport const UNASSIGN_TO_USER_REQUEST = 'UNASSIGN_TO_USER_REQUEST';\r\nexport const UNASSIGN_TO_USER_SUCCESS = 'UNASSIGN_TO_USER_SUCCESS';\r\nexport const UNASSIGN_TO_USER_ERROR = 'UNASSIGN_TO_USER_ERROR';\r\n\r\nfunction requestUnassignToUser() {\r\n return {\r\n type: UNASSIGN_TO_USER_REQUEST,\r\n };\r\n}\r\n\r\nfunction receiveUnassignToUser() {\r\n return {\r\n type: UNASSIGN_TO_USER_SUCCESS\r\n };\r\n}\r\n\r\nfunction rejectUnassignToUser() {\r\n return {\r\n type: UNASSIGN_TO_USER_ERROR\r\n };\r\n}\r\n\r\nexport function unassignFormsToUser(formIdlist, user, currentPageNumber, currentPageSize) {\r\n return (dispatch) => {\r\n dispatch(requestUnassignToUser());\r\n\r\n const promise = () => ApiService\r\n .assignFormToUser(formIdlist, user.id)\r\n .then((response) => {\r\n dispatch(hideUnassignFormModal());\r\n dispatch(receiveUnassignToUser(response.data));\r\n toastr.success('', 'The user has been successfully unassigned');\r\n return dispatch(getForms(currentPageNumber, currentPageSize));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectUnassignToUser, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function unassignFormsToUserWithCallback(forms, callback) {\r\n return (dispatch) => {\r\n dispatch(requestUnassignToUser());\r\n\r\n const promise = () => ApiService\r\n .unassignFormToUser(forms)\r\n .then((response) => {\r\n dispatch(hideUnassignFormModal());\r\n dispatch(receiveUnassignToUser(response.data));\r\n toastr.success('', 'The user has been successfully unassigned');\r\n callback();\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectUnassignToUser, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const PARENT_IMYFORMS_OPEN_MODAL = 'PARENT_IMYFORMS_OPEN_MODAL';\r\nexport const PARENT_IMYFORMS_CLOSE_MODAL = 'PARENT_IMYFORMS_CLOSE_MODAL';\r\nexport const PARENT_IMYFORMS_REQUEST = 'PARENT_IMYFORMS_REQUEST';\r\nexport const PARENT_IMYFORMS_SUCCESS = 'PARENT_IMYFORMS_SUCCESS';\r\nexport const PARENT_IMYFORMS_FAILURE = 'PARENT_IMYFORMS_FAILURE';\r\n\r\nfunction openParentImyFormsModal() {\r\n return {\r\n type: PARENT_IMYFORMS_OPEN_MODAL\r\n };\r\n}\r\n\r\nfunction closeParentImyFormsModalModal() {\r\n return {\r\n type: PARENT_IMYFORMS_CLOSE_MODAL\r\n };\r\n}\r\n\r\nfunction requestParentImyForms() {\r\n return {\r\n type: PARENT_IMYFORMS_REQUEST\r\n };\r\n}\r\n\r\nfunction receiveParentImyForms(parentImyForms) {\r\n return {\r\n type: PARENT_IMYFORMS_SUCCESS,\r\n parentImyForms\r\n };\r\n}\r\n\r\nfunction rejectParentImyForms() {\r\n return {\r\n type: PARENT_IMYFORMS_FAILURE\r\n };\r\n}\r\n\r\nexport function getParentImyForms(customerId, accountId) {\r\n return (dispatch) => {\r\n dispatch(requestParentImyForms());\r\n\r\n const promise = () => ApiService\r\n .getParentImyForms(customerId, accountId)\r\n .then(response => dispatch(receiveParentImyForms(response.data)))\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectParentImyForms, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function showParentImyFormsModal(customerId, accountId) {\r\n return (dispatch) => {\r\n dispatch(getParentImyForms(customerId, accountId));\r\n return dispatch(openParentImyFormsModal());\r\n };\r\n}\r\n\r\nexport function hideParentImyFormsModal() {\r\n return (dispatch) => {\r\n dispatch(closeParentImyFormsModalModal());\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const CLONE_FORM_REQUEST = 'CLONE_FORM_REQUEST';\r\nexport const CLONE_FORM_SUCCESS = 'CLONE_FORM_SUCCESS';\r\nexport const CLONE_FORM_FAILURE = 'CLONE_FORM_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: CLONE_FORM_REQUEST\r\n };\r\n}\r\n\r\nfunction receive() {\r\n return {\r\n type: CLONE_FORM_SUCCESS\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: CLONE_FORM_FAILURE\r\n };\r\n}\r\n\r\nexport function cloneForm(formId, sourceCustomerId, sourceAccountId, customerId, accountId, onSuccess, cloneCollectableSupportingDocs) {\r\n return (dispatch) => {\r\n dispatch(request(formId));\r\n\r\n const promise = () => ApiService\r\n .cloneForm(formId, sourceCustomerId, sourceAccountId, customerId, accountId, cloneCollectableSupportingDocs)\r\n .then((response) => {\r\n dispatch(receive());\r\n toastr.success('Success', 'Form cloned successfully');\r\n if (onSuccess) {\r\n onSuccess();\r\n }\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const MOVE_FORM_REQUEST = 'MOVE_FORM_REQUEST';\r\nexport const MOVE_FORM_SUCCESS = 'MOVE_FORM_SUCCESS';\r\nexport const MOVE_FORM_FAILURE = 'MOVE_FORM_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: MOVE_FORM_REQUEST\r\n };\r\n}\r\n\r\nfunction receive() {\r\n return {\r\n type: MOVE_FORM_SUCCESS\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: MOVE_FORM_FAILURE\r\n };\r\n}\r\n\r\nexport function moveForm(formId, sourceCustomerId, sourceAccountId, customerId, accountId, onSuccess, deleteCollectableSupportingDocs) {\r\n return (dispatch) => {\r\n dispatch(request(formId));\r\n\r\n const promise = () => ApiService\r\n .moveForm(formId, sourceCustomerId, sourceAccountId, customerId, accountId, deleteCollectableSupportingDocs)\r\n .then((response) => {\r\n dispatch(receive());\r\n toastr.success('Success', 'Form moved successfully');\r\n if (onSuccess) {\r\n onSuccess();\r\n }\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { toastr } from 'react-redux-toastr';\r\n\r\nexport const ADD_STATEMENT_REQUEST = 'ADD_STATEMENT_REQUEST';\r\nexport const ADD_STATEMENT_SUCCESS = 'ADD_STATEMENT_SUCCESS';\r\nexport const ADD_STATEMENT_FAILURE = 'ADD_STATEMENT_FAILURE';\r\n\r\nfunction requestAddStatement() {\r\n return {\r\n type: ADD_STATEMENT_REQUEST,\r\n isAddingStatement: true\r\n };\r\n}\r\n\r\nfunction receiveAddStatement(addStatementResults) {\r\n return {\r\n type: ADD_STATEMENT_SUCCESS,\r\n isAddingStatement: false,\r\n addStatementResults\r\n };\r\n}\r\n\r\nfunction rejectAddStatement(addStatementResults) {\r\n return {\r\n type: ADD_STATEMENT_FAILURE,\r\n isAddingStatement: false,\r\n addStatementResults\r\n };\r\n}\r\n\r\nexport function addWhdStatement(accountId, data) {\r\n const postData = {\r\n formId: data.formId,\r\n type: data.whdStatementType,\r\n imy: {\r\n statement: {\r\n accountId,\r\n id: data.whdStatement.file.id,\r\n fileName: data.whdStatement.file.fileName,\r\n category: data.whdStatement.file.category,\r\n type: data.whdStatement.file.type,\r\n file: data.whdStatement.file\r\n },\r\n statementType: data.whdStatementType\r\n }\r\n };\r\n\r\n return (dispatch) => {\r\n dispatch(requestAddStatement());\r\n\r\n const promise = () => ApiService\r\n .addWhdStatement(accountId, postData)\r\n .then((response) => {\r\n dispatch(receiveAddStatement(response.data));\r\n toastr.success('Success', 'Statement Uploaded successfully');\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectAddStatement, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { toastr } from 'react-redux-toastr';\r\n\r\nexport const CREATE_WHD_REQUEST = 'CREATE_WHD_REQUEST';\r\nexport const CREATE_WHD_FAILURE = 'CREATE_WHD_FAILURE';\r\nexport const CREATE_WHD_SUCCESS = 'CREATE_WHD_SUCCESS';\r\n\r\nfunction requestCreateWhd() {\r\n return {\r\n type: CREATE_WHD_REQUEST,\r\n isCreatingNewWhd: true\r\n };\r\n}\r\n\r\nfunction rejectCreateWhd() {\r\n return {\r\n type: CREATE_WHD_FAILURE,\r\n isCreatingNewWhd: false\r\n };\r\n}\r\n\r\nfunction receiveCreateWhd() {\r\n return {\r\n type: CREATE_WHD_SUCCESS,\r\n isCreatingNewWhd: false\r\n };\r\n}\r\n\r\nexport function createWhdStatement(formId, accountId, statementType) {\r\n return (dispatch) => {\r\n dispatch(requestCreateWhd());\r\n\r\n const promise = () => ApiService\r\n .createWhdStatement(formId, accountId, statementType)\r\n .then((response) => {\r\n dispatch(receiveCreateWhd(response.data));\r\n toastr.success('Success', 'Statement Created successfully');\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectCreateWhd, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_WHD_FORMS_ACCOUNT_SUCCESS = 'GET_WHD_FORMS_ACCOUNT_SUCCESS';\r\nexport const GET_WHD_FORMS_ACCOUNT_REQUEST = 'GET_WHD_FORMS_ACCOUNT_REQUEST';\r\nexport const GET_WHD_FORMS_ACCOUNT_FAILURE = 'GET_WHD_FORMS_ACCOUNT_FAILURE';\r\n\r\nfunction requestGetWhdForAccount() {\r\n return {\r\n type: GET_WHD_FORMS_ACCOUNT_REQUEST,\r\n isGettingWhdForAccount: true\r\n };\r\n}\r\n\r\nfunction rejectGetWhdForAccount() {\r\n return {\r\n type: GET_WHD_FORMS_ACCOUNT_FAILURE,\r\n isGettingWhdForAccount: false\r\n };\r\n}\r\n\r\nfunction receiveGetWhdForAccount(data) {\r\n return {\r\n type: GET_WHD_FORMS_ACCOUNT_SUCCESS,\r\n withholdingStatement: data,\r\n isGettingWhdForAccount: false\r\n };\r\n}\r\n\r\nexport function getWhdStatementFromAccount(accountId) {\r\n return (dispatch) => {\r\n dispatch(requestGetWhdForAccount());\r\n const promise = () => ApiService\r\n .getAccountWithholdingStatements([accountId])\r\n .then((response) => {\r\n dispatch(receiveGetWhdForAccount(response.data));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectGetWhdForAccount, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","export const OPEN_SPECIAL_RATE_ADDITION_MODAL = 'OPEN_SPECIAL_RATE_ADDITION_MODAL';\r\nexport const CLOSE_SPECIAL_RATE_ADDITION_MODAL = 'CLOSE_SPECIAL_RATE_ADDITION_MODAL';\r\n\r\nfunction show() {\r\n return {\r\n type: OPEN_SPECIAL_RATE_ADDITION_MODAL,\r\n isSpecialRatesModalShown: true\r\n };\r\n}\r\n\r\nexport function hide() {\r\n return {\r\n type: CLOSE_SPECIAL_RATE_ADDITION_MODAL,\r\n isSpecialRatesModalShown: false\r\n };\r\n}\r\n\r\nexport function showSpecialRateAdditionModal() {\r\n return dispatch => dispatch(show());\r\n}\r\n\r\nexport function hideSpecialRateAdditionModal() {\r\n return dispatch => dispatch(hide());\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const UPDATE_VERSION_STMT_REQUEST = 'UPDATE_VERSION_STMT_REQUEST';\r\nexport const UPDATE_VERSION_STMT_SUCCESS = 'UPDATE_VERSION_STMT_SUCCESS';\r\nexport const UPDATE_VERSION_STMT_FAILURE = 'UPDATE_VERSION_STMT_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: UPDATE_VERSION_STMT_REQUEST\r\n };\r\n}\r\n\r\nfunction receive(versionWindow) {\r\n return {\r\n type: UPDATE_VERSION_STMT_SUCCESS,\r\n effectiveDate: versionWindow.effectiveFromDate,\r\n effectiveToDate: versionWindow.effectiveToDate,\r\n index: versionWindow.index\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: UPDATE_VERSION_STMT_FAILURE\r\n };\r\n}\r\n\r\nexport function updateVersion(accountId, versionWindow) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n const promise = () => ApiService\r\n .updateStatementEffectiveDates(accountId, versionWindow)\r\n .then((response) => {\r\n if (!response.data) {\r\n toastr.success('Update Failed', 'There was a problem publishing the statement');\r\n } else {\r\n dispatch(receive(versionWindow));\r\n toastr.success('Update Successful', `Statement Version ${ response.data.version } ${ response.data.isRepublish ? 're' : '' }published`);\r\n }\r\n })\r\n .catch(error => dispatch(handleException(error, () => dispatch(reject(accountId)), true)));\r\n\r\n return promise();\r\n };\r\n}\r\n","export const OPEN_PUBLISHED_DATE_UPDATE_MODAL = 'OPEN_PUBLISHED_DATE_UPDATE_MODAL';\r\nexport const CLOSE_PUBLISHED_DATE_UPDATE_MODAL = 'CLOSE_PUBLISHED_DATE_UPDATE_MODAL';\r\n\r\nfunction openModal(index, version) {\r\n return {\r\n type: OPEN_PUBLISHED_DATE_UPDATE_MODAL,\r\n index,\r\n version\r\n };\r\n}\r\n\r\nfunction closeModal() {\r\n return {\r\n type: CLOSE_PUBLISHED_DATE_UPDATE_MODAL\r\n };\r\n}\r\n\r\nexport function showPublishedDateUpdate(index, version) {\r\n return dispatch => dispatch(openModal(index, version));\r\n}\r\n\r\nexport function hidePublishedDateUpdate() {\r\n return dispatch => dispatch(closeModal());\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const CHECK_TIN_REQUEST = 'CHECK_TIN_REQUEST';\r\nexport const CHECK_TIN_SUCCESS = 'CHECK_TIN_SUCCESS';\r\nexport const CHECK_TIN_FAILURE = 'CHECK_TIN_FAILURE';\r\n\r\nfunction checkTinRequest() {\r\n return {\r\n type: CHECK_TIN_REQUEST,\r\n isCheckingTin: true\r\n };\r\n}\r\n\r\nfunction checkTinSuccess(data) {\r\n return {\r\n type: CHECK_TIN_SUCCESS,\r\n tinMatchResult: data,\r\n isCheckingTin: false\r\n };\r\n}\r\n\r\nfunction checkTinFailure() {\r\n return {\r\n type: CHECK_TIN_FAILURE,\r\n isCheckingTin: false\r\n };\r\n}\r\n\r\nexport function checkTin(formId, updateExisting) {\r\n return (dispatch) => {\r\n dispatch(checkTinRequest());\r\n const promise = () => ApiService\r\n .checkTin(formId, updateExisting)\r\n .then((response) => {\r\n dispatch(checkTinSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, checkTinFailure, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","export const OPEN_EDIT_ADDRESS_MODAL = 'OPEN_EDIT_ADDRESS_MODAL';\r\nexport const CLOSE_EDIT_ADDRESS_MODAL = 'CLOSE_EDIT_ADDRESS_MODAL';\r\n\r\nfunction openEditAddressModal(addressProps) {\r\n return {\r\n type: OPEN_EDIT_ADDRESS_MODAL,\r\n isEditAddressModalShown: true,\r\n addressProps\r\n };\r\n}\r\n\r\nfunction closeEditAddressModal() {\r\n return {\r\n type: CLOSE_EDIT_ADDRESS_MODAL,\r\n isEditAddressModalShown: false,\r\n };\r\n}\r\n\r\nexport function showEditAddressModal(addressProps) {\r\n return dispatch => dispatch(openEditAddressModal(addressProps));\r\n}\r\n\r\nexport function hideEditAddressModal() {\r\n return dispatch => dispatch(closeEditAddressModal());\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const DOWNLOAD_FORM_SUMMARY_REQUEST = 'DOWNLOAD_FORM_SUMMARY_REQUEST';\r\nexport const DOWNLOAD_FORM_SUMMARY_SUCCESS = 'DOWNLOAD_FORM_SUMMARY_SUCCESS';\r\nexport const DOWNLOAD_FORM_SUMMARY_FAILURE = 'DOWNLOAD_FORM_SUMMARY_FAILURE';\r\nexport const GET_FORM_SUMMARY_PDF_CLEAR = 'GET_FORM_SUMMARY_PDF_CLEAR';\r\n\r\nfunction request() {\r\n return {\r\n type: DOWNLOAD_FORM_SUMMARY_REQUEST,\r\n isDownloadingFormSummary: true\r\n };\r\n}\r\n\r\nfunction receive(formSummaryData) {\r\n return {\r\n type: DOWNLOAD_FORM_SUMMARY_SUCCESS,\r\n isDownloadingFormSummary: false,\r\n formSummaryData,\r\n dowloadFormSummaryError: null\r\n };\r\n}\r\n\r\nfunction reject(dowloadFormSummaryError) {\r\n return {\r\n type: DOWNLOAD_FORM_SUMMARY_FAILURE,\r\n isDownloadingFormSummary: false,\r\n dowloadFormSummaryError\r\n };\r\n}\r\n\r\nfunction clear() {\r\n return {\r\n type: GET_FORM_SUMMARY_PDF_CLEAR\r\n };\r\n}\r\n\r\nexport function downloadFormSummary(formId) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .downloadFormSummary(formId, { responseType: 'arraybuffer' })\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function clearPdfSummaryDownload() {\r\n return (dispatch) => {\r\n dispatch(clear());\r\n };\r\n}\r\n","export const SAVE_CRITERIA = 'SAVE_CRITERIA';\r\nexport const SAVE_SEARCH_CRITERIA = 'SAVE_SEARCH_CRITERIA';\r\nexport const SAVE_GRID_CRITERIA = 'SAVE_GRID_CRITERIA';\r\n\r\nexport function saveCriteria(searchCriteria, gridCriteria) {\r\n return {\r\n type: SAVE_CRITERIA,\r\n searchCriteria,\r\n gridCriteria\r\n };\r\n}\r\n\r\nexport function saveSearchCriteria(searchCrieria) {\r\n return {\r\n type: SAVE_SEARCH_CRITERIA,\r\n searchCrieria\r\n };\r\n}\r\n\r\nexport function saveGridCriteria(gridCriteria) {\r\n return {\r\n type: SAVE_GRID_CRITERIA,\r\n gridCriteria\r\n };\r\n}\r\n","export const OPEN_MI_CUSTOM_DATE_RANGE_MODAL = 'OPEN_MI_CUSTOM_DATE_RANGE_MODAL';\r\nexport const CLOSE_MI_CUSTOM_DATE_RANGE_MODAL = 'CLOSE_MI_CUSTOM_DATE_RANGE_MODAL';\r\n\r\nfunction openCustomDateRangeModal() {\r\n return {\r\n type: OPEN_MI_CUSTOM_DATE_RANGE_MODAL,\r\n isDateRangePickerShown: true\r\n };\r\n}\r\n\r\nfunction closeCustomDateRangeModal(fromDate, toDate) {\r\n return {\r\n type: CLOSE_MI_CUSTOM_DATE_RANGE_MODAL,\r\n isDateRangePickerShown: false,\r\n dateRangeFrom: fromDate,\r\n dateRangeTo: toDate\r\n };\r\n}\r\n\r\nexport function showCustomDateRangeModal() {\r\n return (dispatch) => {\r\n dispatch(openCustomDateRangeModal());\r\n };\r\n}\r\n\r\nexport function hideCustomDateRangeModal(fromDate, toDate) {\r\n return (dispatch) => {\r\n dispatch(closeCustomDateRangeModal(fromDate, toDate));\r\n };\r\n}\r\n","export const OPEN_MI_DETAILS_MODAL = 'OPEN_MI_DETAILS_MODAL';\r\nexport const CLOSE_MI_DETAILS_MODAL = 'CLOSE_MI_DETAILS_MODAL';\r\n\r\nfunction openMiDetailsModal() {\r\n return {\r\n type: OPEN_MI_DETAILS_MODAL,\r\n isMiDetailsModalShown: true\r\n };\r\n}\r\n\r\nfunction closeMiDetailsModal() {\r\n return {\r\n type: CLOSE_MI_DETAILS_MODAL,\r\n isMiDetailsModalShown: false\r\n };\r\n}\r\n\r\nexport function showMiDetailsModal() {\r\n return (dispatch) => {\r\n dispatch(openMiDetailsModal());\r\n };\r\n}\r\n\r\nexport function hideMiDetailsModal() {\r\n return (dispatch) => {\r\n dispatch(closeMiDetailsModal());\r\n };\r\n}\r\n","import { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const GET_MI_DASHBOARD_REQUEST = 'GET_MI_DASHBOARD_REQUEST';\r\nexport const GET_MI_DASHBOARD_SUCCESS = 'GET_MI_DASHBOARD_SUCCESS';\r\nexport const GET_MI_DASHBOARD_FAILURE = 'GET_MI_DASHBOARD_FAILURE';\r\n\r\nfunction requestMiDashboard() {\r\n return {\r\n type: GET_MI_DASHBOARD_REQUEST,\r\n isGettingMiDashboard: true,\r\n error: null\r\n };\r\n}\r\n\r\nfunction receiveMiDashboard(miData) {\r\n return {\r\n type: GET_MI_DASHBOARD_SUCCESS,\r\n isGettingMiDashboard: false,\r\n miData\r\n };\r\n}\r\n\r\nfunction rejectMiDashboard(error) {\r\n return {\r\n type: GET_MI_DASHBOARD_FAILURE,\r\n isGettingMiDashboard: false,\r\n miData: null,\r\n error\r\n };\r\n}\r\n\r\nexport function getMiDashboard(clientId, fromDate, toDate, trend, includeDeletedForms) {\r\n return (dispatch) => {\r\n dispatch(requestMiDashboard());\r\n\r\n const promise = () => ApiService\r\n .getMiDashboard(clientId, fromDate, toDate, trend, includeDeletedForms)\r\n .then((response) => {\r\n dispatch(receiveMiDashboard(response.data));\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectMiDashboard, false));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","export const RESET_MI_DASHBOARD = 'RESET_MI_DASHBOARD';\r\n\r\nfunction clearMiDashboardData() {\r\n return {\r\n type: RESET_MI_DASHBOARD,\r\n isDateRangePickerShown: false,\r\n isGettingMiDashboard: false,\r\n isGettingMiDashboardXls: false,\r\n dateRangeFrom: '',\r\n dateRangeTo: '',\r\n miData: null,\r\n error: null\r\n };\r\n}\r\n\r\nexport function resetMiDashboard() {\r\n return (dispatch) => {\r\n dispatch(clearMiDashboardData());\r\n };\r\n}\r\n","import moment from 'moment';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { downloadFile } from 'actions/common';\r\n\r\nexport const GET_MI_DASHBOARD_XLS_REQUEST = 'GET_MI_DASHBOARD_XLS_REQUEST';\r\nexport const GET_MI_DASHBOARD_XLS_SUCCESS = 'GET_MI_DASHBOARD_XLS_SUCCESS';\r\nexport const GET_MI_DASHBOARD_XLS_FAILURE = 'GET_MI_DASHBOARD_XLS_FAILURE';\r\n\r\nfunction requestMiDashboardXls() {\r\n return {\r\n type: GET_MI_DASHBOARD_XLS_REQUEST,\r\n isGettingMiDashboardXls: true\r\n };\r\n}\r\n\r\nfunction receiveMiDashboardXls(miData) {\r\n return {\r\n type: GET_MI_DASHBOARD_XLS_SUCCESS,\r\n isGettingMiDashboardXls: false,\r\n miData\r\n };\r\n}\r\n\r\nfunction rejectMiDashboardXls() {\r\n return {\r\n type: GET_MI_DASHBOARD_XLS_FAILURE,\r\n isGettingMiDashboardXls: false,\r\n miData: null\r\n };\r\n}\r\n\r\nexport function getMiDashboardXls(clientId, fromDate, toDate, trend, includeDeletedForms) {\r\n return (dispatch) => {\r\n dispatch(requestMiDashboardXls());\r\n\r\n const promise = () => ApiService\r\n .getMiDashboardXls(clientId, fromDate, toDate, trend, includeDeletedForms, { responseType: 'arraybuffer' })\r\n .then((response) => {\r\n dispatch(receiveMiDashboardXls(response.data));\r\n return dispatch(\r\n downloadFile(\r\n response.data,\r\n `${ moment().format('DD_MMM_YYYY') }_dashboard.xlsx`,\r\n 'application/xls'\r\n )\r\n );\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n if (error.response) {\r\n if (error.response.status === 400) {\r\n error.response.data = { code: error.response.status, message: 'Maximum amount of records for report generation reached. Alter the validation date range and try again.' };\r\n } else {\r\n error.response.data = { code: error.response.status, message: 'Sorry, we were unable to generate your excel report at this time, please come back later' };\r\n }\r\n }\r\n dispatch(handleException(error, rejectMiDashboardXls, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\n\r\nexport const SUBMIT_ANSWERS_REQUEST = 'SUBMIT_ANSWERS_REQUEST';\r\nexport const SUBMIT_ANSWERS_SUCCESS = 'SUBMIT_ANSWERS_SUCCESS';\r\nexport const SUBMIT_ANSWERS_FAILURE = 'SUBMIT_ANSWERS_FAILURE';\r\n\r\nfunction requestSubmitAnswers() {\r\n return {\r\n type: SUBMIT_ANSWERS_REQUEST,\r\n isSubmittingAnswers: true,\r\n redirectUrl: ''\r\n };\r\n}\r\n\r\nfunction receiveSubmitAnswers(formType, id) {\r\n return {\r\n type: SUBMIT_ANSWERS_SUCCESS,\r\n isSubmittingAnswers: false,\r\n redirectUrl: `/forms/${ formType }/${ id }`\r\n };\r\n}\r\n\r\nfunction rejectSubmitAnswers(error) {\r\n return {\r\n type: SUBMIT_ANSWERS_FAILURE,\r\n isSubmittingAnswers: false,\r\n redirectUrl: ''\r\n };\r\n}\r\n\r\nexport function submitAnswers(data) {\r\n return (dispatch) => {\r\n dispatch(requestSubmitAnswers());\r\n\r\n const promise = () => ApiService\r\n .submitAnswers(data)\r\n .then((response) => {\r\n dispatch(receiveSubmitAnswers(data.formType, response.data));\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectSubmitAnswers, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { updateGridSettings } from 'actions/auth/updateGridSettings';\r\n\r\nexport const GET_USER_QUEUE_REQUEST = 'GET_USER_QUEUE_REQUEST';\r\nexport const GET_USER_QUEUE_SUCCESS = 'GET_USER_QUEUE_SUCCESS';\r\nexport const GET_USER_QUEUE_FAILURE = 'GET_USER_QUEUE_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: GET_USER_QUEUE_REQUEST,\r\n };\r\n}\r\n\r\nfunction receive(userQueue) {\r\n return {\r\n type: GET_USER_QUEUE_SUCCESS,\r\n userQueue\r\n };\r\n}\r\n\r\nfunction reject(error) {\r\n return {\r\n type: GET_USER_QUEUE_FAILURE,\r\n };\r\n}\r\n\r\nexport function getUserQueue(workflow, pageNumber, pageSize, totalLimit, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected, formTypes, sortByField, sortDirection, filterList) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n return ApiService\r\n .getUserQueue(workflow, pageNumber, pageSize, totalLimit, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected, formTypes, sortByField, sortDirection, filterList)\r\n .then((response) => {\r\n dispatch(updateGridSettings(response.data.myWork.totalLimit));\r\n dispatch(receive(response.data.myWork));\r\n }).catch((error) => {\r\n dispatch(handleException(error, reject, true));\r\n });\r\n };\r\n}\r\n\r\nexport function getUserQueueByObject(requestObject) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .getUserQueue(\r\n requestObject.workflow,\r\n requestObject.pageNumber,\r\n requestObject.pageSize,\r\n requestObject.totalLimit,\r\n requestObject.searchQuery,\r\n requestObject.legalEntity,\r\n requestObject.legalEntitySelected,\r\n requestObject.accountNumber,\r\n requestObject.accountNumberSelected,\r\n requestObject.customer,\r\n requestObject.customerSelected,\r\n requestObject.formTypes,\r\n requestObject.sortByField,\r\n requestObject.sortDirection,\r\n requestObject.filterList\r\n )\r\n .then((response) => {\r\n dispatch(updateGridSettings(response.data.myWork.totalLimit));\r\n dispatch(receive(response.data.myWork));\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { updateGridSettings } from 'actions/auth/updateGridSettings';\r\n\r\nexport const GET_WORKFLOW_QUEUE_REQUEST = 'GET_WORKFLOW_QUEUE_REQUEST';\r\nexport const GET_WORKFLOW_INITIAL_QUEUE_SUCCESS = 'GET_WORKFLOW_INITIAL_QUEUE_SUCCESS';\r\nexport const GET_WORKFLOW_SECONDARY_QUEUE_SUCCESS = 'GET_WORKFLOW_SECONDARY_QUEUE_SUCCESS';\r\nexport const GET_WORKFLOW_EXPERT_QUEUE_SUCCESS = 'GET_WORKFLOW_EXPERT_QUEUE_SUCCESS';\r\nexport const GET_WORKFLOW_COMPLETE_QUEUE_SUCCESS = 'GET_WORKFLOW_COMPLETE_QUEUE_SUCCESS';\r\nexport const GET_WORKFLOW_QUEUE_FAILURE = 'GET_WORKFLOW_QUEUE_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: GET_WORKFLOW_QUEUE_REQUEST,\r\n };\r\n}\r\n\r\nfunction receive(stage, data) {\r\n switch (stage) {\r\n case 'pendingreview':\r\n return {\r\n type: GET_WORKFLOW_INITIAL_QUEUE_SUCCESS,\r\n initialReviewQueue: data\r\n };\r\n case 'pendingsecondaryreview':\r\n return {\r\n type: GET_WORKFLOW_SECONDARY_QUEUE_SUCCESS,\r\n secondaryReviewQueue: data\r\n };\r\n case 'pendingexpertreview':\r\n return {\r\n type: GET_WORKFLOW_EXPERT_QUEUE_SUCCESS,\r\n expertReviewQueue: data\r\n };\r\n case 'complete':\r\n return {\r\n type: GET_WORKFLOW_COMPLETE_QUEUE_SUCCESS,\r\n completeQueue: data\r\n };\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\nfunction reject(error) {\r\n return {\r\n type: GET_WORKFLOW_QUEUE_FAILURE,\r\n };\r\n}\r\n\r\nexport function getWorkflowQueue(workflow, pageNumber, pageSize, totalLimit, stage, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected, formTypes, sortByField, sortDirection, filterList) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .getWorkflowQueue(workflow, pageNumber, pageSize, totalLimit, stage, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected, formTypes, sortByField, sortDirection, filterList)\r\n .then((response) => {\r\n dispatch(updateGridSettings(response.data.myWork.totalLimit));\r\n dispatch(receive(stage, response.data.queues[0]));\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function getWorkflowQueueByObject(requestObject) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n return ApiService\r\n .getWorkflowQueue(\r\n requestObject.workflow,\r\n requestObject.pageNumber,\r\n requestObject.pageSize,\r\n requestObject.totalLimit,\r\n requestObject.stage,\r\n requestObject.searchQuery,\r\n requestObject.legalEntity,\r\n requestObject.legalEntitySelected,\r\n requestObject.accountNumber,\r\n requestObject.accountNumberSelected,\r\n requestObject.customer,\r\n requestObject.customerSelected,\r\n requestObject.formTypes,\r\n requestObject.sortByField,\r\n requestObject.sortDirection,\r\n requestObject.filterList\r\n )\r\n .then((response) => {\r\n dispatch(updateGridSettings(response.data.queues[0].totalLimit));\r\n dispatch(receive(requestObject.stage, response.data.queues[0]));\r\n }).catch((error) => {\r\n dispatch(handleException(error, reject, true));\r\n });\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_WORKFLOW_QUEUES_REQUEST = 'GET_WORKFLOW_QUEUES_REQUEST';\r\nexport const GET_WORKFLOW_QUEUES_SUCCESS = 'GET_WORKFLOW_QUEUES_SUCCESS';\r\nexport const GET_WORKFLOW_QUEUES_FAILURE = 'GET_WORKFLOW_QUEUES_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: GET_WORKFLOW_QUEUES_REQUEST,\r\n };\r\n}\r\n\r\nfunction receive(userQueue, initialReviewQueue, secondaryReviewQueue, expertReviewQueue) {\r\n return {\r\n type: GET_WORKFLOW_QUEUES_SUCCESS,\r\n userQueue,\r\n initialReviewQueue,\r\n secondaryReviewQueue,\r\n expertReviewQueue\r\n };\r\n}\r\n\r\nfunction reject(error) {\r\n return {\r\n type: GET_WORKFLOW_QUEUES_FAILURE,\r\n };\r\n}\r\n\r\nexport function getWorkflowQueues(workflow, pageNumber, pageSize) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .getWorkflowQueues(workflow, pageNumber, pageSize)\r\n .then((response) => {\r\n let userQueue = null;\r\n let initialReviewQueue = null;\r\n let secondaryReviewQueue = null;\r\n let expertReviewQueue = null;\r\n\r\n if (response.data) {\r\n userQueue = response.data.myWork;\r\n\r\n if (response.data.queues) {\r\n for (let i = 0; i < response.data.queues; i += 1) {\r\n switch (response.data.queues[i].stage) {\r\n case 'pendingreview':\r\n initialReviewQueue = response.data.queues[i];\r\n break;\r\n case 'pendingsecondaryreview':\r\n secondaryReviewQueue = response.data.queues[i];\r\n break;\r\n case 'pendingexpertreview':\r\n expertReviewQueue = response.data.queues[i];\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n initialReviewQueue = response.data.PendingInitialReview;\r\n secondaryReviewQueue = response.data.PendingSecondaryReview;\r\n expertReviewQueue = response.data.PendingExpertReview;\r\n }\r\n\r\n dispatch(receive(userQueue, initialReviewQueue, secondaryReviewQueue, expertReviewQueue));\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { push } from 'connected-react-router';\r\n\r\nimport { handleException } from 'actions/exceptions';\r\nimport { ApiService } from 'services';\r\nimport { hideAddFormModal } from 'actions/forms/addFormModal';\r\n\r\nexport const TAKE_QUEUE_ITEM_REQUEST = 'TAKE_QUEUE_ITEM_REQUEST';\r\nexport const TAKE_QUEUE_ITEM_SUCCESS = 'TAKE_QUEUE_ITEM_SUCCESS';\r\nexport const TAKE_QUEUE_ITEM_FAILURE = 'TAKE_QUEUE_ITEM_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: TAKE_QUEUE_ITEM_REQUEST,\r\n };\r\n}\r\n\r\nfunction reject(error) {\r\n return {\r\n type: TAKE_QUEUE_ITEM_FAILURE,\r\n };\r\n}\r\n\r\nexport function takeQueueItem(workflow, id, accountId) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .takeQueueItem(workflow, id)\r\n .then((response) => {\r\n if (workflow === 'form') {\r\n if (response.data) {\r\n dispatch(hideAddFormModal());\r\n const redirectUrl = accountId ? `${ response.data }?account=${ accountId }` : response.data;\r\n return dispatch(push(redirectUrl));\r\n }\r\n }\r\n\r\n return null;\r\n }).catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","export const OPEN_OWNERSHIP_MODAL = 'OPEN_OWNERSHIP_MODAL';\r\nexport const CLOSE_OWNERSHIP_MODAL = 'CLOSE_OWNERSHIP_MODAL';\r\n\r\nfunction openOwnershipModal(changeOwnershipItem) {\r\n return {\r\n type: OPEN_OWNERSHIP_MODAL,\r\n isOwnershipModalShown: true,\r\n changeOwnershipItem,\r\n };\r\n}\r\n\r\nfunction closeOwnershipModal() {\r\n return {\r\n type: CLOSE_OWNERSHIP_MODAL,\r\n isOwnershipModalShown: false\r\n };\r\n}\r\n\r\nexport function showOwnershipModal(item) {\r\n return (dispatch) => {\r\n dispatch(openOwnershipModal(item));\r\n };\r\n}\r\n\r\nexport function hideOwnershipModal() {\r\n return (dispatch) => {\r\n dispatch(closeOwnershipModal());\r\n };\r\n}\r\n","export const OPEN_DELETE_FILE_MODAL = 'OPEN_DELETE_FILE_MODAL';\r\nexport const CLOSE_DELETE_FILE_MODAL = 'CLOSE_DELETE_FILE_MODAL';\r\n\r\nfunction openDeleteFileModal(fileId) {\r\n return {\r\n type: OPEN_DELETE_FILE_MODAL,\r\n isDeleteFileModalShown: true,\r\n fileId\r\n };\r\n}\r\n\r\nfunction closeDeleteFileModal() {\r\n return {\r\n type: CLOSE_DELETE_FILE_MODAL,\r\n isDeleteFileModalShown: false,\r\n deleteFileResponse: null,\r\n deleteFileError: null\r\n };\r\n}\r\n\r\nexport function showDeleteFileModal(fileId) {\r\n return (dispatch) => {\r\n dispatch(openDeleteFileModal(fileId));\r\n };\r\n}\r\n\r\nexport function hideDeleteFileModal() {\r\n return (dispatch) => {\r\n dispatch(closeDeleteFileModal());\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { getBatchFiles } from 'actions/batches/getBatchFiles';\r\nimport { hideDeleteFileModal } from './deleteFileModal';\r\n\r\nexport const DELETE_FILE_REQUEST = 'DELETE_FILE_REQUEST';\r\nexport const DELETE_FILE_SUCCESS = 'DELETE_FILE_SUCCESS';\r\nexport const DELETE_FILE_FAILURE = 'DELETE_FILE_FAILURE';\r\n\r\nfunction requestDeleteFile() {\r\n return {\r\n type: DELETE_FILE_REQUEST,\r\n isDeletingFile: true\r\n };\r\n}\r\n\r\nfunction receiveDeleteFile(deleteFileResponse) {\r\n return {\r\n type: DELETE_FILE_SUCCESS,\r\n isDeletingFile: false,\r\n deleteFileResponse\r\n };\r\n}\r\n\r\nfunction rejectDeleteFile() {\r\n return {\r\n type: DELETE_FILE_FAILURE,\r\n isDeletingFile: false\r\n };\r\n}\r\n\r\nexport function deleteBatchFile(batchId, fileId, pageNumber, pageSize) {\r\n return (dispatch) => {\r\n dispatch(requestDeleteFile());\r\n\r\n const promise = () => ApiService\r\n .deleteBatchFile(batchId, fileId)\r\n .then((response) => {\r\n dispatch(receiveDeleteFile(response.data));\r\n dispatch(hideDeleteFileModal());\r\n return dispatch(getBatchFiles(batchId, pageNumber, pageSize));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectDeleteFile, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_LEGAL_ENTITIES_REQUEST = 'GET_LEGAL_ENTITIES_REQUEST';\r\nexport const GET_LEGAL_ENTITIES_SUCCESS = 'GET_LEGAL_ENTITIES_SUCCESS';\r\nexport const GET_LEGAL_ENTITIES_FAILURE = 'GET_LEGAL_ENTITIES_FAILURE';\r\n\r\nfunction requestGetLegalEntities() {\r\n return {\r\n type: GET_LEGAL_ENTITIES_REQUEST,\r\n isGettingLegalEntities: true\r\n };\r\n}\r\n\r\nfunction receiveGetLegalEntities(legalEntities, legalEntitiesCount) {\r\n return {\r\n type: GET_LEGAL_ENTITIES_SUCCESS,\r\n isGettingLegalEntities: false,\r\n legalEntities,\r\n legalEntitiesCount\r\n };\r\n}\r\n\r\nfunction rejectGetLegalEntities() {\r\n return {\r\n type: GET_LEGAL_ENTITIES_FAILURE,\r\n isGettingLegalEntities: false\r\n };\r\n}\r\n\r\nexport function getLegalEntities(pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected) {\r\n return (dispatch) => {\r\n dispatch(requestGetLegalEntities());\r\n const promise = () => ApiService\r\n .getLegalEntities(pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected)\r\n .then((response) => {\r\n dispatch(receiveGetLegalEntities(response.data.items, response.data.totalCount));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectGetLegalEntities, true));\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n\r\nexport function getLegalEntitiesByObject(requestObject) {\r\n return getLegalEntities(\r\n requestObject.pageNumber,\r\n requestObject.pageSize,\r\n requestObject.totalLimit,\r\n requestObject.sortByField,\r\n requestObject.sortDirection,\r\n requestObject.filterList,\r\n requestObject.searchQuery,\r\n requestObject.legalEntity,\r\n requestObject.legalEntitySelected,\r\n requestObject.accountNumber,\r\n requestObject.accountNumberSelected,\r\n requestObject.customer,\r\n requestObject.customerSelected\r\n );\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_CIC_ALERT_COUNTS_REQUEST = 'GET_CIC_ALERT_COUNTS_REQUEST';\r\nexport const GET_CIC_ALERT_COUNTS_SUCCESS = 'GET_CIC_ALERT_COUNTS_SUCCESS';\r\nexport const GET_CIC_ALERT_COUNTS_FAILURE = 'GET_CIC_ALERT_COUNTS_FAILURE';\r\n\r\nfunction requestGetCicAlertCounts() {\r\n return {\r\n type: GET_CIC_ALERT_COUNTS_REQUEST,\r\n isCicAlertCountsLoading: true\r\n };\r\n}\r\n\r\nfunction receiveGetCicAlertCounts(cicAlertsAssignedCount, cicAlertsUnassignedCount) {\r\n return {\r\n type: GET_CIC_ALERT_COUNTS_SUCCESS,\r\n isCicAlertCountsLoading: false,\r\n cicAlertsAssignedCount,\r\n cicAlertsListError: null,\r\n cicAlertsUnassignedCount\r\n };\r\n}\r\n\r\nfunction rejectGetCicAlertCounts(cicAlertsCountsError) {\r\n return {\r\n type: GET_CIC_ALERT_COUNTS_FAILURE,\r\n isCicAlertCountsLoading: false,\r\n cicAlertsCountsError\r\n };\r\n}\r\n\r\nexport function getCicAlertCounts() {\r\n return (dispatch) => {\r\n dispatch(requestGetCicAlertCounts());\r\n\r\n const promise = () => ApiService\r\n .getCicAlertCounts()\r\n .then((response) => {\r\n dispatch(receiveGetCicAlertCounts(response.data.assignedCount, response.data.unassignedCount));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectGetCicAlertCounts, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nimport { getCicAlertCounts } from './getCicAlertCounts';\r\n\r\nexport const GET_CIC_ALERTS_REQUEST = 'GET_CIC_ALERTS_REQUEST';\r\nexport const GET_CIC_ALERTS_SUCCESS = 'GET_CIC_ALERTS_SUCCESS';\r\nexport const GET_CIC_ALERTS_FAILURE = 'GET_CIC_ALERTS_FAILURE';\r\n\r\nfunction requestGetCicAlerts() {\r\n return {\r\n type: GET_CIC_ALERTS_REQUEST,\r\n isCicAlertsListLoading: true\r\n };\r\n}\r\n\r\nfunction receiveGetCicAlerts(cicAlertsList, cicAlertsListCount) {\r\n return {\r\n type: GET_CIC_ALERTS_SUCCESS,\r\n isCicAlertsListLoading: false,\r\n cicAlertsList,\r\n cicAlertsListError: null,\r\n cicAlertsListCount\r\n };\r\n}\r\n\r\nfunction rejectGetCicAlerts(cicAlertsListError) {\r\n return {\r\n type: GET_CIC_ALERTS_FAILURE,\r\n isCicAlertsListLoading: false,\r\n cicAlertsListError\r\n };\r\n}\r\n\r\nexport function getCicAlerts(resolved, pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, raisedWithin, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected) {\r\n return (dispatch) => {\r\n dispatch(requestGetCicAlerts());\r\n\r\n const promise = () => ApiService\r\n .getCicAlerts(resolved, pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, raisedWithin, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected)\r\n .then((response) => {\r\n dispatch(receiveGetCicAlerts(response.data.items, response.data.totalCount));\r\n dispatch(getCicAlertCounts());\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectGetCicAlerts, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function getUserCicAlerts(pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, raisedWithin, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected) {\r\n return (dispatch) => {\r\n dispatch(requestGetCicAlerts());\r\n\r\n const promise = () => ApiService\r\n .getUserCicAlerts(pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, raisedWithin, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected)\r\n .then((response) => {\r\n dispatch(receiveGetCicAlerts(response.data.items, response.data.totalCount));\r\n dispatch(getCicAlertCounts());\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectGetCicAlerts, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function getWorkflowCicAlerts(workflowStage, pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, raisedWithin, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected) {\r\n return (dispatch) => {\r\n dispatch(requestGetCicAlerts());\r\n\r\n const promise = () => ApiService\r\n .getWorkflowCicAlerts(workflowStage, pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, raisedWithin, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected)\r\n .then((response) => {\r\n dispatch(receiveGetCicAlerts(response.data.items, response.data.totalCount));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectGetCicAlerts, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function getCicAlertsByObject(requestObject) {\r\n return getCicAlerts(\r\n requestObject.resolved,\r\n requestObject.pageNumber,\r\n requestObject.pageSize,\r\n requestObject.totalLimit,\r\n requestObject.sortByField,\r\n requestObject.sortDirection,\r\n requestObject.filterList,\r\n requestObject.raisedWithin,\r\n requestObject.legalEntity,\r\n requestObject.legalEntitySelected,\r\n requestObject.accountNumber,\r\n requestObject.accountNumberSelected,\r\n requestObject.customer,\r\n requestObject.customerSelected\r\n );\r\n}\r\n\r\nexport function getUserCicAlertsByObject(requestObject) {\r\n return getUserCicAlerts(\r\n requestObject.pageNumber,\r\n requestObject.pageSize,\r\n requestObject.totalLimit,\r\n requestObject.sortByField,\r\n requestObject.sortDirection,\r\n requestObject.filterList,\r\n requestObject.raisedWithin,\r\n requestObject.legalEntity,\r\n requestObject.legalEntitySelected,\r\n requestObject.accountNumber,\r\n requestObject.accountNumberSelected,\r\n requestObject.customer,\r\n requestObject.customerSelected\r\n );\r\n}\r\n\r\nexport function getWorkflowCicAlertsByObject(requestObject) {\r\n return getWorkflowCicAlerts(\r\n requestObject.stage,\r\n requestObject.pageNumber,\r\n requestObject.pageSize,\r\n requestObject.totalLimit,\r\n requestObject.sortByField,\r\n requestObject.sortDirection,\r\n requestObject.filterList,\r\n requestObject.raisedWithin,\r\n requestObject.legalEntity,\r\n requestObject.legalEntitySelected,\r\n requestObject.accountNumber,\r\n requestObject.accountNumberSelected,\r\n requestObject.customer,\r\n requestObject.customerSelected\r\n );\r\n}\r\n","export const OPEN_CIC_ALERT_MODAL = 'OPEN_CIC_ALERT_MODAL';\r\nexport const CLOSE_CIC_ALERT_MODAL = 'CLOSE_CIC_ALERT_MODAL';\r\n\r\nfunction openCicAlertModal(cicAlertId) {\r\n return {\r\n type: OPEN_CIC_ALERT_MODAL,\r\n isCicAlertModalShown: true,\r\n cicAlertId,\r\n };\r\n}\r\n\r\nfunction closeCicAlertModal(refreshPage) {\r\n return {\r\n type: CLOSE_CIC_ALERT_MODAL,\r\n isCicAlertModalShown: false,\r\n refreshPage\r\n };\r\n}\r\n\r\nexport function showCicAlertModal(cicAlertId) {\r\n return (dispatch) => {\r\n dispatch(openCicAlertModal(cicAlertId));\r\n };\r\n}\r\n\r\nexport function hideCicAlertModal(refreshPage) {\r\n return (dispatch) => {\r\n dispatch(closeCicAlertModal(refreshPage));\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nimport { getCicAlertCounts } from './getCicAlertCounts';\r\n\r\nexport const GET_CIC_ALERT_REQUEST = 'GET_CIC_ALERT_REQUEST';\r\nexport const GET_CIC_ALERT_SUCCESS = 'GET_CIC_ALERT_SUCCESS';\r\nexport const GET_CIC_ALERT_FAILURE = 'GET_CIC_ALERT_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: GET_CIC_ALERT_REQUEST,\r\n isCicAlertLoading: true,\r\n cicAlert: null,\r\n cicAlertError: null\r\n };\r\n}\r\n\r\nfunction receive(cicAlert) {\r\n return {\r\n type: GET_CIC_ALERT_SUCCESS,\r\n isCicAlertLoading: false,\r\n cicAlert,\r\n cicReviewState: cicAlert.review,\r\n workflowState: cicAlert.workflow,\r\n cicAlertError: null\r\n };\r\n}\r\n\r\nfunction reject(cicAlertError) {\r\n return {\r\n type: GET_CIC_ALERT_FAILURE,\r\n isCicAlertLoading: false,\r\n cicAlertError\r\n };\r\n}\r\n\r\nexport function getCicAlert(id) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .getCicAlert(id)\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function takeCicAlert(id) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .takeCicAlert(id)\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n dispatch(getCicAlertCounts());\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","export const SAVE_CIC_ALERT_CRITERIA = 'SAVE_CIC_ALERT_CRITERIA';\r\nexport const SAVE_CIC_ALERT_SEARCH_CRITERIA = 'SAVE_CIC_ALERT_SEARCH_CRITERIA';\r\nexport const SAVE_CIC_ALERT_GRID_CRITERIA = 'SAVE_CIC_ALERT_GRID_CRITERIA';\r\n\r\nexport function saveCicAlertCriteria(searchCriteria, gridCriteria) {\r\n return {\r\n type: SAVE_CIC_ALERT_CRITERIA,\r\n searchCriteria,\r\n gridCriteria\r\n };\r\n}\r\n\r\nexport function saveCicAlertSearchCriteria(searchCrieria) {\r\n return {\r\n type: SAVE_CIC_ALERT_SEARCH_CRITERIA,\r\n searchCrieria\r\n };\r\n}\r\n\r\nexport function saveCicAlertGridCriteria(gridCriteria) {\r\n return {\r\n type: SAVE_CIC_ALERT_GRID_CRITERIA,\r\n gridCriteria\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { toastr } from 'react-redux-toastr';\r\nimport { hideCicAlertModal } from 'actions/monitoring/getCicAlertModal';\r\n\r\nimport { getCicAlertCounts } from './getCicAlertCounts';\r\n\r\nexport const SAVE_CIC_ALERT_REVIEW_STATE_REQUEST = 'SAVE_CIC_ALERT_REVIEW_STATE_REQUEST';\r\nexport const SAVE_CIC_ALERT_REVIEW_STATE_SUCCESS = 'SAVE_CIC_ALERT_REVIEW_STATE_SUCCESS';\r\nexport const SAVE_CIC_ALERT_REVIEW_STATE_FAILURE = 'SAVE_CIC_ALERT_REVIEW_STATE_FAILURE';\r\n\r\nfunction requestSaveCicAlertReviewState() {\r\n return {\r\n type: SAVE_CIC_ALERT_REVIEW_STATE_REQUEST,\r\n isSavingCicReviewState: true,\r\n };\r\n}\r\n\r\nfunction receiveSaveCicAlertReviewState(cicReviewState) {\r\n return {\r\n type: SAVE_CIC_ALERT_REVIEW_STATE_SUCCESS,\r\n isSavingCicReviewState: false,\r\n cicReviewState,\r\n cicReviewStateError: null\r\n };\r\n}\r\n\r\nfunction rejectSaveCicAlertReviewState(cicReviewStateError) {\r\n return {\r\n type: SAVE_CIC_ALERT_REVIEW_STATE_FAILURE,\r\n isSavingCicReviewState: false,\r\n cicReviewStateError\r\n };\r\n}\r\n\r\nexport function saveCicAlertReviewState(id, values) {\r\n const formData = new FormData();\r\n formData.append('reviewerComment', values.draftComments);\r\n formData.append('actionId', values.actionId);\r\n if (values.assignToUser) {\r\n formData.append('assignToUser', values.assignToUser.id);\r\n }\r\n if (values.isCic != null) {\r\n formData.append('isCic', values.isCic);\r\n }\r\n if (values.hasCuringDocs != null) {\r\n formData.append('hasCuringDocs', values.hasCuringDocs);\r\n }\r\n if (values.curingDocs) {\r\n formData.append('curingDocs', JSON.stringify(values.curingDocs));\r\n }\r\n if (values.changes) {\r\n formData.append('changes', JSON.stringify(values.changes));\r\n }\r\n\r\n return (dispatch) => {\r\n dispatch(requestSaveCicAlertReviewState());\r\n\r\n const promise = () => ApiService\r\n .saveCicReviewState(id, formData)\r\n .then((response) => {\r\n dispatch(receiveSaveCicAlertReviewState(response.data));\r\n dispatch(getCicAlertCounts());\r\n if (values.actionId || values.assignToUser) {\r\n // Redirect back to alert table if a workflow action has been submitted\r\n dispatch(hideCicAlertModal(true));\r\n } else {\r\n toastr.success('CiC Alert Saved', 'The CiC Alert has been saved successfully');\r\n }\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectSaveCicAlertReviewState, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","export const OPEN_ASSIGN_CIC_TO_USER_MODAL = 'OPEN_ASSIGN_CIC_TO_USER_MODAL';\r\nexport const CLOSE_ASSIGN_CIC_TO_USER_MODAL = 'CLOSE_ASSIGN_CIC_TO_USER_MODAL';\r\nexport const CLOSE_ASSIGN_CIC_TO_USER_ERROR = 'CLOSE_ASSIGN_CIC_TO_USER_ERROR';\r\n\r\nfunction openAssignCicToUserModal(cicAlertList) {\r\n return {\r\n type: OPEN_ASSIGN_CIC_TO_USER_MODAL,\r\n isAssignCicToUserModalShown: true,\r\n cicAlertList\r\n };\r\n}\r\n\r\nfunction closeAssignCicToUserModal() {\r\n return {\r\n type: CLOSE_ASSIGN_CIC_TO_USER_MODAL,\r\n isAssignCicToUserModalShown: false\r\n };\r\n}\r\n\r\nfunction closeAssignCicToUserError() {\r\n return {\r\n type: CLOSE_ASSIGN_CIC_TO_USER_ERROR,\r\n isAssignCicToUserModalShown: true\r\n };\r\n}\r\n\r\nexport function showAssignCicToUserModal(cicAlertList) {\r\n return (dispatch) => {\r\n dispatch(openAssignCicToUserModal(cicAlertList));\r\n };\r\n}\r\n\r\nexport function hideAssignCicToUserModal() {\r\n return (dispatch) => {\r\n dispatch(closeAssignCicToUserModal());\r\n };\r\n}\r\n\r\nexport function hideAssignCicToUserError() {\r\n return (dispatch) => {\r\n dispatch(closeAssignCicToUserError());\r\n };\r\n}\r\n","import { toastr } from 'react-redux-toastr';\r\n\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { hideAssignCicToUserModal } from './assignCicToUserModal';\r\nimport { getCicAlerts } from './getCicAlerts';\r\n\r\nexport const ASSIGN_CIC_TO_USER_REQUEST = 'ASSIGN_CIC_TO_USER_REQUEST';\r\nexport const ASSIGN_CIC_TO_USER_SUCCESS = 'ASSIGN_CIC_TO_USER_SUCCESS';\r\nexport const ASSIGN_CIC_TO_USER_ERROR = 'ASSIGN_CIC_TO_USER_ERROR';\r\n\r\nfunction requestAssignCicToUser() {\r\n return {\r\n type: ASSIGN_CIC_TO_USER_REQUEST,\r\n };\r\n}\r\n\r\nfunction receiveAssignCicToUser() {\r\n return {\r\n type: ASSIGN_CIC_TO_USER_SUCCESS\r\n };\r\n}\r\n\r\nfunction rejectAssignCicToUser() {\r\n return {\r\n type: ASSIGN_CIC_TO_USER_ERROR\r\n };\r\n}\r\n\r\nexport function assignCicsToUser(cicAlertList, user, currentPageNumber, currentPageSize) {\r\n return (dispatch) => {\r\n dispatch(requestAssignCicToUser());\r\n\r\n const promise = () => ApiService\r\n .assignCicToUser(cicAlertList, user.id)\r\n .then((response) => {\r\n dispatch(hideAssignCicToUserModal());\r\n dispatch(receiveAssignCicToUser(response.data));\r\n toastr.success('', 'The user has been successfully assigned');\r\n return dispatch(getCicAlerts(currentPageNumber, currentPageSize));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectAssignCicToUser, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function assignCicsToUserWithCallback(cicAlertList, user, callback) {\r\n return (dispatch) => {\r\n dispatch(requestAssignCicToUser());\r\n\r\n const promise = () => ApiService\r\n .assignCicToUser(cicAlertList, user.id)\r\n .then((response) => {\r\n dispatch(hideAssignCicToUserModal());\r\n dispatch(receiveAssignCicToUser(response.data));\r\n toastr.success('', 'The user has been successfully assigned');\r\n callback();\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, rejectAssignCicToUser, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\n\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_CIC_ALERT_DETAILS_REQUEST = 'GET_CIC_ALERT_DETAILS_REQUEST';\r\nexport const GET_CIC_ALERT_DETAILS_SUCCESS = 'GET_CIC_ALERT_DETAILS_SUCCESS';\r\nexport const GET_CIC_ALERT_DETAILS_FAILURE = 'GET_CIC_ALERT_DETAILS_FAILURE';\r\nexport const GET_CIC_ALERT_DETAILS_CLEAR = 'GET_CIC_ALERT_DETAILS_CLEAR';\r\n\r\nfunction request(cicAlertId, rowId) {\r\n return {\r\n type: GET_CIC_ALERT_DETAILS_REQUEST,\r\n rowId,\r\n cicAlertId\r\n };\r\n}\r\n\r\nfunction receive(cicAlertDetails, cicAlertId, rowId) {\r\n return {\r\n type: GET_CIC_ALERT_DETAILS_SUCCESS,\r\n cicAlertId,\r\n rowId,\r\n cicAlertDetails\r\n };\r\n}\r\n\r\nfunction reject(cicAlertId, rowId, getCicAlertDetailsError) {\r\n return {\r\n type: GET_CIC_ALERT_DETAILS_FAILURE,\r\n cicAlertId,\r\n rowId,\r\n getCicAlertDetailsError\r\n };\r\n}\r\n\r\nfunction clear(cicAlertId, rowId) {\r\n return {\r\n type: GET_CIC_ALERT_DETAILS_CLEAR,\r\n cicAlertId,\r\n rowId\r\n };\r\n}\r\n\r\nexport function getCicAlertDetails(cicAlertId, rowId) {\r\n return (dispatch) => {\r\n dispatch(request(cicAlertId, rowId));\r\n return ApiService\r\n .getCicAlertDetails(cicAlertId)\r\n .then((response) => {\r\n dispatch(receive(response.data, cicAlertId, rowId));\r\n }).catch((error) => {\r\n if (error && error.response) {\r\n error.response.data = { code: error.response.status, message: 'Sorry, we were unable to retrieve your CIC alert details at this time, please try again later' };\r\n }\r\n dispatch(handleException(error, null, true));\r\n dispatch(reject(cicAlertId, rowId, error.response.data));\r\n });\r\n };\r\n}\r\n\r\nexport function clearCicAlertDetails(cicAlertId, rowId) {\r\n return (dispatch) => {\r\n dispatch(clear(cicAlertId, rowId));\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_ALL_CONTROLLING_PERSONS_REQUEST = 'GET_ALL_CONTROLLING_PERSONS_REQUEST';\r\nexport const GET_ALL_CONTROLLING_PERSONS_SUCCESS = 'GET_ALL_CONTROLLING_PERSONS_SUCCESS';\r\nexport const GET_ALL_CONTROLLING_PERSONS_FAILURE = 'GET_ALL_CONTROLLING_PERSONS_FAILURE';\r\n\r\nfunction getAllControllingPersonsRequest() {\r\n return {\r\n type: GET_ALL_CONTROLLING_PERSONS_REQUEST\r\n };\r\n}\r\n\r\nfunction getAllControllingPersonsRecieved(controllingPersons) {\r\n return {\r\n type: GET_ALL_CONTROLLING_PERSONS_SUCCESS,\r\n controllingPersons\r\n };\r\n}\r\n\r\nfunction getAllControllingPersonsFailed() {\r\n return {\r\n type: GET_ALL_CONTROLLING_PERSONS_FAILURE,\r\n };\r\n}\r\n\r\nexport function getAllControllingPersons(accountId) {\r\n return (dispatch) => {\r\n dispatch(getAllControllingPersonsRequest());\r\n const promise = () => ApiService\r\n .getAllControllingPersons(accountId)\r\n .then(response => dispatch(getAllControllingPersonsRecieved(response.data)))\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, getAllControllingPersonsFailed, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { toastr } from 'react-redux-toastr';\r\nimport { getAllControllingPersons } from './getAllControllingPersons';\r\n\r\nexport const ADD_CONTROLLING_PERSON_REQUEST = 'ADD_CONTROLLING_PERSON_REQUEST';\r\nexport const ADD_CONTROLLING_PERSON_SUCCESS = 'ADD_CONTROLLING_PERSON_SUCCESS';\r\nexport const ADD_CONTROLLING_PERSON_FAILURE = 'ADD_CONTROLLING_PERSON_FAILURE';\r\n\r\nfunction addControllingPersonRequest() {\r\n return {\r\n type: ADD_CONTROLLING_PERSON_REQUEST\r\n };\r\n}\r\n\r\nfunction addControllingPersonRecieved(controllingPersons) {\r\n return {\r\n type: ADD_CONTROLLING_PERSON_SUCCESS,\r\n controllingPersons\r\n };\r\n}\r\n\r\nfunction addControllingPersonFailed() {\r\n return {\r\n type: ADD_CONTROLLING_PERSON_FAILURE,\r\n };\r\n}\r\n\r\nexport function addControllingPerson(accountId, entityFormId, cpFormId, cpType) {\r\n return (dispatch) => {\r\n dispatch(addControllingPersonRequest());\r\n const promise = () => ApiService\r\n .addControllingPerson(accountId, entityFormId, cpFormId, cpType)\r\n .then((response) => {\r\n dispatch(addControllingPersonRecieved(response.data));\r\n toastr.success('Success', 'Controlling person added successfully');\r\n dispatch(getAllControllingPersons(accountId));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, addControllingPersonFailed, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { toastr } from 'react-redux-toastr';\r\nimport { getAllControllingPersons } from './getAllControllingPersons';\r\n\r\nexport const EXPIRE_CONTROLLING_PERSON_REQUEST = 'EXPIRE_CONTROLLING_PERSON_REQUEST';\r\nexport const EXPIRE_CONTROLLING_PERSON_SUCCESS = 'EXPIRE_CONTROLLING_PERSON_SUCCESS';\r\nexport const EXPIRE_CONTROLLING_PERSON_FAILURE = 'EXPIRE_CONTROLLING_PERSON_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: EXPIRE_CONTROLLING_PERSON_REQUEST\r\n };\r\n}\r\n\r\nfunction receive() {\r\n return {\r\n type: EXPIRE_CONTROLLING_PERSON_SUCCESS,\r\n };\r\n}\r\n\r\nfunction fail() {\r\n return {\r\n type: EXPIRE_CONTROLLING_PERSON_FAILURE,\r\n };\r\n}\r\n\r\nexport function expireControllingPerson(controllingPersonId, accountId, effectiveDate) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n const promise = () => ApiService\r\n .expireControllingPerson(controllingPersonId, accountId, effectiveDate)\r\n .then((response) => {\r\n dispatch(receive());\r\n toastr.success('Success', 'Controlling person unlinked successfully');\r\n dispatch(getAllControllingPersons(accountId));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, fail, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { toastr } from 'react-redux-toastr';\r\nimport { getAllControllingPersons } from './getAllControllingPersons';\r\n\r\nexport const REMOVE_CONTROLLING_PERSON_REQUEST = 'REMOVE_CONTROLLING_PERSON_REQUEST';\r\nexport const REMOVE_CONTROLLING_PERSON_SUCCESS = 'REMOVE_CONTROLLING_PERSON_SUCCESS';\r\nexport const REMOVE_CONTROLLING_PERSON_FAILURE = 'REMOVE_CONTROLLING_PERSON_FAILURE';\r\n\r\nfunction removeControllingPersonRequest() {\r\n return {\r\n type: REMOVE_CONTROLLING_PERSON_REQUEST\r\n };\r\n}\r\n\r\nfunction removeControllingPersonRecieved() {\r\n return {\r\n type: REMOVE_CONTROLLING_PERSON_SUCCESS,\r\n };\r\n}\r\n\r\nfunction removeControllingPersonFailed() {\r\n return {\r\n type: REMOVE_CONTROLLING_PERSON_FAILURE,\r\n };\r\n}\r\n\r\nexport function removeControllingPerson(controllingPersonId, accountId) {\r\n return (dispatch) => {\r\n dispatch(removeControllingPersonRequest());\r\n const promise = () => ApiService\r\n .removeControllingPerson(controllingPersonId, accountId)\r\n .then((response) => {\r\n dispatch(removeControllingPersonRecieved());\r\n toastr.success('Success', 'Controlling person removed successfully');\r\n dispatch(getAllControllingPersons(accountId));\r\n })\r\n .catch((error) => {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, removeControllingPersonFailed, true));\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\n\r\nimport { handleException } from 'actions/exceptions';\r\nimport { getSiteConfig } from 'actions';\r\nimport { AUTH_STATE_UNAUTHORISED } from 'actions/auth';\r\n\r\nexport const SITE_PRELOAD_REQUEST = 'SITE_PRELOAD_REQUEST';\r\nexport const SITE_PRELOAD_SUCCESS = 'SITE_PRELOAD_SUCCESS';\r\n\r\nfunction request() {\r\n return {\r\n type: SITE_PRELOAD_REQUEST\r\n };\r\n}\r\n\r\nfunction receive() {\r\n return {\r\n type: SITE_PRELOAD_SUCCESS,\r\n };\r\n}\r\n\r\nfunction failed() {\r\n return {\r\n type: AUTH_STATE_UNAUTHORISED\r\n };\r\n}\r\n\r\nexport function getSitePreload(json) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService.getDspConsole(json.url, json.headers)\r\n .then((response) => {\r\n if (json.success.includes(response.status)) {\r\n dispatch(receive());\r\n dispatch(getSiteConfig());\r\n } else {\r\n dispatch(handleException(response, failed, false));\r\n }\r\n }).catch((error) => {\r\n dispatch(handleException(error, failed, false));\r\n });\r\n return promise();\r\n };\r\n}\r\n","import CryptoJS from 'crypto-js';\r\nimport EnvConfig from 'env.config';\r\n\r\nexport function getStorageKey() {\r\n const key = sessionStorage.getItem(EnvConfig.firstTokenName);\r\n if (!key) {\r\n return sessionStorage.getItem(EnvConfig.tokenName);\r\n }\r\n return key;\r\n}\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport function getStorageSetting(option) {\r\n const key = getStorageKey();\r\n if (!key) {\r\n return null;\r\n }\r\n\r\n const options = sessionStorage.getItem(EnvConfig.optionsName);\r\n if (!options) {\r\n return null;\r\n }\r\n const decryptedArray = CryptoJS.AES.decrypt(options, key.substring(64, 96));\r\n const decryptedText = decryptedArray.toString(CryptoJS.enc.Utf8);\r\n const jsonObject = JSON.parse(decryptedText);\r\n\r\n if (option === 'settings' || !option) {\r\n delete jsonObject.permissions;\r\n return jsonObject;\r\n }\r\n return jsonObject[option];\r\n}\r\n","const controllingPersonTypes = [\r\n { key: 1, value: 'Legal person: ownership', rcFormValue: 'Direct owner of a corporation or other legal person' },\r\n { key: 2, value: 'Legal person: other means', rcFormValue: 'Indirect owner of a corporation or other legal person (through an intermediary) ' },\r\n { key: 3, value: 'Legal person: snr. managing official', rcFormValue: 'Director or senior official of a corporation or other legal person' },\r\n { key: 4, value: 'Trust: settlor', rcFormValue: 'Settlor of a trust' },\r\n { key: 5, value: 'Trust: trustee', rcFormValue: 'Trustee of a trust' },\r\n { key: 6, value: 'Trust: protector', rcFormValue: 'Protector of a trust' },\r\n { key: 7, value: 'Trust: beneficiary', rcFormValue: 'Beneficiary of a trust' },\r\n { key: 8, value: 'Trust: other', rcFormValue: 'Other controlling person of a trust' },\r\n { key: 9, value: 'Other: settlor-equivalent', rcFormValue: 'Equivalent to a settlor of a legal arrangement other than a trust (e.g. partnership)' },\r\n { key: 10, value: 'Other: trustee-equivalent', rcFormValue: 'Equivalent to a trustee of a legal arrangement other than a trust (e.g. partnership)' },\r\n { key: 11, value: 'Other: protector-equivalent', rcFormValue: 'Equivalent to a protector of a legal arrangement other than a trust (e.g. partnership)' },\r\n { key: 12, value: 'Other: beneficiary-equivalent', rcFormValue: 'Equivalent to a beneficiary of a legal arrangement other than a trust (e.g. partnership)' },\r\n { key: 13, value: 'Other: other-equivalent', rcFormValue: 'Other controlling person of a legal arrangement other than a trust (e.g. partnership)' }\r\n];\r\n\r\ncontrollingPersonTypes.findByKey = (key) => {\r\n if (!key || key <= 0) {\r\n return null;\r\n }\r\n\r\n const code = controllingPersonTypes.find(x => x.key === key);\r\n return code && code.value ? code.value : null;\r\n};\r\n\r\ncontrollingPersonTypes.mapRcFormValueToCpValue = (rcFormValue) => {\r\n // eslint-disable-next-line no-debugger\r\n debugger;\r\n if (!rcFormValue || rcFormValue === '') {\r\n return null;\r\n }\r\n\r\n const code = controllingPersonTypes.find(x => x.rcFormValue === rcFormValue);\r\n return code && code.value ? code.value : null;\r\n};\r\n\r\nexport default controllingPersonTypes;\r\n","const WhsLinkOperationStatus = {\r\n New: 1,\r\n Ready: 10,\r\n Linking: 50,\r\n Completed: 100,\r\n Error: 500\r\n};\r\n\r\nexport default WhsLinkOperationStatus;\r\n","const AddressTypes = {\r\n Permanent: 0,\r\n Mailing: 1,\r\n SubstantialOwner: 2,\r\n ControllingPersonMailing: 3,\r\n ControllingPersonPermanent: 4,\r\n W9Address: 5,\r\n Business: 6,\r\n BusinessEci2014: 7,\r\n Current: 8,\r\n\r\n getDescription(type) {\r\n switch (type) {\r\n case AddressTypes.Permanent:\r\n return 'Permanent Address';\r\n case AddressTypes.Mailing:\r\n return 'Mailing Address';\r\n case AddressTypes.SubstantialOwner:\r\n return 'Substantial Owner Address';\r\n case AddressTypes.ControllingPersonMailing:\r\n return 'Controlling Person Mailing Address';\r\n case AddressTypes.ControllingPersonPermanent:\r\n return 'Controlling Person Permanent Address';\r\n case AddressTypes.W9Address:\r\n return 'Address';\r\n case AddressTypes.Business:\r\n case AddressTypes.BusinessEci2014:\r\n return 'Business Address';\r\n case AddressTypes.Current:\r\n return 'Current Residence Address';\r\n default:\r\n return null;\r\n }\r\n },\r\n\r\n hasCountry(type) { return ![AddressTypes.W9Address, AddressTypes.Business].includes(type); }\r\n};\r\n\r\nexport default AddressTypes;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nconst BlankPage = ({ children }) => (\r\n
    \r\n
    \r\n { children }\r\n
    \r\n
    \r\n);\r\n\r\nBlankPage.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ]).isRequired\r\n};\r\n\r\nexport default BlankPage;\r\n","import React, { useState } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nconst HintButtonComponent = ({\r\n id,\r\n hintType,\r\n active,\r\n onClick,\r\n buttonBackground,\r\n buttonBackgroundPressed,\r\n buttonBackgroundHovered,\r\n iconColour,\r\n iconColourPressed\r\n}) => {\r\n const [hovered, setHovered] = useState(false);\r\n\r\n let backgroundColor;\r\n if (active) {\r\n backgroundColor = buttonBackgroundPressed;\r\n } else if (hovered) {\r\n backgroundColor = buttonBackgroundHovered;\r\n } else {\r\n backgroundColor = buttonBackground;\r\n }\r\n\r\n const buttonStyle = {\r\n backgroundColor\r\n };\r\n\r\n return (\r\n onClick() }\r\n className=\"hint-button\"\r\n style={ buttonStyle }\r\n onMouseEnter={ () => setHovered(true) }\r\n onMouseLeave={ () => setHovered(false) }\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nHintButtonComponent.propTypes = {\r\n id: PropTypes.string,\r\n hintType: PropTypes.string.isRequired,\r\n active: PropTypes.bool.isRequired,\r\n onClick: PropTypes.func.isRequired,\r\n buttonBackground: PropTypes.string,\r\n buttonBackgroundPressed: PropTypes.string,\r\n buttonBackgroundHovered: PropTypes.string,\r\n iconColour: PropTypes.string,\r\n iconColourPressed: PropTypes.string\r\n};\r\n\r\nHintButtonComponent.defaultProps = {\r\n buttonBackground: 'rgba(255, 255, 255, .75)',\r\n buttonBackgroundPressed: '#1f3460',\r\n buttonBackgroundHovered: 'rgba(255, 255, 255, .75)', // Same value as buttonBackground so there's no change when hovering by default\r\n iconColour: '#1f3460',\r\n iconColourPressed: '#fff',\r\n id: null\r\n};\r\n\r\nexport default HintButtonComponent;\r\n","class DateTimes {\r\n static get today() { return new Date(); }\r\n\r\n static get yesterday() {\r\n const dt = new Date();\r\n dt.setDate(dt.getDate() - 1);\r\n return dt;\r\n }\r\n}\r\n\r\nexport default DateTimes;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport DropzoneComponent from 'react-dropzone-component';\r\nimport ReactDOMServer from 'react-dom/server';\r\nimport { getStorageSetting } from 'actions';\r\n\r\nclass FileUpload extends Component {\r\n static propTypes = {\r\n postUrl: PropTypes.string.isRequired,\r\n accessTokenName: PropTypes.string.isRequired,\r\n docCategory: PropTypes.string.isRequired,\r\n docType: PropTypes.string.isRequired,\r\n linkType: PropTypes.string,\r\n id: PropTypes.number,\r\n acceptedFiles: PropTypes.string,\r\n removeFileAfterUpload: PropTypes.bool,\r\n defaultMessage: PropTypes.string,\r\n onFileQueued: PropTypes.func,\r\n onFileRemoved: PropTypes.func,\r\n onFileSending: PropTypes.func,\r\n onFileUploadCancel: PropTypes.func,\r\n onFileUploadSuccess: PropTypes.func,\r\n onFileUploadError: PropTypes.func,\r\n clearFiles: PropTypes.bool,\r\n maxUploadFiles: PropTypes.number\r\n };\r\n\r\n static defaultProps = {\r\n defaultMessage: 'Drop files here to upload',\r\n linkType: 'form',\r\n id: null,\r\n removeFileAfterUpload: false,\r\n onFileQueued: null,\r\n onFileRemoved: null,\r\n onFileSending: null,\r\n onFileUploadCancel: null,\r\n onFileUploadSuccess: null,\r\n onFileUploadError: null,\r\n acceptedFiles: null,\r\n clearFiles: false,\r\n maxUploadFiles: null\r\n };\r\n\r\n static css(el, styles) {\r\n const mergedStyles = Object.keys(styles) != null && Object.keys(styles)\r\n .map(k => k != null && styles[k]).join(',');\r\n el.setAttribute('style', mergedStyles);\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const files = getStorageSetting('files');\r\n\r\n this.state = {\r\n timeout: files != null ? files.uploadTimeout : 60000,\r\n maxUploadFiles: files != null ? files.maxUploadFiles : 1000,\r\n maxFilesize: files != null ? files.maxFileSize : 5,\r\n maxParellelUploads: files != null ? files.maxParallelUploads : 2\r\n };\r\n\r\n if (props.maxUploadFiles > 0) {\r\n this.state.maxUploadFiles = props.maxUploadFiles;\r\n }\r\n\r\n this.initCallback = this.initCallback.bind(this);\r\n this.onTimeout = this.onTimeout.bind(this);\r\n }\r\n\r\n componentDidUpdate() {\r\n const { clearFiles } = this.props;\r\n if (clearFiles && this.dropzone.files.length > 0) {\r\n this.dropzone.removeAllFiles();\r\n }\r\n }\r\n\r\n onAddedFile(file) {\r\n const { onFileQueued } = this.props;\r\n\r\n if (file.accepted === true) {\r\n if (onFileQueued) {\r\n onFileQueued(file);\r\n }\r\n }\r\n }\r\n\r\n onRemovedFile(file) {\r\n const { onFileRemoved } = this.props;\r\n\r\n if (onFileRemoved) {\r\n onFileRemoved(file);\r\n }\r\n }\r\n\r\n onCancel(file) {\r\n const { onFileUploadCancel } = this.props;\r\n\r\n if (file.accepted === true && file.status === 'canceled') {\r\n if (onFileUploadCancel) {\r\n onFileUploadCancel(file);\r\n }\r\n }\r\n }\r\n\r\n onSuccess(file) {\r\n const { removeFileAfterUpload } = this.props;\r\n\r\n if (removeFileAfterUpload) {\r\n this.dropzone.removeFile(file);\r\n }\r\n }\r\n\r\n onComplete(file) {\r\n const { onFileUploadSuccess } = this.props;\r\n\r\n if (file.accepted === true && file.status === 'success') {\r\n if (onFileUploadSuccess) {\r\n onFileUploadSuccess(file, JSON.parse(file.xhr.response));\r\n }\r\n }\r\n }\r\n\r\n onError(file, error) {\r\n const { onFileUploadError } = this.props;\r\n\r\n if (file.status === 'error' && (file.accepted === false || (file.accepted === true && error))) {\r\n if (onFileUploadError) {\r\n onFileUploadError(file, error.message ? error : { code: 400, message: error });\r\n }\r\n if (this.dropzone) {\r\n this.dropzone.removeFile(file);\r\n }\r\n }\r\n }\r\n\r\n onSending(file, xhr, formData) {\r\n const { onFileSending } = this.props;\r\n const timeoutHandler = this.onTimeout;\r\n\r\n if (onFileSending) {\r\n onFileSending(file);\r\n }\r\n\r\n xhr.ontimeout = function (e) {\r\n timeoutHandler(file, xhr, formData, e);\r\n };\r\n }\r\n\r\n onTimeout(file, xhr, formData, e) {\r\n const { onFileUploadError } = this.props;\r\n\r\n if (onFileUploadError) {\r\n onFileUploadError(file, { code: 504, message: `Sorry, there was problem uploading file ${ file.name }` });\r\n }\r\n\r\n if (this.dropzone) {\r\n this.dropzone.removeFile(file);\r\n }\r\n }\r\n\r\n initCallback(dropzone) {\r\n this.dropzone = dropzone;\r\n\r\n dropzone.on('success', (file) => {\r\n const els = document.querySelector('.dz-success-mark span');\r\n if (els) {\r\n FileUpload.css(document.querySelector('.dz-success-mark span'), { color: 'green' });\r\n FileUpload.css(document.querySelector('.dz-error-mark'), { display: 'none' });\r\n }\r\n });\r\n dropzone.on('error', (file) => {\r\n const els = document.querySelector('.dz-error-mark span');\r\n if (els) {\r\n FileUpload.css(document.querySelector('.dz-error-mark span'), { color: 'red' });\r\n FileUpload.css(document.querySelector('.dz-success-mark'), { display: 'none' });\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n const { postUrl, docCategory, docType, linkType, id, acceptedFiles, accessTokenName, defaultMessage } = this.props;\r\n const { timeout, maxUploadFiles, maxFilesize, maxParellelUploads } = this.state;\r\n\r\n const componentConfig = {\r\n postUrl\r\n };\r\n const selectedClient = getStorageSetting('selectedClient');\r\n const headers = { Authorization: `Bearer ${ sessionStorage.getItem(accessTokenName) }` };\r\n if (selectedClient != null) {\r\n headers['TT-CLIENT'] = selectedClient.key;\r\n }\r\n const djsConfig = {\r\n addRemoveLinks: true,\r\n autoProcessQueue: true,\r\n maxFiles: maxUploadFiles > 0 ? maxUploadFiles : null,\r\n timeout,\r\n acceptedFiles,\r\n accept: (file, done) => {\r\n if (file == null || file.name == null || file.name.length > 100) {\r\n return done('File names must not be over 100 characters.');\r\n }\r\n return done();\r\n },\r\n maxFilesize,\r\n parallelUploads: maxParellelUploads,\r\n dictDefaultMessage: defaultMessage,\r\n params: {\r\n category: docCategory,\r\n type: docType\r\n },\r\n previewTemplate: ReactDOMServer.renderToStaticMarkup(\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ),\r\n headers,\r\n };\r\n\r\n if (id) {\r\n djsConfig.params.linkType = linkType;\r\n djsConfig.params.id = id;\r\n }\r\n\r\n const eventHandlers = {\r\n init: this.initCallback,\r\n addedfile: file => this.onAddedFile(file),\r\n removedfile: file => this.onRemovedFile(file),\r\n complete: file => this.onComplete(file),\r\n success: file => this.onSuccess(file),\r\n canceled: file => this.onCancel(file),\r\n error: (file, errorMessage) => this.onError(file, errorMessage),\r\n sending: (file, xhr, formData) => this.onSending(file, xhr, formData)\r\n };\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default FileUpload;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nclass HintPanel extends Component {\r\n static propTypes = {\r\n hintType: PropTypes.string.isRequired,\r\n hintText: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node\r\n ]).isRequired,\r\n partNumber: PropTypes.string,\r\n lineNumber: PropTypes.string,\r\n onSelectDefinition: PropTypes.func,\r\n onClose: PropTypes.func,\r\n highlightClass: PropTypes.string,\r\n };\r\n\r\n static defaultProps = {\r\n partNumber: '',\r\n lineNumber: '',\r\n onSelectDefinition: null,\r\n onClose: null,\r\n highlightClass: 'highlighted'\r\n };\r\n\r\n timeout = null;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isCloseButtonVisible: false\r\n };\r\n this.panelElement = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n const { onSelectDefinition } = this.props;\r\n if (!onSelectDefinition) return;\r\n if (!this.panelElement.current) {\r\n return;\r\n }\r\n const definitions = this.panelElement.current.querySelectorAll('dfn');\r\n Array\r\n .from(definitions)\r\n .forEach((definition) => {\r\n if (definition != null) {\r\n definition.addEventListener(\r\n 'click',\r\n e => this.handleClickOnDefinition(e, onSelectDefinition),\r\n false\r\n );\r\n }\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n const { onSelectDefinition } = this.props;\r\n if (!onSelectDefinition) return;\r\n if (!this.panelElement.current) {\r\n return;\r\n }\r\n const definitions = this.panelElement.current.querySelectorAll('dfn');\r\n Array\r\n .from(definitions)\r\n .forEach((definition) => {\r\n if (definition != null) {\r\n definition.removeEventListener(\r\n 'click',\r\n e => this.handleClickOnDefinition(e),\r\n false\r\n );\r\n }\r\n });\r\n }\r\n\r\n handleClickOnDefinition(e) {\r\n const { onSelectDefinition } = this.props;\r\n onSelectDefinition(e.target.dataset.definition);\r\n }\r\n\r\n handleClose() {\r\n const { onClose } = this.props;\r\n if (!onClose) return;\r\n onClose();\r\n }\r\n\r\n /* eslint-disable-next-line react/no-unused-class-component-methods */\r\n highlight() {\r\n const { highlightClass } = this.props;\r\n if (this.timeout) {\r\n clearTimeout(this.timeout);\r\n this.panelElement.current.classList.remove(highlightClass);\r\n // eslint-disable-next-line\r\n void this.panelElement.current.offsetWidth;\r\n }\r\n this.panelElement.current.classList.add(highlightClass);\r\n this.timeout = setTimeout(\r\n () => {\r\n if (this.panelElement?.current) {\r\n this.panelElement.current.classList.remove(highlightClass);\r\n }\r\n },\r\n 3000\r\n );\r\n }\r\n\r\n render() {\r\n const {\r\n hintType,\r\n hintText,\r\n partNumber,\r\n lineNumber\r\n } = this.props;\r\n const {\r\n isCloseButtonVisible\r\n } = this.state;\r\n return (\r\n this.setState({ isCloseButtonVisible: true }) }\r\n onMouseLeave={ () => this.setState({ isCloseButtonVisible: false }) }\r\n >\r\n { hintText }\r\n this.handleClose() }\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default HintPanel;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport class RadioInput extends Component {\r\n static propTypes = {\r\n input: PropTypes.shape().isRequired,\r\n meta: PropTypes.shape().isRequired,\r\n item: PropTypes.oneOfType([\r\n PropTypes.shape(),\r\n PropTypes.string,\r\n PropTypes.node,\r\n PropTypes.arrayOf(PropTypes.node)\r\n ]),\r\n iValue: PropTypes.string.isRequired,\r\n reset: PropTypes.func.isRequired,\r\n reverseInput: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n item: null,\r\n reverseInput: false,\r\n };\r\n\r\n static isChecked(modelValue, inputValue) {\r\n return (\r\n (modelValue\r\n && modelValue.length\r\n && typeof modelValue !== 'string'\r\n && modelValue.indexOf(inputValue) !== -1)\r\n || (modelValue\r\n && modelValue.length\r\n && typeof modelValue === 'string'\r\n && modelValue === inputValue)\r\n || (modelValue === true\r\n && inputValue === 'true')\r\n || (modelValue === false\r\n && inputValue === 'false')\r\n );\r\n }\r\n\r\n static hasWrongCheck(modelValue, inputValue) {\r\n return modelValue\r\n && modelValue.length > 1\r\n && RadioInput.isChecked(modelValue, inputValue);\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { isReset: false };\r\n }\r\n\r\n handleChanges(event) {\r\n const {\r\n input,\r\n meta,\r\n iValue,\r\n reset\r\n } = this.props;\r\n const { isReset } = this.state;\r\n if (\r\n !isReset\r\n && RadioInput.isChecked(input.value, iValue)\r\n ) {\r\n this.setState({ isReset: true });\r\n reset(\r\n meta.form,\r\n input.name\r\n );\r\n } else {\r\n this.setState({ isReset: false });\r\n input.onChange(event);\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n input,\r\n item,\r\n iValue,\r\n reverseInput\r\n } = this.props;\r\n return (\r\n // eslint-disable-next-line jsx-a11y/label-has-for\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Field, change } from 'redux-form';\r\nimport { connect } from 'react-redux';\r\nimport { Collapse } from 'react-collapse';\r\n\r\nimport {\r\n toggleInstruction,\r\n} from 'actions';\r\n\r\nimport HintButton from 'components/Common/Buttons/HintButton';\r\nimport HintPanel from 'components/Common/HintPanel';\r\nimport InstructionDefinition from 'components/InstructionDefinition';\r\nimport FormsInstructions from 'components/FormsInstructions';\r\nimport { RadioInput } from 'components/Common/Inputs/RadioInput';\r\n\r\nclass RadioTableGroup extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n name: PropTypes.string.isRequired,\r\n items: PropTypes.arrayOf(\r\n PropTypes.arrayOf(\r\n PropTypes.oneOfType([\r\n PropTypes.shape({}),\r\n PropTypes.string,\r\n PropTypes.node,\r\n PropTypes.arrayOf(PropTypes.node)\r\n ])\r\n )\r\n ).isRequired,\r\n normalize: PropTypes.func,\r\n onChange: PropTypes.func,\r\n className: PropTypes.string,\r\n preventReset: PropTypes.bool,\r\n /* eslint-disable react/no-unused-prop-types */\r\n hint: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node\r\n ]),\r\n tip: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node\r\n ]),\r\n caution: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node\r\n ]),\r\n lineNumber: PropTypes.string,\r\n /* eslint-enable react/no-unused-prop-types */\r\n reverseInput: PropTypes.bool,\r\n };\r\n\r\n static defaultProps = {\r\n normalize: null,\r\n onChange: null,\r\n className: '',\r\n preventReset: false,\r\n hint: '',\r\n tip: '',\r\n caution: '',\r\n lineNumber: '',\r\n reverseInput: false,\r\n };\r\n\r\n defRefs = [];\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n instructions: [\r\n { type: 'hint' },\r\n { type: 'tip' },\r\n { type: 'caution' }\r\n ],\r\n itemInstructions: {}\r\n };\r\n }\r\n\r\n showInstruction(hintType, hintText) {\r\n const { dispatch } = this.props;\r\n const { instructions } = this.state;\r\n this.setState({\r\n instructions: instructions != null && instructions\r\n .map(\r\n (instruction) => {\r\n if (instruction != null) {\r\n if (instruction.type === hintType) {\r\n instruction.text = hintText;\r\n instruction.visible = !instruction.visible;\r\n }\r\n return instruction;\r\n }\r\n return null;\r\n }\r\n )\r\n });\r\n dispatch(toggleInstruction());\r\n }\r\n\r\n showItemInstruction(\r\n rowIndex,\r\n cellIndex,\r\n hintType,\r\n hintText\r\n ) {\r\n const { dispatch } = this.props;\r\n const { itemInstructions } = this.state;\r\n const initialItemInstructions = [\r\n { type: 'hint' },\r\n { type: 'tip' },\r\n { type: 'caution' }\r\n ];\r\n this.setState({\r\n itemInstructions: {\r\n ...itemInstructions,\r\n [`${ rowIndex }-${ cellIndex }`]: itemInstructions[`${ rowIndex }-${ cellIndex }`] != null\r\n ? itemInstructions[`${ rowIndex }-${ cellIndex }`] && itemInstructions[`${ rowIndex }-${ cellIndex }`]\r\n .map(\r\n (instruction) => {\r\n if (instruction != null) {\r\n if (instruction.type === hintType) {\r\n instruction.text = hintText;\r\n instruction.visible = !instruction.visible;\r\n }\r\n return instruction;\r\n }\r\n return null;\r\n }\r\n )\r\n : initialItemInstructions != null && initialItemInstructions\r\n .map(\r\n (instruction) => {\r\n if (instruction != null) {\r\n if (instruction.type === hintType) {\r\n instruction.text = hintText;\r\n instruction.visible = !instruction.visible;\r\n }\r\n return instruction;\r\n }\r\n return null;\r\n }\r\n )\r\n }\r\n });\r\n dispatch(toggleInstruction());\r\n }\r\n\r\n hideInstruction(hintType) {\r\n const { dispatch } = this.props;\r\n const { instructions } = this.state;\r\n this.setState({\r\n instructions: instructions != null && instructions\r\n .map(\r\n (instruction) => {\r\n if (instruction != null) {\r\n if (instruction.type === hintType) {\r\n instruction.visible = false;\r\n }\r\n return instruction;\r\n }\r\n return null;\r\n }\r\n )\r\n });\r\n dispatch(toggleInstruction());\r\n }\r\n\r\n hideItemInstruction(\r\n rowIndex,\r\n cellIndex,\r\n hintType\r\n ) {\r\n const { dispatch } = this.props;\r\n const { itemInstructions } = this.state;\r\n const initialItemInstructions = [\r\n { type: 'hint' },\r\n { type: 'tip' },\r\n { type: 'caution' }\r\n ];\r\n this.setState({\r\n itemInstructions: {\r\n ...itemInstructions,\r\n [`${ rowIndex }-${ cellIndex }`]: itemInstructions[`${ rowIndex }-${ cellIndex }`] != null\r\n ? itemInstructions[`${ rowIndex }-${ cellIndex }`] != null && itemInstructions[`${ rowIndex }-${ cellIndex }`]\r\n .map(\r\n (instruction) => {\r\n if (instruction != null) {\r\n if (instruction.type === hintType) {\r\n instruction.visible = false;\r\n }\r\n return instruction;\r\n }\r\n return null;\r\n }\r\n )\r\n : initialItemInstructions != null && initialItemInstructions\r\n .map(\r\n (instruction) => {\r\n if (instruction != null) {\r\n if (instruction.type === hintType) {\r\n instruction.visible = false;\r\n }\r\n return instruction;\r\n }\r\n return null;\r\n }\r\n )\r\n }\r\n });\r\n dispatch(toggleInstruction());\r\n }\r\n\r\n showDefinition({ type: hintType }, definition) {\r\n const { dispatch } = this.props;\r\n const { instructions } = this.state;\r\n this.setState({\r\n instructions: instructions != null && instructions\r\n .map(\r\n (instruction, i) => {\r\n if (instruction != null) {\r\n if (!instruction.definitions) {\r\n instruction.definitions = [];\r\n }\r\n if (instruction.type === hintType) {\r\n const defIndex = instruction.definitions.findIndex(\r\n def => def.name === definition\r\n );\r\n if (defIndex === -1) {\r\n instruction.definitions = [\r\n ...instruction.definitions,\r\n { name: definition }\r\n ];\r\n } else {\r\n const defInstance = this.defRefs[`${ i }-${ defIndex }`];\r\n if (defInstance) {\r\n defInstance.highlight();\r\n }\r\n }\r\n }\r\n return instruction;\r\n }\r\n return null;\r\n }\r\n )\r\n });\r\n dispatch(toggleInstruction());\r\n }\r\n\r\n showItemDefinition(\r\n rowIndex,\r\n cellIndex,\r\n { type: hintType },\r\n definition\r\n ) {\r\n const { dispatch } = this.props;\r\n const { itemInstructions } = this.state;\r\n const initialItemInstructions = [\r\n { type: 'hint' },\r\n { type: 'tip' },\r\n { type: 'caution' }\r\n ];\r\n this.setState({\r\n itemInstructions: {\r\n ...itemInstructions,\r\n [`${ rowIndex }-${ cellIndex }`]: itemInstructions[`${ rowIndex }-${ cellIndex }`] != null\r\n ? itemInstructions[`${ rowIndex }-${ cellIndex }`] != null && itemInstructions[`${ rowIndex }-${ cellIndex }`]\r\n .map(\r\n (instruction, i) => {\r\n if (instruction != null) {\r\n if (!instruction.definitions) {\r\n instruction.definitions = [];\r\n }\r\n if (instruction.type === hintType) {\r\n const defIndex = instruction.definitions.findIndex(\r\n def => def.name === definition\r\n );\r\n if (defIndex === -1) {\r\n instruction.definitions = [\r\n ...instruction.definitions,\r\n { name: definition }\r\n ];\r\n } else {\r\n const defInstance = this.defRefs[`${ i }-${ defIndex }`];\r\n if (defInstance) {\r\n defInstance.highlight();\r\n }\r\n }\r\n }\r\n return instruction;\r\n }\r\n return null;\r\n }\r\n )\r\n : initialItemInstructions != null && initialItemInstructions\r\n .map(\r\n (instruction, i) => {\r\n if (instruction != null) {\r\n if (instruction.type === hintType) {\r\n const defIndex = instruction.definitions.findIndex(\r\n def => def.name === definition\r\n );\r\n if (defIndex === -1) {\r\n instruction.definitions = [\r\n ...instruction.definitions,\r\n { name: definition }\r\n ];\r\n } else {\r\n const defInstance = this.defRefs[`${ i }-${ defIndex }`];\r\n if (defInstance != null) {\r\n defInstance.highlight();\r\n }\r\n }\r\n }\r\n return instruction;\r\n }\r\n return null;\r\n }\r\n )\r\n }\r\n });\r\n dispatch(toggleInstruction());\r\n }\r\n\r\n hideDefinition(\r\n { type: hintType },\r\n { name: definition }\r\n ) {\r\n const { dispatch } = this.props;\r\n const { instructions } = this.state;\r\n this.setState({\r\n instructions: instructions != null && instructions\r\n .map(\r\n (instruction) => {\r\n if (instruction != null) {\r\n if (instruction.type === hintType) {\r\n instruction.definitions = instruction.definitions\r\n .filter(def => def.name !== definition);\r\n }\r\n return instruction;\r\n }\r\n return null;\r\n }\r\n )\r\n });\r\n dispatch(toggleInstruction());\r\n }\r\n\r\n hideItemDefinition(\r\n rowIndex,\r\n cellIndex,\r\n { type: hintType },\r\n { name: definition }\r\n ) {\r\n const { dispatch } = this.props;\r\n const { itemInstructions } = this.state;\r\n const initialItemInstructions = [\r\n { type: 'hint' },\r\n { type: 'tip' },\r\n { type: 'caution' }\r\n ];\r\n this.setState({\r\n itemInstructions: {\r\n ...itemInstructions,\r\n [`${ rowIndex }-${ cellIndex }`]: itemInstructions[`${ rowIndex }-${ cellIndex }`] != null\r\n ? itemInstructions[`${ rowIndex }-${ cellIndex }`] != null && itemInstructions[`${ rowIndex }-${ cellIndex }`]\r\n .map(\r\n (instruction, i) => {\r\n if (instruction != null) {\r\n if (instruction.type === hintType) {\r\n instruction.definitions = instruction.definitions.filter(def => def.name !== definition);\r\n }\r\n return instruction;\r\n }\r\n return null;\r\n }\r\n )\r\n : initialItemInstructions != null && initialItemInstructions\r\n .map(\r\n (instruction, i) => {\r\n if (instruction != null) {\r\n if (instruction.type === hintType) {\r\n instruction.definitions = instruction.definitions.filter(def => def.name !== definition);\r\n }\r\n return instruction;\r\n }\r\n return null;\r\n }\r\n )\r\n }\r\n });\r\n dispatch(toggleInstruction());\r\n }\r\n\r\n render() {\r\n const {\r\n dispatch,\r\n name,\r\n items,\r\n normalize,\r\n onChange,\r\n className,\r\n preventReset,\r\n lineNumber,\r\n hint,\r\n tip,\r\n caution,\r\n reverseInput,\r\n } = this.props;\r\n const {\r\n itemInstructions\r\n } = this.state;\r\n let {\r\n instructions\r\n } = this.state;\r\n instructions = instructions != null ? instructions : [\r\n { type: 'hint' },\r\n { type: 'tip' },\r\n { type: 'caution' }\r\n ];\r\n instructions[0].text = hint;\r\n instructions[1].text = tip;\r\n instructions[2].text = caution;\r\n const activatedInstructions = instructions.filter(item => item.visible);\r\n const activatedInstructionTypes = activatedInstructions.map(instruction => instruction != null && instruction.type);\r\n return (\r\n /* eslint-disable max-len, react/no-array-index-key */\r\n \r\n \r\n \r\n { items != null && items\r\n .map((row, rowIndex) => (\r\n row != null\r\n && \r\n { row != null && row\r\n .map((cell, cellIndex) => (\r\n cell != null\r\n && \r\n {\r\n cell.text === undefined\r\n && cell.value === undefined\r\n &&  \r\n }\r\n { cell.text != null && cell.value === undefined &&
    \r\n { cell.text }\r\n { instructions != null && instructions.length > 0 && \r\n { instructions\r\n .filter(instruction => instruction.type)\r\n .map((instruction, i) => (\r\n instruction != null\r\n && instruction.text != null\r\n && instruction.text !== ''\r\n && this.showInstruction(\r\n instruction.type,\r\n instruction.text\r\n )\r\n }\r\n />\r\n )) }\r\n }\r\n
    }\r\n { cell.text && cell.value !== undefined && \r\n { cell.text }\r\n \r\n {\r\n instructions != null && instructions\r\n .filter(instruction => FormsInstructions[cell.form][`line${ cell.lineNumber }`][instruction.type])\r\n .map((instruction, i) => (\r\n instruction != null\r\n && instruction.text != null\r\n && instruction.text !== ''\r\n && item.visible)\r\n .map(item => item != null && item.type)\r\n .includes(instruction.type)\r\n )\r\n || false\r\n }\r\n buttonBackground=\"#f6f8fe\"\r\n onClick={\r\n () => this.showItemInstruction(\r\n rowIndex,\r\n cellIndex,\r\n instruction.type,\r\n FormsInstructions[cell.form][`line${ cell.lineNumber }`][instruction.type]\r\n )\r\n }\r\n />\r\n ))\r\n }\r\n \r\n : cell.text }\r\n normalize={ normalize }\r\n onChange={ onChange }\r\n reset={\r\n (\r\n formName,\r\n inputName\r\n ) => {\r\n if (!preventReset) {\r\n dispatch(change(\r\n formName,\r\n inputName,\r\n null\r\n ));\r\n }\r\n }\r\n }\r\n reverseInput={ reverseInput }\r\n /> }\r\n { itemInstructions[`${ rowIndex }-${ cellIndex }`]\r\n && \r\n {\r\n itemInstructions[`${ rowIndex }-${ cellIndex }`]\r\n .filter(item => item.visible)\r\n .map((instruction, i) => (\r\n instruction != null\r\n && \r\n this.showItemDefinition(rowIndex, cellIndex, instruction, def) }\r\n onClose={ () => this.hideItemInstruction(rowIndex, cellIndex, instruction.type) }\r\n />\r\n { instruction.definitions && instruction.definitions\r\n .map((definition, j) => (\r\n definition != null\r\n && { this.defRefs[`${ i }-${ j }`] = ref; } }\r\n hintType=\"definition\"\r\n hintText={\r\n \r\n }\r\n onClose={ () => this.hideItemDefinition(rowIndex, cellIndex, instruction, definition) }\r\n />\r\n )) }\r\n \r\n ))\r\n }\r\n }\r\n \r\n )) }\r\n \r\n )) }\r\n \r\n \r\n 0 }\r\n style={ { marginLeft: '-50px' } }\r\n >\r\n { activatedInstructions != null && activatedInstructions\r\n .map((instruction, i) => (\r\n instruction != null\r\n && \r\n this.showDefinition(instruction, def) }\r\n onClose={ () => this.hideInstruction(instruction.type) }\r\n />\r\n { instruction.definitions != null && instruction.definitions\r\n .map((definition, j) => (\r\n definition != null\r\n && { this.defRefs[`${ i }-${ j }`] = ref; } }\r\n hintType=\"definition\"\r\n hintText={\r\n \r\n }\r\n onClose={ () => this.hideDefinition(instruction, definition) }\r\n />\r\n )) }\r\n \r\n ))}\r\n \r\n
    \r\n /* eslint-enable max-len, react/no-array-index-key */\r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n null,\r\n mapDispatchToProps\r\n)(RadioTableGroup);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport DatePicker from 'react-datepicker';\r\nimport moment from 'moment';\r\nimport isValid from 'date-fns/isValid';\r\nimport format from 'date-fns/format';\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const RenderDatePicker = ({ input, className, placeholder, popperPlacement, popperModifiers, isClearable, dateFormat, maxDate, minDate }) => {\r\n const [startDate, setStartDate] = React.useState(isValid(moment(input.value, dateFormat.toUpperCase()).toDate()) ? moment(input.value, dateFormat.toUpperCase()).toDate() : null);\r\n\r\n let placeholderClass = '';\r\n function onHandleKeyDown(e) {\r\n if (e.keyCode === 8 || e.keyCode === 46) {\r\n setStartDate(null);\r\n input.onChange(null);\r\n }\r\n }\r\n\r\n function applicablePlaceholder() {\r\n if (input.value && !isValid(moment(input.value, dateFormat.toUpperCase()).toDate())) {\r\n placeholderClass = 'dark-placeholder-text ';\r\n return input.value;\r\n }\r\n return placeholder;\r\n }\r\n\r\n React.useEffect(() => {\r\n setStartDate(isValid(moment(input.value, dateFormat.toUpperCase()).toDate()) ? moment(input.value, dateFormat.toUpperCase()).toDate() : null);\r\n }, [input.value]);\r\n\r\n return (\r\n onHandleKeyDown(e) }\r\n onChange={ (date, e) => { setStartDate(date); input.onChange(format(date, dateFormat)); } }\r\n />\r\n );\r\n};\r\n\r\nRenderDatePicker.propTypes = {\r\n input: PropTypes.shape({\r\n onChange: PropTypes.func.isRequired,\r\n value: PropTypes.string.isRequired,\r\n }).isRequired,\r\n placeholder: PropTypes.string,\r\n className: PropTypes.string,\r\n popperPlacement: PropTypes.string,\r\n popperModifiers: PropTypes.oneOfType([PropTypes.shape, PropTypes.arrayOf(PropTypes.shape)]),\r\n isClearable: PropTypes.bool,\r\n dateFormat: PropTypes.string,\r\n maxDate: PropTypes.instanceOf(Date),\r\n minDate: PropTypes.instanceOf(Date)\r\n};\r\n\r\nRenderDatePicker.defaultProps = {\r\n placeholder: '',\r\n popperPlacement: 'bottom-start',\r\n popperModifiers: [],\r\n className: '',\r\n isClearable: false,\r\n dateFormat: 'MMM dd, yyyy',\r\n maxDate: null,\r\n minDate: null\r\n};\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport InputMask from 'react-input-mask';\r\n\r\nexport const defaultMaskConfig = {\r\n acceptedCharacters: {\r\n '*': '[A-Za-z0-9]',\r\n 9: '[0-9]',\r\n a: '[A-Za-z]',\r\n },\r\n containsInvalidatedCharacters: _ => false\r\n};\r\nexport const numericAsterixMaskConfig = {\r\n acceptedCharacters: { ...defaultMaskConfig.acceptedCharacters, '*': '[0-9]' },\r\n containsInvalidatedCharacters: value => /[A-Za-z]/.test(value)\r\n};\r\n\r\nconst StrictInput = ({\r\n input,\r\n mask,\r\n maskChar,\r\n maskConfigAfterValueChange,\r\n className,\r\n placeholder,\r\n style\r\n}) => {\r\n const maskConfig = { ...defaultMaskConfig };\r\n\r\n const beforeMaskedValueChange = (newState, oldState, userInput) => {\r\n if (!maskConfigAfterValueChange) {\r\n return newState;\r\n }\r\n if (!oldState.selection) {\r\n oldState.selection = { start: null, end: null };\r\n }\r\n\r\n const re = new RegExp(maskChar, 'g');\r\n const newValue = newState.value.replace(re, '');\r\n const oldValue = oldState.value.replace(re, '');\r\n const hasValueChanged = userInput || (newValue !== oldValue);\r\n if (!hasValueChanged) {\r\n return newState;\r\n }\r\n\r\n maskConfig.acceptedCharacters = maskConfigAfterValueChange.acceptedCharacters;\r\n maskConfig.containsInvalidatedCharacters = maskConfigAfterValueChange.containsInvalidatedCharacters;\r\n const oldValueValid = !maskConfig.containsInvalidatedCharacters(oldValue);\r\n const newValueValid = !maskConfig.containsInvalidatedCharacters(newValue);\r\n if (oldValueValid && !newValueValid) {\r\n return oldState;\r\n }\r\n\r\n if (newValueValid) {\r\n return newState;\r\n }\r\n\r\n userInput ??= '';\r\n const newInput = maskConfig.containsInvalidatedCharacters(userInput) ? '' : userInput;\r\n return { value: newInput, selection: { start: newInput.length, end: newInput.length } };\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nStrictInput.propTypes = {\r\n input: PropTypes.shape({ value: PropTypes.string }).isRequired,\r\n mask: PropTypes.string.isRequired,\r\n maskChar: PropTypes.string.isRequired,\r\n maskConfigAfterValueChange: PropTypes.shape({\r\n acceptedCharacters: PropTypes.objectOf(PropTypes.string),\r\n containsInvalidatedCharacters: PropTypes.func,\r\n }).isRequired,\r\n className: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n style: PropTypes.shape({})\r\n};\r\n\r\nStrictInput.defaultProps = {\r\n className: '',\r\n placeholder: '',\r\n style: null\r\n};\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport { StrictInput };\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const TextAreaInput = ({\r\n input,\r\n meta: {\r\n touched,\r\n error,\r\n warning\r\n },\r\n required,\r\n hideHints,\r\n placeholder,\r\n type,\r\n className\r\n}) => (\r\n
    \r\n \r\n {\r\n !hideHints && touched && (\r\n (error &&

    { error }

    )\r\n || (warning &&

    { warning }

    )\r\n )\r\n }\r\n
    \r\n);\r\n\r\nTextAreaInput.propTypes = {\r\n input: PropTypes.shape({\r\n value: PropTypes.any\r\n }).isRequired,\r\n meta: PropTypes.shape({\r\n touched: PropTypes.bool,\r\n error: PropTypes.any,\r\n warning: PropTypes.any\r\n }).isRequired,\r\n required: PropTypes.bool,\r\n hideHints: PropTypes.bool,\r\n placeholder: PropTypes.string,\r\n type: PropTypes.string,\r\n className: PropTypes.string\r\n};\r\n\r\nTextAreaInput.defaultProps = {\r\n required: false,\r\n hideHints: false,\r\n placeholder: '',\r\n type: 'text',\r\n className: ''\r\n};\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nexport const preventEmptyStringInitialization = function (event, newValue, prevValue) {\r\n if (prevValue === null && newValue === '') {\r\n event.preventDefault();\r\n }\r\n};\r\n\r\nexport const preventInvalidDateInitialization = function (event, newValue, prevValue) {\r\n if (newValue === 'Invalid date') {\r\n event.preventDefault();\r\n }\r\n};\r\n\r\nexport const preventNullInitialization = function (event, newValue, prevValue) {\r\n if (prevValue === undefined && newValue === '') {\r\n event.preventDefault();\r\n }\r\n};\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const TextInput = ({\r\n input,\r\n meta: {\r\n touched,\r\n error,\r\n warning\r\n },\r\n required,\r\n hideHints,\r\n placeholder,\r\n type,\r\n className\r\n}) => (\r\n
    \r\n \r\n {\r\n !hideHints && touched && (\r\n (error &&

    { error }

    )\r\n || (warning &&

    { warning }

    )\r\n )\r\n }\r\n
    \r\n);\r\n\r\nTextInput.propTypes = {\r\n input: PropTypes.shape({\r\n value: PropTypes.any\r\n }).isRequired,\r\n meta: PropTypes.shape({\r\n touched: PropTypes.bool,\r\n error: PropTypes.any,\r\n warning: PropTypes.any\r\n }).isRequired,\r\n required: PropTypes.bool,\r\n hideHints: PropTypes.bool,\r\n placeholder: PropTypes.string,\r\n type: PropTypes.string,\r\n className: PropTypes.string\r\n};\r\n\r\nTextInput.defaultProps = {\r\n required: false,\r\n hideHints: false,\r\n placeholder: '',\r\n type: 'text',\r\n className: ''\r\n};\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const BoxInputDotDivider = ({\r\n width,\r\n height,\r\n radius,\r\n strokeColor\r\n}) => (\r\n \r\n \r\n \r\n);\r\n\r\nBoxInputDotDivider.propTypes = {\r\n width: PropTypes.number,\r\n height: PropTypes.number,\r\n radius: PropTypes.number,\r\n strokeColor: PropTypes.string\r\n};\r\n\r\nBoxInputDotDivider.defaultProps = {\r\n width: 82,\r\n height: 34,\r\n radius: 2,\r\n strokeColor: '#000'\r\n};\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Field } from 'redux-form';\r\n\r\n/* eslint-disable react/no-array-index-key */\r\nexport const BoxInput = ({\r\n name,\r\n component,\r\n boxLength,\r\n cellWidth,\r\n cellHeight,\r\n strokeColor,\r\n fillColor,\r\n strokeWidth,\r\n letterSpacing,\r\n mask,\r\n maskChar,\r\n maskConfigAfterValueChange,\r\n placeholder,\r\n svgTemplate,\r\n normalize,\r\n className,\r\n preceedingText,\r\n divClassName\r\n}) => (\r\n
    \r\n {preceedingText && { preceedingText }}\r\n
    \r\n \r\n { svgTemplate || \r\n { Array(boxLength).fill(0).map((el, index) => (\r\n \r\n )) }\r\n }\r\n
    \r\n
    \r\n);\r\n/* eslint-enable react/no-array-index-key */\r\n\r\nBoxInput.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n component: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.func\r\n ]),\r\n boxLength: PropTypes.number.isRequired,\r\n cellWidth: PropTypes.number,\r\n cellHeight: PropTypes.number,\r\n strokeColor: PropTypes.string,\r\n fillColor: PropTypes.string,\r\n strokeWidth: PropTypes.number,\r\n letterSpacing: PropTypes.number,\r\n mask: PropTypes.string,\r\n maskChar: PropTypes.string,\r\n maskConfigAfterValueChange: PropTypes.shape({\r\n acceptedCharacters: PropTypes.objectOf(PropTypes.string),\r\n containsInvalidatedCharacters: PropTypes.func\r\n }),\r\n placeholder: PropTypes.string,\r\n svgTemplate: PropTypes.node,\r\n normalize: PropTypes.func,\r\n className: PropTypes.string,\r\n preceedingText: PropTypes.string,\r\n divClassName: PropTypes.string\r\n};\r\n\r\nBoxInput.defaultProps = {\r\n component: 'input',\r\n cellWidth: 32,\r\n cellHeight: 32,\r\n strokeColor: '#000',\r\n fillColor: '#dbe4fd',\r\n strokeWidth: 1,\r\n letterSpacing: 19,\r\n mask: null,\r\n placeholder: '',\r\n svgTemplate: null,\r\n normalize: null,\r\n className: '',\r\n preceedingText: null,\r\n divClassName: '',\r\n maskChar: ' ',\r\n maskConfigAfterValueChange: null\r\n};\r\n\r\nexport * from './BoxInputDotDivider';\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { change } from 'redux-form';\r\nimport { connect } from 'react-redux';\r\n\r\nclass FileInputComponent extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n id: PropTypes.string.isRequired,\r\n input: PropTypes.shape({\r\n name: PropTypes.string,\r\n value: PropTypes.any\r\n }).isRequired,\r\n meta: PropTypes.shape({\r\n form: PropTypes.string\r\n }).isRequired,\r\n accept: PropTypes.string,\r\n required: PropTypes.bool,\r\n className: PropTypes.string,\r\n onFileChange: PropTypes.func\r\n };\r\n\r\n static defaultProps = {\r\n accept: '',\r\n required: false,\r\n className: '',\r\n onFileChange: null\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n file: undefined\r\n };\r\n }\r\n\r\n onChange(e) {\r\n const { onFileChange } = this.props;\r\n const file = e.target.files[0];\r\n this.setState({ file });\r\n this.changeFileValue(file);\r\n\r\n if (onFileChange) {\r\n onFileChange(e, file);\r\n }\r\n }\r\n\r\n changeFileValue(value) {\r\n const {\r\n dispatch,\r\n input: { name },\r\n meta: { form }\r\n } = this.props;\r\n dispatch(change(\r\n form,\r\n name,\r\n value\r\n ));\r\n }\r\n\r\n removeFile() {\r\n this.setState({ file: undefined });\r\n const { id } = this.props;\r\n const inputEl = document.getElementById(id);\r\n if (inputEl) {\r\n inputEl.value = '';\r\n }\r\n this.changeFileValue(null);\r\n }\r\n\r\n render() {\r\n const {\r\n id,\r\n input: {\r\n name\r\n },\r\n accept,\r\n required,\r\n className\r\n } = this.props;\r\n const { file } = this.state;\r\n return (\r\n
    \r\n Choose file\r\n \r\n { file && \r\n this.removeFile() }\r\n tabIndex={ 0 }\r\n className=\"icon icon-cross\"\r\n aria-hidden=\"true\"\r\n />\r\n }\r\n this.onChange(e) }\r\n accept={ accept }\r\n required={ required }\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const FileInput = connect(\r\n null,\r\n mapDispatchToProps\r\n)(FileInputComponent);\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { change } from 'redux-form';\r\nimport { connect } from 'react-redux';\r\n\r\nclass MultiFileInputComponent extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n id: PropTypes.string.isRequired,\r\n input: PropTypes.shape({\r\n name: PropTypes.string,\r\n value: PropTypes.any\r\n }).isRequired,\r\n meta: PropTypes.shape({\r\n form: PropTypes.string\r\n }).isRequired,\r\n accept: PropTypes.string,\r\n required: PropTypes.bool,\r\n className: PropTypes.string\r\n };\r\n\r\n static defaultProps = {\r\n accept: '',\r\n required: false,\r\n className: ''\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n file: undefined,\r\n beneficiaryFilesList: undefined\r\n };\r\n this.onChange = this.onChange.bind(this);\r\n }\r\n\r\n onChange(e) {\r\n const fileStore1 = e.target.files;\r\n const filenames = [];\r\n Array.from(fileStore1).forEach((file) => {\r\n if (file != null) {\r\n filenames.push(file.name);\r\n }\r\n });\r\n this.setState(\r\n { file: fileStore1,\r\n beneficiaryFilesList: filenames.length > 0\r\n ? filenames.join(', ')\r\n : undefined }\r\n );\r\n this.changeFileValue(fileStore1);\r\n }\r\n\r\n changeFileValue(value) {\r\n const {\r\n dispatch,\r\n input: { name },\r\n meta: { form }\r\n } = this.props;\r\n dispatch(change(\r\n form,\r\n name,\r\n value\r\n ));\r\n }\r\n\r\n removeFile() {\r\n this.setState(\r\n { file: undefined,\r\n beneficiaryFilesList: undefined }\r\n );\r\n const { id } = this.props;\r\n const inputEl = document.getElementById(id);\r\n if (inputEl) {\r\n inputEl.value = '';\r\n }\r\n this.changeFileValue(null);\r\n }\r\n\r\n render() {\r\n const {\r\n id,\r\n input: {\r\n name\r\n },\r\n accept,\r\n required,\r\n className\r\n } = this.props;\r\n const {\r\n file,\r\n beneficiaryFilesList\r\n } = this.state;\r\n return (\r\n
    \r\n Choose file\r\n \r\n { file && \r\n this.removeFile() }\r\n tabIndex={ 0 }\r\n className=\"icon icon-cross\"\r\n aria-hidden=\"true\"\r\n />\r\n }\r\n this.onChange(e) }\r\n accept={ accept }\r\n required={ required }\r\n multiple\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const MultiFileInput = connect(\r\n null,\r\n mapDispatchToProps\r\n)(MultiFileInputComponent);\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const SelectInput = ({\r\n input,\r\n meta: {\r\n touched,\r\n error,\r\n warning\r\n },\r\n required,\r\n disabled,\r\n hideHints,\r\n placeholder,\r\n className,\r\n multiple,\r\n size,\r\n children\r\n}) => (\r\n
    \r\n \r\n { children }\r\n \r\n {\r\n !hideHints && touched && (\r\n (error &&

    { error }

    )\r\n || (warning &&

    { warning }

    )\r\n )\r\n }\r\n
    \r\n);\r\n\r\nSelectInput.propTypes = {\r\n input: PropTypes.shape({\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.arrayOf(PropTypes.string)\r\n ]),\r\n }).isRequired,\r\n meta: PropTypes.shape({\r\n touched: PropTypes.bool,\r\n error: PropTypes.any,\r\n warning: PropTypes.any\r\n }).isRequired,\r\n children: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node,\r\n PropTypes.arrayOf(PropTypes.node)\r\n ]).isRequired,\r\n required: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n hideHints: PropTypes.bool,\r\n placeholder: PropTypes.string,\r\n className: PropTypes.string,\r\n multiple: PropTypes.bool,\r\n size: PropTypes.number\r\n};\r\n\r\nSelectInput.defaultProps = {\r\n disabled: false,\r\n required: false,\r\n hideHints: false,\r\n placeholder: '',\r\n className: '',\r\n multiple: false,\r\n size: null\r\n};\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nexport const getSingleCheckboxState = name => value => document\r\n .querySelector(`input[type=\"checkbox\"][name=\"${ name }\"]`)\r\n .checked;\r\n\r\nexport const getCheckboxValue = name => value => Array\r\n .from(document.querySelectorAll(`input[type=\"checkbox\"][name=\"${ name }\"]`))\r\n .filter(el => el.checked)\r\n .map(el => el != null && el.value);\r\n\r\nconst isCheckboxChecked = (\r\n modelValue,\r\n inputValue\r\n) => (\r\n (modelValue\r\n && modelValue.length\r\n && typeof modelValue !== 'string'\r\n && modelValue.indexOf(inputValue) !== -1)\r\n || (modelValue\r\n && modelValue.length\r\n && typeof modelValue === 'string' && modelValue === inputValue)\r\n || (modelValue === true\r\n && inputValue === 'true')\r\n || (modelValue === false\r\n && inputValue === 'false')\r\n);\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const CheckboxInput = ({\r\n input,\r\n meta: {\r\n touched,\r\n error\r\n },\r\n item,\r\n iValue,\r\n className }) => (\r\n // eslint-disable-next-line jsx-a11y/label-has-for\r\n \r\n);\r\n\r\nCheckboxInput.propTypes = {\r\n input: PropTypes.shape().isRequired,\r\n item: PropTypes.oneOfType([\r\n PropTypes.shape(),\r\n PropTypes.string,\r\n PropTypes.node,\r\n PropTypes.arrayOf(PropTypes.node)\r\n ]),\r\n iValue: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number\r\n ]).isRequired,\r\n meta: PropTypes.shape().isRequired,\r\n className: PropTypes.string\r\n};\r\n\r\nCheckboxInput.defaultProps = {\r\n item: null,\r\n className: null\r\n};\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Field, arrayRemove } from 'redux-form';\r\nimport { connect } from 'react-redux';\r\n\r\nexport const resolveObjPath = (path, obj) => path\r\n .split('.')\r\n .reduce(\r\n (prev, curr) => (\r\n prev\r\n ? prev[curr]\r\n : undefined\r\n ),\r\n obj || window.self\r\n );\r\n\r\nconst NestedArrayObjectFieldInput = ({\r\n input,\r\n meta,\r\n placeholder,\r\n type,\r\n className,\r\n maxLength\r\n}) => (\r\n
    \r\n 0 && { maxLength }) }\r\n onBlur={ (e) => {\r\n const { value } = e.target;\r\n input.onBlur(value === '' ? null : value);\r\n } }\r\n onChange={ (e) => {\r\n const { value } = e.target;\r\n input.onBlur(value === '' ? null : value);\r\n } }\r\n />\r\n
    \r\n);\r\n\r\nNestedArrayObjectFieldInput.propTypes = {\r\n input: PropTypes.shape({\r\n value: PropTypes.any,\r\n onBlur: PropTypes.func\r\n }).isRequired,\r\n meta: PropTypes.shape({\r\n form: PropTypes.string\r\n }).isRequired,\r\n placeholder: PropTypes.string,\r\n type: PropTypes.string,\r\n className: PropTypes.string,\r\n maxLength: PropTypes.number,\r\n};\r\n\r\nNestedArrayObjectFieldInput.defaultProps = {\r\n placeholder: '',\r\n type: 'text',\r\n className: '',\r\n maxLength: null,\r\n};\r\n\r\nconst NestedArrayObjectFieldComponent = ({\r\n component,\r\n dispatch,\r\n name,\r\n rootField,\r\n formName,\r\n maxLength,\r\n custom\r\n}) => (\r\n 0 && { maxLength }) }\r\n onBlur={ (event, newVal, prevVal) => {\r\n if (!prevVal && !newVal) {\r\n event.preventDefault();\r\n }\r\n } }\r\n normalize={ (value, prevVal, allValues, prevAllValues) => {\r\n const rootFieldValue = resolveObjPath(rootField, allValues);\r\n if (rootFieldValue) {\r\n let isEachChildNull = true;\r\n const itemIndex = name.replace(/(^.*\\[|\\].*$)/g, '');\r\n const rootFieldItem = rootFieldValue[itemIndex];\r\n Object\r\n .keys(rootFieldItem)\r\n .forEach((key) => {\r\n if (key != null) {\r\n if (rootFieldItem[key] != null) {\r\n isEachChildNull = false;\r\n }\r\n }\r\n });\r\n if (isEachChildNull) {\r\n dispatch(arrayRemove(formName, rootField, itemIndex));\r\n return undefined;\r\n }\r\n }\r\n return value;\r\n } }\r\n />\r\n);\r\n\r\nNestedArrayObjectFieldComponent.defaultProps = {\r\n component: NestedArrayObjectFieldInput,\r\n maxLength: null,\r\n custom: null\r\n};\r\n\r\nNestedArrayObjectFieldComponent.propTypes = {\r\n component: PropTypes.any,\r\n dispatch: PropTypes.func.isRequired,\r\n name: PropTypes.string.isRequired,\r\n rootField: PropTypes.string.isRequired,\r\n formName: PropTypes.string.isRequired,\r\n maxLength: PropTypes.number,\r\n custom: PropTypes.shape()\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const NestedArrayObjectField = connect(\r\n null,\r\n mapDispatchToProps\r\n)(NestedArrayObjectFieldComponent);\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport {\r\n Field,\r\n arrayRemove,\r\n change\r\n} from 'redux-form';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { resolveObjPath } from 'components/Common/Inputs/NestedArrayObjectField';\r\n\r\nclass NestedArrayStringFieldInput extends Component {\r\n static propTypes = {\r\n input: PropTypes.shape({\r\n name: PropTypes.string,\r\n value: PropTypes.any\r\n }).isRequired,\r\n meta: PropTypes.shape({\r\n dispatch: PropTypes.func,\r\n form: PropTypes.string\r\n }).isRequired,\r\n placeholder: PropTypes.string,\r\n type: PropTypes.string,\r\n className: PropTypes.string,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n initValue: PropTypes.any\r\n };\r\n\r\n static defaultProps = {\r\n placeholder: '',\r\n type: 'text',\r\n className: '',\r\n initValue: undefined\r\n };\r\n\r\n componentDidMount() {\r\n const {\r\n input: { name, value },\r\n meta: { dispatch, form },\r\n initValue\r\n } = this.props;\r\n if ((value === null || value === undefined || value === '') && initValue !== undefined) {\r\n dispatch(change(form, name, initValue));\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n input,\r\n placeholder,\r\n type,\r\n className\r\n } = this.props;\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst NestedArrayStringFieldComponent = ({\r\n dispatch,\r\n name,\r\n rootField,\r\n formName,\r\n initValue\r\n}) => (\r\n {\r\n if (!prevVal && !newVal) {\r\n event.preventDefault();\r\n }\r\n } }\r\n normalize={ (value, prevVal, allValues, prevAllValues) => {\r\n const rootFieldValue = resolveObjPath(rootField, allValues);\r\n if (rootFieldValue) {\r\n const itemIndex = name.replace(/(^.*\\[|\\].*$)/g, '');\r\n const rootFieldItem = rootFieldValue[itemIndex];\r\n if (rootFieldItem === '' || rootFieldItem === null) {\r\n dispatch(arrayRemove(formName, rootField, itemIndex));\r\n return undefined;\r\n }\r\n }\r\n return value;\r\n } }\r\n />\r\n);\r\n\r\nNestedArrayStringFieldComponent.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n name: PropTypes.string.isRequired,\r\n rootField: PropTypes.string.isRequired,\r\n formName: PropTypes.string.isRequired,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n initValue: PropTypes.any\r\n};\r\n\r\nNestedArrayStringFieldComponent.defaultProps = {\r\n initValue: undefined\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nconst mapStateToProps = state => ({ formName: Object.getOwnPropertyNames(state.form)[0] });\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const NestedArrayStringField = connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(NestedArrayStringFieldComponent);\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport {\r\n Field,\r\n arrayRemove,\r\n change\r\n} from 'redux-form';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { resolveObjPath } from 'components/Common/Inputs/NestedArrayObjectField';\r\n\r\nclass NestedArraySelectFieldInput extends Component {\r\n static propTypes = {\r\n input: PropTypes.shape({\r\n name: PropTypes.string,\r\n value: PropTypes.any\r\n }).isRequired,\r\n meta: PropTypes.shape({\r\n dispatch: PropTypes.func,\r\n form: PropTypes.string\r\n }).isRequired,\r\n placeholder: PropTypes.string,\r\n className: PropTypes.string,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n initValue: PropTypes.any,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n children: PropTypes.any\r\n };\r\n\r\n static defaultProps = {\r\n placeholder: '',\r\n className: '',\r\n initValue: undefined,\r\n children: undefined\r\n };\r\n\r\n componentDidMount() {\r\n const {\r\n input: { name, value },\r\n meta: { dispatch, form },\r\n initValue\r\n } = this.props;\r\n if ((value === null || value === undefined || value === '') && initValue !== undefined) {\r\n dispatch(change(form, name, initValue));\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n input,\r\n placeholder,\r\n className,\r\n children\r\n } = this.props;\r\n return (\r\n
    \r\n \r\n { children }\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst NestedArraySelectFieldComponent = ({\r\n dispatch,\r\n name,\r\n rootField,\r\n formName,\r\n initValue,\r\n children\r\n}) => (\r\n {\r\n if (!prevVal && !newVal) {\r\n event.preventDefault();\r\n }\r\n } }\r\n normalize={ (value, prevVal, allValues, prevAllValues) => {\r\n const rootFieldValue = resolveObjPath(rootField, allValues);\r\n if (rootFieldValue) {\r\n const itemIndex = name.replace(/(^.*\\[|\\].*$)/g, '');\r\n const rootFieldItem = rootFieldValue[itemIndex];\r\n if (rootFieldItem === '' || rootFieldItem === null) {\r\n dispatch(arrayRemove(formName, rootField, itemIndex));\r\n return undefined;\r\n }\r\n }\r\n return value;\r\n } }\r\n >\r\n { children }\r\n \r\n);\r\n\r\nNestedArraySelectFieldComponent.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n name: PropTypes.string.isRequired,\r\n rootField: PropTypes.string.isRequired,\r\n formName: PropTypes.string.isRequired,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n initValue: PropTypes.any,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n children: PropTypes.any\r\n};\r\n\r\nNestedArraySelectFieldComponent.defaultProps = {\r\n initValue: undefined,\r\n children: undefined\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nconst mapStateToProps = state => ({ formName: Object.getOwnPropertyNames(state.form)[0] });\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const NestedArraySelectField = connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(NestedArraySelectFieldComponent);\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Field, change, formValueSelector } from 'redux-form';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { CheckboxInput } from 'components/Common/Inputs/CheckboxInput';\r\n\r\nclass NestedArrayBooleanFieldComponent extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n name: PropTypes.string.isRequired,\r\n form: PropTypes.string.isRequired,\r\n normalize: PropTypes.func.isRequired,\r\n rootField: PropTypes.string.isRequired,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n initValue: PropTypes.any,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n state: PropTypes.any.isRequired\r\n };\r\n\r\n static defaultProps = {\r\n initValue: undefined\r\n };\r\n\r\n componentDidMount() {\r\n const {\r\n dispatch,\r\n state,\r\n form,\r\n rootField,\r\n initValue\r\n } = this.props;\r\n const selector = formValueSelector(form);\r\n const value = selector(state, rootField);\r\n if ((value === null || value === undefined) && initValue !== undefined) {\r\n dispatch(change(form, rootField, initValue));\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n name,\r\n normalize\r\n } = this.props;\r\n\r\n return (\r\n {\r\n if (!prevVal && !newVal) {\r\n event.preventDefault();\r\n }\r\n } }\r\n normalize={ normalize }\r\n />\r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nconst mapStateToProps = state => ({ state });\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const NestedArrayBooleanField = connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(NestedArrayBooleanFieldComponent);\r\n","import w8bene from './w8bene';\r\nimport w8bene2021 from './w8bene_2021';\r\nimport w8ben from './w8ben';\r\nimport w8ben2021 from './w8ben_2021';\r\nimport w8imy from './w8imy';\r\nimport w8imy2017 from './w8imy_2017';\r\nimport w8imy2021 from './w8imy_2021';\r\nimport w9 from './w9';\r\nimport w92017 from './w9_2017';\r\nimport w92018 from './w9_2018';\r\nimport w92024 from './w9_2024';\r\nimport w8eci from './w8eci';\r\nimport w8eci2021 from './w8eci_2021';\r\nimport w8exp from './w8exp';\r\nimport w8exp2023 from './w8exp_2023';\r\nimport fatcacrsi from './factcacrsi_2022';\r\nimport fatcacrse from './factcacrse_2022';\r\nimport fatcacrsi2023 from './fatcacrsi_2023';\r\nimport fatcacrse2023 from './fatcacrse_2023';\r\n\r\nexport default {\r\n w8bene,\r\n w8bene2021,\r\n w8ben,\r\n w8ben2021,\r\n w8imy,\r\n w8imy2017,\r\n w8imy2021,\r\n w9,\r\n w92017,\r\n w92018,\r\n w92024,\r\n w8eci,\r\n w8eci2021,\r\n w8exp,\r\n w8exp2023,\r\n fatcacrsi,\r\n fatcacrse,\r\n fatcacrsi2023,\r\n fatcacrse2023\r\n};\r\n","import React from 'react';\r\n\r\n/* eslint-disable max-len */\r\nexport default {\r\n line1: {\r\n label: 'Name of organization that is the beneficial owner',\r\n\r\n hint: Enter your name. If you are a disregarded entity or branch, do not enter the business name of the disregarded entity or branch here. Instead, enter the legal name of the entity that owns the disregarded entity (looking through multiple disregarded entities if applicable) or maintains the branch. If you are a disregarded entity that is a hybrid entity filing a treaty claim, however, see Hybrid entities under Special Instructions, later,\r\n\r\n tip: If you are an account holder (see Definitions, earlier or, in the case of an account holder of an account maintained by an FFI covered by a Model 1 or Model 2 IGA with respect to the account, an applicable IGA) providing this form to an FFI solely for purposes of documenting yourself as an account holder and you are not receiving a withholdable payment or reportable amount (as defined in Regulations section 1.1441-1(e)(3)(vi)), you should complete Part I by substituting the references to “beneficial owner” with “account holder”. ,\r\n\r\n caution: The holder of an account is not always the account holder for purposes of chapter 4. See Definitions, earlier or, for an account maintained by an FFI covered by a Model 1 or Model 2 IGA with respect to the account, the definition of account holder in an applicable IGA to determine if you are the account holder. If you hold an account with an FFI and are unsure whether the definition of “account holder” under an IGA is applicable to your account, consult with the FFI requesting this form.\r\n },\r\n\r\n line2: {\r\n label: 'Country of incorporation or organization',\r\n\r\n hint: 'If you are a corporation, enter your country of incorporation. If you are another type of entity, enter the country under whose laws you are created, organized, or governed.'\r\n },\r\n\r\n line3: {\r\n label: 'Name of disregarded entity receiving the payment (if applicable, see instructions)',\r\n\r\n hint: If you are a disregarded entity receiving a withholdable payment, enter your name (if required). You should complete line 3 only if you are a disregarded entity receiving a withholdable payment or hold an account with an FFI requesting this form and you: 1) have registered with the IRS and been assigned a GIIN associated with the legal name of the disregarded entity; 2) are a reporting Model 1 FFI or reporting Model 2 FFI; and 3) are not a hybrid entity using this form to claim treaty benefits.,\r\n\r\n caution: If you are not required to provide the legal name of the disregarded entity, however, you may want to notify the withholding agent that you are a disregarded entity receiving a payment or maintaining an account by indicating the name of the disregarded entity on line 10. However, do not enter the name of the disregarded entity on this line 3 except in the circumstances described.\r\n },\r\n\r\n line4: {\r\n hint: Check the one box that applies. By checking a box, you are representing that you qualify for the classification indicated. You must check the box that represents your classification (for example, corporation, partnership, trust, estate, etc.) under U.S. tax principles (not under the law of the treaty country). However, if you are providing Form W-8BEN-E to an FFI solely for purposes of documenting yourself for chapter 4 purposes as an account holder of an account maintained by an FFI (and you are not receiving a withholdable payment), you do not need to complete line 4.
    If you are a partnership, disregarded entity, simple trust, or grantor trust receiving a payment for which treaty benefits are being claimed by such entity, you must check the “Partnership”, “Disregarded entity”, “Simple trust”, or “Grantor trust” box. For such a case, you must also check the “yes” box to indicate that you are a hybrid entity making a treaty claim. You may only check the “no” box if (1) you are a disregarded entity, partnership, simple trust, or grantor trust and are using the form solely for purposes of documenting yourself as an account holder of an FFI and the form is not associated with a withholdable payment or a reportable amount (as defined in Regulations section 1.1441-1(e)(3)(vi)) or (2) you are using this form solely for purposes of documenting your status as the participating payee for purposes of section 6050W. In such cases, you are not required to complete line 4, but you may check the “no” box if you choose to complete line 4. You may also use Form W-8IMY for this purpose. However, if you are receiving withholdable payments or reportable amounts (as defined in Regulations section 1.1441-1(e)(3)(vi)), you are required to provide Form W-8IMY and a withholding statement (if applicable) or a Form W-8 or W-9, as appropriate, if you are a disregarded entity with a single owner with respect to such payments.
    ,\r\n\r\n caution: Only entities that are tax-exempt under section 501(c) should check the “Tax-exempt organization” box for purposes of line 4. Such organizations should use Form W-8BEN-E only if they are claiming a reduced rate of withholding under an income tax treaty or a Code exception other than section 501(c) or if they are using this form solely for purposes of documenting themselves as an account holder with an FFI. Use Form W-8EXP to document your exemption and chapter 4 status if you are claiming an exemption from withholding under section 501(c).\r\n },\r\n\r\n line5: {\r\n label: 'Chapter 4 Status (FATCA status) (See instructions for details and complete the certification below for the entity’s applicable status).',\r\n\r\n hint: Check the one box that applies to your chapter 4 status. You are not required to provide a chapter 4 status if you are providing this form with respect to a preexisting entity account (as described in Regulations section 1.1471-1(b)(102)) prior to July 1, 2016. Additionally, you are only required to provide a chapter 4 status on this form if you are the payee of a withholdable payment or are documenting the status of an account you hold with an FFI requesting this form. By checking a box on this line, you are representing that you qualify for this classification in your country of residence.
     FFIs Covered by an IGA and Related Entities
    A reporting IGA FFI resident in, or established under the laws of, a jurisdiction covered by a Model 1 IGA should check “Reporting Model 1 FFI.” A reporting FFI resident in, or established under the laws of, a jurisdiction covered by a Model 2 IGA should check “Reporting Model 2 FFI.” If you are treated as a registered deemed-compliant FFI under an applicable IGA, you should check “Nonreporting IGA FFI” rather than “registered deemed-compliant FFI” and provide your GIIN. In general, if you are treated as a nonreporting IGA FFI under an applicable IGA, you should check “Nonreporting IGA FFI” even if you meet the qualifications for deemed-compliant status or are an exempt beneficial owner under the chapter 4 regulations. In such cases, you need not also check your applicable status under the regulations but should provide your GIIN on line 9, if applicable. However, an owner documented FFI that is treated as a nonreporting IGA FFI under an applicable IGA must check “Owner-documented FFI” and complete Part X. See the specific instructions for Part XII. An FFI that is related to a reporting IGA FFI and that is treated as a nonparticipating FFI in its country of residence should check nonparticipating FFI in line 5. An FFI that is related to a reporting IGA FFI and that is a participating FFI, deemed-compliant FFI, or exempt beneficial owner under the U.S. Treasury regulations or an applicable IGA should check the appropriate box for its chapter 4 status.
    If you are an FFI in a jurisdiction treated as having an IGA in effect, you should not check “Participating FFI” but rather should check “Reporting Model 1 FFI” or “Reporting Model 2 FFI” as applicable.
    See https://home.treasury.gov/policy-issues/tax-policy/foreign-account-tax-compliance-act for a list of jurisdictions treated as having an IGA in effect.
     Non-Profit Organizations Covered by an IGA
    For purposes of documenting itself as an account holder of an FFI, a non-profit entity that is established and maintained in a jurisdiction that is treated as having in effect a Model 1 IGA or Model 2 IGA, and that meets the definition of Active NFFE under Annex I of the applicable IGA, should not check a box for its status on line 5. Instead, see Entities Providing Certifications Under an Applicable IGA.
     Account That is Not a Financial Account
    If you are providing this form to document an account you hold with a financial institution that is not a financial account under Regulations section 1.1471-5(b)(2), check the“Account that is not a financial account” box on line 5.
    ,\r\n\r\n tip: For most of the chapter 4 statuses, you are required to complete an additional part of this form certifying that you meet the conditions of the status indicated on line 5 (as defined under Regulations section 1.1471-5 or 1.1471-6). Make sure you complete the required portion of this form before signing and providing it to the withholding agent. See, however, Entities Providing Certifications Under an Applicable IGA under Special Instructions.,\r\n\r\n caution: A withholding agent may request your chapter 4 status in advance of this deadline to allow for time necessary to apply the status in its systems. In addition, a withholding agent may still request a chapter 4 status notwithstanding the account holder's determination of its status as a preexisting account for chapter 4 purposes.\r\n },\r\n\r\n line6: {\r\n label: Permanent residence address (street, apt. or suite no., or rural route). Do not use a P.O. box or in-care-of address (other than a registered address).,\r\n\r\n hint: 'Enter the permanent residence address of the entity identified in line 1. Your permanent residence address is the address in the country where the entity claims to be a resident for purposes of that country’s income tax. If you are giving Form W-8BEN-E to claim a reduced rate of, or exemption from, withholding under an income tax treaty, you must determine residency in the manner required by the treaty. Do not show the address of a financial institution (unless you are a financial institution providing your own address), a post office box, or an address used solely for mailing purposes unless it is the only address used by the entity and such address appears in the entity’s organizational documents (i.e., your registered address). If you do not have a tax residence in any country, the permanent residence address is where you maintain your principal office.'\r\n },\r\n\r\n line7: {\r\n label: 'Mailing address (if different from above)',\r\n\r\n hint: 'Enter your mailing address only if it is different from the address you show on line 6.'\r\n },\r\n\r\n line8: {\r\n label: 'U.S. taxpayer identification number (TIN), if required',\r\n\r\n hint: Enter your U.S. employer identification number (EIN). An EIN is a U.S. TIN for entities. If you do not have a U.S. EIN, apply for one on Form SS-4, Application for Employer Identification Number, if you are required to obtain a U.S. TIN. See Regulations section 1.1441-1(e)(4) (vii) for when you are required to provide a U.S. TIN on a Form W-8 associated with a payment subject to chapter 3 withholding. A partner in a partnership conducting a trade or business in the United States will likely be allocated effectively connected taxable income. The partner is required to file a U.S. federal income tax return and must have a U.S. taxpayer identification number (TIN).
    You must provide a U.S. TIN if you are:
    • Claiming an exemption from withholding under section 871(f) for certain annuities received under qualified plans, or
    • Claiming benefits under an income tax treaty and have not provided a foreign TIN on line 9b.
    However, a TIN is not required to be shown in order to claim treaty benefits on the following items of income:
    • Dividends and interest from stocks and debt obligations that are actively traded;
    • Dividends from any redeemable security issued by an investment company registered under the Investment Company Act of 1940 (mutual fund);
    • Dividends, interest, or royalties from units of beneficial interest in a unit investment trust that are (or were upon issuance) publicly offered and are registered with the SEC under the Securities Act of 1933; and
    • Income related to loans of any of the above securities.
    ,\r\n\r\n tip: If you need an EIN, you are encouraged to apply for one online instead of submitting a paper Form SS-4 . For more information, visit https://www.irs.gov/businesses/small-businesses-self-employed/employer-id-numbers-eins.\r\n },\r\n\r\n line9a: {\r\n label: 'GIIN',\r\n\r\n hint: If you are a participating FFI, registered deemed-compliant FFI, reporting Model 1 FFI, reporting Model 2 FFI, direct reporting NFFE, trustee of a trustee documented trust providing this form for the trust, or sponsored direct reporting NFFE, you are required to enter your GIIN (with regard to your country of residence) on line 9a. However, if your branch is receiving the payment and is required to be identified in Part II, you are not required to provide a GIIN on this line 9a unless such branch is a U.S. branch or a limited branch. Instead, provide the GIIN of your branch (if applicable) on line 13. See the instructions for Part II.
    In addition, if you are a sponsored entity that has a GIIN, you must provide that GIIN on line 9a.
    For payments made prior to January 1, 2017, a sponsored direct reporting NFFE or sponsored FFI that has not obtained a GIIN must provide the GIIN of its sponsoring entity.
    If you are a sponsored entity that is a nonreporting IGA FFI, see Part XII.
    ,\r\n\r\n tip: Lines 9a and 9b should accommodate the GIIN or foreign TIN, as appropriate. You may need to use a smaller font when completing the form. If the GIIN or foreign TIN does not fit in the space provided, you may provide a GIIN or foreign TIN that is indicated and clearly identified somewhere else on the form, or on a separate attached sheet, as long as the GIIN or foreign TIN is clearly identified as being furnished with respect to line 9a or 9b, respectively. For example, a handwritten GIIN located just outside of line 9a with a corresponding arrow pointing to line 9a is a properly provided GIIN for this purpose.

    If you are in the process of registering with the IRS as a participating FFI, registered deemed-compliant FFI, reporting Model 1 FFI, reporting Model 2 FFI, direct reporting NFFE, or sponsored direct reporting NFFE but have not received a GIIN, you may complete this line by writing “applied for.” However, the person requesting this form from you must receive and verify your GIIN within 90 days.
    \r\n },\r\n\r\n line9b: {\r\n label: 'Foreign TIN',\r\n\r\n hint: If your country of residence for tax purposes has issued you a taxpayer identification number (TIN), enter it here. If you are providing this Form W-8BEN-E to document yourself with respect to a financial account that you hold at a U.S. office of a financial institution (including a U.S. branch of an FFI), you must provide the taxpayer identification number (TIN) issued to you by the jurisdiction in which you are a tax resident unless:
    • You have not been issued a TIN, or
    • The jurisdiction does not issue TINs.
    ,\r\n\r\n tip: Please provide the TIN issued to you by the jurisdiction in which you are a tax resident. This field should not contain a U.S. Taxpayer Identification number.
    If you are unsure about what your TIN is, please consult this information page: https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/
    Alternatively, a foreign TIN may not be required if any of the following are true:
    • Your permanent residence address is a jurisdiction which does not issue TINs to their residents. This list includes the jurisdictions recognised by the IRS: https://www.irs.gov/businesses/corporations/list-of-jurisdictions-that-do-not-issue-foreign-tins
    • You have uploaded a valid TIN Not Issued Document.
    • You have entered "not legally required" in the FTIN in line with the instructions to this form.
    \r\n },\r\n\r\n line10: {\r\n label: 'Reference number(s) (see instructions)',\r\n\r\n hint: This line may be used by the filer of Form W-8BEN-E or by the withholding agent or FFI to whom it is provided to include any referencing information that is useful to the withholding agent to document the beneficial owner. For example, withholding agents who are required to associate the Form W-8BEN-E with a particular Form W-8IMY may want to use line 10 for a referencing number or code that will make the association clear. A beneficial owner may also want to use line 10 to include the number of the account for which he or she is providing the form. A foreign single owner of a disregarded entity may use line 10 to inform the withholding agent that the account to which a payment is made or credited is held in the name of the disregarded entity (unless the name of the disregarded entity is required to be provided on line 3).
    You may also use line 10 to identify income from a notional principal contract that is not effectively connected with the conduct of a trade or business in the United States.
    \r\n },\r\n\r\n partII: {\r\n tip: If the disregarded entity receiving a withholdable payment has its own GIIN, Part II should be completed regardless of whether it is in the same country as the single owner identified in Part I.,\r\n\r\n caution: Complete Part II for a disregarded entity that has its own GIIN and is receiving a withholdable payment, or for a branch (including a branch that is a disregarded entity that does not have a GIIN) of the FFI identified in line 1 operating in a jurisdiction other than the country of residence identified in line 2. For example, assume ABC Co., which is a participating FFI resident in Country A, operates through a branch in Country B (which is a Model 1 IGA jurisdiction) and the branch is treated as a reporting Model 1 FFI under the terms of the Country B Model 1 IGA. ABC Co. should not enter its GIIN on line 9, and the Country B branch should complete this Part II by identifying itself as a reporting Model 1 IGA FFI and providing its GIIN on line 13. Furthermore, if the Country B branch receiving the payment is a disregarded entity you may be required to provide its legal name on line 3. See the instructions for Part I, line 3.\r\n },\r\n\r\n line11: {\r\n label: 'Chapter 4 Status (FATCA status) of disregarded entity or branch receiving payment',\r\n\r\n hint: Check the one box that applies. If you check reporting Model 1 FFI, reporting Model 2 FFI, participating FFI, or U.S. branch claiming a chapter 4 status other than that of nonparticipating FFI, you must complete line 13 (see below). If you are a limited branch or branch of a reporting IGA FFI that cannot comply with the requirements of an applicable IGA or the regulations under chapter 4, you must check “limited branch”.\r\n },\r\n\r\n line12: {\r\n label: Address of disregarded entity or branch (street, apt. or suite no., or rural route). Do not use a P.O. box or in-care-of address (other than a registered address).,\r\n\r\n hint: Enter the address of the branch or disregarded entity.\r\n },\r\n\r\n line13: {\r\n label: 'GIIN (if any)',\r\n\r\n hint: If you are a reporting Model 1 FFI, reporting Model 2 FFI, or participating FFI, you must enter the GIIN on line 13 of your branch that receives the payment. If you are a disregarded entity that completed Part I, line 3 of this form and are receiving payments associated with this form, enter your GIIN. Do not enter your GIIN (if any) on line 9. If you are a U.S. branch, enter a GIIN applicable to any other branch of the FFI (including in its residence country).,\r\n\r\n tip: If you are in the process of registering with the IRS as a participating FFI, reporting Model 1 FFI, or reporting Model 2 FFI but have not received a GIIN, you may complete this line by writing “applied for.” However, the person requesting this form from you must receive and verify your GIIN within 90 days.\r\n },\r\n\r\n line14a: {\r\n hint: 'An entity that is claiming a reduced rate of, or exemption from, withholding under an income tax treaty must enter the country where the entity identified on line 1 is a resident for income tax treaty purposes and check the box to certify that it is a resident of that country.'\r\n },\r\n\r\n line14b: {\r\n hint: An entity that is claiming a reduced rate of, or exemption from, withholding under an income tax treaty must check the box to certify that it:
    • Derives the item of income for which the treaty benefit is claimed, and
    • Meets the limitation on benefits provisions contained in the treaty, if any.
    An item of income may be derived by either the entity receiving the item of income or by the interest holders in the entity or, in certain circumstances, both. An item of income paid to an entity is considered to be derived by the entity only if the entity is not fiscally transparent under the laws of the entity’s jurisdiction with respect to the item of income. An item of income paid to an entity shall be considered to be derived by the interest holder in the entity only if:
    • The interest holder is not fiscally transparent in its jurisdiction with respect to the item of income, and
    • The entity is considered to be fiscally transparent under the laws of the interest holder’s jurisdiction with respect to the item of income. An item of income paid directly to a type of entity specifically identified in a treaty as a resident of a treaty jurisdiction is treated as derived by a resident of that treaty jurisdiction.
    If an entity is claiming treaty benefits on its own behalf, it should complete Form W-8BEN-E. If an interest holder in an entity that is considered fiscally transparent in the interest holder’s jurisdiction is claiming a treaty benefit, the interest holder should complete Form W-8BEN (if an individual) or Form W-8BEN-E (if an entity) on its own behalf as the appropriate treaty resident, and the fiscally transparent entity should associate the interest holder’s Form W-8BEN or Form W-8BEN-E with a Form W-8IMY completed by the fiscally transparent entity (see Hybrid entities under Special Instructions).
    ,\r\n\r\n tip: 'If you are an entity that derives the income as a resident of a treaty country, you may check this box if the applicable income tax treaty does not contain a “limitation on benefits” provision.',\r\n\r\n caution: 'An income tax treaty may not apply to reduce the amount of any tax on an item of income received by an entity that is treated as a domestic corporation for U.S. tax purposes. Therefore, neither the domestic corporation nor its shareholders are entitled to the benefits of a reduction of U.S. income tax on an item of income received from U.S. sources by the corporation.'\r\n },\r\n\r\n line14c: {\r\n hint: If you are a foreign corporation claiming treaty benefits under an income tax treaty that entered into force before January 1, 1987 (and has not been renegotiated) on (a) U.S. source dividends paid to you by another foreign corporation or (b) U.S. source interest paid to you by a U.S. trade or business of another foreign corporation, you must generally be a “qualified resident” of a treaty country. See section 884 for the definition of interest paid by a U.S. trade or business of a foreign corporation (“branch interest”) and other applicable rules.
    In general, a foreign corporation is a qualified resident of a country if any of the following apply.
    • It meets a 50% ownership and base erosion test.
    • It is primarily and regularly traded on an established securities market in its country of residence or the United States.
    • It carries on an active trade or business in its country of residence.
    • It gets a ruling from the IRS that it is a qualified resident. See Regulations section 1.884-5 for the requirements that must be met to satisfy each of these tests.
    ,\r\n\r\n caution: 'If you are claiming treaty benefits under an income tax treaty entered into force after December 31, 1986, do not check box 14c. Instead, check box 14b.'\r\n },\r\n\r\n line15: {\r\n label: Special rates and conditions (if applicable — see instructions):,\r\n\r\n hint: Line 15 must be used only if you are claiming treaty benefits that require that you meet conditions not covered by the representations you make in line 14 (or other certifications on the form). This line is generally not applicable to claiming treaty benefits under an interest or dividends (other than dividends subject to a preferential rate based on ownership) article of a treaty or other income article, unless such article requires additional representations. For example, certain treaties allow for a zero rate on dividends for certain qualified residents provided that additional requirements are met, such as ownership percentage, ownership period, and that the resident meet a combination of tests under an applicable LOB article. You should indicate the specific treaty article and paragraph or subparagraph, as applicable. You should also use this space to set out the requirements you meet under the identified treaty article.
    The following are examples of persons who should complete this line.
    • Exempt organizations claiming treaty benefits under the exempt organization articles of the treaties with Canada, Mexico, Germany, and the Netherlands.
    • Foreign corporations that are claiming a preferential rate applicable to dividends based on ownership of a specific percentage of stock in the entity paying the dividend and owning the stock for a specified period of time. Such persons should provide the percentage of ownership and the period of time they owned the stock. For example, under the U.S.-Italy treaty, to claim the 5% dividend rate, the Italian corporation must own 25% of the voting stock for a 12-month period.
    In addition, for example, if you qualify for and are claiming a zero rate on dividend payments under Article 10(3) of the U.S.-Germany income tax treaty, you should fill out line 15 with “Article 10(3)”,“0”, and “dividends” in the spaces provided. In the space provided for an explanation, you may write that you are the beneficial owner of the dividends, you are a resident of Germany, you have directly owned shares representing 80% or more of the voting power of the company paying the dividends for the 12-month period ending on the date the entitlement to the dividend is determined, and that you satisfy the conditions of Article 28(2)(f)(aa) and (bb) and Article 28(4) of the treaty with respect to the dividends.
    • Persons claiming treaty benefits on royalties if the treaty contains different withholding rates for different types of royalties.
    • Persons claiming treaty benefits on interest other than the generally applicable rate. For example, under the U.S.-Australia treaty, the generally applicable interest rate is 10% under Article 11(2). However, interest may be exempt from withholding if the specific conditions under Article 11(3) are met.
    \r\n },\r\n\r\n partIV: {\r\n hint: You should complete only one part of Parts IV through XXVIII certifying to your chapter 4 status (if required, see the specific instructions for line 5). Identify which part (if any) you should complete by reference to the box you checked on line 5. An entity that selects nonparticipating FFI, participating FFI, registered deemed-compliant FFI (other than a sponsored FFI), reporting Model 1 FFI, reporting Model 2 FFI, or direct reporting NFFE (other than a sponsored direct reporting NFFE) on line 5 is not required to complete any of the certifications in Parts IV through XXVIII. If you check “Account that is not a financial account” on line 5, the requester of the form will evaluate whether you must certify to another chapter 4 status.
    IGA. In lieu of the certifications contained in Parts IV through XXVIII of Form W-8BEN-E, a reporting Model 1 FFI or reporting Model 2 FFI in certain cases may request alternate certifications to document its account holders pursuant to an applicable IGA or you may otherwise provide an alternate certification to a withholding agent. See Entities Providing Certifications Under an Applicable IGA under Special Instructions.
    ,\r\n\r\n tip: You are not required to complete a chapter 4 status certification if you are not the payee of a withholdable payment or an account holder holding an account with an FFI requesting this form. However, you are not required to provide a chapter 4 status if you are providing this form with respect to a preexisting entity account (as described in Regulations section 1.1471-1(b)(102)) prior to July 1, 2016.\r\n },\r\n\r\n line16: {\r\n label: 'Name of sponsoring entity:',\r\n\r\n hint: Enter the name of the sponsoring entity that has agreed to fulfill the due diligence, reporting, and withholding obligations (as applicable) on behalf of the sponsored FFI identified in line 1.
    Enter the GIIN of the sponsoring entity identified in line 16.
    Note. A sponsored FFI is not required to have obtained its own GIIN before the date specified in published guidance (i.e. January 1, 2017). However, a sponsored entity that has obtained a GIIN must provide it on line 9a.
    \r\n },\r\n\r\n line17: {\r\n label: Check whichever box applies.,\r\n\r\n hint: 'You must check the applicable box to certify that you are either a sponsored investment entity or sponsored controlled foreign corporation (within the meaning of section 957(a)) and that you satisfy the other relevant requirements for this status.'\r\n },\r\n\r\n line18: {\r\n hint: 'A certified deemed-compliant nonregistering local bank must check the box to certify that it meets all of the requirements for this certified deemed-compliant status.'\r\n },\r\n\r\n line19: {\r\n hint: A certified deemed-compliant FFI with only low value accounts must check the box to certify that it satisfies all of the requirements for this certified deemed-compliant classification.\r\n },\r\n\r\n line20: {\r\n label: 'Name of sponsoring entity:',\r\n\r\n hint: Enter the name of your sponsoring entity that has agreed to fulfill the due diligence, reporting, and withholding obligations of the entity identified in line 1 as if the entity in line 1 were a participating FFI. You must also enter the GIIN of your sponsoring entity on line 9a.\r\n },\r\n\r\n line21: {\r\n hint: A sponsored, closely held investment vehicle must check the box to certify that it meets all of the requirements for this certified deemed-compliant status.\r\n },\r\n\r\n line22: {\r\n hint: A limited life debt investment entity must check the box to certify that it meets all of the requirements for this certified deemed-compliant status.\r\n },\r\n\r\n line23: {\r\n hint: An investment advisor or investment manager must check the box to certify that it meets all of the requirements for this certified deemed-compliant status.\r\n },\r\n\r\n line24a: {\r\n hint: An owner-documented FFI must check the box to certify that it meets all of the requirements for this status and is providing this form to a U.S. financial institution, participating FFI, reporting Model 1 FFI, or reporting Model 2 FFI that agrees to act as a designated withholding agent with respect to the FFI identified on line 1. See Regulations section 1.1471-5(f)(3) for more information about an owner-documented FFI, including with respect to a designated withholding agent.,\r\n\r\n tip: 'Check either line 24b or line 24c. Do not check both boxes.'\r\n },\r\n\r\n line24b: {\r\n hint: Check the box to certify that you have provided or will provide the documentation set forth in the certifications, including the FFI owner reporting statement and the valid documentation for each person identified on the FFI owner reporting statement described on line 24b. If you check the box on line 24b, you should not check the box on line 24c.\r\n },\r\n\r\n line24c: {\r\n hint: 'Check the box to certify that you have provided or will provide the auditor’s letter (in lieu of the information required by line 24b) that satisfies the requirements reflected on this line.'\r\n },\r\n\r\n line24d: {\r\n hint: Check the box if you do not have any contingent beneficiaries or designated classes with unidentified beneficiaries. While this certification is not required, a Form W-8BEN-E provided by an owner-documented FFI will remain valid indefinitely for chapter 4 purposes absent a change in circumstances with respect to offshore obligations (as defined in Regulations section 1.6049-5(c)(1)) only if this certification is provided and the account balance of all accounts held by the owner-documented FFI with the withholding agent does not exceed $1,000,000 on the later of June 30, 2014, or the last day of the calendar year in which the account was opened, and the last day of each subsequent calendar year preceding the payment, applying the account aggregation rules of Regulations section 1.1471-5(b)(4)(iii).\r\n },\r\n\r\n line25a: {\r\n hint: 'A restricted distributor must check the box to certify that it meets all of the requirements for this status.'\r\n },\r\n\r\n line25b: {\r\n hint: 'Check the appropriate box to certify as to your status. Do not check both boxes.',\r\n\r\n caution: A restricted distributor may certify only with respect to an account it maintains in connection with a distribution agreement with a restricted fund described in this Part XI. A restricted distributor that, in connection with such a distribution agreement, receives a payment subject to chapter 3 withholding or a withholdable payment should complete Form W-8IMY and not this form except to the extent it holds interests in connection with such an agreement as a beneficial owner.\r\n },\r\n\r\n line25c: {\r\n hint: 'Check the appropriate box to certify as to your status. Do not check both boxes.',\r\n\r\n caution: A restricted distributor may certify only with respect to an account it maintains in connection with a distribution agreement with a restricted fund described in this Part XI. A restricted distributor that, in connection with such a distribution agreement, receives a payment subject to chapter 3 withholding or a withholdable payment should complete Form W-8IMY and not this form except to the extent it holds interests in connection with such an agreement as a beneficial owner.\r\n },\r\n\r\n line26: {\r\n hint: Check the box to indicate that you are treated as a nonreporting IGA FFI under an applicable IGA, including an entity treated as a registered deemed-compliant FFI under an applicable IGA. You must identify the applicable IGA by entering the name of the jurisdiction that has the applicable IGA treated as in effect with the United States, and indicate whether it is a Model 1 or Model 2 IGA. You must also provide the withholding agent with the specific category of FFI described in Annex II of the IGA applicable to your status. In providing the specific category of FFI described in Annex II, you should use the language from Annex II that best and most specifically describes your status in the IGA. For example, indicate “investment entity wholly owned by exempt beneficial owners” rather than “exempt beneficial owner”.
    If you are a nonreporting IGA FFI claiming a deemed-compliant status under the regulations, you must instead indicate on this line which section of the regulations you qualify under. If you are a nonreporting FFI under an applicable IGA because you qualify as an owner-documented FFI under the regulations, do not check “Nonreporting IGA FFI”. Instead, you must check “Owner-documented FFI” and complete Part X rather than this Part XII.
    If you are an FFI treated as a registered deemed-compliant FFI under an applicable Model 2 IGA (other than a sponsored FFI) you must also provide your GIIN on line 9a. See https://home.treasury.gov/policy-issues/tax-policy/foreign-account-tax-compliance-act for a list of jurisdictions treated as having an IGA in effect for purposes of making this certification. If you are a sponsored FFI not claiming your chapter 4 status under the regulations, see the requirements of your applicable IGA to determine when you are required to obtain a GIIN.
    Note. If you are a nonreporting IGA FFI and you have registered and received a GIIN and have not provided it in line 9a because your trustee's or sponsor's GIIN is in line 9, you should provide it here.
    \r\n },\r\n\r\n line27: {\r\n hint: 'A foreign government or political subdivision of a foreign government (including wholly owned agencies and instrumentalities thereof), government of a U.S. possession, or foreign central bank of issue (each as defined in Regulations section 1.1471-6) must check the box and certify that it satisfies all of the requirements for this status (including that it does not engage in the type of commercial financial activities described on this line except to the extent permitted under Regulations section 1.1471-6(h)(2)).',\r\n\r\n tip: 'If you are a foreign government or political subdivision of a foreign government (including wholly owned agencies and instrumentalities thereof), government of a U.S. possession, or foreign central bank of issue, you should only complete this Form W-8BEN-E for payments for which you are not claiming the applicability of section(s) 115(2), 892, or 895; otherwise you should use Form W-8EXP.'\r\n },\r\n\r\n line28a: {\r\n hint: 'Check this box to certify that you are an international organization described in section 7701(a) (18).',\r\n\r\n tip: 'If you are an entity that has been designated as an international organization by executive order (pursuant to 22 U.S.C. 288 through 288f), check box 28a. If you are claiming an exemption from withholding for purposes of chapter 3, however, use Form W-8EXP.'\r\n },\r\n\r\n line28b: {\r\n hint: 'If you are an international organization other than an international organization described in line 28a, check the box to certify that you satisfy all of the requirements for this status.'\r\n },\r\n\r\n line29: {\r\n hint: 'An exempt retirement plan must check the appropriate box to certify that it meets all of the requirements for this status.'\r\n },\r\n\r\n line30: {\r\n hint: 'An entity wholly owned by exempt beneficial owners must check the box to certify that it meets all of the requirements for this status. You must also provide the owner documentation described in this line establishing that each direct owner or debt holder of the entity is an exempt beneficial owner described in Regulations section 1.1471-6(b).'\r\n },\r\n\r\n line31: {\r\n hint: 'A territory financial institution must check the box to certify that it meets all of the requirements for this status.'\r\n },\r\n\r\n line32: {\r\n hint: 'An excepted nonfinancial group entity must check the box to certify that it meets all of the requirements for this status.'\r\n },\r\n\r\n line33: {\r\n hint: 'An excepted nonfinancial start-up company must check the box to certify that it meets all of the requirements for this status. You must also provide the date you were formed or your board passed a resolution (or equivalent measure) approving a new line of business (which cannot be that of a financial institution or passive NFFE).'\r\n },\r\n\r\n line34: {\r\n hint: 'An excepted nonfinancial group entity in liquidation or bankruptcy must check the box to certify that it meets all of the requirements for this status. You must also provide the date that you filed a plan of liquidation, plan of reorganization, or bankruptcy petition.'\r\n },\r\n\r\n line35: {\r\n hint: 'An entity claiming chapter 4 status as a section 501(c) organization pursuant to Regulations section 1.1471-5(e)(5)(v) must check the box and provide the date that the IRS issued the organization a determination letter or provide a copy of an opinion from U.S. counsel certifying that the organization qualifies as a section 501(c) organization (without regard to whether the organization is a foreign private foundation).',\r\n\r\n tip: 'If you are a section 501(c) organization claiming an exemption from withholding for purposes of chapter 3, however, use Form W-8EXP.'\r\n },\r\n\r\n line36: {\r\n hint: A nonprofit organization (other than an entity claiming chapter 4 status as a section 501(c) organization pursuant to Regulations section 1.1471-5(e)(5)(v)) must check the box to certify that it meets all of the requirements for this status.
    Nonprofit organization under an IGA. For an entity that is established and maintained in a jurisdiction that is treated as having in effect an IGA and that is described in Annex I as a nonprofit organization that is an Active NFFE, see Entities Providing Certifications Under an Applicable IGA under Special Instructions, later.
    \r\n },\r\n\r\n line37a: {\r\n hint: 'A publicly-traded NFFE must check the box to certify that you are not a financial institution and provide the name of a securities exchange on which the stock of the NFFE is publicly traded.'\r\n },\r\n\r\n line37b: {\r\n hint: 'An NFFE that is a member of the same expanded affiliated group as a publicly-traded U.S. or foreign entity must check this box, provide the name of the publicly-traded entity, and identify the securities market on which the stock of the publicly- traded entity is traded. See Regulations section 1.1472-1(c)(1)(i) to determine if the stock of an entity is regularly traded on an established securities market (substituting the term “U.S. entity” for NFFE, as appropriate for purposes of testing whether an entity is publicly traded).'\r\n },\r\n\r\n line38: {\r\n hint: 'An excepted territory NFFE must check the box to certify that it meets all of the requirements for this classification. See Regulations section 1.1472-1(c)(1)(iii) for the definition of an excepted territory NFFE.'\r\n },\r\n\r\n line39: {\r\n hint: 'An active NFFE must check the box to certify that it meets all of the requirements for this status, including the assets and passive income test described in the certification for this part. For purposes of applying this test, passive income includes dividends, interest, rents, royalties, annuities, and certain other forms of passive income. See Regulations section 1.1472-1(c)(1)(iv)(A) for additional detail for the definition of passive income. Also see Regulations section 1.1472-1(c)(1)(iv)(B) for exceptions from the definition of passive income for certain types of income.'\r\n },\r\n\r\n line40a: {\r\n hint: A passive NFFE must check the box to certify that you are not a financial institution and are not certifying your status as a publicly-traded NFFE, NFFE affiliate of a publicly-traded company, excepted territory NFFE, active NFFE, direct-reporting NFFE, or sponsored direct-reporting NFFE.
    Note. If you would be a passive NFFE but for the fact that you are professionally managed, you should not complete line 40a as you should be considered a financial institution and not a passive NFFE.
    ,\r\n\r\n tip: 'If you are an NFFE that may qualify as an active NFFE (or other NFFE described in another part of this form), you may still check line 40a and disclose your substantial U.S. owners or certify that you have no substantial U.S. owners (see instructions to lines 40b and 40c below).'\r\n },\r\n\r\n line40b: {\r\n hint: Check this box to certify that you have no substantial U.S. owners.\r\n },\r\n\r\n line40c: {\r\n hint: If you do not check the box and make the certification on line 40b, you must check this box 40c and complete Part XXIX to identify each of your substantial U.S. owners and provide their name, address, and TIN
    Note. If you are an NFFE that is providing Form W-8BEN-E to an FFI treated as a reporting Model 1 FFI or reporting Model 2 FFI, you may also use Part XXIX to report controlling U.S. persons (as defined in an applicable IGA). The references to “controlling U.S. persons” in Part XXVI and Part XXIX apply only if the form is being provided to an FFI treated as a reporting Model 1 FFI or reporting Model 2 FFI.
    \r\n },\r\n\r\n line41: {\r\n hint: 'An excepted inter-affiliate FFI must check the box to certify that it meets all of the requirements of this classification. This classification will only apply for an excepted inter-affiliate FFI that holds a deposit account described in the certification for this part and that is documenting itself to the financial institution that maintains the deposit account. You are not eligible for this classification if you receive or make withholdable payments to or from any person other than a member of your expanded affiliated group, other than the depository institution described in the previous sentence. See Regulations section 1.1471-5(e)(5)(iv) for all the requirements of this status.'\r\n },\r\n\r\n line42: {\r\n label: 'Name of sponsoring entity:',\r\n\r\n hint: A sponsored direct-reporting NFFE must check the box to certify that it meets all of the requirements for this classification. You must also provide the name of your sponsoring entity in the space provided and provide your GIIN in line 9a (or, for payments prior to the date specified in published guidance (i.e. January 1, 2017), you may provide only the GIIN of your sponsoring entity).
    Enter the GIIN of the sponsoring entity identified in line 42.
    \r\n },\r\n\r\n partXXIX: {\r\n hint: If you identified yourself as a passive NFFE (including an investment entity that is a territory NFFE but is not an excepted territory NFFE under Regulations section 1.1472-1(c)) with one or more substantial U.S. owners in Part XXVI, you must identify each substantial U.S. owner. Provide the name, address, and TIN of each substantial U.S. owner in the relevant column. You may attach this information on a separate statement, which remains subject to the same perjury statement and other certifications made in Part XXX. If you are reporting controlling U.S. persons (as defined in an applicable IGA) to a Model 1 FFI or reporting Model 2 FFI with which you maintain an account that requests such ownership information with this form, you may use this space or attach a separate statement to report such persons.\r\n },\r\n\r\n partXXX: {\r\n hint: Form W-8BEN-E must be signed and dated by an authorized representative or officer of the beneficial owner, participating payee (for purposes of section 6050W), or account holder of an FFI requesting this form. An authorized representative or officer must check the box to certify that you have the legal capacity to sign for the entity identified on line 1 that is the beneficial owner of the income. If Form W-8BEN-E is completed by an agent acting under a duly authorized power of attorney, the form must be accompanied by the power of attorney in proper form or a copy thereof specifically authorizing the agent to represent the principal in making, executing, and presenting the form. Form 2848, Power of Attorney and Declaration of Representative, may be used for this purpose. The agent, as well as the beneficial owner, payee, or account holder (as applicable), may incur liability for the penalties provided for an erroneous, false, or fraudulent form. By signing Form W-8BEN-E, the authorized representative, officer, or agent of the entity also agrees to provide a new form within 30 days following a change in circumstances affecting the correctness of the form.\r\n }\r\n};\r\n","import React from 'react';\r\n\r\n/* eslint-disable max-len */\r\nexport default {\r\n line1: {\r\n label: 'Name of organization that is the beneficial owner',\r\n\r\n hint: Enter your name. If you are a disregarded entity or branch, do not enter the business name of the disregarded entity or branch here. Instead, enter the legal name of the entity that owns the disregarded entity (looking through multiple disregarded entities if applicable) or maintains the branch. If you are a disregarded entity that is a hybrid entity filing a treaty claim, however, see Hybrid entities under Special Instructions, later,\r\n\r\n tip: If you are an account holder (see Definitions, earlier or, in the case of an account holder of an account maintained by an FFI covered by a Model 1 or Model 2 IGA with respect to the account, an applicable IGA) providing this form to an FFI solely for purposes of documenting yourself as an account holder and you are not receiving a withholdable payment or reportable amount (as defined in Regulations section 1.1441-1(e)(3)(vi)), you should complete Part I by substituting the references to “beneficial owner” with “account holder”. ,\r\n\r\n caution: The holder of an account is not always the account holder for purposes of chapter 4. See Definitions, earlier or, for an account maintained by an FFI covered by a Model 1 or Model 2 IGA with respect to the account, the definition of account holder in an applicable IGA to determine if you are the account holder. If you hold an account with an FFI and are unsure whether the definition of “account holder” under an IGA is applicable to your account, consult with the FFI requesting this form.\r\n },\r\n\r\n line2: {\r\n label: 'Country of incorporation or organization',\r\n\r\n hint: 'If you are a corporation, enter your country of incorporation. If you are another type of entity, enter the country under whose laws you are created, organized, or governed.'\r\n },\r\n\r\n line3: {\r\n label: 'Name of disregarded entity receiving the payment (if applicable, see instructions)',\r\n\r\n hint: If you are a disregarded entity receiving a withholdable payment, enter your name (if required). You should complete line 3 only if you are a disregarded entity receiving a withholdable payment or hold an account with an FFI requesting this form and you: 1) have registered with the IRS and been assigned a GIIN associated with the legal name of the disregarded entity; 2) are a reporting Model 1 FFI or reporting Model 2 FFI; and 3) are not a hybrid entity using this form to claim treaty benefits.,\r\n\r\n caution: If you are not required to provide the legal name of the disregarded entity, however, you may want to notify the withholding agent that you are a disregarded entity receiving a payment or maintaining an account by indicating the name of the disregarded entity on line 10. However, do not enter the name of the disregarded entity on this line 3 except in the circumstances described.\r\n },\r\n\r\n line4: {\r\n hint: Check the one box that applies. By checking a box, you are representing that you qualify for the classification indicated. You must check the box that represents your classification (for example, corporation, partnership, trust, estate, etc.) under U.S. tax principles (not under the law of the treaty country). To determine whether you are an integral part of a foreign government or an entity that is controlled by a foreign government, see Temporary Regulations section 1.892-2T. If you are providing Form W-8BEN-E to an FFI solely for purposes of documenting yourself for chapter 4 purposes as an account holder of an account maintained by an FFI (and you are not receiving a withholdable payment), you do not need to complete line 4.
    If you are a partnership, disregarded entity, simple trust, or grantor trust receiving a payment for which treaty benefits are being claimed by such entity, you must check the “Partnership”, “Disregarded entity”, “Simple trust”, or “Grantor trust” box. For such a case, you must also check the “yes” box to indicate that you are a hybrid entity making a treaty claim. You may only check the “no” box if (1) you are a disregarded entity, partnership, simple trust, or grantor trust and are using the form solely for purposes of documenting yourself as an account holder of an FFI and the form is not associated with a withholdable payment or a reportable amount or (2) you are using this form solely for purposes of documenting your status as a participating payee for purposes of section 6050W. In such cases, you are not required to complete line 4, but you may check the “no” box if you choose to complete line 4. You may also use Form W-8IMY to document yourself as an account holder of an FFI.
    ,\r\n\r\n caution: Only entities that are tax-exempt under section 501(c) should check the “Tax-exempt organization” box for purposes of line 4. Such organizations should use Form W-8BEN-E only if they are claiming a reduced rate of withholding under an income tax treaty or a Code exception other than section 501(c) or if they are using this form solely for purposes of documenting themselves as an account holder with an FFI. However, if you are a private foundation you should check “Private Foundation” instead of “Tax-exempt organization.”\r\n },\r\n\r\n line5: {\r\n label: 'Chapter 4 Status (FATCA status) (See instructions for details and complete the certification below for the entity’s applicable status).',\r\n\r\n hint: Check the one box that applies to your chapter 4 status. You are not required to provide a chapter 4 status if you are providing this form with respect to a preexisting entity account (as described in Regulations section 1.1471-1(b)(102)) prior to July 1, 2016. Additionally, you are only required to provide a chapter 4 status on this form if you are the payee of a withholdable payment or are documenting the status of an account you hold with an FFI requesting this form. By checking a box on this line, you are representing that you qualify for this classification in your country of residence.
     FFIs Covered by an IGA and Related Entities
    A reporting IGA FFI resident in, or established under the laws of, a jurisdiction covered by a Model 1 IGA should check “Reporting Model 1 FFI.” A reporting FFI resident in, or established under the laws of, a jurisdiction covered by a Model 2 IGA should check “Reporting Model 2 FFI.” If you are treated as a registered deemed-compliant FFI under an applicable IGA, you should check “Nonreporting IGA FFI” rather than “registered deemed-compliant FFI” and provide your GIIN. In general, if you are treated as a nonreporting IGA FFI under an applicable IGA, you should check “Nonreporting IGA FFI” even if you meet the qualifications for deemed-compliant status or are an exempt beneficial owner under the chapter 4 regulations. In such cases, you need not also check your applicable status under the regulations but should provide your GIIN on line 9, if applicable. However, an owner documented FFI that is treated as a nonreporting IGA FFI under an applicable IGA must check “Owner-documented FFI” and complete Part X. See the specific instructions for Part XII. An FFI that is related to a reporting IGA FFI and that is treated as a nonparticipating FFI in its country of residence should check nonparticipating FFI in line 5. An FFI that is related to a reporting IGA FFI and that is a participating FFI, deemed-compliant FFI, or exempt beneficial owner under the U.S. Treasury regulations or an applicable IGA should check the appropriate box for its chapter 4 status.
    If you are an FFI in a jurisdiction treated as having an IGA in effect, you should not check “Participating FFI” but rather should check “Reporting Model 1 FFI” or “Reporting Model 2 FFI” as applicable.
    See https://home.treasury.gov/policy-issues/tax-policy/foreign-account-tax-compliance-act for a list of jurisdictions treated as having an IGA in effect.
     Non-Profit Organizations Covered by an IGA
    For purposes of documenting itself as an account holder of an FFI, a non-profit entity that is established and maintained in a jurisdiction that is treated as having in effect a Model 1 IGA or Model 2 IGA, and that meets the definition of Active NFFE under Annex I of the applicable IGA, should not check a box for its status on line 5. Instead, see Entities Providing Certifications Under an Applicable IGA.
     Account That is Not a Financial Account
    If you are providing this form to document an account you hold with a financial institution that is not a financial account under Regulations section 1.1471-5(b)(2), check the“Account that is not a financial account” box on line 5.
    ,\r\n\r\n tip: For most of the chapter 4 statuses, you are required to complete an additional part of this form certifying that you meet the conditions of the status indicated on line 5 (as defined under Regulations section 1.1471-5 or 1.1471-6). Make sure you complete the required portion of this form before signing and providing it to the withholding agent. See, however, Entities Providing Certifications Under an Applicable IGA under Special Instructions.,\r\n\r\n caution: A withholding agent may request your chapter 4 status in advance of this deadline to allow for time necessary to apply the status in its systems. In addition, a withholding agent may still request a chapter 4 status notwithstanding the account holder's determination of its status as a preexisting account for chapter 4 purposes.\r\n },\r\n\r\n line6: {\r\n label: Permanent residence address (street, apt. or suite no., or rural route). Do not use a P.O. box or in-care-of address (other than a registered address).,\r\n\r\n hint: 'Enter the permanent residence address of the entity identified in line 1. Your permanent residence address is the address in the country where the entity claims to be a resident for purposes of that country’s income tax. If you are giving Form W-8BEN-E to claim a reduced rate of, or exemption from, withholding under an income tax treaty, you must determine residency in the manner required by the treaty. Do not show the address of a financial institution (unless you are a financial institution providing your own address), a post office box, or an address used solely for mailing purposes unless it is the only address used by the entity and such address appears in the entity’s organizational documents (i.e., your registered address). If you do not have a tax residence in any country, the permanent residence address is where you maintain your principal office.'\r\n },\r\n\r\n line7: {\r\n label: 'Mailing address (if different from above)',\r\n\r\n hint: 'Enter your mailing address only if it is different from the address you show on line 6.'\r\n },\r\n\r\n line8: {\r\n label: 'U.S. taxpayer identification number (TIN), if required',\r\n\r\n hint: Enter your U.S. employer identification number (EIN). An EIN is a U.S. TIN for entities. If you do not have a U.S. EIN, apply for one on Form SS-4, Application for Employer Identification Number, if you are required to obtain a U.S. TIN. See Regulations section 1.1441-1(e)(4) (vii) for when you are required to provide a U.S. TIN on a Form W-8 associated with a payment subject to chapter 3 withholding. A partner in a partnership conducting a trade or business in the United States will likely be allocated effectively connected taxable income. The partner is required to file a U.S. federal income tax return and must have a U.S. taxpayer identification number (TIN).
    You must provide a U.S. TIN if you are:
    • Claiming an exemption from withholding under section 871(f) for certain annuities received under qualified plans, or
    • Claiming benefits under an income tax treaty and have not provided a foreign TIN on line 9b.
    However, a TIN is not required to be shown in order to claim treaty benefits on the following items of income:
    • Dividends and interest from stocks and debt obligations that are actively traded;
    • Dividends from any redeemable security issued by an investment company registered under the Investment Company Act of 1940 (mutual fund);
    • Dividends, interest, or royalties from units of beneficial interest in a unit investment trust that are (or were upon issuance) publicly offered and are registered with the SEC under the Securities Act of 1933; and
    • Income related to loans of any of the above securities.
    ,\r\n\r\n tip: If you need an EIN, you are encouraged to apply for one online instead of submitting a paper Form SS-4 . For more information, visit https://www.irs.gov/businesses/small-businesses-self-employed/employer-id-numbers-eins.\r\n },\r\n\r\n line9a: {\r\n label: 'GIIN',\r\n\r\n hint: If you are a participating FFI, registered deemed-compliant FFI (including a sponsored FFI described in the Treasury regulations), reporting Model 1 FFI, reporting Model 2 FFI, direct reporting NFFE, trustee of a trustee-documented trust that is a foreign person providing this form for the trust, or sponsored direct reporting NFFE, you are required to enter your GIIN (with regard to your country of residence) on line 9a. If you are a trustee of a trustee-documented trust and you are a foreign person, you should provide the GIIN that you received when you registered as a participating FFI or reporting Model 1 FFI. If your branch is receiving the payment and is required to be identified in Part II, you are not required to provide a GIIN on line 9a. Instead, provide the GIIN of your branch (if applicable) on line 13. You must provide your GIIN on line 9 if you are a nonreporting IGA FFI that is (1) treated as registered deemed-compliant under Annex II to an applicable Model 2 IGA or (2) a registered deemed-compliant FFI under Regulations section 1.1471-5(f)(1).,\r\n\r\n tip: If you are in the process of registering with the IRS as a participating FFI, registered deemed-compliant FFI (including a sponsored FFI), reporting Model 1 FFI, reporting Model 2 FFI, direct reporting NFFE, sponsored direct reporting NFFE, or nonreporting IGA FFI but have not received a GIIN, you may complete this line by writing “applied for.” However, the person requesting this form from you must receive and verify your GIIN within 90 days.\r\n \r\n },\r\n\r\n line9b: {\r\n label: 'Foreign TIN',\r\n\r\n hint: If you are providing this Form W-8BEN-E to document yourself as an account holder with respect to a financial account (as defined in Regulations section 1.1471-5(b)) that you hold at a U.S. office of a financial institution (including a U.S. branch of an FFI) and you receive U.S. source income reportable on Form 1042-S associated with this form, you must provide on line 9b the FTIN issued to you by the jurisdiction in which you are a tax resident identified on line 6 unless:\r\n
    • You properly identified yourself as a government (including a controlled entity that is a foreign government under section 892), central bank of issue, or international organization on line 4;\r\n
    • You are a resident of a U.S. territory; or\r\n
    • Your jurisdiction of residence is identified on the List of Jurisdictions That Do Not Issue Foreign TINs at IRS.gov/businesses/corporations/list-of-jurisdictions-that-do-notissue-foreign-tins.\r\n
    You also do not need to provide an FTIN on line 9b if you meet the requirement for checking the box on line 9c.\r\n
    In addition, if you are not using this form to document a financial account described above, you may provide the FTIN issued to you by your jurisdiction of tax residence on line 9b for purposes of claiming treaty benefits (rather than providing a U.S. TIN on line 8, if required).
    ,\r\n\r\n tip: Lines 9a and 9b should accommodate the GIIN or foreign TIN, as appropriate. You may need to use a smaller font when completing the form. If the GIIN or FTIN does not fit in the space provided, you may provide a GIIN or FTIN that is indicated and clearly identified somewhere else on the form, or on a separate attached sheet, as long as the GIIN or FTIN is clearly identified as being furnished with respect to line 9a or 9b, respectively. For example, a handwritten GIIN located just outside of line 9a with a corresponding arrow pointing to line 9a is a properly provided GIIN for this purpose.\r\n },\r\n\r\n line9c: {\r\n label: 'Check if FTIN not legally required.',\r\n\r\n hint: You may check the box in this line 9c if you are an account holder as described for purposes of line 9b and you are not legally required to obtain an FTIN from your jurisdiction of residence (including if the jurisdiction does not issue FTINs). By checking this box you will be treated as having provided an explanation for not providing an FTIN on line 9b. If you wish to provide a further (or other) explanation why you are not required to provide an FTIN on line 9b, you may do so on a supporting document.,\r\n },\r\n\r\n line10: {\r\n label: 'Reference number(s) (see instructions)',\r\n\r\n hint: This line may be used by the filer of Form W-8BEN-E or by the withholding agent or FFI to whom it is provided to include any referencing information that is useful to the withholding agent to document the beneficial owner. For example, withholding agents who are required to associate the Form W-8BEN-E with a particular Form W-8IMY may want to use line 10 for a referencing number or code that will make the association clear. A beneficial owner may also want to use line 10 to include the number of the account for which he or she is providing the form. A foreign single owner of a disregarded entity may use line 10 to inform the withholding agent that the account to which a payment is made or credited is held in the name of the disregarded entity (unless the name of the disregarded entity is required to be provided on line 3).
    You may also use line 10 to identify income from a notional principal contract that is not effectively connected with the conduct of a trade or business in the United States.
    \r\n },\r\n\r\n partII: {\r\n tip: If the disregarded entity receiving a withholdable payment has its own GIIN, Part II should be completed regardless of whether it is in the same country as the single owner identified in Part I.,\r\n\r\n caution: Complete Part II for a disregarded entity that has its own GIIN and is receiving a withholdable payment, or for a branch (including a branch that is a disregarded entity that does not have a GIIN) of the FFI identified in line 1 operating in a jurisdiction other than the country of residence identified in line 2. For example, assume ABC Co., which is a participating FFI resident in Country A, operates through a branch in Country B (which is a Model 1 IGA jurisdiction) and the branch is treated as a reporting Model 1 FFI under the terms of the Country B Model 1 IGA. ABC Co. should not enter its GIIN on line 9, and the Country B branch should complete this Part II by identifying itself as a reporting Model 1 IGA FFI and providing its GIIN on line 13. Furthermore, if the Country B branch receiving the payment is a disregarded entity you may be required to provide its legal name on line 3. See the instructions for Part I, line 3.\r\n },\r\n\r\n line11: {\r\n label: 'Chapter 4 Status (FATCA status) of disregarded entity or branch receiving payment',\r\n\r\n hint: Check the one box that applies. If you check reporting Model 1 FFI, reporting Model 2 FFI, participating FFI, or U.S. branch claiming a chapter 4 status other than that of nonparticipating FFI, you must complete line 13 (see below). If you are a limited branch or branch of a reporting IGA FFI that cannot comply with the requirements of an applicable IGA or the regulations under chapter 4, you must check “limited branch”.\r\n },\r\n\r\n line12: {\r\n label: Address of disregarded entity or branch (street, apt. or suite no., or rural route). Do not use a P.O. box or in-care-of address (other than a registered address).,\r\n\r\n hint: Enter the address of the branch or disregarded entity.\r\n },\r\n\r\n line13: {\r\n label: 'GIIN (if any)',\r\n\r\n hint: If you are a reporting Model 1 FFI, reporting Model 2 FFI, or participating FFI, you must enter the GIIN on line 13 of your branch that receives the payment. If you are a disregarded entity that completed Part I, line 3 of this form and are receiving payments associated with this form, enter your GIIN. Do not enter your GIIN (if any) on line 9. If you are a U.S. branch, enter a GIIN applicable to any other branch of the FFI (including in its residence country).,\r\n\r\n tip: If you are in the process of registering with the IRS as a participating FFI, reporting Model 1 FFI, or reporting Model 2 FFI but have not received a GIIN, you may complete this line by writing “applied for.” However, the person requesting this form from you must receive and verify your GIIN within 90 days.\r\n },\r\n\r\n line14a: {\r\n hint: 'An entity that is claiming a reduced rate of, or exemption from, withholding under an income tax treaty must enter the country where the entity identified on line 1 is a resident for income tax treaty purposes and check the box to certify that it is a resident of that country.'\r\n },\r\n\r\n line14b: {\r\n hint: \r\n If you are claiming a reduced rate of, or exemption from, withholding under an income tax treaty you must check the box to certify that you:\r\n
    • Derive the item of income for which the treaty benefit is claimed, and\r\n
    • Meet the limitation on benefits provision contained in the treaty, if any.\r\n
    An item of income may be derived by either the entity receiving the item of income or by the interest holders in the entity or, in certain circumstances, both. An item of income paid to an entity is considered to be derived by the entity only if the entity is not fiscally transparent under the laws of the entity’s jurisdiction with respect to the item of income. An item of income paid to an entity shall be considered to be derived by the interest holder in the entity only if:\r\n
    • The interest holder is not fiscally transparent in its jurisdiction with respect to the item of income, and\r\n
    • The entity is considered to be fiscally transparent under the laws of the interest holder’s jurisdiction with respect to the item of income. An item of income paid directly to a type of entity specifically identified in a treaty as a resident of a treaty jurisdiction is treated as derived by a resident of that treaty jurisdiction.\r\n
    Limitation on benefits treaty provisions. If you are a resident of a foreign country that has entered into an income tax treaty with the United States that contains a limitation on benefits (LOB) article, you must complete one of the checkboxes on line 14b. You must also complete the applicable checkbox on line 14b if you are a resident of a foreign country that has entered into an income tax treaty with the United States that does not contain an LOB article. You may only check a box if the LOB article in that treaty includes a provision that corresponds to the checkbox on which you are relying to claim treaty benefits. A particular treaty might not include every type of test for which a checkbox is provided. For example, “Company that meets the derivative benefits test” is generally not available to a company resident in a treaty country that is not a member of the EU, EEA, or USMCA. In addition, each treaty LOB article that contains a specific test listed below may have particular requirements that must be met that differ from the requirements in another treaty with regard to the same test. Accordingly, you must check the relevant treaty LOB article for the particular requirements associated with each test. In general, only one LOB checkbox is required to claim a treaty exemption even if more than one checkbox would suffice to claim the benefits of the treaty for that item of income.\r\n

    Each of the tests is summarized below for your general convenience but may not be relied upon for making a final determination that you meet an LOB test. Rather you must check the text of the LOB article itself to determine which tests are available under that treaty and the particular requirements of those tests. See Table 4, Limitation on Benefits, at IRS.gov/Individuals/International-Taxpayers/Tax-Treaty-Tables, for a summary of the major tests within the Limitation on Benefits article that are relevant for documenting any entity's claim for treaty benefits.\r\n

    • Government—this test is met if the entity is the Contracting State, political subdivision, or local authority.\r\n
    • Tax-exempt pension trust or pension fund—this test generally requires that more than half the beneficiaries or participants in the trust or fund be residents of the country of residence of the trust or fund itself.\r\n
    • Other tax-exempt organization—this test generally requires that more than half the beneficiaries, members, or participants of religious, charitable, scientific, artistic, cultural, or educational organizations be residents of the country of residence of the organization.\r\n
    • Publicly-traded corporation—this test generally requires the corporation's principal class of shares to be primarily and regularly traded on a recognized stock exchange in its country of residence, while other treaties may permit trading in either the United States or the treaty country, or in certain third countries if the primary place of management is the country of residence.\r\n
    • Subsidiary of publicly-traded corporation—this test generally requires that more than 50% of the vote and value of the company's shares be owned, directly or indirectly, by five or fewer companies that are publicly-traded corporations and that themselves meet the publicly-traded corporation test, as long as all companies in the chain of ownership are resident in either the United States or the same country of residence as the subsidiary.\r\n
    • Company that meets the ownership and base erosion test—this test generally requires that more than 50% of the vote and value of the company's shares be owned, directly or indirectly, by individuals, governments, tax-exempt entities, and publicly-traded corporations resident in the same country as the company, as long as all companies in the chain of ownership are resident in the same country of residence, and less than 50% of the company's gross income is accrued or paid, directly or indirectly, to persons who would not be good shareholders for purposes of the ownership test.\r\n
    • Company that meets the derivative benefits test—this test is generally limited to USMCA, EU, and EEA country treaties, and may apply to all benefits or only to certain items of income (interest, dividends, and royalties). It generally requires that more than 95% of the aggregate vote and value of the company's shares be owned, directly or indirectly, by seven or fewer equivalent beneficiaries (ultimate owners who are resident in an EU, EEA, or USMCA country and are entitled to identical benefits under their own treaty with the United States under one of the ownership tests included within the LOB article (other than the stock ownership and base erosion test)). In addition, this test requires that less than 50% of the company's gross income be paid or accrued, directly or indirectly, to persons who would not be equivalent beneficiaries.\r\n
    • Company with an item of income that meets the active trade or business test—this test generally requires that the company be engaged in an active trade or business in its country of residence, that its activities in that country be substantial in relation to its U.S. activities, if the payer is a related party, and the income be derived in connection to or incidental to that trade or business.\r\n
    • No LOB article in treaty—this generally requires that the entity is a resident in a foreign country that has entered into an income tax treaty with the United States that does not contain an LOB article.\r\n
    • Other—for other LOB tests that are not listed above (for example, a headquarters test). Identify the other test relied upon. For example, if you meet the headquarters test under the United States-Netherlands income tax treaty, you should write “Headquarters test, Article 26(5)” in the space provided.\r\n
    • Favorable discretionary determination received—this test requires that the company obtain a favorable determination granting benefits from the U.S. competent authority that, despite the company's failure to meet a specific objective LOB test in the applicable treaty, it may nonetheless claim the requested benefits. Unless a treaty or technical explanation specifically provides otherwise, you may not claim discretionary benefits while your claim for discretionary benefits is pending.\r\n

    If an entity is claiming treaty benefits on its own behalf, it should complete Form W-8BEN-E. If an interest holder in an entity that is considered fiscally transparent in the interest holder’s jurisdiction is claiming a treaty benefit, the interest holder should complete Form W-8BEN (if an individual) or Form W-8BEN-E (if an entity) on its own behalf as the appropriate treaty resident, and the fiscally transparent entity should associate the interest holder’s Form W-8BEN or Form W-8BEN-E with a Form W-8IMY completed by the fiscally transparent entity (See Hybrid Entity Making a Claim of Treaty Benefits).\r\n
    ,\r\n\r\n tip: If you are an entity that derives the income as a resident of a treaty country, you must check the box “No LOB article in treaty” if the applicable income tax treaty does not contain a “limitation on benefits” provision.,\r\n\r\n caution: An income tax treaty may not apply to reduce the amount of any tax on an item of income received by an entity that is treated as a domestic corporation for U.S. tax purposes. Therefore, neither the domestic corporation nor its shareholders are entitled to the benefits of a reduction of U.S. income tax on an item of income received from U.S. sources by the corporation.\r\n },\r\n\r\n line14c: {\r\n hint: If you are a foreign corporation claiming treaty benefits under an income tax treaty that entered into force before January 1, 1987 (and has not been renegotiated) on (a) U.S. source dividends paid to you by another foreign corporation or (b) U.S. source interest paid to you by a U.S. trade or business of another foreign corporation, you must generally be a “qualified resident” of a treaty country. See section 884 for the definition of interest paid by a U.S. trade or business of a foreign corporation (“branch interest”) and other applicable rules.
    In general, a foreign corporation is a qualified resident of a country if any of the following apply.
    • It meets a 50% ownership and base erosion test.
    • It is primarily and regularly traded on an established securities market in its country of residence or the United States.
    • It carries on an active trade or business in its country of residence.
    • It gets a ruling from the IRS that it is a qualified resident. See Regulations section 1.884-5 for the requirements that must be met to satisfy each of these tests.
    ,\r\n\r\n caution: 'If you are claiming treaty benefits under an income tax treaty entered into force after December 31, 1986, do not check box 14c. Instead, check box 14b.'\r\n },\r\n\r\n line15: {\r\n label: Special rates and conditions (if applicable — see instructions):,\r\n\r\n hint: \r\n Line 15 must be used only if you are claiming treaty benefits that require that you meet conditions not covered by the representations you make on line 14 (or other certifications on the form). This line is generally not applicable to claiming treaty benefits under an interest or dividends (other than dividends subject to a preferential rate based on ownership) article of a treaty or other income article, unless such article requires additional representations. For example, certain treaties allow for a zero rate on dividends for certain qualified residents provided that additional requirements are met, such as ownership percentage, ownership period, and that the resident meet a combination of tests under an applicable LOB article. You should indicate the specific treaty article and paragraph or subparagraph, as applicable. You should also use this space to set out the requirements you meet under the identified treaty article.\r\n

    The following are examples of persons who should complete this line:\r\n

    • Exempt organizations claiming treaty benefits under the exempt organization articles of the treaties with Canada, Mexico, Germany, and the Netherlands.\r\n
    • Foreign corporations that are claiming a preferential rate applicable to dividends based on ownership of a specific percentage of stock in the entity paying the dividend and owning the stock for a specified period of time. Such persons should provide the percentage of ownership and the period of time they owned the stock. For example, under the United States-Italy treaty, to claim the 5% dividend rate, the Italian corporation must own 25% of the voting stock for a 12-month period.\r\n

    In addition, for example, if you qualify for and are claiming a zero rate on dividend payments under Article 10(3) of the United States-Germany income tax treaty, you should fill out line 15 with “Article 10(3),” “0,” and “dividends” in the spaces provided. In the space provided for an explanation, you may write that you are the beneficial owner of the dividends, you are a resident of Germany, you have directly owned shares representing 80% or more of the voting power of the company paying the dividends for the 12-month period ending on the date the entitlement to the dividend is determined, and that you satisfy the conditions of Article 28(2)(f)(aa) and (bb) and Article 28(4) of the treaty with respect to the dividends.\r\n

    • Persons claiming treaty benefits on royalties if the treaty contains different withholding rates for different types of royalties.\r\n
    • Persons claiming treaty benefits on interest other than the generally applicable rate. For example, under the United States-Australia treaty, the generally applicable interest rate is 10% under Article 11(2). However, interest may be exempt from withholding if the specific conditions under Article 11(3) are met.\r\n
    • Persons claiming treaty benefits on business profits not attributable to a permanent establishment or on gains arising from the alienation of property (other than real property) that does not form all or part of a permanent establishment (including gains that do not arise from the alienation of a permanent establishment). For example, a foreign partner that derives gains subject to tax under section 864(c)(8) upon the transfer of an interest in a partnership that conducts a trade or business within the United States may claim treaty benefits on this form with respect to the withholding required under section 1446(f) by stating that the gains are not attributable to a permanent establishment and by including the relevant gains article of the treaty. Additionally, for a claim that gain or income with respect to a PTP interest is not attributable to a permanent establishment in the United States, you must identify the name of each PTP to which the claim relates. See, however, Regulations section 1.864(c) (8)-1(f) (providing that gain or loss on the alienation of a partnership interest is gain or loss attributable to the alienation of assets forming part of a permanent establishment to the extent that the assets deemed sold under section 864(c)(8) form part of a permanent establishment of the partnership).\r\n
    \r\n },\r\n\r\n partIV: {\r\n hint: You should complete only one part of Parts IV through XXVIII certifying to your chapter 4 status (if required, see the specific instructions for line 5). Identify which part (if any) you should complete by reference to the box you checked on line 5. An entity that selects nonparticipating FFI, participating FFI, registered deemed-compliant FFI (other than a sponsored FFI), reporting Model 1 FFI, reporting Model 2 FFI, or direct reporting NFFE (other than a sponsored direct reporting NFFE) on line 5 is not required to complete any of the certifications in Parts IV through XXVIII. If you check “Account that is not a financial account” on line 5, the requester of the form will evaluate whether you must certify to another chapter 4 status.
    IGA. In lieu of the certifications contained in Parts IV through XXVIII of Form W-8BEN-E, a reporting Model 1 FFI or reporting Model 2 FFI in certain cases may request alternate certifications to document its account holders pursuant to an applicable IGA or you may otherwise provide an alternate certification to a withholding agent. See Entities Providing Certifications Under an Applicable IGA under Special Instructions.
    ,\r\n\r\n tip: You are not required to complete a chapter 4 status certification if you are not the payee of a withholdable payment or an account holder holding an account with an FFI requesting this form. However, you are not required to provide a chapter 4 status if you are providing this form with respect to a preexisting entity account (as described in Regulations section 1.1471-1(b)(102)) prior to July 1, 2016.\r\n },\r\n\r\n line16: {\r\n label: 'Name of sponsoring entity:',\r\n\r\n hint: Enter the name of the sponsoring entity that has agreed to fulfill the due diligence, reporting, and withholding obligations (as applicable) on behalf of the sponsored FFI identified in line 1.
    Enter the GIIN of the sponsoring entity identified in line 16.
    \r\n },\r\n\r\n line17: {\r\n label: Check whichever box applies.,\r\n\r\n hint: 'You must check the applicable box to certify that you are either a sponsored investment entity or sponsored controlled foreign corporation (within the meaning of section 957(a)) and that you satisfy the other relevant requirements for this status.'\r\n },\r\n\r\n line18: {\r\n hint: 'A certified deemed-compliant nonregistering local bank must check the box to certify that it meets all of the requirements for this certified deemed-compliant status.'\r\n },\r\n\r\n line19: {\r\n hint: A certified deemed-compliant FFI with only low value accounts must check the box to certify that it satisfies all of the requirements for this certified deemed-compliant classification.\r\n },\r\n\r\n line20: {\r\n label: 'Name of sponsoring entity:',\r\n\r\n hint: Enter the name of your sponsoring entity that has agreed to fulfill the due diligence, reporting, and withholding obligations of the entity identified in line 1 as if the entity in line 1 were a participating FFI. You must also enter the GIIN of your sponsoring entity on line 9a.\r\n },\r\n\r\n line21: {\r\n hint: A sponsored, closely held investment vehicle must check the box to certify that it meets all of the requirements for this certified deemed-compliant status.\r\n },\r\n\r\n line22: {\r\n hint: A limited life debt investment entity must check the box to certify that it meets all of the requirements for this certified deemed-compliant status.\r\n },\r\n\r\n line23: {\r\n hint: An investment advisor or investment manager must check the box to certify that it meets all of the requirements for this certified deemed-compliant status.\r\n },\r\n\r\n line24a: {\r\n hint: An owner-documented FFI must check the box to certify that it meets all of the requirements for this status and is providing this form to a U.S. financial institution, participating FFI, reporting Model 1 FFI, or reporting Model 2 FFI that agrees to act as a designated withholding agent with respect to the FFI identified on line 1. See Regulations section 1.1471-5(f)(3) for more information about an owner-documented FFI, including with respect to a designated withholding agent.,\r\n\r\n tip: 'Check either line 24b or line 24c. Do not check both boxes.'\r\n },\r\n\r\n line24b: {\r\n hint: Check the box to certify that you have provided or will provide the documentation set forth in the certifications, including the FFI owner reporting statement and the valid documentation for each person identified on the FFI owner reporting statement described on line 24b. If you check the box on line 24b, you should not check the box on line 24c.\r\n },\r\n\r\n line24c: {\r\n hint: 'Check the box to certify that you have provided or will provide the auditor’s letter (in lieu of the information required by line 24b) that satisfies the requirements reflected on this line.'\r\n },\r\n\r\n line24d: {\r\n hint: Check the box if you do not have any contingent beneficiaries or designated classes with unidentified beneficiaries. While this certification is not required, a Form W-8BEN-E provided by an owner-documented FFI will remain valid indefinitely for chapter 4 purposes absent a change in circumstances with respect to offshore obligations (as defined in Regulations section 1.6049-5(c)(1)) only if this certification is provided and the account balance of all accounts held by the owner-documented FFI with the withholding agent does not exceed $1,000,000 on the later of June 30, 2014, or the last day of the calendar year in which the account was opened, and the last day of each subsequent calendar year preceding the payment, applying the account aggregation rules of Regulations section 1.1471-5(b)(4)(iii).\r\n },\r\n\r\n line25a: {\r\n hint: 'A restricted distributor must check the box to certify that it meets all of the requirements for this status.'\r\n },\r\n\r\n line25b: {\r\n hint: 'Check the appropriate box to certify as to your status. Do not check both boxes.',\r\n\r\n caution: A restricted distributor may certify only with respect to an account it maintains in connection with a distribution agreement with a restricted fund described in this Part XI. A restricted distributor that, in connection with such a distribution agreement, receives a payment subject to chapter 3 withholding or a withholdable payment should complete Form W-8IMY and not this form except to the extent it holds interests in connection with such an agreement as a beneficial owner.\r\n },\r\n\r\n line25c: {\r\n hint: 'Check the appropriate box to certify as to your status. Do not check both boxes.',\r\n\r\n caution: A restricted distributor may certify only with respect to an account it maintains in connection with a distribution agreement with a restricted fund described in this Part XI. A restricted distributor that, in connection with such a distribution agreement, receives a payment subject to chapter 3 withholding or a withholdable payment should complete Form W-8IMY and not this form except to the extent it holds interests in connection with such an agreement as a beneficial owner.\r\n },\r\n\r\n line26: {\r\n hint: Check the box to indicate that you are treated as a nonreporting IGA FFI under an applicable IGA, including an entity treated as a registered deemed-compliant FFI under an applicable IGA. You must identify the applicable IGA by entering the name of the jurisdiction that has the applicable IGA treated as in effect with the United States, and indicate whether it is a Model 1 or Model 2 IGA. You must also provide the withholding agent with the specific category of FFI described in Annex II of the IGA applicable to your status. In providing the specific category of FFI described in Annex II, you should use the language from Annex II that best and most specifically describes your status in the IGA. For example, indicate “investment entity wholly owned by exempt beneficial owners” rather than “exempt beneficial owner”.
    If you are a nonreporting IGA FFI claiming a deemed-compliant status under the regulations, you must instead indicate on this line which section of the regulations you qualify under. If you are a nonreporting FFI under an applicable IGA because you qualify as an owner-documented FFI under the regulations, do not check “Nonreporting IGA FFI”. Instead, you must check “Owner-documented FFI” and complete Part X rather than this Part XII.
    If you are an FFI treated as a registered deemed-compliant FFI under an applicable Model 2 IGA (other than a sponsored FFI) you must also provide your GIIN on line 9a. See https://home.treasury.gov/policy-issues/tax-policy/foreign-account-tax-compliance-act for a list of jurisdictions treated as having an IGA in effect for purposes of making this certification. If you are a sponsored FFI not claiming your chapter 4 status under the regulations, see the requirements of your applicable IGA to determine when you are required to obtain a GIIN.
    Note. If you are a nonreporting IGA FFI and you have registered and received a GIIN and have not provided it in line 9a because your trustee's or sponsor's GIIN is in line 9, you should provide it here.
    \r\n },\r\n\r\n line27: {\r\n hint: 'A foreign government or political subdivision of a foreign government (including wholly owned agencies and instrumentalities thereof), government of a U.S. possession, or foreign central bank of issue (each as defined in Regulations section 1.1471-6) must check the box and certify that it satisfies all of the requirements for this status (including that it does not engage in the type of commercial financial activities described on this line except to the extent permitted under Regulations section 1.1471-6(h)(2)).',\r\n\r\n tip: 'If you are a foreign government or political subdivision of a foreign government (including wholly owned agencies and instrumentalities thereof), government of a U.S. possession, or foreign central bank of issue, you should only complete this Form W-8BEN-E for payments for which you are not claiming the applicability of section(s) 115(2), 892, or 895; otherwise you should use Form W-8EXP.'\r\n },\r\n\r\n line28a: {\r\n hint: 'Check this box to certify that you are an international organization described in section 7701(a) (18).',\r\n\r\n tip: 'If you are an entity that has been designated as an international organization by executive order (pursuant to 22 U.S.C. 288 through 288f), check box 28a. If you are claiming an exemption from withholding for purposes of chapter 3, however, use Form W-8EXP.'\r\n },\r\n\r\n line28b: {\r\n hint: 'If you are an international organization other than an international organization described in line 28a, check the box to certify that you satisfy all of the requirements for this status.'\r\n },\r\n\r\n line29: {\r\n hint: 'An exempt retirement plan must check the appropriate box to certify that it meets all of the requirements for this status.'\r\n },\r\n\r\n line30: {\r\n hint: 'An entity wholly owned by exempt beneficial owners must check the box to certify that it meets all of the requirements for this status. You must also provide the owner documentation described in this line establishing that each direct owner or debt holder of the entity is an exempt beneficial owner described in Regulations section 1.1471-6(b).'\r\n },\r\n\r\n line31: {\r\n hint: 'A territory financial institution must check the box to certify that it meets all of the requirements for this status.'\r\n },\r\n\r\n line32: {\r\n hint: 'An excepted nonfinancial group entity must check the box to certify that it meets all of the requirements for this status.'\r\n },\r\n\r\n line33: {\r\n hint: 'An excepted nonfinancial start-up company must check the box to certify that it meets all of the requirements for this status. You must also provide the date you were formed or your board passed a resolution (or equivalent measure) approving a new line of business (which cannot be that of a financial institution or passive NFFE).'\r\n },\r\n\r\n line34: {\r\n hint: 'An excepted nonfinancial group entity in liquidation or bankruptcy must check the box to certify that it meets all of the requirements for this status. You must also provide the date that you filed a plan of liquidation, plan of reorganization, or bankruptcy petition.'\r\n },\r\n\r\n line35: {\r\n hint: 'An entity claiming chapter 4 status as a section 501(c) organization pursuant to Regulations section 1.1471-5(e)(5)(v) must check the box and provide the date that the IRS issued the organization a determination letter or provide a copy of an opinion from U.S. counsel certifying that the organization qualifies as a section 501(c) organization (without regard to whether the organization is a foreign private foundation).',\r\n\r\n tip: 'If you are a section 501(c) organization claiming an exemption from withholding for purposes of chapter 3, however, use Form W-8EXP.'\r\n },\r\n\r\n line36: {\r\n hint: A nonprofit organization (other than an entity claiming chapter 4 status as a section 501(c) organization pursuant to Regulations section 1.1471-5(e)(5)(v)) must check the box to certify that it meets all of the requirements for this status.
    Nonprofit organization under an IGA. For an entity that is established and maintained in a jurisdiction that is treated as having in effect an IGA and that is described in Annex I as a nonprofit organization that is an Active NFFE, see Entities Providing Certifications Under an Applicable IGA under Special Instructions, later.
    \r\n },\r\n\r\n line37a: {\r\n hint: 'A publicly-traded NFFE must check the box to certify that you are not a financial institution and provide the name of a securities exchange on which the stock of the NFFE is publicly traded.'\r\n },\r\n\r\n line37b: {\r\n hint: 'An NFFE that is a member of the same expanded affiliated group as a publicly-traded U.S. or foreign entity must check this box, provide the name of the publicly-traded entity, and identify the securities market on which the stock of the publicly- traded entity is traded. See Regulations section 1.1472-1(c)(1)(i) to determine if the stock of an entity is regularly traded on an established securities market (substituting the term “U.S. entity” for NFFE, as appropriate for purposes of testing whether an entity is publicly traded).'\r\n },\r\n\r\n line38: {\r\n hint: 'An excepted territory NFFE must check the box to certify that it meets all of the requirements for this classification. See Regulations section 1.1472-1(c)(1)(iii) for the definition of an excepted territory NFFE.'\r\n },\r\n\r\n line39: {\r\n hint: 'An active NFFE must check the box to certify that it meets all of the requirements for this status, including the assets and passive income test described in the certification for this part. For purposes of applying this test, passive income includes dividends, interest, rents, royalties, annuities, and certain other forms of passive income. See Regulations section 1.1472-1(c)(1)(iv)(A) for additional detail for the definition of passive income. Also see Regulations section 1.1472-1(c)(1)(iv)(B) for exceptions from the definition of passive income for certain types of income.'\r\n },\r\n\r\n line40a: {\r\n hint: A passive NFFE must check the box to certify that you are not a financial institution and are not certifying your status as a publicly-traded NFFE, NFFE affiliate of a publicly-traded company, excepted territory NFFE, active NFFE, direct-reporting NFFE, or sponsored direct-reporting NFFE.
    Note. If you would be a passive NFFE but for the fact that you are professionally managed, you should not complete line 40a as you should be considered a financial institution and not a passive NFFE.
    ,\r\n\r\n tip: 'If you are an NFFE that may qualify as an active NFFE (or other NFFE described in another part of this form), you may still check line 40a and disclose your substantial U.S. owners or certify that you have no substantial U.S. owners (see instructions to lines 40b and 40c below).'\r\n },\r\n\r\n line40b: {\r\n hint: Check this box to certify that you have no substantial U.S. owners.\r\n },\r\n\r\n line40c: {\r\n hint: If you do not check the box and make the certification on line 40b, you must check this box 40c and complete Part XXIX to identify each of your substantial U.S. owners and provide their name, address, and TIN
    Note. If you are an NFFE that is providing Form W-8BEN-E to an FFI treated as a reporting Model 1 FFI or reporting Model 2 FFI, you may also use Part XXIX to report controlling U.S. persons (as defined in an applicable IGA). The references to “controlling U.S. persons” in Part XXVI and Part XXIX apply only if the form is being provided to an FFI treated as a reporting Model 1 FFI or reporting Model 2 FFI.
    \r\n },\r\n\r\n line41: {\r\n hint: 'An excepted inter-affiliate FFI must check the box to certify that it meets all of the requirements of this classification. This classification will only apply for an excepted inter-affiliate FFI that holds a deposit account described in the certification for this part and that is documenting itself to the financial institution that maintains the deposit account. You are not eligible for this classification if you receive or make withholdable payments to or from any person other than a member of your expanded affiliated group, other than the depository institution described in the previous sentence. See Regulations section 1.1471-5(e)(5)(iv) for all the requirements of this status.'\r\n },\r\n\r\n line42: {\r\n label: 'Name of sponsoring entity:',\r\n\r\n hint: A sponsored direct-reporting NFFE must check the box to certify that it meets all of the requirements for this classification. You must also provide the name of your sponsoring entity in the space provided and provide your GIIN in line 9a (or, for payments prior to the date specified in published guidance (i.e. January 1, 2017), you may provide only the GIIN of your sponsoring entity).
    Enter the GIIN of the sponsoring entity identified in line 42.
    \r\n },\r\n\r\n partXXIX: {\r\n hint: If you identified yourself as a passive NFFE (including an investment entity that is a territory NFFE but is not an excepted territory NFFE under Regulations section 1.1472-1(c)) with one or more substantial U.S. owners in Part XXVI, you must identify each substantial U.S. owner. Provide the name, address, and TIN of each substantial U.S. owner in the relevant column. You may attach this information on a separate statement, which remains subject to the same perjury statement and other certifications made in Part XXX. If you are reporting controlling U.S. persons (as defined in an applicable IGA) to a Model 1 FFI or reporting Model 2 FFI with which you maintain an account that requests such ownership information with this form, you may use this space or attach a separate statement to report such persons.\r\n },\r\n\r\n partXXX: {\r\n hint: Form W-8BEN-E must be signed and dated by an authorized representative or officer of the beneficial owner, participating payee (for purposes of section 6050W), or account holder of an FFI requesting this form. An authorized representative or officer must check the box to certify that you have the legal capacity to sign for the entity identified on line 1 that is the beneficial owner of the income. If Form W-8BEN-E is completed by an agent acting under a duly authorized power of attorney, the form must be accompanied by the power of attorney in proper form or a copy thereof specifically authorizing the agent to represent the principal in making, executing, and presenting the form. Form 2848, Power of Attorney and Declaration of Representative, may be used for this purpose. The agent, as well as the beneficial owner, payee, or account holder (as applicable), may incur liability for the penalties provided for an erroneous, false, or fraudulent form. By signing Form W-8BEN-E, the authorized representative, officer, or agent of the entity also agrees to provide a new form within 30 days following a change in circumstances affecting the correctness of the form.\r\n }\r\n};\r\n","import React from 'react';\r\n\r\n/* eslint-disable max-len */\r\nexport default {\r\n line1: {\r\n label: 'Name of individual who is the beneficial owner',\r\n hint: Enter your name. If you are a foreign individual who is the single owner of a disregarded entity that is not claiming treaty benefits as a hybrid entity, with respect to a payment, you should complete this form with your name and information. If the account to which a payment is made or credited is in the name of the disregarded entity, you should inform the withholding agent of this fact. This may be done by including the name and account number of the disregarded entity on line 7 (reference number) of the form. However, if the disregarded entity is claiming treaty benefits as a hybrid entity, it should complete Form W-8BEN-E instead of this Form W-8BEN.,\r\n },\r\n\r\n line2: {\r\n label: 'Country of citizenship',\r\n hint: Enter your country of citizenship. If you are a dual citizen, enter the country where you are both a citizen and a resident at the time you complete this form. If you are not a resident in any country in which you have citizenship, enter the country where you were most recently a resident. However, if you are a United States citizen, you should not complete this form even if you hold citizenship in another jurisdiction. Instead, provide Form W-9.\r\n },\r\n\r\n line3: {\r\n label: Permanent residence address (street, apt. or suite no., or rural route). Do not use a P.O. box or in-care-of address.,\r\n hint: Your permanent residence address is the address in the country where you claim to be a resident for purposes of that country’s income tax. If you are completing Form W-8BEN to claim a reduced rate of withholding under an income tax treaty, you must determine your residency in the manner required by the treaty. Do not show the address of a financial institution, a post office box, or an address used solely for mailing purposes. If you do not have a tax residence in any country, your permanent residence is where you normally reside.\r\n
    If you reside in a country that does not use street addresses, you may enter a descriptive address on line 3. The address must accurately indicate your permanent residence in the manner used in your jurisdiction.
    \r\n },\r\n\r\n line4: {\r\n label: Mailing address (if different from above),\r\n hint: Enter your mailing address only if it is different from the address you show on line 3.\r\n },\r\n\r\n line5: {\r\n label: U.S. taxpayer identification number (SSN or ITIN), if required (see instructions),\r\n hint: If you have a social security number (SSN), enter it here. To apply for an SSN, get Form SS-5 from a Social Security Administration (SSA) office or online at www.ssa.gov/forms/ss-5.pdf . If you are in the United States, you can call the SSA at 1-800-772-1213. Complete Form SS-5 and return it to the SSA.
    If you do not have an SSN and are not eligible to get one, you can get an individual taxpayer identification number (ITIN). To apply for an ITIN, file Form W-7 with the IRS. It usually takes 4–6 weeks to get an ITIN. To claim certain treaty benefits, you must complete line 5 by submitting an SSN or ITIN, or line 6 by providing a foreign tax identification number (foreign TIN).
    A partner in a partnership conducting a trade or business in the United States will likely be allocated effectively connected taxable income. The partner is required to file a U.S. federal income tax return and must have a U.S. taxpayer identification number (TIN).
    You must provide an SSN or TIN if you are:
    • Claiming an exemption from withholding under section 871(f) for certain annuities received under qualified plans, or
    • Submitting the form to a partnership that conducts a trade or business in the United States.
    If you are claiming treaty benefits, you are generally required to provide an ITIN if you do not provide a tax identifying number issued to you by your jurisdiction of tax residence on line 6. However, an ITIN is not required to claim treaty benefits relating to:
    • Dividends and interest from stocks and debt obligations that are actively traded;
    • Dividends from any redeemable security issued by an investment company registered under the Investment Company Act of 1940 (mutual fund);
    • Dividends, interest, or royalties from units of beneficial interest in a unit investment trust that are (or were upon issuance) publicly offered and are registered with the SEC under the Securities Act of 1933; and
    • Income related to loans of any of the above securities.
    ,\r\n caution: An ITIN is for tax use only. It does not entitle you to social security benefits or change your employment or immigration status under U.S. law.\r\n },\r\n\r\n line6: {\r\n label: Foreign tax identifying number (see instructions),\r\n tip: Please provide the TIN issued to you by the jurisdiction in which you are a tax resident. This field should not contain a U.S. Taxpayer Identification number.
    If you are unsure about what your TIN is, please consult this information page: https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/
    Alternatively, a foreign TIN may not be required if any of the following are true:
    • Your permanent residence address is a jurisdiction which does not issue TINs to their residents. This list includes the jurisdictions recognised by the IRS: https://www.irs.gov/businesses/corporations/list-of-jurisdictions-that-do-not-issue-foreign-tins
    • You have uploaded a valid TIN Not Issued Document.
    • You have entered "not legally required" in the FTIN in line with the instructions to this form.
    ,\r\n hint: If you are providing this Form W-8BEN to document yourself as an account holder with respect to a financial account (as defined in Regulations section 1.1471-5(b)) that you hold at a U.S. office of a financial institution (including a U.S. branch of an FFI) and you receive U.S. source income reportable on Form 1042-S associated with this form, you must provide the TIN issued to you by your jurisdiction of tax residence identified on line 3 unless:
    • You have not been issued a TIN (including if the jurisdiction does not issue TINs), or
    • You are a resident of a U.S. possession.
    If you are providing this form to document a financial account described above but you do not enter a TIN on line 6, and you are not a resident of a U.S. possession, you must provide the withholding agent with an explanation for why you have not been issued a TIN. For this purpose, an explanation is a statement that you are not legally required to obtain a TIN in your jurisdiction of tax residence. The explanation may be written on line 6, in the margins of the form, or on a separate attached statement associated with the form. If you are writing the explanation on line 6, you may shorten it to “not legally required.” Do not write “not applicable.” In addition, if you are not using this form to document a financial account described above, you may provide the TIN issued to you by your jurisdiction of tax residence on line 6 for purposes of claiming treaty benefits (rather than providing a U.S. TIN on line 5, if required).\r\n
    ,\r\n },\r\n\r\n line7: {\r\n label: Reference number(s) (see instructions),\r\n hint: This line may be used by the filer of Form W-8BEN or by the withholding agent to whom it is provided to include any referencing information that is useful to the withholding agent in carrying out its obligations. For example, withholding agents who are required to associate the Form W-8BEN with a particular Form W-8IMY may want to use line 7 for a referencing number or code that will make the association clear. A beneficial owner can use line 7 to include the number of the account for which he or she is providing the form. A foreign single owner of a disregarded entity can use line 7 to inform the withholding agent that the account to which a payment is made or credited is in the name of the disregarded entity (see the instructions for line 1). ,\r\n },\r\n\r\n line8: {\r\n label: Date of birth (MM-DD-YYYY) (see instructions),\r\n hint: If you are providing this Form W-8BEN to document yourself as an account holder with respect to a financial account as described above in line 6 that you hold with a U.S. office of a financial institution (including a U.S. branch of an FFI), provide your date of birth. Use the following format to input your information: MM-DD-YYYY. For example, if you were born on April 15, 1956, you would enter 04-15-1956. ,\r\n },\r\n\r\n partII: {\r\n hint: Line 9. If you are claiming treaty benefits as a resident of a foreign country with which the United States has an income tax treaty for payments subject to withholding under chapter 3, identify the country where you claim to be a resident for income tax treaty purposes. For treaty purposes, a person is a resident of a treaty country if the person is a resident of that country under the terms of the treaty. A list of U.S. tax treaties is available at http://www.irs.gov/Individuals/International-Taxpayers/Tax-Treaties.

    Line 10. Line 10 must be used only if you are claiming treaty benefits that require that you meet conditions not covered by the representations you make on line 9 and Part III. For example, persons claiming treaty benefits on royalties must complete this line if the treaty contains different withholding rates for different types of royalties. However, this line should always be completed by foreign students and researchers claiming treaty benefits. See Scholarship and fellowship grants, later, for more information.
    This line is generally not applicable to treaty benefits under an interest or dividends (other than dividends subject to a preferential rate based on ownership) article of a treaty.
    Non-resident alien who becomes a resident alien. Generally, only a non-resident alien individual can use the terms of a tax treaty to reduce or eliminate U.S. tax on certain types of income. However, most tax treaties contain a provision known as a “saving clause” which preserves or “saves” the right of each country to tax its own residents as if no tax treaty existed. Exceptions specified in the saving clause may permit an exemption from tax to continue for certain types of income even after the recipient has otherwise become a U.S. resident alien for tax purposes. The individual must use Form W-9 to claim the tax treaty benefit. See the instructions for Form W-9 for more information. Also see Non-resident alien student or researcher who becomes a resident alien, later, for an example.
    Scholarship and fellowship grants. A non-resident alien student (including a trainee or business apprentice) or researcher who receives non-compensatory scholarship or fellowship income can use Form W-8BEN to claim benefits under a tax treaty that apply to reduce or eliminate U.S. tax on such income. No Form W-8BEN is required unless a treaty benefit is being claimed. A non-resident alien student or researcher who receives compensatory scholarship or fellowship income must use Form 8233, instead of Form W-8BEN, to claim any benefits of a tax treaty that apply to that income. The student or researcher must use Form W-4 for any part of such income for which he or she is not claiming a tax treaty withholding exemption. Do not use Form W-8BEN for compensatory scholarship or fellowship income. See Compensation for Dependent Personal Services in the Instructions for Form 8233.
    Completing lines 3 and 9. Most tax treaties that contain an article exempting scholarship or fellowship grant income from taxation require that the recipient be a resident of the other treaty country at the time of, or immediately prior to, entry into the United States. Thus, a student or researcher may claim the exemption even if he or she no longer has a permanent address in the other treaty country after entry into the United States. If this is the case, you can provide a U.S. address on line 3 and still be eligible for the exemption if all other conditions required by the tax treaty are met. You must also identify on line 9 the tax treaty country of which you were a resident at the time of, or immediately prior to, your entry into the United States.
    Completing line 10. You must complete line 10 if you are a student or researcher claiming an exemption from taxation on your non-compensatory scholarship or fellowship grant income under a tax treaty.
    Non-resident alien student or researcher who becomes a resident alien. You must use Form W-9 to claim an exception to a saving clause. See Non-resident alien who becomes a resident alien, earlier, for a general explanation of saving clauses and exceptions to them.
    Example. Article 20 of the United States-China income tax treaty allows an exemption from tax for scholarship income received by a Chinese student temporarily present in the United States. Under U.S. law, this student will become a resident alien for tax purposes if his or her stay in the United States exceeds 5 calendar years. However, paragraph 2 of the first protocol to the United States-China treaty (dated April 30, 1984) allows the provisions of Article 20 to continue to apply even after the Chinese student becomes a resident alien of the United States. A Chinese student who qualifies for this exception (under paragraph 2 of the first protocol) and is relying on this exception to claim an exemption from tax on his or her scholarship or fellowship income would complete Form W-9
    ,\r\n caution: Line 9 If you are related to the withholding agent within the meaning of section 267(b) or 707(b) and the aggregate amount subject to withholding received during the calendar year exceeds $500,000, then you are generally required to file Form 8833, Treaty-Based Return Position Disclosure Under Section 6114 or 7701(b), available at IRS.gov/Form8833. See the Instructions for Form 8833 for more information on the filing requirements.,\r\n tip: Line 10 If you are a non-resident alien individual who received non-compensatory scholarship or fellowship income and personal services income (including compensatory scholarship or fellowship income) from the same withholding agent, you may use Form 8233 to claim a tax treaty withholding exemption for part or all of both types of income.\r\n },\r\n\r\n partIII: {\r\n hint: Form W-8BEN must be signed and dated by the beneficial owner of the amount subject to withholding or the account holder of an FFI (or an agent with legal authority to act on the person’s behalf). If Form W-8BEN is completed by an agent acting under a duly authorized power of attorney for the beneficial owner or account holder, the form must be accompanied by the power of attorney in proper form or a copy thereof specifically authorizing the agent to represent the principal in making, executing, and presenting the form. Form 2848 can be used for this purpose. The agent, as well as the beneficial owner or account holder, may incur liability for the penalties provided for an erroneous, false, or fraudulent form.
    A withholding agent may allow you to provide this form with an electronic signature. The electronic signature must indicate that the form was electronically signed by a person authorized to do so (for example, with a time and date stamp and statement that the form has been electronically signed). Simply typing your name into the signature line is not an electronic signature
    Broker transactions or barter exchanges. Income from transactions with a broker or a barter exchange is subject to reporting rules and backup withholding unless Form W-8BEN or a substitute form is filed to notify the broker or barter exchange that you are an exempt foreign person.
    You are an exempt foreign person for a calendar year in which:
    • You are a non-resident alien individual or a foreign corporation, partnership, estate, or trust;
    • You are an individual who has not been, and does not plan to be, present in the United States for a total of 183 days or more during the calendar year; and
    • You are neither engaged, nor plan to be engaged during the year, in a U.S. trade or business that has effectively connected gains from transactions with a broker or barter exchange.
    ,\r\n caution: If any information on Form W-8BEN becomes incorrect, you must submit a new form within 30 days unless you are no longer an account holder of the requester that is an FFI and you will not receive a future payment with respect to the account.\r\n }\r\n};\r\n","import React from 'react';\r\n\r\n/* eslint-disable max-len */\r\nexport default {\r\n line1: {\r\n label: 'Name of individual who is the beneficial owner',\r\n hint: Enter your name. If you are a foreign individual who is the single owner of a disregarded entity that is not claiming treaty benefits as a hybrid entity, with respect to a payment, you should complete this form with your name and information. If the account to which a payment is made or credited is in the name of the disregarded entity, you should inform the withholding agent of this fact. This may be done by including the name and account number of the disregarded entity on line 7 (reference number) of the form. However, if the disregarded entity is claiming treaty benefits as a hybrid entity, it should complete Form W-8BEN-E instead of this Form W-8BEN.,\r\n },\r\n\r\n line2: {\r\n label: 'Country of citizenship',\r\n hint: Enter your country of citizenship. If you are a dual citizen, enter the country where you are both a citizen and a resident at the time you complete this form. If you are not a resident in any country in which you have citizenship, enter the country where you were most recently a resident. However, if you are a United States citizen, you should not complete this form even if you hold citizenship in another jurisdiction. Instead, provide Form W-9.\r\n },\r\n\r\n line3: {\r\n label: Permanent residence address (street, apt. or suite no., or rural route). Do not use a P.O. box or in-care-of address.,\r\n hint: Your permanent residence address is the address in the country where you claim to be a resident for purposes of that country’s income tax. If you are completing Form W-8BEN to claim a reduced rate of withholding under an income tax treaty, you must determine your residency in the manner required by the treaty. Do not show the address of a financial institution, a post office box, or an address used solely for mailing purposes. If you do not have a tax residence in any country, your permanent residence is where you normally reside.\r\n
    If you reside in a country that does not use street addresses, you may enter a descriptive address on line 3. The address must accurately indicate your permanent residence in the manner used in your jurisdiction.
    \r\n },\r\n\r\n line4: {\r\n label: Mailing address (if different from above),\r\n hint: Enter your mailing address only if it is different from the address you show on line 3.\r\n },\r\n\r\n line5: {\r\n label: U.S. taxpayer identification number (SSN or ITIN), if required (see instructions),\r\n hint: If you have a social security number (SSN), enter it here. To apply for an SSN, get Form SS-5 from a Social Security Administration (SSA) office or online at www.ssa.gov/forms/ss-5.pdf . If you are in the United States, you can call the SSA at 1-800-772-1213. Complete Form SS-5 and return it to the SSA.
    If you do not have an SSN and are not eligible to get one, you can get an individual taxpayer identification number (ITIN). To apply for an ITIN, file Form W-7 with the IRS. It usually takes 4–6 weeks to get an ITIN. To claim certain treaty benefits, you must complete line 5 by submitting an SSN or ITIN, or line 6 by providing a foreign tax identification number (foreign TIN).
    A partner in a partnership conducting a trade or business in the United States will likely be allocated effectively connected taxable income. The partner is required to file a U.S. federal income tax return and must have a U.S. taxpayer identification number (TIN).
    You must provide an SSN or TIN if you are:
    • Claiming an exemption from withholding under section 871(f) for certain annuities received under qualified plans, or
    • Submitting the form to a partnership that conducts a trade or business in the United States.
    If you are claiming treaty benefits, you are generally required to provide an ITIN if you do not provide a tax identifying number issued to you by your jurisdiction of tax residence on line 6. However, an ITIN is not required to claim treaty benefits relating to:
    • Dividends and interest from stocks and debt obligations that are actively traded;
    • Dividends from any redeemable security issued by an investment company registered under the Investment Company Act of 1940 (mutual fund);
    • Dividends, interest, or royalties from units of beneficial interest in a unit investment trust that are (or were upon issuance) publicly offered and are registered with the SEC under the Securities Act of 1933; and
    • Income related to loans of any of the above securities.
    ,\r\n caution: An ITIN is for tax use only. It does not entitle you to social security benefits or change your employment or immigration status under U.S. law.\r\n },\r\n\r\n line6a: {\r\n label: Foreign tax identifying number (see instructions),\r\n tip: Please provide the TIN issued to you by the jurisdiction in which you are a tax resident. This field should not contain a U.S. Taxpayer Identification number.
    If you are unsure about what your TIN is, please consult this information page: https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/
    Alternatively, a foreign TIN may not be required if any of the following are true:
    • Your permanent residence address is a jurisdiction which does not issue TINs to their residents. This list includes the jurisdictions recognised by the IRS: https://www.irs.gov/businesses/corporations/list-of-jurisdictions-that-do-not-issue-foreign-tins
    • You have uploaded a valid TIN Not Issued Document.
    • You have indicated the FTIN is not legally required in line with the instructions to this form.
    ,\r\n hint: If you are providing this Form W-8BEN to document yourself as an account holder (as defined in Regulations section 1.1471-5(a)(3)) with respect to a financial account (as defined in Regulations section 1.1471-5(b)) that you hold at a U.S. office of a financial institution (including a U.S. branch of an FFI) and you receive U.S. source income reportable on a Form 1042-S associated with this form, you must provide on line 6a the foreign tax identifying number (FTIN) issued to you by your jurisdiction of tax residence identified on line 3 unless:

    • You are a resident of a U.S. territory, or
    • Your jurisdiction of residence is identified on the IRS’s List of Jurisdictions That Do Not Issue Foreign TINs at IRS.gov/businesses/corporations/list-of-jurisdictions-that-do-not-issue-foreign-tins. You also do not need to provide an FTIN on line 6a if you meet the requirement for one of the requirements for checking the box in line 6b.

    In addition, you may provide the FTIN issued to you by your jurisdiction of tax residence on line 6a for purposes of claiming treaty benefits (rather than providing a U.S. TIN on line 5, if required).\r\n
    ,\r\n },\r\n\r\n line6b: {\r\n label: Check if FTIN not legally required.,\r\n hint: You may check the box in this line 6b if you are an account holder as described for purposes of line 6a and you are not legally required to obtain an FTIN from your jurisdiction of residence (including if the jurisdiction does not issue TINs). By checking this box, you will be treated as having provided an explanation for not providing an FTIN on line 6a. If you wish to provide a further (or other) explanation why you are not required to provide an FTIN on line 6a, you may do so on a supporting document.\r\n ,\r\n },\r\n\r\n line7: {\r\n label: Reference number(s) (see instructions),\r\n hint: This line may be used by the filer of Form W-8BEN or by the withholding agent to whom it is provided to include any referencing information that is useful to the withholding agent in carrying out its obligations. For example, withholding agents who are required to associate the Form W-8BEN with a particular Form W-8IMY may want to use line 7 for a referencing number or code that will make the association clear. A beneficial owner can use line 7 to include the number of the account for which he or she is providing the form. A foreign single owner of a disregarded entity can use line 7 to inform the withholding agent that the account to which a payment is made or credited is in the name of the disregarded entity (see the instructions for line 1). ,\r\n },\r\n\r\n line8: {\r\n label: Date of birth (MM-DD-YYYY) (see instructions),\r\n hint: If you are providing this Form W-8BEN to document yourself as an account holder with respect to a financial account as described above in line 6 that you hold with a U.S. office of a financial institution (including a U.S. branch of an FFI), provide your date of birth. Use the following format to input your information: MM-DD-YYYY. For example, if you were born on April 15, 1956, you would enter 04-15-1956. ,\r\n },\r\n\r\n partII: {\r\n hint: Line 9. If you are claiming treaty benefits as a resident of a foreign country with which the United States has an income tax treaty for payments subject to withholding under chapter 3 or under section 1446(a) or (f), identify the country where you claim to be a resident for income tax treaty purposes. For treaty purposes, a person is a resident of a treaty country if the person is a resident of that country under the terms of the treaty. A list of U.S. tax treaties is available at IRS.gov/Individuals/InternationalTaxpayers/Tax-Treaties.

    Line 10. Line 10 must be used only if you are claiming treaty benefits that require that you meet conditions not covered by the representations you make on line 9 and Part III. This line is generally not applicable to treaty benefits under an interest or dividends (other than dividends subject to a preferential rate based on ownership) article of a treaty. Examples of when you must complete line 10 include:
    • Persons claiming treaty benefits on royalties must complete this line if the treaty contains different withholding rates for different types of royalties,
    • Foreign students and researchers claiming treaty benefits must complete this line. See Scholarship and fellowship grants, later, for more information.
    • Persons claiming treaty benefits on business profits or gains that are not attributable to a permanent establishment must complete this line. See Profits or gains not attributable to a permanent establishment, later, for more information.
    • Persons claiming treaty benefits pursuant to a remittance provision under a treaty must complete this line. See Remittance claims, later, for more information
    Nonresident alien who becomes a resident alien. Generally, only a nonresident alien individual can use the terms of a tax treaty to reduce or eliminate U.S. tax on certain types of income. However, most tax treaties contain a provision known as a “saving clause” which preserves or “saves” the right of each country to tax its own residents as if no tax treaty existed. Exceptions specified in the saving clause may permit an exemption from tax to continue for certain types of income even after the recipient has otherwise become a U.S. resident alien for tax purposes. The individual must use Form W-9 to claim the tax treaty benefit. See the instructions for Form W-9 for more information. Also see Nonresident alien student or researcher who becomes a resident alien, later, for an example.
    Profits or gains not attributable to a permanent establishment. Persons claiming treaty benefits on business profits not attributable to a permanent establishment or on gains arising from the alienation of property (other than real property) that does not form all or part of a permanent establishment (including gains that do not arise from the alienation of a permanent establishment) must complete line 10. Complete line 10 by stating that you derive business profits or gains (other than from real property) not attributable to a permanent establishment. You must also include the relevant treaty article. For example, a foreign partner that derives gains subject to tax under section 864(c)(8) upon the transfer of an interest in a partnership that conducts a trade or business within the United States may claim treaty benefits on this form with respect to the withholding required under section 1446(f) by stating that the gains are not attributable to a permanent establishment and by including the relevant gains article of the treaty. Additionally, for a claim that gain or income with respect to a PTP interest is not attributable to a permanent establishment in the United States, you must identify the name of each PTP to which the claim relates. See, however, Regulations section 1.864(c)(8)-1(f) (providing that gain or loss on the alienation of a partnership interest is gain or loss attributable to the alienation of assets forming part of a permanent establishment to the extent that the assets deemed sold under section 864(c)(8) form part of a permanent establishment of the partnership).
    Remittance claims. Some income tax treaties with countries that have a remittance-based tax system only allow treaty benefits on the amount of income that is remitted to (or received in) the treaty country. An individual may use Form W-8BEN to claim benefits under those treaties only on remitted amounts that are taxable in the treaty country. If you are taxed on a remittance basis in the treaty country identified on line 9, complete line 10 by stating that you are taxed on a remittance basis in the treaty country and the amount of income you receive associated with this form that was remitted to, and is taxable in, such country. You must also provide the relevant treaty article for the remittance provision (for example, Article 1(7) of the U.S.-U.K. Treaty).
    Scholarship and fellowship grants. A nonresident alien student (including a trainee or business apprentice) or researcher who receives non-compensatory scholarship or fellowship income can use Form W-8BEN to claim benefits under a tax treaty that apply to reduce or eliminate U.S. tax on such income. No Form W-8BEN is required unless a treaty benefit is being claimed. A nonresident alien student or researcher who receives compensatory scholarship or fellowship income must use Form 8233, instead of Form W-8BEN, to claim any benefits of a tax treaty that apply to that income. The student or researcher must use Form W-4 for any part of such income for which he or she is not claiming a tax treaty withholding exemption. Do not use Form W-8BEN for compensatory scholarship or fellowship income. See Compensation for Dependent Personal Services in the Instructions for Form 8233.
    Completing lines 3 and 9. Most tax treaties that contain an article exempting scholarship or fellowship grant income from taxation require that the recipient be a resident of the other treaty country at the time of, or immediately prior to, entry into the United States. Thus, a student or researcher may claim the exemption even if he or she no longer has a permanent address in the other treaty country after entry into the United States. If this is the case, you can provide a U.S. address on line 3 and still be eligible for the exemption if all other conditions required by the tax treaty are met. You must also identify on line 9 the tax treaty country of which you were a resident at the time of, or immediately prior to, your entry into the United States.
    Nonresident alien student or researcher who becomes a resident alien. You must use Form W-9 to claim an exception to a saving clause. See Nonresident alien who becomes a resident alien, earlier, for a general explanation of saving clauses and exceptions to them.
    Example. Article 20 of the United States-China income tax treaty allows an exemption from tax for scholarship income received by a Chinese student temporarily present in the United States. Under U.S. law, this student will become a resident alien for tax purposes if his or her stay in the United States exceeds 5 calendar years. However, paragraph 2 of the first protocol to the United States-China treaty (dated April 30, 1984) allows the provisions of Article 20 to continue to apply even after the Chinese student becomes a resident alien of the United States. A Chinese student who qualifies for this exception (under paragraph 2 of the first protocol) and is relying on this exception to claim an exemption from tax on his or her scholarship or fellowship income would complete Form W-9
    ,\r\n caution: Line 9 If you are related to the withholding agent within the meaning of section 267(b) or 707(b) and the aggregate amount subject to withholding received during the calendar year exceeds $500,000, then you are generally required to file Form 8833, Treaty-Based Return Position Disclosure Under Section 6114 or 7701(b), available at IRS.gov/Form8833. See the Instructions for Form 8833 for more information on the filing requirements.,\r\n tip: Line 10 If you are a nonresident alien individual who received non-compensatory scholarship or fellowship income and personal services income (including compensatory scholarship or fellowship income) from the same withholding agent, you may use Form 8233 to claim a tax treaty withholding exemption for part or all of both types of income.\r\n },\r\n\r\n partIII: {\r\n hint: Form W-8BEN must be signed and dated by the beneficial owner of the amount subject to withholding or the account holder of an FFI (or an agent with legal authority to act on the person’s behalf). If Form W-8BEN is completed by an agent acting under a duly authorized power of attorney for the beneficial owner or account holder, the form must be accompanied by the power of attorney in proper form or a copy thereof specifically authorizing the agent to represent the principal in making, executing, and presenting the form. Form 2848 can be used for this purpose. The agent, as well as the beneficial owner or account holder, may incur liability for the penalties provided for an erroneous, false, or fraudulent form.
    A withholding agent may allow you to provide this form with an electronic signature. The electronic signature must indicate that the form was electronically signed by a person authorized to do so (for example, with a time and date stamp and statement that the form has been electronically signed). Simply typing your name into the signature line is not an electronic signature
    Broker transactions or barter exchanges. Income from transactions with a broker or a barter exchange is subject to reporting rules and backup withholding unless Form W-8BEN or a substitute form is filed to notify the broker or barter exchange that you are an exempt foreign person.
    You are an exempt foreign person for a calendar year in which:
    • You are a Nonresident alien individual or a foreign corporation, partnership, estate, or trust;
    • You are an individual who has not been, and does not plan to be, present in the United States for a total of 183 days or more during the calendar year; and
    • You are neither engaged, nor plan to be engaged during the year, in a U.S. trade or business that has effectively connected gains from transactions with a broker or barter exchange.
    ,\r\n caution: If any information on Form W-8BEN becomes incorrect, you must submit a new form within 30 days unless you are no longer an account holder of the requester that is an FFI and you will not receive a future payment with respect to the account.\r\n },\r\n\r\n lineCertification: {\r\n hint: Form W-8BEN must be signed and dated by the beneficial owner of the amount subject to withholding or the account holder of an FFI (or an agent with legal authority to act on the person’s behalf). If Form W-8BEN is completed by an agent acting under a duly authorized power of attorney for the beneficial owner or account holder, the form must be accompanied by the power of attorney in proper form or a copy thereof specifically authorizing the agent to represent the principal in making, executing, and presenting the form. Form 2848 can be used for this purpose. The agent should also check the box indicating that the agent has capacity to sign for the beneficial owner. The agent, as well as the beneficial owner or account holder, may incur liability for the penalties provided for an erroneous, false, or fraudulent form.\r\n }\r\n};\r\n","import React from 'react';\r\n\r\n/* eslint-disable max-len */\r\nexport default {\r\n line1: {\r\n label: 'Name of individual or organization that is acting as intermediary',\r\n hint: Enter your name. By doing so, you are representing to the payer or withholding agent that you are not the beneficial owner of the amounts that will be paid to you (unless you are acting as a QDD or QSL for certain payments associated with this form or you are a QI acting with respect to payments of substitute interest, as permitted by the QI agreement). If you are a disregarded entity, do not enter the business name of the disregarded entity here. Instead, enter the legal name of the entity that owns the disregarded entity (looking through multiple disregarded entities, if applicable).,\r\n },\r\n line2: {\r\n label: 'Country of incorporation or organization',\r\n hint: If you are a corporation, enter the country of incorporation. If you are another type of entity, enter the country under whose laws you are created, organized, or governed. If you are an individual, provide your country of residence for tax purposes.,\r\n },\r\n line3: {\r\n label: 'Name of disregarded entity (if applicable), see instructions',\r\n hint: If you are a disregarded entity receiving a payment, enter your name (if required). You should complete line 3 only if you are a disregarded entity receiving a withholdable payment or hold an account with an FFI requesting this form and you:
    • Have registered with the IRS and been assigned a GIIN associated with the legal name of the disregarded entity; and
    • Are a reporting Model 1 FFI or reporting Model 2 FFI.
    ,\r\n caution: If you are not required to provide the legal name of the disregarded entity, however, you may want to notify the withholding agent that you are a disregarded entity receiving a payment or maintaining an account by indicating the name of the disregarded entity on line 10. However, do not enter the name of the disregarded entity on this line except in the circumstances described\r\n },\r\n line4: {\r\n label: 'Chapter 3 Status (entity type) (Must check one box only.):',\r\n hint: Complete this line to establish your entity status for purposes of chapter 3. Check the one box that applies. If you are a foreign partnership receiving the payment on behalf of your partners, check the “Withholding foreign partnership” box or the “nonwithholding foreign partnership” box, whichever is appropriate. If you are a foreign simple trust or foreign grantor trust receiving the payment on behalf of your beneficiaries or owners, check the “Withholding foreign trust” box, the “nonwithholding foreign simple trust” box, or the “nonwithholding foreign grantor trust” box, whichever is appropriate. If you are a foreign partnership (or a foreign trust) receiving a payment on behalf of persons other than your partners (or beneficiaries or owners), check the “Qualified intermediary” box or the “Nonqualified intermediary” box, whichever is appropriate. A foreign reverse hybrid entity that is providing documentation from its interest holders to claim a reduced rate of withholding under a treaty should check the appropriate box (including “Withholding foreign partnership” or “Withholding foreign trust” if the entity has entered into a withholding agreement). See Parts III through VIII, later, if you are acting in more than one capacity. A partnership or grantor trust submitting Form W-8IMY solely because it is allocated income effectively connected with a U.S. trade or business as a partner in a partnership should check the box for nonwithholding foreign partnership or nonwithholding foreign grantor trust and, if it is submitting or will submit documentation for its partners or owners, it should complete Part VIII. An upper-tier partnership that is allocated ECI as a partner in a partnership may, in certain circumstances, have the lower-tier partnership perform its withholding obligation. Generally, this is accomplished by the upper-tier partnership submitting withholding certificates of its partners (for example, Form W-8BEN) along with a Form W-8IMY, which identifies itself as a partnership, and identifying the manner in which ECI of the upper-tier partnership will be allocated to the partners. For further information, see Regulations section 1.1446-5. A foreign grantor trust that is allocated ECI as a partner in a partnership should provide the withholding certificates of its grantor (for example, Form W-8BEN) along with its Form W-8IMY which identifies the trust as a foreign grantor trust. See Regulations section 1.1446-1(c)(2)(ii)(E) for the rules requiring it to provide additional documentation to the partnership.,\r\n tip: Form W-8IMY may be submitted and accepted to satisfy documentation requirements for purposes of withholding on certain partnership allocations to foreign partners under section 1446. Section 1446 generally requires withholding when a partnership is conducting a trade or business in the United States and allocates income effectively connected with that trade or business (ECI) to foreign persons that are partners in the partnership. Section 1446 can also apply when certain income is treated as effectively connected income of the partnership and is so allocated.\r\n },\r\n line5: {\r\n label: 'Chapter 4 status (FATCA status) (See instructions for details and complete the certification below for the entity’s applicable status.) (Must check one box only.):',\r\n hint: Check the one box that applies to your chapter 4 status. You are only required to provide a chapter 4 status if you are acting as an intermediary with respect to a withholdable payment, you are a flow-through entity receiving a withholdable payment on behalf of your owners (including a reverse hybrid entity providing documentation on behalf of its owners to claim treaty benefits), you are providing a withholding statement associated with this form that allocates a portion of the payment to a chapter 4 withholding rate pool of U.S. payees with respect to your direct account holders (as described in Regulations section 1.6049-4(c)(4)), you are providing this form to an FFI requesting this form to document your chapter 4 status, or you are a QI acting as a QDD receiving payments as a principal or a QI acting with respect to payments of substitute interest. By checking a box on this line, you are representing that you qualify for this classification.
    FFIs Covered by IGAs and Related Entities A reporting FFI resident in, or established under the laws of, a jurisdiction covered by a Model 1 IGA should check “Reporting Model 1 FFI.” A reporting FFI resident in, or established under the laws of, a jurisdiction covered by a Model 2 IGA should check “Reporting Model 2 FFI.” If you are treated as a registered deemed-compliant FFI under an applicable IGA, you should check “Nonreporting IGA FFI” rather than “registered deemed-compliant FFI” and provide your GIIN. See the specific instructions for Part XIX. In general, if you are treated as a nonreporting IGA FFI under an applicable IGA, you should check “Nonreporting IGA FFI” even if you meet the qualifications for deemed-compliant status under the chapter 4 regulations. In such a case, you need not also check your applicable status under the regulations but should provide your GIIN on line 9. However, an owner documented FFI that is treated as a nonreporting IGA FFI under an applicable IGA must check “Owner-documented FFI” and complete Part XI. An FFI that is related to a reporting IGA FFI and that is treated as a nonparticipating FFI in its country of residence should check nonparticipating FFI in line 5. An FFI that is related to a reporting IGA FFI and that is a participating FFI, deemed-compliant FFI, or exempt beneficial owner under the U.S. Treasury regulations or an applicable IGA should check the appropriate box depending on its chapter 4 status rather than the box for nonparticipating FFI.
     If you are an FFI in a jurisdiction treated as having an IGA in effect, you should not check “participating FFI” and should check “Reporting Model 1 FFI” or “Reporting Model 2 FFI” as applicable.
     See https://home.treasury.gov/policy-issues/tax-policy/foreign-account-tax-compliance-act for a list of jurisdictions treated as having an IGA in effect.
    ,\r\n tip: For most of the chapter 4 classifications, you are required to complete additional certifications found in a separate part of this form (see Parts IX through XXVIII). Complete the appropriate part of this form certifying that you meet the conditions of the status indicated on line 5 (as defined under Regulations sections 1.1471-5 or 1.1471-6). Make sure you complete the required portion of this form before signing and providing it to the withholding agent.\r\n },\r\n line6: {\r\n label: Permanent residence address (street, apt. or suite no., or rural route).  Do not use a P.O. box or in-care-of address (other than a registered address).,\r\n hint: Enter the permanent address of the entity identified on line 1. Your permanent residence address is the address in the country where you claim to be a resident for purposes of that country's income tax. Do not show the address of a financial institution (other than yourself), a post office box, or an address used solely for mailing purposes unless such address is the only permanent address you use and it appears in your organizational documents (i.e., your registered address). If you do not have a tax residence in any country, the permanent residence address is where you maintain your principal office or, if you are an individual, where you normally reside.,\r\n },\r\n line7: {\r\n label: Mailing address (if different from above),\r\n hint: Enter your mailing address only if it is different from the address you show on line 6.,\r\n },\r\n line8: {\r\n label: U.S. taxpayer identification number, if required ► ,\r\n hint: You must provide an employer identification number (EIN) if you are a U.S. branch or territory financial institution that agrees to be treated as a U.S. person under Regulations section 1.1441-1(b)(2)(iv)(A), an upper-tier partnership that is allocated ECI as a partner in a partnership, or a foreign grantor trust that is allocated ECI as a partner.
     If you are acting as a qualified intermediary (including a QDD), withholding foreign partnership, or withholding foreign trust, check the appropriate box and enter the EIN that was issued to you in such capacity (your “QI-EIN,” “WP-EIN,” or “WT-EIN”). If you are not acting in that capacity, you must use your U.S. taxpayer identification number (TIN), if any, that is not your QI-EIN, WP-EIN, or WT-EIN.
     A nonqualified intermediary, a nonwithholding foreign partnership, or a nonwithholding foreign simple or grantor trust is generally not required to provide a U.S. TIN. However, a QSL providing this form with respect to a U.S. source substitute dividend must provide an EIN (including a QI-EIN if the QSL is a QI).
    ,\r\n },\r\n line9: {\r\n label: GIIN (if applicable),\r\n hint: If you are a participating FFI (including a reporting Model 2 FFI), registered deemed-compliant FFI (including a reporting Model 1 FFI), direct reporting NFFE (including a sponsored direct reporting NFFE), or trustee of a trustee documented trust, you are required to enter your GIIN (with regard to your country of residence) on line 9. However, if your branch is receiving the payment and is required to be identified in Part II, you are not required to provide a GIIN on this line 9 unless such branch is a U.S. branch or limited branch.
     In addition, if you are a sponsored entity that has a GIIN, you must provide that GIIN on line 9.
     For payments made prior to January 1, 2017, a sponsored direct reporting NFFE or sponsored FFI that has not obtained a GIIN must provide the GIIN of its sponsoring entity.
     If you are a QI acting as a QDD, you must provide your GIIN on line 9 if you have one.
    ,\r\n tip: If you are in the process of registering with the IRS as a participating FFI, registered deemed-compliant FFI, reporting Model 1 FFI, reporting Model 2 FFI, direct reporting NFFE, or sponsored direct reporting NFFE but have not received a GIIN, you may complete this line by writing “applied for.” However, the person requesting this form from you must receive and verify your GIIN within 90 days.\r\n },\r\n line10: {\r\n label: Reference number(s) (see instructions),\r\n hint: This line may be used by the filer of Form W-8IMY or by the withholding agent or FFI to whom it is provided to include any referencing information that is useful to the withholding agent in carrying out its reporting and withholding obligations. For example, a withholding agent who is required to associate a particular Form W-8BEN or Form W-8BEN-E with this Form W-8IMY may want to use line 10 for a referencing number or code that will make the association clear.,\r\n },\r\n partII: {\r\n caution: Complete Part II for a disregarded entity that has its own GIIN and is receiving a withholdable payment, or for a branch (including a branch that is a disregarded entity that does not have its own GIIN) of the FFI identified in line 1 operating in a jurisdiction other than the country of residence identified in line 2. For example, assume ABC Co., which is a participating FFI resident in Country A, operates through a branch in Country B (which is a Model 1 IGA jurisdiction) and the branch is treated as a reporting Model 1 FFI under the terms of the Country B Model 1 IGA. ABC Co. should not enter its GIIN on line 9, and the Country B branch should complete this Part II by identifying itself as a reporting Model 1 IGA FFI and providing its GIIN on line 13. Furthermore, if the Country B branch receiving the payment is a disregarded entity, you may be required to provide its legal name on line 3. See the instructions for Part I, line 3.,\r\n tip: If the disregarded entity receiving a withholdable payment has its own GIIN, Part II should be completed regardless of whether it is in the same country as the single owner identified in Part I.\r\n },\r\n line11: {\r\n label: Chapter 4 status(FATCA status) of disregarded entity or branch receiving payment,\r\n hint: Check the one box that applies. If you check reporting Model 1 FFI, reporting Model 2 FFI, participating FFI, or U.S. branch claiming a chapter 4 status other than that of nonparticipating FFI, you must complete line 13. If you are a limited branch or branch of a reporting IGA FFI that cannot comply with the requirements of an applicable IGA or the regulations under chapter 4, you must check limited branch.,\r\n },\r\n line12: {\r\n label: Address of branch (street, apt. or suite no., or rural route). Do not use a P.O. box or in-care-of address (other than a registered address).,\r\n hint: Enter the address of the branch or disregarded entity.\r\n },\r\n line13: {\r\n label: GIIN (if any) ► (other than a registered address).,\r\n hint: If you are a reporting Model 1 FFI, a reporting Model 2 FFI, or a participating FFI, you must enter on line 13 the GIIN of your branch that receives the payment. If you are a disregarded entity that completed Part I, line 3 of this form and are receiving payments associated with this form, enter your GIIN. Do not enter your GIIN (if any) on line 9. If you are a U.S. branch, enter a GIIN applicable to any other branch of the FFI (including in its residence country) of which the branch is a part. If you are a QI that is an NFFE and a withholding agent requests your chapter 4 status, you may provide a statement certifying to your chapter 4 status as an NFFE.,\r\n tip: If you are in the process of registering with the IRS as a participating FFI, a reporting Model 1 FFI, or a reporting Model 2 FFI but have not received a GIIN, you may complete this line by writing “applied for.” However, the person requesting this form from you must receive and verify your GIIN within 90 days.\r\n },\r\n partIII: {\r\n hint: You should only complete one part from Parts III through VIII. If you are acting in multiple capacities, provide separate Forms W-8IMY for each capacity. For example, if you are acting as a qualified intermediary for one account, but a nonqualified intermediary for another account, provide one Form W-8IMY in your capacity as a qualified intermediary and a separate Form W-8IMY in your capacity as a nonqualified intermediary.
    withholding statement of a QI. As a QI, you must provide a withholding statement to each withholding agent from which you receive reportable amounts or withholdable payments if you have not assumed primary reporting and withholding responsibility under chapter 3 and chapter 4 with respect to the payment and, if you are receiving a reportable amount on behalf of a U.S. nonexempt recipient, you have not assumed primary Form 1099 reporting and backup withholding responsibility for the payment. In addition, a QI that is acting as a QDD and also receives payments in a non-QDD capacity whether or not it assumes primary withholding responsibility for such payments must provide a withholding statement that designates its QDD accounts (and provides other information as necessary). The withholding statement becomes an integral part of the Form W-8IMY and, therefore, the certification statement that you sign in Part XXIX of the form applies to the withholding statement as well as to the form.
    Note. If you are a QI that is acting as either a QDD or a QSL (but not both), you do not have to provide a withholding statement if you receive payments only in your QDD or QSL capacity.
    A QI withholding statement must:
    • Designate those accounts for which you act as a QI,
    • Designate those accounts for which you are assuming primary withholding and reporting responsibility under chapter 3 and chapter 4 of the Code,
    • If applicable, designate those accounts or payments for which you are acting as a QDD,
    • If applicable, designate those accounts or payments for which you are acting as a QSL with respect to any U.S. source substitute dividends, and
    • Provide information to allocate the payment, as applicable, to chapter 3 withholding rate pools, chapter 4 withholding rate pools, or other pools of payees permitted under the chapter 4 regulations. See Regulations section 1.1471-3(c) (3)(iii)(B)(2).
    For chapter 4 purposes. A QI receiving a withholdable payment must provide a withholding statement which satisfies the requirements of an FFI withholding statement or chapter 4 withholding statement (if the QI is not an FFI) when the QI does not assume primary withholding responsibility under chapter 3 and chapter 4 and Form 1099 reporting and backup withholding responsibility for the payment.
     A QI that is an FFI may provide an FFI withholding statement to allocate the payment to chapter 4 withholding rate pools (as applicable) or other pool of payees permitted on an FFI withholding statement under the chapter 4 regulations. See Regulations section 1.1471-3(c)(3)(iii)(B)(2). A QI may also provide on the withholding statement a single pool of nonparticipating FFIs, a single pool of recalcitrant account holders of the QI or another intermediary that is a participating FFI or registered deemed-compliant FFI, and, if the QI does not assume primary Form 1099 and backup withholding responsibility, a chapter 4 withholding rate pool of U.S. payees. See also Form 1099 reporting, later. A chapter 4 withholding rate pool of U.S. payees may include:
    • If the QI is a reporting Model 1 FFI, an account holder that is not withheld on under chapter 3, chapter 4, or section 3406 that the QI reports as a U.S. account pursuant to the Model 1 IGA because the account has U.S. indicia and the QI has not obtained appropriate documentation to treat the account as held by other than a specified U.S. person;
    • If the QI is a reporting Model 2 FFI, an account holder that is not withheld on under chapter 3, chapter 4, or section 3406 that the QI reports as an account holder of a non-consenting U.S. account as described in the Model 2 IGA;
    • For a non-U.S. payor (as described in Regulations section 1.6049-5(c)(5)) that is a participating FFI (including a reporting Model 2 FFI), registered deemed-compliant FFI, or reporting Model 1 FFI, an account holder not withheld on under chapter 4 or section 3406 who the QI reports under chapter 4 or an applicable IGA (including the account holder’s TIN).
     An FFI withholding statement must also identify each intermediary or flow-through entity that is receiving a payment on behalf of a payee and include such entity’s chapter 4 status and GIIN (if applicable), excluding any intermediary or flow-through entity that is an account holder or interest holder in another QI, WP, or WT. An FFI withholding statement of a QI may combine withholding rate pool information provided by such an entity to the QI with withholding rate pools comprised of accounts that the QI maintains.
     A QI that is not an FFI and that does not assume primary withholding responsibility under chapter 3 and chapter 4 must provide, for a withholdable payment, a chapter 4 withholding statement that contains the name, address, TIN (if any), entity type (if applicable), and chapter 4 status of each payee, the amount allocated to each payee, a valid withholding certificate or other documentation sufficient to establish the payee’s chapter 4 status. However, a chapter 4 withholding statement may include pooled information for payees that are nonparticipating FFIs that hold accounts that the QI maintains or hold accounts with an intermediary or flow-through entity receiving the payment from the QI. A QI may also provide another pool of payees as permitted under the chapter 4 regulations for a chapter 4 withholding statement. See Regulations section 1.1471-3(c)(3)(iii)(B).
    For chapter 3 purposes. In the case of a reportable amount that is a withholdable payment, any portion of the payment for which you are acting as a QI that is not allocated to a chapter 4 withholding rate pool or a U.S. non-exempt recipient (including for backup withholding purposes) must be allocated to a chapter 3 withholding rate pool or pool of U.S. exempt recipients. A chapter 3 withholding rate pool is a payment of a single type of income, based on the categories of income reported on Form 1042-S or Form 1099 (for example, interest or dividends), that is subject to a single rate of withholding and is exempt from chapter 4 withholding. The chapter 3 withholding rate pool may be established by any reasonable method agreed upon by you and the withholding agent. For example, you may agree to establish a separate account for a single chapter 3 withholding rate pool or you may agree to divide a payment made to a single account into portions allocable to each chapter 3 withholding rate pool. You must provide the chapter 3 withholding rate pool information that is required for the withholding agent to meet its withholding and reporting obligations. A withholding agent may request any information reasonably necessary to withhold and report payments correctly.
    ,\r\n },\r\n line14a: {\r\n hint: Check box 14a if you are a qualified intermediary (QI) (whether or not you assume primary withholding responsibility) for the payments for which you are providing this form. A QI that is an FFI must be a participating FFI, registered deemed-compliant FFI, exempt beneficial owner that is a central bank of issue that meets the requirements of and agrees to be treated as a participating FFI (including a reporting Model 2 FFI) or a registered deemed-compliant FFI (including a reporting Model 1 FFI) with respect to any account that it maintains and that is held in connection with a commercial financial activity described in Regulations section 1.1471-6(h) and for which it receives a withholdable payment, or FFI treated as a deemed-compliant FFI under an applicable IGA that is subject to due diligence and reporting requirements similar to those applicable to a registered deemed-compliant FFI. By checking the box, you are certifying to the applicable statements contained on line 14a. See the QI agreement for the definition of “account” for purposes of Part III.,\r\n },\r\n line14b: {\r\n hint: Check box 14b only if you are not providing a withholding statement with this form because you are acting as a QI (but not acting as a QDD) and have assumed primary withholding responsibility under both chapter 3 (nonresident alien withholding) and chapter 4 with respect to the account(s) and you are either assuming primary Form 1099 reporting and backup withholding responsibility or are permitted to satisfy and do satisfy your chapter 61 requirements as a participating FFI or registered deemed-compliant FFI as described in Regulations section 1.6049-4(c)(4).,\r\n },\r\n line14c: {\r\n hint: Check box 14c if you have assumed only primary withholding responsibility under both chapter 3 (nonresident alien withholding) and chapter 4 with respect to the account(s) identified on this line or in a withholding statement associated with this form.,\r\n },\r\n line14d: {\r\n hint: Check box 14d if you have assumed only primary Form 1099 reporting and backup withholding responsibility with respect to the accounts identified on this line or in a withholding statement associated with this form (including satisfying as a participating FFI or registered deemed-compliant FFI your Form 1099 reporting to the extent permitted under Regulations sections 1.6049-4(c)(4)(i) and (c)(4)(ii)).,\r\n },\r\n line14e: {\r\n hint: Check box 14e only if you have not assumed primary Form 1099 reporting and backup withholding responsibility. Also check the applicable certification(s) in (i), (ii), and (iii). Check box 14e(i) if you are transmitting Forms W-9 (or otherwise providing information for the withholding agent to report on Form 1099, including when backup withholding applies or withholding under chapter 4 with respect to recalcitrant account holders) with respect to each U.S. non-exempt recipient account identified on this line or in a withholding statement associated with this form. If you do not have any U.S. non-exempt recipient account holders, you should not check box 14e(i). If you subsequently acquire a U.S. non-exempt recipient account holder that receives payments associated with this form, you may be required to update your form as well as your withholding statement and transmit a Form W-9 (or other required information) in order for your form to remain valid. If you are allocating any portion of the payment on a withholding statement to a chapter 4 withholding rate pool of U.S. payees in lieu of providing Forms W-9, you must additionally certify by checking boxes 14e(ii) and 14e(iii) that (as applicable):
    • For each account holder included in a chapter 4 withholding rate pool of U.S. payees who holds an account that you maintain, you are permitted to provide this pool under Regulations section 1.6049-4(c)(4)(iii) (including for payments of income other than interest for which reporting would be required under chapter 61 but for a coordination rule similar to that provided in Regulations section 1.6049-4(c)(4)(iii)); and/or
    • For a withholding rate pool of U.S. payees that includes account holders of another intermediary or flow-through entity, you have obtained or will obtain documentation to establish that the intermediary or flow-through entity is a participating FFI, registered deemed-compliant FFI, or a qualified intermediary. See Regulations sections 1.1471-3(d) (4) and 1.1471-3(e) for more information on the requirements for documenting such chapter 4 statuses.
    ,\r\n caution: A payment that is subject to chapter 3 withholding or that should be subject to chapter 4 withholding may not be included in a U.S. payee pool that is described in Regulations section 1.6049-4(c)(4)(ii).\r\n },\r\n line14f: {\r\n hint: Check box 14f to certify that you are a QI that is acting as a QSL with respect to all payments associated with this form that are U.S. source substitute dividends made by a party to a securities lending transaction (as described in Notice 2010-46).,\r\n },\r\n line14g: {\r\n hint: Check line 14g to certify that you are a QI that is acting as a QDD and assuming primary withholding responsibility under chapter 3 and chapter 4 and primary Form 1099 reporting and backup withholding responsibility. This certification means that you assume such responsibility and have provided a withholding statement identifying all accounts for which you are acting as a QDD (unless you are acting as a QDD for all accounts) for the payments with respect to potential section 871(m) transactions and underlying securities you receive as a principal.,\r\n },\r\n line14h: {\r\n hint: Check line 14h to certify that you are a QI that is assuming primary withholding responsibility under chapter 3 and chapter 4 and primary Form 1099 reporting and backup withholding responsibility with respect to all payments associated with this form that are U.S. source interest and substitute interest payments, as permitted by (and described in) the QI agreement. You may act as a QI with respect to such substitute interest payments under the QI agreement regardless of whether you are acting in a principal or intermediary capacity with respect to payments of interest and substitute interest you receive that are associated with this form.
     Although a QI obtains withholding certificates or appropriate documentation from beneficial owners, payees, and, if applicable, shareholders, as specified in its withholding agreement with the IRS, a QI does not need to attach the certificates or documentation to this form. However, to the extent you have not assumed primary Form 1099 reporting or backup withholding responsibility and are not permitted to allocate the payment to a chapter 4 withholding rate pool of U.S. payees under Regulations section 1.6049-4(c)(4)(iii), you must disclose the names of those U.S. persons for whom you receive reportable amounts and that are not exempt recipients (as defined in Regulations section 1.6049-4(c)(1)(ii) or under section 6041, 6042, 6045, or 6050N). You should make this disclosure by attaching to Form W-8IMY the Forms W-9 (or substitute forms) of persons that are U.S. non-exempt recipients. If you do not have a Form W-9 for a non-exempt U.S. payee, you must attach to Form W-8IMY any information you do have regarding that person’s name, address, and TIN for a withholding agent to report the payment.
    ,\r\n caution: See your QI agreement for a more comprehensive description of the rules applicable to your withholding statement, including the requirements of the statement under both chapter 3 and chapter 4 for reportable amounts that are also withholdable payments.\r\n },\r\n partIV: {\r\n hint: If you are acting on behalf of another NQI or on behalf of a foreign partnership or foreign trust that is not a withholding foreign partnership or a withholding foreign trust, you must attach to your Form W-8IMY the Form W-8IMY of the other NQI, foreign partnership, or foreign trust together with the withholding certificates and other documentation attached to that Form W-8IMY that are required, as applicable, for both chapter 3 and chapter 4 purposes.
    Withholding statement of an NQI. An NQI must provide a withholding statement and appropriate documentation to obtain reduced rates of withholding for its customers under chapter 3 and chapter 61 and to avoid certain reporting responsibilities. However, see the paragraph later describing an NQI’s withholding statement for chapter 4 purposes for when an NQI may provide a chapter 4 withholding rate pool of U.S. payees without such documentation. The withholding statement must be provided prior to a payment and becomes an integral part of the Form W-8IMY and, therefore, the certification statement that you sign in Part XXIX of the form applies to the withholding statement as well as to the form.
     For chapter 4 purposes. An NQI receiving a withholdable payment must provide a withholding statement which satisfies the requirements of an FFI withholding statement or chapter 4 withholding statement (if the NQI is not a participating FFI or registered deemed-compliant FFI).
     An FFI withholding statement may allocate the payment to chapter 4 reporting rate pools (as appropriate), including a chapter 4 withholding rate pool for nonparticipating FFIs, recalcitrant account holders (in each class of account holders described in Regulations section 1.1471-4(d)(6)(i)), or other pool of payees permitted on an FFI withholding statement under the chapter 3 or 4 regulations (see Regulations sections 1.1471-3(c)(3)(iii)(B) and 1.1441-1(e)(3)(iv)(C)), and, for an NQI that is a participating FFI (including a reporting Model 2 FFI) or a registered deemed-compliant FFI (including a reporting Model 1 FFI), U.S. payees (see the description of the chapter 4 withholding rate pool of U.S. payees described in Withholding statement of a QI, earlier). However, an NQI may allocate a portion of a reportable amount (regardless of whether the payment is a withholdable payment) to a chapter 4 withholding rate pool of U.S. payees when the NQI satisfies the requirements to provide such a pool (including the requirement to certify to its status as a participating FFI (including a reporting Model 2 FFI) or registered deemed-compliant FFI (including a reporting Model 1 FFI)). The withholding statement must also identify each intermediary or flow-through entity that is receiving a payment (excluding any intermediary or flow-through entity that is an account holder or interest holder in another QI, WP, or WT), each such entity’s chapter 4 status and GIIN (if applicable), and the chapter 4 withholding rate pools associated with each such entity receiving the payment.
     A chapter 4 withholding statement must contain the name, address, TIN (if any), entity type, chapter 4 status of each payee, the amount allocated to each payee, and a valid withholding certificate or other documentation sufficient to establish each payee’s chapter 4 status. However, a chapter 4 withholding statement may instead include pooled information for payees that are nonparticipating FFIs or another pool of payees as permitted under the chapter 4 regulations for a chapter 4 withholding statement. The withholding statement must also identify each intermediary or flow-through entity that is receiving a payment (excluding any intermediary or flow-through entity that is an account holder or interest holder in another QI, WP, or WT), each such entity’s chapter 4 status and GIIN (if applicable), and the chapter 4 withholding rate pools associated with each such entity receiving the payment.
    For chapter 3 and chapter 61 purposes. For chapter 3 and chapter 61 purposes, a withholding statement for a reportable amount must include the information described later. For such payments that are also withholdable payments, the withholding statement should allocate only the portion of the payment that was not allocated to a chapter 4 withholding rate pool (as described earlier) or a pool described in Regulations section 1.1441-1(e)(3)(iv)(C) or to a payee identified on the withholding statement to whom withholding was applied under chapter 4, as follows:
    • Include the name, address, U.S. TIN (if any), chapter 4 status (for a foreign person receiving a withholdable payment), and the type of documentation (documentary evidence, Form W-9, or type of Form W-8) for every person for whom documentation has been received and must state whether that person is a U.S. exempt recipient, a U.S. non-exempt recipient, or a foreign person. The statement must indicate whether a foreign person is a beneficial owner or an intermediary, flow-through entity, U.S. branch, or territory financial institution and the type of recipient, based on the recipient codes shown on Form 1042-S;
    • Allocate each payment by income type to every payee for whom documentation has been provided. The type of income is based on the income codes reported on Form 1042-S (or, if applicable, the income categories for Form 1099). If a payee receives income through another NQI, flow-through entity, or U.S. branch acting as an intermediary, your withholding certificate must also state the name, address, U.S. TIN (if known), and, for a withholdable payment, the chapter 4 status (if required) and GIIN (if applicable) of the other NQI or U.S. branch from which the payee directly receives the payment or the flow-through entity in which the payee has a direct ownership interest. If another NQI, flow-through entity, or U.S. branch fails to allocate a payment, you must provide, for that payment, the name of the NQI, flow-through entity, or U.S. branch that failed to allocate the payment;
    • If a payee is identified as a foreign person, you must specify the rate of withholding under chapter 3 to which the payee is subject, the payee’s country of residence and, if a reduced rate of withholding is claimed, the basis for that reduced rate (for example, treaty benefit, portfolio interest, or exemption under section 501(c)(3), 892, or 895). The statement must also include the U.S. or foreign TIN (if required) and, if the beneficial owner is not an individual and is claiming treaty benefits, state whether the limitation on benefits and section 894 statements have been provided by the beneficial owner. You must inform the withholding agent as to which payments those statements relate; and
    • Include any other information the withholding agent requests in order to fulfill its withholding and reporting obligations under chapters 3 and 4 of the Code and/or Form 1099 reporting and backup withholding responsibility.
    Alternative procedure for NQIs. To use the alternative procedure you must inform the withholding agent on your withholding statement that you are using the procedure and the withholding agent must agree to the procedure.
     Under this procedure, you must provide a withholding agent with all the information required on the withholding statement (see Withholding statement of an NQI, earlier) and all payee documentation, except the specific allocation information for each payee, prior to the payment of a reportable amount. In addition, you must provide the withholding agent with withholding rate pool information. The withholding statement must assign each payee that is not subject to withholding under chapter 4 to a chapter 3 withholding rate pool prior to the payment of a reportable amount. The withholding rate pool may be established by any reasonable method agreed upon by you and the withholding agent. For example, you may agree to establish a separate account for a single withholding rate pool, or you may agree to divide a payment made to a single account into portions allocable to each withholding rate pool. You must determine withholding rate pools based on valid documentation or, to the extent a payment cannot be reliably associated with valid documentation, the applicable presumption rules.
     You must provide the withholding agent with sufficient information to allocate the income in each withholding rate pool to each payee (including U.S. exempt recipients) within the pool no later than January 31 of the year following the year of payment. If you fail to provide allocation information, if required, by January 31 for any withholding rate pool, you may not use this procedure for any payment made after that date for all withholding rate pools. You may remedy your failure to provide allocation information by providing the information to the withholding agent no later than February 14.
     In the case of a reportable amount that is also a withholdable payment, an NQI may include amounts allocable to a chapter 4 withholding rate pool (other than a chapter 4 withholding rate pool of U.S. payees) and payees subject to chapter 4 withholding for whom the NQI will provide payee specific information in a 30-percent rate pool together with payees subject to chapter 3 withholding at the 30-percent rate and may not otherwise apply these provisions for payments made to U.S. non-exempt recipients (regardless of whether the payment is a withholdable payment). For the amount of the payment allocable to a chapter 4 withholding rate pool of U.S. payees, an NQI may include such an amount in the withholding rate pool that is exempt from withholding (an NQI can include such payees in an exempt pool regardless of whether the payment is a withholdable payment). The NQI must identify prior to the payment each chapter 4 withholding rate pool to be allocated a portion of the payment and must also allocate by January 31 the portion of the payment to each such pool in addition to allocating the payment to each other payee as described in the preceding paragraph. See Regulations section 1.1441-1(e)(3)(iv)(D) for further information on alternative procedures for an NQI.
    ,\r\n caution: A payment that is subject to chapter 3 withholding or that should be subject to chapter 4 withholding should not be included in a U.S. payee pool that is described in Regulations section 1.6049-4(c)(4)(ii).\r\n },\r\n line15a: {\r\n hint: If you are providing Form W-8IMY as a nonqualified intermediary (NQI), you must check box 15a. By checking this box, you are certifying to all of the statements on line 15a.,\r\n tip: If you are required to provide a chapter 4 status on line 5 (see specific instructions for line 5) and are acting as an intermediary for a withholdable payment, you must provide your chapter 4 status on line 5 or as otherwise permitted in these instructions to avoid withholding at the chapter 4 rate of 30% being applied to any withholdable payment you receive from the withholding agent regardless of whether you check box 15b (except for documentation provided with respect to exempt beneficial owners). See the specific instructions for Part IX.\r\n },\r\n line15b: {\r\n hint: Check box 15b if you are using this form to transmit withholding certificates or other documentation along with a withholding statement (subject to the certifications on this form) that satisfies the requirements of chapters 3 and 4 (including if you are providing pooled information for purposes of chapter 61 under the alternative procedure for U.S. non-exempt recipients, discussed later, or chapter 4 withholding rate pools (as applicable) for a withholdable payment).,\r\n },\r\n line15c: {\r\n hint: Check box 15c to certify that you are permitted under Regulations section 1.6049-4(c)(4) to provide a chapter 4 withholding rate pool of U.S. payees to which a payment is allocated on a withholding statement associated with the Form W-8IMY.,\r\n },\r\n line15d: {\r\n hint: Check box 15d to certify that you are acting as a QSL with respect to the accounts identified on this line or in a withholding statement associated with this form with respect to a payment that is a U.S. source substitute dividend.,\r\n },\r\n partV: {\r\n hint: Check box 16a to certify that you are a financial institution (other than an investment entity that is not also a depository institution, custodial institution, or specified insurance company) incorporated or organized under the laws of a possession of the United States.
     You must also check either box 16b or 16c. Check box 16b to certify that you have agreed to be treated as a U.S. person for purposes of both chapter 3 and chapter 4 with respect to payments associated with this Form W-8IMY. In this case, you will be responsible for chapter 3 withholding and reporting, backup withholding under section 3406, and chapter 4 withholding and reporting for any payments you make to persons for whom you are receiving a reportable amount or withholdable payment. If you check this box 16b, you must provide an EIN on line 8.
     Check box 16c to certify that you are a territory financial institution that has not agreed to be treated as a U.S. person. You must certify that you are transmitting withholding certificates or other documentation for persons for whom you are receiving a payment (as required for chapter 3, chapter 61, and section 3406 purposes, and, in the case of a withholdable payment, documentation required for chapter 4 withholding and reporting purposes). See Regulations section 1.1471-3(a)(3)(iv). You must also certify that you have provided or will provide a withholding statement (as required). The withholding statement must provide the same information outlined under Withholding statement of an NQI, earlier, including the applicable chapter 4 information if you are receiving a withholdable payment.
    ,\r\n caution: A territory entity that is a flow-through entity but is not a territory FI may not complete this Part V and agree to be treated as a U.S. person. Instead, complete Part IV or Part VIII, as appropriate.\r\n },\r\n partVI: {\r\n hint: Check box 17a to certify that you are a U.S. branch described in Regulations section 1.1441-1(b)(2)(iv) receiving income that is not effectively connected with the conduct of a trade or business in the United States.
     You must also check either box 17b or 17c. Check box 17b to certify that you are a U.S. branch of a foreign bank or insurance company described in this certification that is a participating FFI, registered deemed-compliant FFI, or NFFE that has agreed with the withholding agent to be treated as a U.S. person with respect to payments associated with this Form W-8IMY. In such case, you will be responsible for chapter 3 withholding and reporting, backup withholding under section 3406, chapter 4 withholding and reporting for any payments you make to persons for whom you are receiving a withholdable payment, and will be treated as a U.S. payor for chapter 61 purposes. See Regulations section 1.6049-5(c)(5)(i)(F). You must provide your EIN on line 8 and, if you are a branch of an FFI receiving a withholdable payment, a GIIN on line 9 of another branch of the FFI of which you are a part.
     Check box 17c to certify that you are a U.S. branch that does not have an agreement with the withholding agent to be treated as a U.S. person. You must certify that you are transmitting withholding certificates or other documentation for persons for whom you are receiving the payment. You must also certify that you have provided or will provide a withholding statement (as required) and, if you are receiving a withholdable payment, provide your chapter 4 status in Part I, line 5 (if required). The withholding statement must provide the same information outlined under Withholding statement of an NQI, earlier, including the applicable chapter 4 information required for the withholding statement if you are receiving a withholdable payment. See the information for an FFI withholding statement or a chapter 4 withholding statement in Withholding statement of an NQI, earlier.
    ,\r\n },\r\n partVII: {\r\n hint: Check box 18 if you are a WP or a WT for the accounts for which you are providing this form and you are receiving the income on behalf of your partners, beneficiaries, or owners. If you are not receiving the income on behalf of your partners, beneficiaries, or owners, do not complete this Part VII. Instead, complete Part III or Part IV, whichever is appropriate.
     If you are acting as a WP or WT, you must assume primary withholding and reporting responsibility under chapter 3 and chapter 4 for all payments that are made to you for your partners, beneficiaries, or owners. Therefore, you are not required to provide information to the withholding agent regarding each partner’s, beneficiary’s, or owner’s distributive share of the payment and the information for the withholding agent to report under section 1472 (if otherwise required). If you are also receiving payments from the same withholding agent for persons other than your partners, beneficiaries, or owners, you must provide a separate Form W-8IMY for those payments. If you are receiving a withholdable payment, you must provide your chapter 4 status in line 5 and provide your GIIN (if applicable).
    ,\r\n },\r\n partVIII: {\r\n hint: Check box 19a if you are a foreign partnership or a foreign simple or grantor trust that is not a WP or WT. Check box 19b if you are a foreign partnership or foreign grantor trust providing this form for purposes of section 1446. If you are a foreign partnership or grantor trust receiving payments of reportable amounts and providing this form for purposes of section 1446, you may check both boxes. By checking either box, you are certifying to the applicable statements on the form.
    Note. If you are receiving income that is effectively connected with the conduct of a trade or business in the United States, provide Form W-8ECI (instead of Form W-8IMY). If you are not receiving the income on behalf of your partners, beneficiaries, or owners, do not complete Part VIII. Instead, complete Part III or Part IV, whichever is appropriate. If you are a hybrid entity claiming treaty benefits, provide Form W-8BEN-E. However, if you are receiving a withholdable payment you may also be required to provide this Form W-8IMY and disclose your chapter 4 status and the chapter 4 status of each of your owners. See the instructions for Form W-8BEN-E for more information about hybrid entities claiming treaty benefits.
     If you are acting on behalf of an NQI or another foreign partnership or foreign trust that is not a withholding foreign partnership or a withholding foreign trust, you must associate with your Form W-8IMY the Form W-8IMY of the other foreign partnership or foreign trust together with the withholding certificates and other documentation attached to that other form.
     If you are receiving a withholdable payment, you must provide a chapter 4 status in line 5 other than that of a nonparticipating FFI and provide your GIIN (if applicable) and the information required for the withholding agent to report under section 1472.
    Withholding statement of nonwithholding foreign partnership or nonwithholding foreign trust. You must provide the withholding agent with a withholding statement to obtain reduced rates of withholding and relief from certain reporting obligations. The withholding statement must provide the same information outlined under Withholding statement of an NQI, earlier. The withholding statement becomes an integral part of the Form W-8IMY. Thus, if you are an FFI and allocate any portion of the payment to a chapter 4 withholding rate pool of U.S. payees with respect to accounts that you maintain, you must meet the requirements of Regulations section 1.6049-4(c)(4)(iii) and certify to your status in Part I, line 5 as a participating FFI, registered deemed-compliant FFI, reporting Model 1 FFI, or reporting Model 2 FFI. By providing a withholding statement making such an allocation with this form, you certify that you meet the requirements outlined for an NQI withholding statement described earlier.
    Certain special rules for partnerships and trusts. Under certain conditions, a QI, WP, or WT may apply special provisions of the relevant withholding agreement to certain partnerships and trusts that are not acting as a WP or WT. See the QI agreement, WP agreement, or WT agreement (as applicable) specifying these special procedures.
    Foreign partnerships and trusts providing Form W-8IMY for purposes of section 1446. In general, a partnership is required to withhold under section 1446 on effectively connected taxable income (ECTI) allocable to a foreign partner. A foreign upper-tier partnership (UTP) that is a partner in a lower-tier partnership (LTP) should provide the LTP with a Form W-8IMY and documentation sufficient for the LTP to determine the status of the indirect partner to whom the ECTI is allocable (looking through additional foreign UTPs, if applicable) and to determine such partner’s share of the lower-tier partnership’s ECTI.
     A foreign grantor trust that is a partner in a partnership should provide Form W-8IMY to the partnership along with documentation and information concerning the grantor or other owner sufficient for the partnership to reliably associate the portion of the trust’s allocable share of ECTI with the grantor or other owner.
     Check line 19b to certify that you are a foreign partnership or grantor trust providing this Form W-8IMY to a lower-tier partnership for purposes of section 1446.
    ,\r\n tip: If you are providing this Form W-8IMY solely for purposes of section 1446, you generally are not required to provide a chapter 4 status because items of effectively connected income are not withholdable payments. However, if you do not provide a chapter 4 status and subsequently receive a withholdable payment, you will also be required to provide a Form W-8IMY to provide your chapter 4 status or the lower-tier partnership may have to withhold on the payment. You may provide your chapter 4 status on this form even if you are not required to do so.\r\n },\r\n partIX: {\r\n hint: Check box 20 to certify that you are transmitting withholding certificates or other documentation for exempt beneficial owners for chapter 4 purposes on whose behalf you are receiving a payment that is a withholdable payment. See Regulations section 1.1471-6. You must also certify that you have provided or will provide a withholding statement (as required) allocating a portion of the payment to the exempt beneficial owners as required under Regulations section 1.1471-3(d)(8)(ii). The withholding statement must include the name, address, TIN (if any), entity type, and chapter 4 status of each exempt beneficial owner on behalf of which the nonparticipating FFI is receiving the payment, the amount of the payment allocable to each exempt beneficial owner, a valid withholding certificate or other documentation sufficient to establish the chapter 4 status of each exempt beneficial owner under the requirements of chapter 4, and any other information the withholding agent reasonably requests in order to fulfill its obligations under chapter 4. Additionally, the withholding statement must provide all information required for purposes of chapter 3 with respect to each exempt beneficial owner if the payment is subject to withholding under chapter 3. The withholding statement must allocate the remainder of the payment that is not allocated to an exempt beneficial owner to the nonparticipating FFI receiving the payment.,\r\n tip: You are not required to complete this part unless you are a nonparticipating FFI providing documentation on behalf of an exempt beneficial owner.\r\n },\r\n partX: {\r\n hint: On line 21a, enter the name of the sponsoring entity that has agreed to fulfill your chapter 4 due diligence, reporting, and withholding obligations on your behalf. Enter the GIIN of the sponsoring entity identified in line 21a.
    Note. A sponsored FFI is not required to have obtained its own GIIN before the date specified in published guidance (i.e., January 1, 2017). However, a sponsored entity that has already obtained a GIIN must provide it on line 9.
     You must check the applicable box in line 21b or 21c to certify that you are either an investment entity or controlled foreign corporation (within the meaning of section 957(a)) and satisfy the other relevant requirements for this classification.
    ,\r\n },\r\n partXI: {\r\n hint: All owner-documented FFIs must check box 22a to certify that you satisfy the requirements for this classification and are providing this form to a U.S. financial institution, a participating FFI, or a reporting Model 1 FFI that has agreed to act as a designated withholding agent with respect to the entity identified on line 1 (see Regulations section 1.1471-5(f) (3)).
     You must also check either box 22b or 22c. Check box 22b to certify that you have provided or will provide the documentation set forth in the certifications, including the owner reporting statement described in this line 22b. Check box 22c to certify that you have provided or will provide an auditor’s letter (in lieu of the information required by line 22(b)) that satisfies the requirements described in this line.
    ,\r\n caution: An owner-documented FFI should only complete Form W-8IMY if it is a flow-through entity receiving income allocable to its partners, owners, or beneficiaries. An owner-documented FFI is not permitted to act as an intermediary with respect to a withholdable payment.\r\n },\r\n partXII: {\r\n hint: All nonregistering local banks must check box 23 to certify that you satisfy all of the requirements for this certified deemed-compliant classification.,\r\n },\r\n partXIII: {\r\n hint: All FFIs with only low-value accounts must check box 24 to certify that you satisfy all of the requirements for this certified deemed-compliant classification.,\r\n },\r\n partXIV: {\r\n hint: On line 25a, enter the name of the sponsoring entity that has agreed to fulfill your chapter 4 due diligence, reporting, and withholding obligations on your behalf. You must also enter the GIIN of your sponsoring entity on line 9.
     All sponsored, closely held investment vehicles must check box 25b to certify that you satisfy the requirements for certified deemed-compliant classification as a sponsored entity.
    ,\r\n },\r\n partXV: {\r\n hint: All limited life debt investment entities must check box 26 to certify that you satisfy the requirements for this certified deemed-compliant classification.,\r\n },\r\n partXVI: {\r\n hint: An investment advisor or investment manager must check the box to certify that it meets all of the requirements for this certified deemed-compliant status.,\r\n },\r\n partXVII: {\r\n hint: All restricted distributors must check box 28a to certify that you satisfy the requirements for this classification.
     You must also check either box 28b or 28c, as appropriate, to certify that your distribution agreement meets the requirements of this classification.
    ,\r\n },\r\n partXVIII: {\r\n hint: A foreign central bank of issue must check box 29 to certify that you are acting as an intermediary and are an entity defined in Regulations section 1.1471-6 that is treated as the beneficial owner of the payment for chapter 4 purposes (applying the rule in Regulations section 1.1471-6(d)(4)). You cannot be treated as an intermediary for purposes of this Part XVIII if you are receiving the payment in connection with a commercial activity described in Regulations section 1.1471-6(h)(1) or are not receiving payments subject to chapter 3 withholding.,\r\n },\r\n partXIX: {\r\n hint: Check box 30 to indicate that you are treated as a nonreporting IGA FFI under an applicable IGA, including an entity treated as a registered deemed-compliant FFI under an applicable IGA. You must identify the applicable IGA by entering the name of the jurisdiction that has the applicable IGA in effect with the United States and indicate whether it is a Model 1 or a Model 2 IGA. You must also provide the withholding agent with the specific category of entity described in Annex II of the IGA applicable to your status. In providing the specific category of FFI described in Annex II, you should use the language from Annex II that best and most specifically describes your status in the IGA. For example, indicate “investment entity wholly owned by exempt beneficial owners” rather than “exempt beneficial owner.” If you are a nonreporting IGA FFI claiming a deemed-compliant status under the regulations, you must instead indicate on this line which section of the regulations you qualify under.
      If you are a nonreporting FFI under an applicable IGA because you qualify as an owner-documented FFI under the regulations, do not check “Nonreporting IGA FFI.” Instead you must check “Owner-documented FFI” and complete Part XI rather than this Part XIX.
      If you are an FFI treated as a registered deemed-compliant FFI under an applicable Model 2 IGA, you must provide your GIIN in the space provided. The GIIN does not need to be provided on line 9. See https://home.treasury.gov/policy-issues/tax-policy/foreign-account-tax-compliance-act for a list of jurisdictions treated as having an IGA in effect for purposes of making this certification.
    Note. If you are a nonreporting IGA FFI and you have registered and received a GIIN and have not provided it in line 9 because your trustee's or sponsor's GIIN is in line 9, you should provide it here.
    ,\r\n },\r\n partXX: {\r\n hint: All exempt retirement plans must check the appropriate box to certify that you satisfy the requirements for this classification.,\r\n caution: If you are not a flow-through entity or acting as an intermediary with respect to the payment for chapter 3 purposes, do not complete Form W-8IMY. If you are the beneficial owner of the payment and are claiming an exemption under sections 115(2), 892, or 895 as well as exempt beneficial owner status under Regulations section 1.1471-6 you should provide Form W-8EXP. If you are receiving payments which do not qualify for a statutory exemption from tax but for which you are claiming benefits under an applicable income tax treaty, provide Form W-8BEN-E.\r\n },\r\n partXXI: {\r\n hint: All excepted nonfinancial group entities must check box 32 to certify that you satisfy the requirements for this classification.,\r\n },\r\n partXXII: {\r\n hint: All excepted nonfinancial start-up companies must check box 33 to certify that you satisfy the requirements for this classification. You must also provide the date you were formed or your board passed a resolution (or equivalent measure) approving a new line of business (which cannot be that of a financial institution or passive NFFE).,\r\n },\r\n partXXIII: {\r\n hint: All excepted nonfinancial group entities in liquidation or bankruptcy must check box 34 to certify that you satisfy the requirements for this classification. You must also provide the date that you filed a plan of liquidation, plan of reorganization, or bankruptcy petition.,\r\n },\r\n partXXIV: {\r\n hint: All publicly traded NFFEs must check box 35a to certify that you are not a financial institution and provide the name of a securities exchange on which the stock of the NFFE is publicly traded.
    An NFFE that is a member of the same expanded affiliated group (as described in Regulations section 1.1471-5(i)) as a publicly traded U.S. or foreign entity must check this box, provide the name of the publicly traded entity, and identify the securities market on which the stock of the publicly traded entity is traded. See Regulations section 1.1472-1(c)(1)(i) to determine if an entity is publicly traded.
    ,\r\n },\r\n partXXV: {\r\n hint: All excepted territory NFFEs must check box 36 to certify that you satisfy the requirements for this classification. See Regulations section 1.1472-1(c)(1)(iii) for the definition of an excepted territory NFFE.,\r\n },\r\n partXXVI: {\r\n hint: All active NFFEs must check box 37 to certify that you satisfy the requirements for this classification.,\r\n },\r\n partXXVII: {\r\n hint: All passive NFFEs must check box 38 to certify that you are not a financial institution (other than an investment entity organized in a possession of the United States). You must also certify that you have provided a withholding statement associated with Form W-8IMY to the extent you are required to provide a withholding statement.,\r\n },\r\n partXXVIII: {\r\n hint: All sponsored direct reporting NFFEs must check the box on line 40 to certify that you are not a financial institution and that you satisfy all relevant requirements for this classification. Provide your GIIN or, prior to the date specified in published guidance (i.e., January 1, 2017), the GIIN of your sponsor on line 9.
     Enter the name and the GIIN of the sponsoring entity in line 39.
    ,\r\n },\r\n partXXIX: {\r\n hint: Form W-8IMY must be signed and dated by a person authorized to sign a declaration under penalties of perjury on behalf of the person whose name is on the form. By signing Form W-8IMY the authorized representative, officer, or agent also agrees to provide a new form within 30 days following a change in circumstances (unless no future payments will be made to the intermediary or flow-through entity by the withholding agent and the requestor does not need an updated form for chapter 4 purposes). ,\r\n },\r\n};\r\n","import React from 'react';\r\n\r\n/* eslint-disable max-len */\r\nexport default {\r\n line1: {\r\n label: 'Name of organization that is acting as intermediary',\r\n hint: Enter your name. By doing so, you are representing to the payer or withholding agent that you are not the beneficial owner of the amounts that will be paid to you (unless you are acting as a QDD or QSL for certain payments associated with this form or you are a QI acting with respect to payments of substitute interest, as permitted by the QI agreement). If you are a disregarded entity, do not enter the business name of the disregarded entity here. Instead, enter the legal name of the entity that owns the disregarded entity (looking through multiple disregarded entities, if applicable).,\r\n },\r\n line2: {\r\n label: 'Country of incorporation or organization',\r\n hint: If you are a corporation, enter the country of incorporation. If you are another type of entity, enter the country under whose laws you are created, organized, or governed. If you are an individual, provide your country of residence for tax purposes.,\r\n },\r\n line3: {\r\n label: 'Name of disregarded entity (if applicable), see instructions',\r\n hint: If you are a disregarded entity receiving a payment, enter your name (if required). You should complete line 3 only if you are a disregarded entity receiving a withholdable payment or hold an account with an FFI requesting this form and you:
    • Have registered with the IRS and been assigned a GIIN associated with the legal name of the disregarded entity; and
    • Are a reporting Model 1 FFI or reporting Model 2 FFI.
    ,\r\n caution: If you are not required to provide the legal name of the disregarded entity, however, you may want to notify the withholding agent that you are a disregarded entity receiving a payment or maintaining an account by indicating the name of the disregarded entity on line 10. However, do not enter the name of the disregarded entity on this line except in the circumstances described\r\n },\r\n line4: {\r\n label: 'Chapter 3 Status (entity type) (Must check one box only.):',\r\n hint: Complete this line to establish your entity status for purposes of chapter 3. Check the one box that applies. If you are a foreign partnership receiving the payment on behalf of your partners, check the “Withholding foreign partnership” box or the “nonwithholding foreign partnership” box, whichever is appropriate. If you are a foreign simple trust or foreign grantor trust receiving the payment on behalf of your beneficiaries or owners, check the “Withholding foreign trust” box, the “nonwithholding foreign simple trust” box, or the “nonwithholding foreign grantor trust” box, whichever is appropriate. If you are a foreign partnership (or a foreign trust) receiving a payment on behalf of persons other than your partners (or beneficiaries or owners), check the “Qualified intermediary” box or the “Nonqualified intermediary” box, whichever is appropriate. A foreign reverse hybrid entity that is providing documentation from its interest holders to claim a reduced rate of withholding under a treaty should check the appropriate box (including “Withholding foreign partnership” or “Withholding foreign trust” if the entity has entered into a withholding agreement). See Parts III through VIII, later, if you are acting in more than one capacity. A partnership or grantor trust submitting Form W-8IMY solely because it is allocated income effectively connected with a U.S. trade or business as a partner in a partnership should check the box for nonwithholding foreign partnership or nonwithholding foreign grantor trust and, if it is submitting or will submit documentation for its partners or owners, it should complete Part VIII. An upper-tier partnership that is allocated ECI as a partner in a partnership may, in certain circumstances, have the lower-tier partnership perform its withholding obligation. Generally, this is accomplished by the upper-tier partnership submitting withholding certificates of its partners (for example, Form W-8BEN) along with a Form W-8IMY, which identifies itself as a partnership, and identifying the manner in which ECI of the upper-tier partnership will be allocated to the partners. For further information, see Regulations section 1.1446-5. A foreign grantor trust that is allocated ECI as a partner in a partnership should provide the withholding certificates of its grantor (for example, Form W-8BEN) along with its Form W-8IMY which identifies the trust as a foreign grantor trust. See Regulations section 1.1446-1(c)(2)(ii)(E) for the rules requiring it to provide additional documentation to the partnership.,\r\n tip: Form W-8IMY may be submitted and accepted to satisfy documentation requirements for purposes of withholding on certain partnership allocations to foreign partners under section 1446. Section 1446 generally requires withholding when a partnership is conducting a trade or business in the United States and allocates income effectively connected with that trade or business (ECI) to foreign persons that are partners in the partnership. Section 1446 can also apply when certain income is treated as effectively connected income of the partnership and is so allocated.\r\n },\r\n line5: {\r\n label: 'Chapter 4 status (FATCA status) (See instructions for details and complete the certification below for the entity’s applicable status.) (Must check one box only.):',\r\n hint: Check the one box that applies to your chapter 4 status. You are only required to provide a chapter 4 status if you are acting as an intermediary with respect to a withholdable payment, you are a flow-through entity receiving a withholdable payment on behalf of your owners (including a reverse hybrid entity providing documentation on behalf of its owners to claim treaty benefits), you are providing a withholding statement associated with this form that allocates a portion of the payment to a chapter 4 withholding rate pool of U.S. payees with respect to your direct account holders (as described in Regulations section 1.6049-4(c)(4)), you are providing this form to an FFI requesting this form to document your chapter 4 status, or you are a QI acting as a QDD receiving payments as a principal or a QI acting with respect to payments of substitute interest. By checking a box on this line, you are representing that you qualify for this classification.
    FFIs Covered by IGAs and Related Entities A reporting FFI resident in, or established under the laws of, a jurisdiction covered by a Model 1 IGA should check “Reporting Model 1 FFI.” A reporting FFI resident in, or established under the laws of, a jurisdiction covered by a Model 2 IGA should check “Reporting Model 2 FFI.” If you are treated as a registered deemed-compliant FFI under an applicable IGA, you should check “Nonreporting IGA FFI” rather than “registered deemed-compliant FFI” and provide your GIIN. See the specific instructions for Part XIX. In general, if you are treated as a nonreporting IGA FFI under an applicable IGA, you should check “Nonreporting IGA FFI” even if you meet the qualifications for deemed-compliant status under the chapter 4 regulations. In such a case, you need not also check your applicable status under the regulations but should provide your GIIN on line 9. However, an owner documented FFI that is treated as a nonreporting IGA FFI under an applicable IGA must check “Owner-documented FFI” and complete Part XI. An FFI that is related to a reporting IGA FFI and that is treated as a nonparticipating FFI in its country of residence should check nonparticipating FFI in line 5. An FFI that is related to a reporting IGA FFI and that is a participating FFI, deemed-compliant FFI, or exempt beneficial owner under the U.S. Treasury regulations or an applicable IGA should check the appropriate box depending on its chapter 4 status rather than the box for nonparticipating FFI.
     If you are an FFI in a jurisdiction treated as having an IGA in effect, you should not check “participating FFI” and should check “Reporting Model 1 FFI” or “Reporting Model 2 FFI” as applicable.
     See https://home.treasury.gov/policy-issues/tax-policy/foreign-account-tax-compliance-act for a list of jurisdictions treated as having an IGA in effect.
    ,\r\n tip: For most of the chapter 4 classifications, you are required to complete additional certifications found in a separate part of this form (see Parts IX through XXVIII). Complete the appropriate part of this form certifying that you meet the conditions of the status indicated on line 5 (as defined under Regulations sections 1.1471-5 or 1.1471-6). Make sure you complete the required portion of this form before signing and providing it to the withholding agent.\r\n },\r\n line6: {\r\n label: Permanent residence address (street, apt. or suite no., or rural route).  Do not use a P.O. box or in-care-of address (other than a registered address).,\r\n hint: Enter the permanent address of the entity identified on line 1. Your permanent residence address is the address in the country where you claim to be a resident for purposes of that country's income tax. Do not show the address of a financial institution (other than yourself), a post office box, or an address used solely for mailing purposes unless such address is the only permanent address you use and it appears in your organizational documents (i.e., your registered address). If you do not have a tax residence in any country, the permanent residence address is where you maintain your principal office or, if you are an individual, where you normally reside.,\r\n },\r\n line7: {\r\n label: Mailing address (if different from above),\r\n hint: Enter your mailing address only if it is different from the address you show on line 6.,\r\n },\r\n line8: {\r\n label: U.S. taxpayer identification number, if required ► ,\r\n hint: You must provide an employer identification number (EIN) if you are a U.S. branch or territory financial institution that agrees to be treated as a U.S. person under Regulations section 1.1441-1(b)(2)(iv)(A), an upper-tier partnership that is allocated ECI as a partner in a partnership, or a foreign grantor trust that is allocated ECI as a partner.
     If you are acting as a qualified intermediary (including a QDD), withholding foreign partnership, or withholding foreign trust, check the appropriate box and enter the EIN that was issued to you in such capacity (your “QI-EIN,” “WP-EIN,” or “WT-EIN”). If you are not acting in that capacity, you must use your U.S. taxpayer identification number (TIN), if any, that is not your QI-EIN, WP-EIN, or WT-EIN.
     A nonqualified intermediary, a nonwithholding foreign partnership, or a nonwithholding foreign simple or grantor trust is generally not required to provide a U.S. TIN. However, a QSL providing this form with respect to a U.S. source substitute dividend must provide an EIN (including a QI-EIN if the QSL is a QI).
    ,\r\n },\r\n line9: {\r\n label: GIIN (if applicable),\r\n hint: If you are a participating FFI (including a reporting Model 2 FFI), registered deemed-compliant FFI (including a reporting Model 1 FFI), direct reporting NFFE (including a sponsored direct reporting NFFE), or trustee of a trustee documented trust, you are required to enter your GIIN (with regard to your country of residence) on line 9. However, if your branch is receiving the payment and is required to be identified in Part II, you are not required to provide a GIIN on this line 9 unless such branch is a U.S. branch or limited branch.
     In addition, if you are a sponsored entity that has a GIIN, you must provide that GIIN on line 9.
     For payments made prior to January 1, 2017, a sponsored direct reporting NFFE or sponsored FFI that has not obtained a GIIN must provide the GIIN of its sponsoring entity.
     If you are a QI acting as a QDD, you must provide your GIIN on line 9 if you have one.
    ,\r\n tip: If you are in the process of registering with the IRS as a participating FFI, registered deemed-compliant FFI, reporting Model 1 FFI, reporting Model 2 FFI, direct reporting NFFE, or sponsored direct reporting NFFE but have not received a GIIN, you may complete this line by writing “applied for.” However, the person requesting this form from you must receive and verify your GIIN within 90 days.\r\n },\r\n line10: {\r\n label: Reference number(s) (see instructions),\r\n hint: This line may be used by the filer of Form W-8IMY or by the withholding agent or FFI to whom it is provided to include any referencing information that is useful to the withholding agent in carrying out its reporting and withholding obligations. For example, a withholding agent who is required to associate a particular Form W-8BEN or Form W-8BEN-E with this Form W-8IMY may want to use line 10 for a referencing number or code that will make the association clear.,\r\n },\r\n partII: {\r\n caution: Complete Part II for a disregarded entity that has its own GIIN and is receiving a withholdable payment, or for a branch (including a branch that is a disregarded entity that does not have its own GIIN) of the FFI identified in line 1 operating in a jurisdiction other than the country of residence identified in line 2. For example, assume ABC Co., which is a participating FFI resident in Country A, operates through a branch in Country B (which is a Model 1 IGA jurisdiction) and the branch is treated as a reporting Model 1 FFI under the terms of the Country B Model 1 IGA. ABC Co. should not enter its GIIN on line 9, and the Country B branch should complete this Part II by identifying itself as a reporting Model 1 IGA FFI and providing its GIIN on line 13. Furthermore, if the Country B branch receiving the payment is a disregarded entity, you may be required to provide its legal name on line 3. See the instructions for Part I, line 3.,\r\n tip: If the disregarded entity receiving a withholdable payment has its own GIIN, Part II should be completed regardless of whether it is in the same country as the single owner identified in Part I.\r\n },\r\n line11: {\r\n label: Chapter 4 status(FATCA status) of disregarded entity or branch receiving payment,\r\n hint: Check the one box that applies. If you check reporting Model 1 FFI, reporting Model 2 FFI, participating FFI, or U.S. branch claiming a chapter 4 status other than that of nonparticipating FFI, you must complete line 13. If you are a limited branch or branch of a reporting IGA FFI that cannot comply with the requirements of an applicable IGA or the regulations under chapter 4, you must check limited branch.,\r\n },\r\n line12: {\r\n label: Address of branch (street, apt. or suite no., or rural route). Do not use a P.O. box or in-care-of address (other than a registered address).,\r\n hint: Enter the address of the branch or disregarded entity.\r\n },\r\n line13: {\r\n label: GIIN (if any) ► (other than a registered address).,\r\n hint: If you are a reporting Model 1 FFI, a reporting Model 2 FFI, or a participating FFI, you must enter on line 13 the GIIN of your branch that receives the payment. If you are a disregarded entity that completed Part I, line 3 of this form and are receiving payments associated with this form, enter your GIIN. Do not enter your GIIN (if any) on line 9. If you are a U.S. branch, enter a GIIN applicable to any other branch of the FFI (including in its residence country) of which the branch is a part. If you are a QI that is an NFFE and a withholding agent requests your chapter 4 status, you may provide a statement certifying to your chapter 4 status as an NFFE.,\r\n tip: If you are in the process of registering with the IRS as a participating FFI, a reporting Model 1 FFI, or a reporting Model 2 FFI but have not received a GIIN, you may complete this line by writing “applied for.” However, the person requesting this form from you must receive and verify your GIIN within 90 days.\r\n },\r\n partIII: {\r\n hint: You should only complete one part from Parts III through VIII. If you are acting in multiple capacities, provide separate Forms W-8IMY for each capacity. For example, if you are acting as a qualified intermediary for one account, but a nonqualified intermediary for another account, provide one Form W-8IMY in your capacity as a qualified intermediary and a separate Form W-8IMY in your capacity as a nonqualified intermediary.
    withholding statement of a QI. As a QI, you must provide a withholding statement to each withholding agent from which you receive reportable amounts or withholdable payments if you have not assumed primary reporting and withholding responsibility under chapter 3 and chapter 4 with respect to the payment and, if you are receiving a reportable amount on behalf of a U.S. nonexempt recipient, you have not assumed primary Form 1099 reporting and backup withholding responsibility for the payment. In addition, a QI that is acting as a QDD and also receives payments in a non-QDD capacity whether or not it assumes primary withholding responsibility for such payments must provide a withholding statement that designates its QDD accounts (and provides other information as necessary). The withholding statement becomes an integral part of the Form W-8IMY and, therefore, the certification statement that you sign in Part XXIX of the form applies to the withholding statement as well as to the form.
    Note. If you are a QI that is acting as either a QDD or a QSL (but not both), you do not have to provide a withholding statement if you receive payments only in your QDD or QSL capacity.
    A QI withholding statement must:
    • Designate those accounts for which you act as a QI,
    • Designate those accounts for which you are assuming primary withholding and reporting responsibility under chapter 3 and chapter 4 of the Code,
    • If applicable, designate those accounts or payments for which you are acting as a QDD,
    • If applicable, designate those accounts or payments for which you are acting as a QSL with respect to any U.S. source substitute dividends, and
    • Provide information to allocate the payment, as applicable, to chapter 3 withholding rate pools, chapter 4 withholding rate pools, or other pools of payees permitted under the chapter 4 regulations. See Regulations section 1.1471-3(c) (3)(iii)(B)(2).
    For chapter 4 purposes. A QI receiving a withholdable payment must provide a withholding statement which satisfies the requirements of an FFI withholding statement or chapter 4 withholding statement (if the QI is not an FFI) when the QI does not assume primary withholding responsibility under chapter 3 and chapter 4 and Form 1099 reporting and backup withholding responsibility for the payment.
     A QI that is an FFI may provide an FFI withholding statement to allocate the payment to chapter 4 withholding rate pools (as applicable) or other pool of payees permitted on an FFI withholding statement under the chapter 4 regulations. See Regulations section 1.1471-3(c)(3)(iii)(B)(2). A QI may also provide on the withholding statement a single pool of nonparticipating FFIs, a single pool of recalcitrant account holders of the QI or another intermediary that is a participating FFI or registered deemed-compliant FFI, and, if the QI does not assume primary Form 1099 and backup withholding responsibility, a chapter 4 withholding rate pool of U.S. payees. See also Form 1099 reporting, later. A chapter 4 withholding rate pool of U.S. payees may include:
    • If the QI is a reporting Model 1 FFI, an account holder that is not withheld on under chapter 3, chapter 4, or section 3406 that the QI reports as a U.S. account pursuant to the Model 1 IGA because the account has U.S. indicia and the QI has not obtained appropriate documentation to treat the account as held by other than a specified U.S. person;
    • If the QI is a reporting Model 2 FFI, an account holder that is not withheld on under chapter 3, chapter 4, or section 3406 that the QI reports as an account holder of a non-consenting U.S. account as described in the Model 2 IGA;
    • For a non-U.S. payor (as described in Regulations section 1.6049-5(c)(5)) that is a participating FFI (including a reporting Model 2 FFI), registered deemed-compliant FFI, or reporting Model 1 FFI, an account holder not withheld on under chapter 4 or section 3406 who the QI reports under chapter 4 or an applicable IGA (including the account holder’s TIN).
     An FFI withholding statement must also identify each intermediary or flow-through entity that is receiving a payment on behalf of a payee and include such entity’s chapter 4 status and GIIN (if applicable), excluding any intermediary or flow-through entity that is an account holder or interest holder in another QI, WP, or WT. An FFI withholding statement of a QI may combine withholding rate pool information provided by such an entity to the QI with withholding rate pools comprised of accounts that the QI maintains.
     A QI that is not an FFI and that does not assume primary withholding responsibility under chapter 3 and chapter 4 must provide, for a withholdable payment, a chapter 4 withholding statement that contains the name, address, TIN (if any), entity type (if applicable), and chapter 4 status of each payee, the amount allocated to each payee, a valid withholding certificate or other documentation sufficient to establish the payee’s chapter 4 status. However, a chapter 4 withholding statement may include pooled information for payees that are nonparticipating FFIs that hold accounts that the QI maintains or hold accounts with an intermediary or flow-through entity receiving the payment from the QI. A QI may also provide another pool of payees as permitted under the chapter 4 regulations for a chapter 4 withholding statement. See Regulations section 1.1471-3(c)(3)(iii)(B).
    For chapter 3 purposes. In the case of a reportable amount that is a withholdable payment, any portion of the payment for which you are acting as a QI that is not allocated to a chapter 4 withholding rate pool or a U.S. non-exempt recipient (including for backup withholding purposes) must be allocated to a chapter 3 withholding rate pool or pool of U.S. exempt recipients. A chapter 3 withholding rate pool is a payment of a single type of income, based on the categories of income reported on Form 1042-S or Form 1099 (for example, interest or dividends), that is subject to a single rate of withholding and is exempt from chapter 4 withholding. The chapter 3 withholding rate pool may be established by any reasonable method agreed upon by you and the withholding agent. For example, you may agree to establish a separate account for a single chapter 3 withholding rate pool or you may agree to divide a payment made to a single account into portions allocable to each chapter 3 withholding rate pool. You must provide the chapter 3 withholding rate pool information that is required for the withholding agent to meet its withholding and reporting obligations. A withholding agent may request any information reasonably necessary to withhold and report payments correctly.
    ,\r\n },\r\n line14: {\r\n hint: Check box 14 if you are a qualified intermediary (QI)(whether or not you assume primary withholding responsibility) for the payments for which you are providing this form. By checking the box, you are certifying to the applicable statements contained on line 14. See the QI agreement for the definition of “account” for purposes of Part III.\r\n },\r\n line15a: {\r\n label: Complete line 15 only if you are acting as a QI that is not a QDD. To the extent you are a QI acting as a QDD, see the instructions for line 16.,\r\n hint: Check box 15a if you have assumed only primary withholding responsibility under both chapter 3 (nonresident alien withholding) and chapter 4 with respect to the account(s) identified on this line or in a withholding statement associated with this form.,\r\n },\r\n line15b: {\r\n hint: Check box 15b if you have assumed primary Form 1099 reporting and backup withholding responsibility with respect to the accounts identified in a withholding statement associated with this form or if you are a participating FFI or registered deemed-compliant FFI that meets the requirements to report only under Regulations sections 1.6049-4(c)(4)(i) and (c)(4)(ii). For accounts for which you check this box 15b, you should not check boxes 15c through 15f.,\r\n tip: If you checked boxes 15a and 15b with respect to any accounts, you do not have to provide a withholding statement for payments made to those accounts.\r\n },\r\n line15c: {\r\n hint: Check box 15c if you have not assumed primary Form 1099 reporting and backup withholding responsibility. If you check box 15c, check the applicable certification(s) in 15d or15e.,\r\n caution: A payment that is subject to chapter 3 withholding or that should be subject to chapter 4 withholding may not be included in a U.S. payee pool that is described in Regulations section 1.6049-4(c)(4)(ii).\r\n },\r\n line15d: {\r\n hint: If you are allocating any portion of the payment on a withholding statement to a chapter 4 withholding rate pool of U.S. payees in lieu of providing Forms W-9, you must certify by checking boxes 15d and/or 15e (as applicable):

    • For each account holder included in a chapter 4 withholding rate pool of U.S. payees who holds an account that you maintain, you are permitted to provide this pool under Regulations section 1.6049-4(c)(4)(iii) (including for payments of income other than interest for which reporting would be required under chapter 61 but for a coordination rule similar to that provided in Regulations section 1.6049-4(c)(4)(iii)); and/or

    • For a withholding rate pool of U.S. payees that includes account holders of another intermediary or flow-through entity, you have obtained or will obtain documentation to establish that the intermediary or flow-through entity is a participating FFI, registered deemed-compliant FFI, or a qualified intermediary. See Regulations sections 1.1471-3(d) (4) and 1.1471-3(e) for more information on the requirements for documenting such chapter 4 statuses.

    Although, as a QI, you obtain withholding certificates or appropriate documentation from beneficial owners or payees, as specified in your QI agreement, you do not need to attach the certificates or documentation to this form. However, to the extent you have not assumed primary Form 1099 reporting or backup withholding responsibility and are not permitted to allocate the payment to a chapter 4 withholding rate pool of U.S. payees under Regulations section 1.6049-4(c)(4)(iii), you must disclose the names of those U.S. persons for whom you receive reportable amounts and that are not exempt recipients (as defined in Regulations section 1.6049-4(c)(1)(ii) or under section 6041, 6042, 6045, or 6050N).

    You should make this disclosure by attaching to Form W-8IMY the Forms W-9 (or substitute forms) of persons that are U.S. non-exempt recipients. If you do not have a Form W-9 for a non-exempt U.S. payee, you must attach to Form W-8IMY any information you do have regarding that person’s name, address, and TIN for a withholding agent to report the payment.
    ,\r\n caution: A payment that is subject to chapter 3 withholding or that should be subject to chapter 4 withholding may not be included in a U.S. payee pool that is described in Regulations section 1.6049-4(c)(4)(ii).,\r\n },\r\n line15f: {\r\n hint: Check box 15f to certify that you are a QI that is acting as a QSL with respect to all payments associated with this form that are U.S. source substitute dividends made by a party to a securities lending transaction (as described in Notice 2010-46) for payments made before January 1, 2018. \r\n },\r\n line15g: {\r\n hint: Check line 15g to certify that you are a QI that is assumingprimary withholding responsibility under chapter 3 and chapter 4 and primary Form 1099 reporting and backup withholding responsibility with respect to all payments associated with this form that are U.S. source interest and substitute interest payments, as permitted by (and described in) the QI agreement. You may act as a QI with respect to such substitute interest payments under the QI agreement regardless of whether you are acting in a principal or intermediary capacity with respect to payments of interest and substitute interest you receive that are associated with this form.\r\n },\r\n line16a: {\r\n hint: Check the box in line 16a to certify that each QDD identified on the form or on the withholding statement that is acting as a QDD meets the requirements to act as a QDD in Regulations section 1.1441-1(e)(6) and assumes primary withholding and reporting responsibilities under chapters 3, 4, and 61, and section 3406 with respect to potential section 871(m) transactions.,\r\n caution: A QI that is acting as a QDD should provide this Form W-8IMY only for payments in respect of potential section 871(m) transactions and underlying securities. To certify your foreign status for any other payment of U.S. source income you benefici\r\n },\r\n line16b: {\r\n label: Entity classification of QDD:,\r\n hint: Check the box to indicate your status, including if you are a QDD that is a disregarded entity claiming treaty benefits. If the QDD is a branch other than a disregarded entity (that is, a branch that is not a separate legal entity from its home office), check the box to indicate the status of the entity identified in Part I.,\r\n },\r\n partIV: {\r\n hint: If you are acting on behalf of another NQI or on behalf of a foreign partnership or foreign trust that is not a withholding foreign partnership or a withholding foreign trust, you must attach to your Form W-8IMY the Form W-8IMY of the other NQI, foreign partnership, or foreign trust together with the withholding certificates and other documentation attached to that Form W-8IMY that are required, as applicable, for both chapter 3 and chapter 4 purposes.
    Withholding statement of an NQI. An NQI must provide a withholding statement and appropriate documentation to obtain reduced rates of withholding for its customers under chapter 3 and chapter 61 and to avoid certain reporting responsibilities. However, see the paragraph later describing an NQI’s withholding statement for chapter 4 purposes for when an NQI may provide a chapter 4 withholding rate pool of U.S. payees without such documentation. The withholding statement must be provided prior to a payment and becomes an integral part of the Form W-8IMY and, therefore, the certification statement that you sign in Part XXIX of the form applies to the withholding statement as well as to the form.
     For chapter 4 purposes. An NQI receiving a withholdable payment must provide a withholding statement which satisfies the requirements of an FFI withholding statement or chapter 4 withholding statement (if the NQI is not a participating FFI or registered deemed-compliant FFI).
     An FFI withholding statement may allocate the payment to chapter 4 reporting rate pools (as appropriate), including a chapter 4 withholding rate pool for nonparticipating FFIs, recalcitrant account holders (in each class of account holders described in Regulations section 1.1471-4(d)(6)(i)), or other pool of payees permitted on an FFI withholding statement under the chapter 3 or 4 regulations (see Regulations sections 1.1471-3(c)(3)(iii)(B) and 1.1441-1(e)(3)(iv)(C)), and, for an NQI that is a participating FFI (including a reporting Model 2 FFI) or a registered deemed-compliant FFI (including a reporting Model 1 FFI), U.S. payees (see the description of the chapter 4 withholding rate pool of U.S. payees described in Withholding statement of a QI, earlier). However, an NQI may allocate a portion of a reportable amount (regardless of whether the payment is a withholdable payment) to a chapter 4 withholding rate pool of U.S. payees when the NQI satisfies the requirements to provide such a pool (including the requirement to certify to its status as a participating FFI (including a reporting Model 2 FFI) or registered deemed-compliant FFI (including a reporting Model 1 FFI)). The withholding statement must also identify each intermediary or flow-through entity that is receiving a payment (excluding any intermediary or flow-through entity that is an account holder or interest holder in another QI, WP, or WT), each such entity’s chapter 4 status and GIIN (if applicable), and the chapter 4 withholding rate pools associated with each such entity receiving the payment.
     A chapter 4 withholding statement must contain the name, address, TIN (if any), entity type, chapter 4 status of each payee, the amount allocated to each payee, and a valid withholding certificate or other documentation sufficient to establish each payee’s chapter 4 status. However, a chapter 4 withholding statement may instead include pooled information for payees that are nonparticipating FFIs or another pool of payees as permitted under the chapter 4 regulations for a chapter 4 withholding statement. The withholding statement must also identify each intermediary or flow-through entity that is receiving a payment (excluding any intermediary or flow-through entity that is an account holder or interest holder in another QI, WP, or WT), each such entity’s chapter 4 status and GIIN (if applicable), and the chapter 4 withholding rate pools associated with each such entity receiving the payment.
    For chapter 3 and chapter 61 purposes. For chapter 3 and chapter 61 purposes, a withholding statement for a reportable amount must include the information described later. For such payments that are also withholdable payments, the withholding statement should allocate only the portion of the payment that was not allocated to a chapter 4 withholding rate pool (as described earlier) or a pool described in Regulations section 1.1441-1(e)(3)(iv)(C) or to a payee identified on the withholding statement to whom withholding was applied under chapter 4, as follows:
    • Include the name, address, U.S. TIN (if any), chapter 4 status (for a foreign person receiving a withholdable payment), and the type of documentation (documentary evidence, Form W-9, or type of Form W-8) for every person for whom documentation has been received and must state whether that person is a U.S. exempt recipient, a U.S. non-exempt recipient, or a foreign person. The statement must indicate whether a foreign person is a beneficial owner or an intermediary, flow-through entity, U.S. branch, or territory financial institution and the type of recipient, based on the recipient codes shown on Form 1042-S;
    • Allocate each payment by income type to every payee for whom documentation has been provided. The type of income is based on the income codes reported on Form 1042-S (or, if applicable, the income categories for Form 1099). If a payee receives income through another NQI, flow-through entity, or U.S. branch acting as an intermediary, your withholding certificate must also state the name, address, U.S. TIN (if known), and, for a withholdable payment, the chapter 4 status (if required) and GIIN (if applicable) of the other NQI or U.S. branch from which the payee directly receives the payment or the flow-through entity in which the payee has a direct ownership interest. If another NQI, flow-through entity, or U.S. branch fails to allocate a payment, you must provide, for that payment, the name of the NQI, flow-through entity, or U.S. branch that failed to allocate the payment;
    • If a payee is identified as a foreign person, you must specify the rate of withholding under chapter 3 to which the payee is subject, the payee’s country of residence and, if a reduced rate of withholding is claimed, the basis for that reduced rate (for example, treaty benefit, portfolio interest, or exemption under section 501(c)(3), 892, or 895). The statement must also include the U.S. or foreign TIN (if required) and, if the beneficial owner is not an individual and is claiming treaty benefits, state whether the limitation on benefits and section 894 statements have been provided by the beneficial owner. You must inform the withholding agent as to which payments those statements relate; and
    • Include any other information the withholding agent requests in order to fulfill its withholding and reporting obligations under chapters 3 and 4 of the Code and/or Form 1099 reporting and backup withholding responsibility.
    Alternative procedure for NQIs. To use the alternative procedure you must inform the withholding agent on your withholding statement that you are using the procedure and the withholding agent must agree to the procedure.
     Under this procedure, you must provide a withholding agent with all the information required on the withholding statement (see Withholding statement of an NQI, earlier) and all payee documentation, except the specific allocation information for each payee, prior to the payment of a reportable amount. In addition, you must provide the withholding agent with withholding rate pool information. The withholding statement must assign each payee that is not subject to withholding under chapter 4 to a chapter 3 withholding rate pool prior to the payment of a reportable amount. The withholding rate pool may be established by any reasonable method agreed upon by you and the withholding agent. For example, you may agree to establish a separate account for a single withholding rate pool, or you may agree to divide a payment made to a single account into portions allocable to each withholding rate pool. You must determine withholding rate pools based on valid documentation or, to the extent a payment cannot be reliably associated with valid documentation, the applicable presumption rules.
     You must provide the withholding agent with sufficient information to allocate the income in each withholding rate pool to each payee (including U.S. exempt recipients) within the pool no later than January 31 of the year following the year of payment. If you fail to provide allocation information, if required, by January 31 for any withholding rate pool, you may not use this procedure for any payment made after that date for all withholding rate pools. You may remedy your failure to provide allocation information by providing the information to the withholding agent no later than February 14.
     In the case of a reportable amount that is also a withholdable payment, an NQI may include amounts allocable to a chapter 4 withholding rate pool (other than a chapter 4 withholding rate pool of U.S. payees) and payees subject to chapter 4 withholding for whom the NQI will provide payee specific information in a 30-percent rate pool together with payees subject to chapter 3 withholding at the 30-percent rate and may not otherwise apply these provisions for payments made to U.S. non-exempt recipients (regardless of whether the payment is a withholdable payment). For the amount of the payment allocable to a chapter 4 withholding rate pool of U.S. payees, an NQI may include such an amount in the withholding rate pool that is exempt from withholding (an NQI can include such payees in an exempt pool regardless of whether the payment is a withholdable payment). The NQI must identify prior to the payment each chapter 4 withholding rate pool to be allocated a portion of the payment and must also allocate by January 31 the portion of the payment to each such pool in addition to allocating the payment to each other payee as described in the preceding paragraph. See Regulations section 1.1441-1(e)(3)(iv)(D) for further information on alternative procedures for an NQI.
    ,\r\n caution: A payment that is subject to chapter 3 withholding or that should be subject to chapter 4 withholding should not be included in a U.S. payee pool that is described in Regulations section 1.6049-4(c)(4)(ii).\r\n },\r\n line17a: {\r\n hint: If you are providing Form W-8IMY as a nonqualified intermediary (NQI), you must check box 17a. By checking this box, you are certifying to all of the statements on line 17a.,\r\n tip: If you are required to provide a chapter 4 status on line 5 (see specific instructions for line 5) and are acting as an intermediary for a withholdable payment, you must provide your chapter 4 status on line 5 or as otherwise permitted in these instructions to avoid withholding at the chapter 4 rate of 30% being applied to any withholdable payment you receive from the withholding agent regardless of whether you check box 15b (except for documentation provided with respect to exempt beneficial owners). See the specific instructions for Part IX.\r\n },\r\n line17b: {\r\n hint: Check box 17b if you are using this form to transmit withholding certificates or other documentation along with a withholding statement (subject to the certifications on this form) that satisfies the requirements of chapters 3 and 4 (including if you are providing pooled information for purposes of chapter 61 under the alternative procedure for U.S. non-exempt recipients, discussed later, or chapter 4 withholding rate pools (as applicable) for a withholdable payment).,\r\n },\r\n line17c: {\r\n hint: Check box 17c to certify that you are permitted under Regulations section 1.6049-4(c)(4) to provide a chapter 4 withholding rate pool of U.S. payees to which a payment is allocated on a withholding statement associated with the Form W-8IMY.,\r\n },\r\n line17d: {\r\n hint: Check box 17d to certify that you are acting as a QSL with respect to the accounts identified on this line or in a withholding statement associated with this form with respect to a payment that is a U.S. source substitute dividend.,\r\n },\r\n partV: {\r\n hint: Check box 18a to certify that you are a financial institution (other than an investment entity that is not also a depository institution, custodial institution, or specified insurance company) incorporated or organized under the laws of a possession of the United States.
     You must also check either box 18b or 18c. Check box 18b to certify that you have agreed to be treated as a U.S. person for purposes of both chapter 3 and chapter 4 with respect to payments associated with this Form W-8IMY. In this case, you will be responsible for chapter 3 withholding and reporting, backup withholding under section 3406, and chapter 4 withholding and reporting for any payments you make to persons for whom you are receiving a reportable amount or withholdable payment. If you check this box 18b, you must provide an EIN on line 8.
     Check box 18c to certify that you are a territory financial institution that has not agreed to be treated as a U.S. person. You must certify that you are transmitting withholding certificates or other documentation for persons for whom you are receiving a payment (as required for chapter 3, chapter 61, and section 3406 purposes, and, in the case of a withholdable payment, documentation required for chapter 4 withholding and reporting purposes). See Regulations section 1.1471-3(a)(3)(iv). You must also certify that you have provided or will provide a withholding statement (as required). The withholding statement must provide the same information outlined under Withholding statement of an NQI, earlier, including the applicable chapter 4 information if you are receiving a withholdable payment.
    ,\r\n caution: A territory entity that is a flow-through entity but is not a territory FI may not complete this Part V and agree to be treated as a U.S. person. Instead, complete Part IV or Part VIII, as appropriate.\r\n },\r\n partVI: {\r\n hint: Check box 19a to certify that you are a U.S. branch described in Regulations section 1.1441-1(b)(2)(iv) receiving income that is not effectively connected with the conduct of a trade or business in the United States.
     You must also check either box 19b or 19c. Check box 19b to certify that you are a U.S. branch of a foreign bank or insurance company described in this certification that is a participating FFI, registered deemed-compliant FFI, or NFFE that has agreed with the withholding agent to be treated as a U.S. person with respect to payments associated with this Form W-8IMY. In such case, you will be responsible for chapter 3 withholding and reporting, backup withholding under section 3406, chapter 4 withholding and reporting for any payments you make to persons for whom you are receiving a withholdable payment, and will be treated as a U.S. payor for chapter 61 purposes. See Regulations section 1.6049-5(c)(5)(i)(F). You must provide your EIN on line 8 and, if you are a branch of an FFI receiving a withholdable payment, a GIIN on line 9 of another branch of the FFI of which you are a part.
     Check box 19c to certify that you are a U.S. branch that does not have an agreement with the withholding agent to be treated as a U.S. person. You must certify that you are transmitting withholding certificates or other documentation for persons for whom you are receiving the payment. You must also certify that you have provided or will provide a withholding statement (as required) and, if you are receiving a withholdable payment, provide your chapter 4 status in Part I, line 5 (if required). The withholding statement must provide the same information outlined under Withholding statement of an NQI, earlier, including the applicable chapter 4 information required for the withholding statement if you are receiving a withholdable payment. See the information for an FFI withholding statement or a chapter 4 withholding statement in Withholding statement of an NQI, earlier.
    ,\r\n },\r\n partVII: {\r\n hint: Check box 20 if you are a WP or a WT for the accounts for which you are providing this form and you are receiving the income on behalf of your partners, beneficiaries, or owners. If you are not receiving the income on behalf of your partners, beneficiaries, or owners, do not complete this Part VII. Instead, complete Part III or Part IV, whichever is appropriate.
     If you are acting as a WP or WT, you must assume primary withholding and reporting responsibility under chapter 3 and chapter 4 for all payments that are made to you for your partners, beneficiaries, or owners. Therefore, you are not required to provide information to the withholding agent regarding each partner’s, beneficiary’s, or owner’s distributive share of the payment and the information for the withholding agent to report under section 1472 (if otherwise required). If you are also receiving payments from the same withholding agent for persons other than your partners, beneficiaries, or owners, you must provide a separate Form W-8IMY for those payments. If you are receiving a withholdable payment, you must provide your chapter 4 status in line 5 and provide your GIIN (if applicable).
    ,\r\n },\r\n partVIII: {\r\n hint: Check box 21a if you are a foreign partnership or a foreign simple or grantor trust that is not a WP or WT. Check box 21b if you are a foreign partnership or foreign grantor trust providing this form for purposes of section 1446. If you are a foreign partnership or grantor trust receiving payments of reportable amounts and providing this form for purposes of section 1446, you may check both boxes. By checking either box, you are certifying to the applicable statements on the form.
    Note. If you are receiving income that is effectively connected with the conduct of a trade or business in the United States, provide Form W-8ECI (instead of Form W-8IMY). If you are not receiving the income on behalf of your partners, beneficiaries, or owners, do not complete Part VIII. Instead, complete Part III or Part IV, whichever is appropriate. If you are a hybrid entity claiming treaty benefits, provide Form W-8BEN-E. However, if you are receiving a withholdable payment you may also be required to provide this Form W-8IMY and disclose your chapter 4 status and the chapter 4 status of each of your owners. See the instructions for Form W-8BEN-E for more information about hybrid entities claiming treaty benefits.
     If you are acting on behalf of an NQI or another foreign partnership or foreign trust that is not a withholding foreign partnership or a withholding foreign trust, you must associate with your Form W-8IMY the Form W-8IMY of the other foreign partnership or foreign trust together with the withholding certificates and other documentation attached to that other form.
     If you are receiving a withholdable payment, you must provide a chapter 4 status in line 5 other than that of a nonparticipating FFI and provide your GIIN (if applicable) and the information required for the withholding agent to report under section 1472.
    Withholding statement of nonwithholding foreign partnership or nonwithholding foreign trust. You must provide the withholding agent with a withholding statement to obtain reduced rates of withholding and relief from certain reporting obligations. The withholding statement must provide the same information outlined under Withholding statement of an NQI, earlier. The withholding statement becomes an integral part of the Form W-8IMY. Thus, if you are an FFI and allocate any portion of the payment to a chapter 4 withholding rate pool of U.S. payees with respect to accounts that you maintain, you must meet the requirements of Regulations section 1.6049-4(c)(4)(iii) and certify to your status in Part I, line 5 as a participating FFI, registered deemed-compliant FFI, reporting Model 1 FFI, or reporting Model 2 FFI. By providing a withholding statement making such an allocation with this form, you certify that you meet the requirements outlined for an NQI withholding statement described earlier.
    Certain special rules for partnerships and trusts. Under certain conditions, a QI, WP, or WT may apply special provisions of the relevant withholding agreement to certain partnerships and trusts that are not acting as a WP or WT. See the QI agreement, WP agreement, or WT agreement (as applicable) specifying these special procedures.
    Foreign partnerships and trusts providing Form W-8IMY for purposes of section 1446. In general, a partnership is required to withhold under section 1446 on effectively connected taxable income (ECTI) allocable to a foreign partner. A foreign upper-tier partnership (UTP) that is a partner in a lower-tier partnership (LTP) should provide the LTP with a Form W-8IMY and documentation sufficient for the LTP to determine the status of the indirect partner to whom the ECTI is allocable (looking through additional foreign UTPs, if applicable) and to determine such partner’s share of the lower-tier partnership’s ECTI.
     A foreign grantor trust that is a partner in a partnership should provide Form W-8IMY to the partnership along with documentation and information concerning the grantor or other owner sufficient for the partnership to reliably associate the portion of the trust’s allocable share of ECTI with the grantor or other owner.
     Check line 19b to certify that you are a foreign partnership or grantor trust providing this Form W-8IMY to a lower-tier partnership for purposes of section 1446.
    ,\r\n tip: If you are providing this Form W-8IMY solely for purposes of section 1446, you generally are not required to provide a chapter 4 status because items of effectively connected income are not withholdable payments. However, if you do not provide a chapter 4 status and subsequently receive a withholdable payment, you will also be required to provide a Form W-8IMY to provide your chapter 4 status or the lower-tier partnership may have to withhold on the payment. You may provide your chapter 4 status on this form even if you are not required to do so.\r\n },\r\n partIX: {\r\n hint: Check box 22 to certify that you are transmitting withholding certificates or other documentation for exempt beneficial owners for chapter 4 purposes on whose behalf you are receiving a payment that is a withholdable payment. See Regulations section 1.1471-6. You must also certify that you have provided or will provide a withholding statement (as required) allocating a portion of the payment to the exempt beneficial owners as required under Regulations section 1.1471-3(d)(8)(ii). The withholding statement must include the name, address, TIN (if any), entity type, and chapter 4 status of each exempt beneficial owner on behalf of which the nonparticipating FFI is receiving the payment, the amount of the payment allocable to each exempt beneficial owner, a valid withholding certificate or other documentation sufficient to establish the chapter 4 status of each exempt beneficial owner under the requirements of chapter 4, and any other information the withholding agent reasonably requests in order to fulfill its obligations under chapter 4. Additionally, the withholding statement must provide all information required for purposes of chapter 3 with respect to each exempt beneficial owner if the payment is subject to withholding under chapter 3. The withholding statement must allocate the remainder of the payment that is not allocated to an exempt beneficial owner to the nonparticipating FFI receiving the payment.,\r\n tip: You are not required to complete this part unless you are a nonparticipating FFI providing documentation on behalf of an exempt beneficial owner.\r\n },\r\n partX: {\r\n hint: On line 23a, enter the name of the sponsoring entity that has agreed to fulfill your chapter 4 due diligence, reporting, and withholding obligations on your behalf. Enter the GIIN of the sponsoring entity identified in line 23a.
    Note. A sponsored FFI is not required to have obtained its own GIIN before the date specified in published guidance (i.e., January 1, 2017). However, a sponsored entity that has already obtained a GIIN must provide it on line 9.
     You must check the applicable box in line 23b or 23c to certify that you are either an investment entity or controlled foreign corporation (within the meaning of section 957(a)) and satisfy the other relevant requirements for this classification.
    ,\r\n },\r\n partXI: {\r\n hint: All owner-documented FFIs must check box 24a to certify that you satisfy the requirements for this classification and are providing this form to a U.S. financial institution, a participating FFI, or a reporting Model 1 FFI that has agreed to act as a designated withholding agent with respect to the entity identified on line 1 (see Regulations section 1.1471-5(f) (3)).
     You must also check either box 24b or 24c. Check box 24b to certify that you have provided or will provide the documentation set forth in the certifications, including the owner reporting statement described in this line 24b. Check box 24c to certify that you have provided or will provide an auditor’s letter (in lieu of the information required by line 24(b)) that satisfies the requirements described in this line.
    ,\r\n caution: An owner-documented FFI should only complete Form W-8IMY if it is a flow-through entity receiving income allocable to its partners, owners, or beneficiaries. An owner-documented FFI is not permitted to act as an intermediary with respect to a withholdable payment.\r\n },\r\n partXII: {\r\n hint: All nonregistering local banks must check box 25 to certify that you satisfy all of the requirements for this certified deemed-compliant classification.,\r\n },\r\n partXIII: {\r\n hint: All FFIs with only low-value accounts must check box 26 to certify that you satisfy all of the requirements for this certified deemed-compliant classification.,\r\n },\r\n partXIV: {\r\n hint: On line 27a, enter the name of the sponsoring entity that has agreed to fulfill your chapter 4 due diligence, reporting, and withholding obligations on your behalf. You must also enter the GIIN of your sponsoring entity on line 9.
     All sponsored, closely held investment vehicles must check box 27b to certify that you satisfy the requirements for certified deemed-compliant classification as a sponsored entity.
    ,\r\n },\r\n partXV: {\r\n hint: All limited life debt investment entities must check box 28 to certify that you satisfy the requirements for this certified deemed-compliant classification.,\r\n },\r\n partXVI: {\r\n hint: An investment advisor or investment manager must check the box to certify that it meets all of the requirements for this certified deemed-compliant status.,\r\n },\r\n partXVII: {\r\n hint: All restricted distributors must check box 30a to certify that you satisfy the requirements for this classification.
     You must also check either box 30b or 30c, as appropriate, to certify that your distribution agreement meets the requirements of this classification.
    ,\r\n },\r\n partXVIII: {\r\n hint: A foreign central bank of issue must check box 31 to certify that you are acting as an intermediary and are an entity defined in Regulations section 1.1471-6 that is treated as the beneficial owner of the payment for chapter 4 purposes (applying the rule in Regulations section 1.1471-6(d)(4)). You cannot be treated as an intermediary for purposes of this Part XVIII if you are receiving the payment in connection with a commercial activity described in Regulations section 1.1471-6(h)(1) or are not receiving payments subject to chapter 3 withholding.,\r\n },\r\n partXIX: {\r\n hint: Check box 32 to indicate that you are treated as a nonreporting IGA FFI under an applicable IGA, including an entity treated as a registered deemed-compliant FFI under an applicable IGA. You must identify the applicable IGA by entering the name of the jurisdiction that has the applicable IGA in effect with the United States and indicate whether it is a Model 1 or a Model 2 IGA. You must also provide the withholding agent with the specific category of entity described in Annex II of the IGA applicable to your status. In providing the specific category of FFI described in Annex II, you should use the language from Annex II that best and most specifically describes your status in the IGA. For example, indicate “investment entity wholly owned by exempt beneficial owners” rather than “exempt beneficial owner.” If you are a nonreporting IGA FFI claiming a deemed-compliant status under the regulations, you must instead indicate on this line which section of the regulations you qualify under.
      If you are a nonreporting FFI under an applicable IGA because you qualify as an owner-documented FFI under the regulations, do not check “Nonreporting IGA FFI.” Instead you must check “Owner-documented FFI” and complete Part XI rather than this Part XIX.
      If you are an FFI treated as a registered deemed-compliant FFI under an applicable Model 2 IGA, you must provide your GIIN in the space provided. The GIIN does not need to be provided on line 9. See https://home.treasury.gov/policy-issues/tax-policy/foreign-account-tax-compliance-act for a list of jurisdictions treated as having an IGA in effect for purposes of making this certification.
    Note. If you are a nonreporting IGA FFI and you have registered and received a GIIN and have not provided it in line 9 because your trustee's or sponsor's GIIN is in line 9, you should provide it here.
    ,\r\n },\r\n partXX: {\r\n hint: All exempt retirement plans must check the appropriate box to certify that you satisfy the requirements for this classification.,\r\n caution: If you are not a flow-through entity or acting as an intermediary with respect to the payment for chapter 3 purposes, do not complete Form W-8IMY. If you are the beneficial owner of the payment and are claiming an exemption under sections 115(2), 892, or 895 as well as exempt beneficial owner status under Regulations section 1.1471-6 you should provide Form W-8EXP. If you are receiving payments which do not qualify for a statutory exemption from tax but for which you are claiming benefits under an applicable income tax treaty, provide Form W-8BEN-E.\r\n },\r\n partXXI: {\r\n hint: All excepted nonfinancial group entities must check box 34 to certify that you satisfy the requirements for this classification.,\r\n },\r\n partXXII: {\r\n hint: All excepted nonfinancial start-up companies must check box 35 to certify that you satisfy the requirements for this classification. You must also provide the date you were formed or your board passed a resolution (or equivalent measure) approving a new line of business (which cannot be that of a financial institution or passive NFFE).,\r\n },\r\n partXXIII: {\r\n hint: All excepted nonfinancial group entities in liquidation or bankruptcy must check box 36 to certify that you satisfy the requirements for this classification. You must also provide the date that you filed a plan of liquidation, plan of reorganization, or bankruptcy petition.,\r\n },\r\n partXXIV: {\r\n hint: All publicly traded NFFEs must check box 37a to certify that you are not a financial institution and provide the name of a securities exchange on which the stock of the NFFE is publicly traded.
    An NFFE that is a member of the same expanded affiliated group (as described in Regulations section 1.1471-5(i)) as a publicly traded U.S. or foreign entity must check this box, provide the name of the publicly traded entity, and identify the securities market on which the stock of the publicly traded entity is traded. See Regulations section 1.1472-1(c)(1)(i) to determine if an entity is publicly traded.
    ,\r\n },\r\n partXXV: {\r\n hint: All excepted territory NFFEs must check box 38 to certify that you satisfy the requirements for this classification. See Regulations section 1.1472-1(c)(1)(iii) for the definition of an excepted territory NFFE.,\r\n },\r\n partXXVI: {\r\n hint: All active NFFEs must check box 39 to certify that you satisfy the requirements for this classification.,\r\n },\r\n partXXVII: {\r\n hint: All passive NFFEs must check box 40 to certify that you are not a financial institution (other than an investment entity organized in a possession of the United States). You must also certify that you have provided a withholding statement associated with Form W-8IMY to the extent you are required to provide a withholding statement.,\r\n },\r\n partXXVIII: {\r\n hint: All sponsored direct reporting NFFEs must check the box on line 42 to certify that you are not a financial institution and that you satisfy all relevant requirements for this classification. Provide your GIIN or, prior to the date specified in published guidance (i.e., January 1, 2017), the GIIN of your sponsor on line 9.
     Enter the name and the GIIN of the sponsoring entity in line 41.
    ,\r\n },\r\n partXXIX: {\r\n hint: Form W-8IMY must be signed and dated by a person authorized to sign a declaration under penalties of perjury on behalf of the person whose name is on the form. By signing Form W-8IMY the authorized representative, officer, or agent also agrees to provide a new form within 30 days following a change in circumstances (unless no future payments will be made to the intermediary or flow-through entity by the withholding agent and the requestor does not need an updated form for chapter 4 purposes). ,\r\n },\r\n};\r\n","import React from 'react';\r\n\r\n/* eslint-disable max-len */\r\nexport default {\r\n line1: {\r\n label: 'Name of organization that is acting as intermediary',\r\n hint: Enter your name. By doing so, you are representing to the payer or withholding agent that you are not the beneficial owner of the amounts that will be paid to you (unless you are acting as a QDD or QSL for certain payments associated with this form or you are a QI acting with respect to payments of substitute interest, as permitted by the QI agreement). If you are a disregarded entity, do not enter the business name of the disregarded entity here. Instead, enter the legal name of the entity that owns the disregarded entity (looking through multiple disregarded entities, if applicable).,\r\n },\r\n line2: {\r\n label: 'Country of incorporation or organization',\r\n hint: If you are a corporation, enter the country of incorporation. If you are another type of entity, enter the country under whose laws you are created, organized, or governed. If you are an individual, provide your country of residence for tax purposes.,\r\n },\r\n line3: {\r\n label: 'Name of disregarded entity (if applicable), see instructions',\r\n hint: If you are a disregarded entity receiving a payment, enter your name (if required). You should complete line 3 only if you are a disregarded entity receiving a withholdable payment or hold an account with an FFI requesting this form and you:
    • Have registered with the IRS and been assigned a GIIN associated with the legal name of the disregarded entity; and
    • Are a reporting Model 1 FFI or reporting Model 2 FFI.
     If you are a disregarded entity that is a QDD, identify the QDD by the name used by the QDD for the QI application. For instructions for identifying the names of multiple QDDs, see QDD withholding statement.
    ,\r\n caution: If you are not required to provide the legal name of the disregarded entity, however, you may want to notify the withholding agent that you are a disregarded entity receiving a payment or maintaining an account by indicating the name of the disregarded entity on line 10. However, do not enter the name of the disregarded entity on this line except in the circumstances described\r\n },\r\n line4: {\r\n label: 'Chapter 3 Status (entity type) (Must check one box only.):',\r\n hint: Complete this line to establish your entity status for purposes of chapter 3. Check the one box that applies. If you are a foreign partnership receiving the payment on behalf of your partners, check the “Withholding foreign partnership” box or the “Nonwithholding foreign partnership” box, whichever is appropriate. If you are a foreign simple trust or foreign grantor trust receiving the payment on behalf of your beneficiaries or owners, check the “Withholding foreign trust” box, the “Nonwithholding foreign simple trust” box, or the “Nonwithholding foreign grantor trust” box, whichever is appropriate. If you are a foreign partnership (or a foreign trust) receiving a payment on behalf of persons other than your partners (or beneficiaries or owners), check the “Qualified intermediary” box or the “Nonqualified intermediary” box, whichever is appropriate. A foreign reverse hybrid entity that is providing documentation from its interest holders to claim a reduced rate of withholding under a treaty should check the appropriate box (including “Withholding foreign partnership” or “Withholding foreign trust” if the entity has entered into a withholding agreement). A partnership or grantor trust submitting Form W-8IMY solely because it is allocated income effectively connected with a U.S. trade or business as a partner in a partnership should check the box for nonwithholding foreign partnership or nonwithholding foreign grantor trust and, if it is submitting or will submit documentation for its partners or owners, it should complete Part VIII.,\r\n tip: Form W-8IMY may be provided to satisfy documentation requirements for purposes of withholding on certain partnership allocations to foreign partners under section 1446(a). Section 1446(a) generally requires withholding when a partnership is conducting a trade or business in the United States and allocates taxable income effectively connected with that trade or business (ECTI) to foreign persons that are partners in the partnership. Section 1446(a) can also apply when certain income is treated as effectively connected income of the partnership and is so allocated.

    An upper-tier foreign partnership that is allocated ECTI as a partner in a lower-tier partnership (LTP) may request, if certain requirements are met, the lower-tier partnership perform withholding under section 1446(a) on that ECTI taking into account the status of the partners in the upper-tier partnership. Upper-tier PTPs are not permitted to use these look-through rules. Generally, this is accomplished by the upper-tier partnership submitting withholding certificates of its partners (for example, Form W-8BEN) along with a Form W-8IMY, which identifies itself as a partnership, and identifying the manner in which ECTI of the upper-tier partnership will be allocated to the partners. Domestic non-PTPs that meet similar requirements may be able to elect to apply look-through rules, if the LTP agrees, by using Form W-9, instead of a W-8IMY. For further information, see Regulations section 1.1446-5. A foreign grantor trust that is allocated ECTI as a partner in a partnership should provide the withholding certificates of its grantor (for example, Form W-8BEN) along with its Form W-8IMY which identifies the trust as a foreign grantor trust. See Regulations section 1.1446-1(c)(2)(ii)(E) for the rules requiring it to provide additional documentation to the partnership.
    \r\n },\r\n line5: {\r\n label: 'Chapter 4 status (FATCA status) (See instructions for details and complete the certification below for the entity’s applicable status.) (Must check one box only.):',\r\n hint: Check the one box that applies to your chapter 4 status. You are only required to provide a chapter 4 status if you are acting as an intermediary with respect to a withholdable payment, you are a flow-through entity receiving a withholdable payment on behalf of your owners (including a reverse hybrid entity providing documentation on behalf of its owners to claim treaty benefits), you are providing a withholding statement associated with this form that allocates a portion of the payment to a chapter 4 withholding rate pool of U.S. payees with respect to your direct account holders (as described in Regulations section 1.6049-4(c)(4)), you are providing this form to an FFI requesting this form to document your chapter 4 status, or you are a QI acting as a QDD receiving payments as a principal or a QI acting with respect to payments of substitute interest. By checking a box on this line, you are representing that you qualify for this classification.
    FFIs Covered by IGAs and Related Entities A reporting FFI resident in, or established under the laws of, a jurisdiction covered by a Model 1 IGA should check “Reporting Model 1 FFI.” A reporting FFI resident in, or established under the laws of, a jurisdiction covered by a Model 2 IGA should check “Reporting Model 2 FFI.” If you are treated as a registered deemed-compliant FFI under an applicable IGA, you should check “Nonreporting IGA FFI” rather than “registered deemed-compliant FFI” and provide your GIIN. See the specific instructions for Part XIX. In general, if you are treated as a nonreporting IGA FFI under an applicable IGA, you should check “Nonreporting IGA FFI” even if you meet the qualifications for deemed-compliant status under the chapter 4 regulations. In such a case, you need not also check your applicable status under the regulations but should provide your GIIN on line 9. However, an owner documented FFI that is treated as a nonreporting IGA FFI under an applicable IGA must check “Owner-documented FFI” and complete Part XI. An FFI that is related to a reporting IGA FFI and that is treated as a nonparticipating FFI in its country of residence should check nonparticipating FFI in line 5. An FFI that is related to a reporting IGA FFI and that is a participating FFI, deemed-compliant FFI, or exempt beneficial owner under the U.S. Treasury regulations or an applicable IGA should check the appropriate box depending on its chapter 4 status rather than the box for nonparticipating FFI.
     If you are an FFI in a jurisdiction treated as having an IGA in effect, you should not check “participating FFI” and should check “Reporting Model 1 FFI” or “Reporting Model 2 FFI” as applicable.
     See https://home.treasury.gov/policy-issues/tax-policy/foreign-account-tax-compliance-act for a list of jurisdictions treated as having an IGA in effect.
    ,\r\n tip: For most of the chapter 4 classifications, you are required to complete additional certifications found in a separate part of this form (see Parts IX through XXVIII). Complete the appropriate part of this form certifying that you meet the conditions of the status indicated on line 5 (as defined under Regulations sections 1.1471-5 or 1.1471-6). Make sure you complete the required portion of this form before signing and providing it to the withholding agent.\r\n },\r\n line6: {\r\n label: Permanent residence address (street, apt. or suite no., or rural route).  Do not use a P.O. box or in-care-of address (other than a registered address).,\r\n hint: Enter the permanent address of the entity identified on line 1. Your permanent residence address is the address in the country where you claim to be a resident for purposes of that country's income tax. Do not show the address of a financial institution (other than yourself), a post office box, or an address used solely for mailing purposes unless such address is the only permanent address you use and it appears in your organizational documents (i.e., your registered address). If you do not have a tax residence in any country, the permanent residence address is where you maintain your principal office or, if you are an individual, where you normally reside.,\r\n },\r\n line7: {\r\n label: Mailing address (if different from above),\r\n hint: Enter your mailing address only if it is different from the address you show on line 6.,\r\n },\r\n line8: {\r\n label: U.S. taxpayer identification number, if required ► ,\r\n hint: You must provide an employer identification number (EIN) if you are a U.S. branch or are a territory financial institution that certifies that it has agreed to be treated as a U.S. person for any payments associated with this Form W-8IMY.
      If you are acting as a QI (including a QDD), withholding foreign partnership, or withholding foreign trust, check the appropriate box and enter the EIN that was issued to you in such capacity (your “QI-EIN,” “WP-EIN,” or “WT-EIN”). If you are not acting in that capacity, you must use your U.S. taxpayer identification number (TIN), if any, that is not your QI-EIN, WP-EIN, or WT-EIN.
      A nonqualified intermediary, a nonwithholding foreign partnership, or a nonwithholding foreign simple or grantor trust is generally not required to provide a U.S. TIN. However, an upper-tier partnership or trust that is allocated ECTI (or receives a PTP distribution attributable to ECTI) as a partner in a lower-tier partnership is required to provide a U.S. TIN. The requirement to include a U.S. TIN in this line 8 also applies to a foreign partnership or a foreign trust receiving an amount realized from a transfer of an interest in a partnership conducting a trade or business in the United States. Additionally, a QSL providing this form with respect to a U.S. source substitute dividend must provide an EIN (a QI-EIN if the QSL is a QI).
    ,\r\n },\r\n line9a: {\r\n label: GIIN (if applicable),\r\n hint: Complete line 9a if you are a participating FFI (including a reporting Model 2 FFI), registered deemed-compliant FFI (including a reporting Model 1 FFI and a sponsored FFI described in Regulations section 1.1471-5(f)(1)(i)(F)), direct reporting NFFE (including a sponsored direct reporting NFFE), or trustee of a trustee documented trust that is a foreign person, you are required to enter your GIIN (with regard to your country of residence) on line 9a. If you are a trustee of a trustee-documented trust and you are a foreign person, you should provide the GIIN that you received when you registered as a participating FFI or reporting Model 1 FFI. In addition, you must provide your GIIN on line 9a if you are a nonreporting IGA FFI that is: (1) treated as registered deemed-compliant under Annex II to an applicable Model 2 IGA, or (2) a registered deemed-compliant FFI under Regulations section 1.1471-5(f) (1).
      If you are a QI acting as a QDD, you must provide your GIIN on line 9a if you have one.
      If you are a certified deemed-compliant FFI described in Part XIV of this form, provide the GIIN of your sponsoring entity on line 9a.
      If you are a disregarded entity that completed Part I, line 3, do not enter your GIIN on line 9a. Instead, enter it on line 13.
    ,\r\n tip: If you are in the process of registering with the IRS as a participating FFI, registered deemed-compliant FFI (including a sponsored FFI), reporting Model 1 FFI, reporting Model 2 FFI, direct reporting NFFE, sponsored direct reporting NFFE, or nonreporting IGA FFI but have not received a GIIN, you may complete line 9a by writing “applied for.” However, the person requesting this form from you must receive and verify your GIIN within 90 days.\r\n },\r\n line9b: {\r\n label: Foreign taxpayer identification number, if required ► ,\r\n hint: Complete line 9b if you are a QDD that must provide a foreign taxpayer identification number (FTIN). For information on this requirement (and when an FTIN is not required), see QDD withholding statement.,\r\n },\r\n line10: {\r\n label: Reference number(s) (see instructions),\r\n hint: This line may be used by the filer of Form W-8IMY or by the withholding agent or FFI to whom it is provided to include any referencing information that is useful to the withholding agent in carrying out its reporting and withholding obligations. For example, a withholding agent who is required to associate a particular Form W-8BEN or Form W-8BEN-E with this Form W-8IMY may want to use line 10 for a referencing number or code that will make the association clear.,\r\n },\r\n partII: {\r\n hint: Complete Part II for a disregarded entity that has its own GIIN and is receiving a withholdable payment or for a branch (including a branch that is a disregarded entity that does not have its own GIIN) operating in a jurisdiction other than the country of residence identified on line 2. For example, assume ABC Co., which is a participating FFI resident in Country A, operates through a branch in Country B (which is a Model 1 IGA jurisdiction) and the branch is treated as a reporting Model 1 FFI under the terms of the Country B Model 1 IGA. ABC Co. should not enter its GIIN on line 9a, and the Country B branch should complete this Part II by identifying itself as a reporting Model 1 FFI and providing its GIIN on line 13. If the Country B branch receiving the payment is a disregarded entity, you may be required to provide its legal name on line 3.
      If you have multiple branches/disregarded entities receiving payments from the same withholding agent and the information in Part I is the same for each branch/disregarded entity that will receive payments, you may provide (and a withholding agent may accept) a single Form W-8IMY with a separate schedule attached that includes all of the Part II information for each branch/disregarded entity rather than separate Forms W-8IMY to identify each branch receiving payments associated with the form. You must also provide the withholding agent with sufficient information to associate the payments with each branch/disregarded entity.
      If you are a QDD home office or you are a QI and have one or more QDD branches, do not complete Part II for any branches that are acting in their QDD capacities. Instead, provide the relevant branch information that you would otherwise provide on Part II (including the information required for chapter 4 purposes, as required) on your withholding statement.
    ,\r\n tip: If the disregarded entity receiving a withholdable payment has its own GIIN, Part II should be completed regardless of whether it is in the same country as the single owner identified in Part I.\r\n },\r\n line11: {\r\n label: Chapter 4 status (FATCA status) of disregarded entity or branch receiving payment,\r\n hint: Check the one box that applies. If you check reporting Model 1 FFI, reporting Model 2 FFI, participating FFI, or U.S. branch claiming a chapter 4 status other than that of nonparticipating FFI, you must complete line 13. If you are a limited branch or branch of a reporting IGA FFI that cannot comply with the requirements of an applicable IGA or the regulations under chapter 4, you must check limited branch.,\r\n },\r\n line12: {\r\n label: Address of branch (street, apt. or suite no., or rural route). Do not use a P.O. box or in-care-of address (other than a registered address).,\r\n hint: Enter the address of the branch or disregarded entity.\r\n },\r\n line13: {\r\n label: GIIN (if any) ►,\r\n hint: If you are a reporting Model 1 FFI, a reporting Model 2 FFI, or a participating FFI, you must enter on line 13 the GIIN of your branch that receives the payment. If you are a disregarded entity that completed Part I, line 3, of this form and are receiving payments associated with this form, enter your GIIN. Do not enter your GIIN (if any) on line 9a. If you are a U.S. branch, do not enter a GIIN on line 13.,\r\n tip: If you are in the process of registering your branch with the IRS but have not received a GIIN, you may complete this line by writing “applied for.” However, the person requesting this form from you must receive and verify your GIIN within 90 days.\r\n },\r\n partIII: {\r\n hint: You should only complete one part from Parts III through VIII. Generally, if you are acting in multiple capacities, you should provide separate Forms W-8IMY for each capacity. For example, if you are acting as a QI for one account, but an NQI for another account, you should provide one Form W-8IMY in your capacity as a QI and a separate Form W-8IMY in your capacity as an NQI. You may, however, provide a single Form W-8IMY that covers more than one category of QI provided that you properly identify the accounts and/or transactions, as required, on a withholding statement. For example, if you are a QI that acts as both a QI and a QDD, you may provide a single Form W-8IMY with a withholding statement designating each type of account or transaction.

    withholding statement of a QI. As a QI, you must provide a withholding statement to each withholding agent from which you receive reportable amounts or withholdable payments if you have not assumed primary withholding responsibility under chapter 3 and chapter 4 with respect to the payment for one or more accounts (as indicated otherwise on line 15a), or if you are receiving a reportable amount on behalf of a U.S. non-exempt recipient, you have not assumed primary Form 1099 reporting and backup withholding responsibility for the payment. You must also provide a withholding statement for an amount realized or a PTP distribution for which you have not assumed primary withholding responsibility. The withholding statement becomes an integral part of the Form W-8IMY and, therefore, the certification statement that you sign in Part XXIX of the form applies to the withholding statement as well as to the form. If you are a QDD, see also QDD withholding statement, later.
    A QI withholding statement must also:
    • Designate those accounts for which you act as a QI;
    • Designate those accounts for which you are assuming primary withholding and reporting responsibility under chapter 3 and chapter 4;
    • If you receive an amount realized or a PTP distribution, designate those accounts for which you are assuming primary withholding and reporting responsibility for either such amount;
    • If applicable, designate those accounts or payments for which you are acting as a QSL with respect to any U.S. source substitute dividends; and
    • For any account for which you are not assuming primary withholding and reporting responsibility, provide information to allocate the payment, as applicable, to chapter 3 withholding rate pools, chapter 4 withholding rate pools, or other pools of payees permitted under the chapter 4 regulations. See Regulations section 1.1471-3(c)(3)(iii)(B)(2)(with respect to a chapter 4 withholding rate pool). You must, however, provide information to allocate the payment to the specific partners receiving the payment (rather than including any part of the payment in any chapter 3 withholding rate pool) when you act as a disclosing QI for a payment of an amount realized or PTP distribution.

    For chapter 4 purposes. If you are a QI and you receive a withholdable payment, you must provide a withholding statement which satisfies the requirements of an FFI withholding statement or chapter 4 withholding statement (if you are not an FFI) when you do not assume primary withholding responsibility under chapter 3 and chapter 4 and Form 1099 reporting and backup withholding responsibility for the payment.
      If you are a QI that is an FFI you may provide an FFI withholding statement to allocate the payment to chapter 4 withholding rate pools (as applicable) or other pool of payees permitted on an FFI withholding statement under the chapter 4 regulations. See Regulations section 1.1471-3(c) (3)(iii)(B)(2). You may also provide on the withholding statement a single pool of nonparticipating FFIs, a single pool of recalcitrant account holders of yours or of or another intermediary that is a participating FFI or registered deemed-compliant FFI, and, if you do not assume primary Form 1099 and backup withholding responsibility, a chapter 4 withholding rate pool of U.S. payees. A chapter 4 withholding rate pool of U.S. payees may include:
    • If you are a reporting Model 1 FFI, an account holder that is not withheld on under chapter 3, chapter 4, or section 3406 that you report as a U.S. account pursuant to the Model 1 IGA because the account has U.S. indicia and you have not obtained appropriate documentation to treat the account as held by other than a specified U.S. person;
    • If you are a reporting Model 2 FFI, an account holder that is not withheld on under chapter 3, chapter 4, or section 3406 that you report as an account holder of a non-consenting U.S. account as described in the Model 2 IGA;
    • If you are a non-U.S. payor (as described in Regulations section 1.6049-5(c)(5)) that is a participating FFI (including a reporting Model 2 FFI), registered deemed-compliant FFI, or reporting Model 1 FFI, an account holder not withheld on under chapter 4 or section 3406 who you report under chapter 4 or an applicable IGA (including the account holder’s TIN).
      Additionally, a chapter 4 withholding rate pool of U.S. payees may be provided in the above-described cases for a payment of an amount realized for which a withholding statement is provided for purposes of section 1446(f) that allocates some amount of the payment to a U.S. person. See, For a payment of an amount realized, later, and Example 5 and Example 6.
      An FFI withholding statement must also identify each intermediary or flow-through entity that is receiving a payment on behalf of a payee and include such entity’s chapter 4 status and GIIN (if applicable), excluding any intermediary or flow-through entity that is an account holder or interest holder in another QI, WP, or WT. An FFI withholding statement of a QI may combine withholding rate pool information provided by such an entity to the QI with withholding rate pools comprised of accounts that the QI maintains.
      If you are a QI that is not an FFI and that does not assume primary withholding responsibility under chapter 3 and chapter 4, you must provide, for a withholdable payment, a chapter 4 withholding statement that contains the name, address, TIN (if any), entity type (if applicable), and chapter 4 status of each payee, the amount allocated to each payee, a valid withholding certificate or other documentation sufficient to establish the payee’s chapter 4 status. However, a chapter 4 withholding statement may include pooled information for payees that are nonparticipating FFIs that hold accounts that you maintain or hold accounts with an intermediary or flow-through entity receiving the payment from you. You may also provide another pool of payees as permitted under the chapter 4 regulations for a chapter 4 withholding statement. See Regulations section 1.1471-3(c)(3)(iii)(B).

    For chapter 3 purposes. In the case of a reportable amount that is a withholdable payment, any portion of the payment for which you are acting as a QI that is not allocated to a chapter 4 withholding rate pool or a U.S. non-exempt recipient (including for backup withholding purposes) must be allocated to a chapter 3 withholding rate pool or pool of U.S. exempt recipients, if it is not required to be separately reported. The chapter 3 withholding rate pool may be established by any reasonable method agreed upon by you and the withholding agent. For example, you may agree to establish a separate account for a single chapter 3 withholding rate pool or you may agree to divide a payment made to a single account into portions allocable to each chapter 3 withholding rate pool. You must provide the chapter 3 withholding rate pool information that is required for the withholding agent to meet its withholding and reporting obligations. A withholding agent may request any information reasonably necessary to withhold and report payments correctly.

    For a payment of an amount realized. In the case of a payment of an amount realized, you must provide chapter 3 withholding rate pool information with respect to the foreign transferors receiving the payment for your broker to meet its withholding and reporting obligations (except when you act as a disclosing QI). See Regulations section 1.1446(f)-4(a)(7)(iii). The chapter 3 withholding rate pool information you provide on a withholding statement may be properly adjusted to take into account the withholding required on a transferor that is a foreign partnership for which you permit a modified amount realized. With respect to U.S. transferors receiving an amount realized, and regardless of whether you act as a disclosing QI, you must allocate the payment to each such transferor to the extent of the amount that may not be allocated to a chapter 4 withholding rate pool of U.S. payees (to the extent permitted for chapter 4 purposes).

    For a PTP distribution. In the case of a PTP distribution, you must provide to the PTP or nominee from which you receive the distribution chapter 3 withholding rate pool information and chapter 4 withholding rate pool information (when permitted for chapter 4 purposes) for your foreign partners with respect to the amounts subject to withholding on the distribution (except when you act as a disclosing QI). For determining the amounts to include in each withholding rate pool, the QI must rely on the allocation of each amount subject to withholding on the distribution as determined by the PTP or nominee that pays the distribution to the QI. When acting as a disclosing QI for a PTP distribution, you must provide with respect to each partner an allocation of the income attributable to the distribution that is subject to withholding under section 1446(a) or (f) (and, for an amount subject to chapter 3 or 4 withholding, an allocation of such amount to each beneficial owner or payee). See Withholding statement, earlier, for the requirements of a withholding statement provided by an intermediary for a PTP distribution. Regardless of whether you act as a disclosing QI, you must allocate the amounts subject to withholding on the distribution to each U.S. partner.

    Form 1099 reporting. If you do not assume primary Form 1099 reporting and backup withholding responsibility, you must provide payee-specific information for each U.S. non-exempt recipient account holder (other than those U.S. payees included in a chapter 4 withholding rate pool of U.S. payees (described in Regulations section 1.6049-4(c)(4)(iii)) or when the alternative procedure is used. The pools are based on valid documentation that you obtain or, if a payment cannot be reliably associated with valid documentation, the applicable presumption rules.

    Line 15. Complete line 15 only if you are acting as a QI that is not a QDD. To the extent you are a QI acting as a QDD, see the instructions for line 16. If you are acting in both QI capacities, you should complete both lines 15 and 16 to the extent applicable.
    ,\r\n },\r\n line14: {\r\n hint: Check the box on line 14 if you are a QI (whether or not you assume primary withholding responsibility) for the payments for which you are providing this form. By checking the box, you are certifying to the applicable statements contained on line 14. See the QI agreement for the definition of “account” for purposes of Part III.\r\n },\r\n line15a: {\r\n hint: Check the box on line 15a if you have assumed primary withholding responsibility under both chapter 3 and chapter 4 with respect to the account(s) identified on a withholding statement attached to this form (or, if no withholding statement is attached to this form, for all accounts). The representation made in this box on line 15a may be made regardless of whether you assume primary withholding responsibility for a PTP distribution (by checking the box on line 15c) as the representation made on this line 15a does not apply to an amount subject to chapter 3 withholding on a PTP distribution.
      Furthermore, the box on line 15a may be checked regardless of which boxes you check on lines 15b through 15i for any accounts identified on a withholding statement.
    ,\r\n },\r\n line15b: {\r\n hint: Check the box on line 15b if you have assumed primary withholding and reporting responsibilities under section 1446(f) for each payment of an amount realized on a sale of a PTP interest associated with each account identified on a withholding statement attached to this form for receiving such amounts (or, if no withholding statement is attached to this form, for all accounts).\r\n },\r\n line15c: {\r\n hint: Check the box on line 15c if you have assumed primary withholding responsibility as a nominee for each distribution by a PTP that is associated with each account identified on a withholding statement attached to this form for receiving such distributions (or, if no withholding statement is attached to this form, for all accounts).\r\n },\r\n line15d: {\r\n hint: Check the box on line 15d if you are a QI that is acting as a QSL with respect to payments associated with each account identified on a withholding statement attached to this form (or, if no withholding statement is attached to this form, for all accounts) that are U.S. source substitute dividends made in 2021 or 2022 by a party to a securities lending transaction (as described in Notice 2010-46) for which you are not acting as a QDD. See Notice 2020-2 and Qualified securities lender (QSL), for the limitation on when a QI is permitted to act as a QSL.,\r\n },\r\n line15e: {\r\n hint: Check the box on line 15e to certify that you are a QI that is assuming primary withholding responsibility under chapter 3 and chapter 4 and primary Form 1099 reporting and backup withholding responsibility with respect to all payments associated with this form that are U.S. source interest and substitute interest payments, as permitted by (and described in) the QI agreement. You may act as a QI with respect to such substitute interest payments under the QI agreement regardless of whether you are acting in a principal or intermediary capacity with respect to payments of interest and substitute interest you receive that are associated with this form and regardless of whether you act as a QDD or QSL.\r\n },\r\n line15f: {\r\n hint: Check the box on line 15f if you have assumed primary Form 1099 reporting and backup withholding responsibility with respect to the accounts identified in a withholding statement associated with this form or if you are a participating FFI or registered deemed-compliant FFI that meets the requirements to report only under Regulations sections 1.6049-4(c)(4)(i) and (c)(4)(ii). For accounts for which you check this box on line 15f, you should not check the boxes on lines 15g through 15i.,\r\n tip: If you checked boxes 15a and 15f with respect to any accounts, or box 15b or 15c (as applicable) and the box on line 15f when this form is associated with an amount realized or PTP distribution, you do not have to provide a withholding statement for any payments made to those accounts.\r\n },\r\n line15g: {\r\n hint: Check the box on line 15g if you have not assumed primary Form 1099 reporting and backup withholding responsibility with respect to the account(s) identified on a withholding statement attached to this form (or, if no withholding statement is attached to this form, for all accounts). This box applies to an amount realized only if you have not checked the box on line 15b and does not apply to a payment made by a QSL that is described on line 15d. If you check the box on line 15g, check the applicable certification(s) on line 15h or 15i.\r\n },\r\n line15h: {\r\n hint: If you are allocating any portion of the payment on a withholding statement to a chapter 4 withholding rate pool of U.S. payees in lieu of providing Forms W-9, you must certify by checking the boxes on lines 15h and/or 15i (as applicable):
    • For each account holder included in a chapter 4 withholding rate pool of U.S. payees who holds an account that you maintain, you are permitted to provide this pool under Regulations section 1.6049-4(c)(4)(iii) (including for payments of income other than interest for which reporting would be required under chapter 61 but for a coordination rule similar to that provided in Regulations section 1.6049-4(c)(4)(iii)); and/or
    • For a withholding rate pool of U.S. payees that includes account holders of another intermediary or flow-through entity, you have obtained or will obtain documentation to establish that the intermediary or flow-through entity is a participating FFI, registered deemed-compliant FFI, or a qualified intermediary. See Regulations sections 1.1471-3(d)(4) and 1.1471-3(e) for more information on the requirements for documenting such chapter 4 statuses.
      Although, as a QI, you obtain withholding certificates or appropriate documentation from beneficial owners or payees, as specified in your QI agreement, you do not need to attach the certificates or documentation to this form unless you are acting as a disclosing QI with respect to an amount realized or PTP distribution. Also, to the extent you have not assumed primary Form 1099 reporting or backup withholding responsibility and are not permitted to allocate the payment to a chapter 4 withholding rate pool of U.S. payees under Regulations section 1.6049-4(c)(4)(iii), you must disclose the names of those U.S. persons for whom you receive reportable amounts and that are not exempt recipients (as defined in Regulations section 1.6049-4(c)(1)(ii) or under section 6041, 6042, 6045, or 6050N). You should make this disclosure by attaching to Form W-8IMY the Forms W-9 (or substitute forms) of persons that are U.S. non-exempt recipients. If you do not have a Form W-9 for a non-exempt U.S. payee, you must attach to Form W-8IMY any information you do have regarding that person's name, address, and TIN for a withholding agent to report the payment.
    ,\r\n caution: A payment that is subject to chapter 3 withholding or that should be subject to chapter 4 withholding may not be included in a U.S. payee pool that is described in Regulations section 1.6049-4(c)(4)(ii).\r\n },\r\n line15i: {\r\n hint: If you are allocating any portion of the payment on a withholding statement to a chapter 4 withholding rate pool of U.S. payees in lieu of providing Forms W-9, you must certify by checking the boxes on lines 15h and/or 15i (as applicable):
    • For each account holder included in a chapter 4 withholding rate pool of U.S. payees who holds an account that you maintain, you are permitted to provide this pool under Regulations section 1.6049-4(c)(4)(iii) (including for payments of income other than interest for which reporting would be required under chapter 61 but for a coordination rule similar to that provided in Regulations section 1.6049-4(c)(4)(iii)); and/or
    • For a withholding rate pool of U.S. payees that includes account holders of another intermediary or flow-through entity, you have obtained or will obtain documentation to establish that the intermediary or flow-through entity is a participating FFI, registered deemed-compliant FFI, or a qualified intermediary. See Regulations sections 1.1471-3(d)(4) and 1.1471-3(e) for more information on the requirements for documenting such chapter 4 statuses.
      Although, as a QI, you obtain withholding certificates or appropriate documentation from beneficial owners or payees, as specified in your QI agreement, you do not need to attach the certificates or documentation to this form unless you are acting as a disclosing QI with respect to an amount realized or PTP distribution. Also, to the extent you have not assumed primary Form 1099 reporting or backup withholding responsibility and are not permitted to allocate the payment to a chapter 4 withholding rate pool of U.S. payees under Regulations section 1.6049-4(c)(4)(iii), you must disclose the names of those U.S. persons for whom you receive reportable amounts and that are not exempt recipients (as defined in Regulations section 1.6049-4(c)(1)(ii) or under section 6041, 6042, 6045, or 6050N). You should make this disclosure by attaching to Form W-8IMY the Forms W-9 (or substitute forms) of persons that are U.S. non-exempt recipients. If you do not have a Form W-9 for a non-exempt U.S. payee, you must attach to Form W-8IMY any information you do have regarding that person's name, address, and TIN for a withholding agent to report the payment.
    ,\r\n caution: A payment that is subject to chapter 3 withholding or that should be subject to chapter 4 withholding may not be included in a U.S. payee pool that is described in Regulations section 1.6049-4(c)(4)(ii).\r\n },\r\n line16a: {\r\n hint: Check the box on line 16a to certify that each QDD identified on the form or on the QDD withholding statement that is acting as a QDD meets the requirements to act as a QDD in Regulations section 1.1441-1(e)(6) and assumes primary withholding and reporting responsibilities under chapters 3, 4, and 61, and section 3406 with respect to potential section 871(m) transactions and has been approved by the IRS to act as a QDD.,\r\n caution: A QDD must act as a QDD for all payments it receives as a principal with respect to potential section 871(m) transactions and underlying securities, excluding any payments that are treated as effectively connected with the conduct of a trade or business within the United States within the meaning of section 864. A QDD may not act as a QDD for any other payments it receives. To certify your foreign status for any other payment of U.S. source income you beneficially own, see Who Must Provide Form W-8IMY and Do Not Use Form W-8IMY If You are Described Below in the instructions.\r\n },\r\n line16b: {\r\n label: Entity classification of QDD:,\r\n hint: Check the box to indicate your status, including if you are a QDD that is a disregarded entity claiming treaty benefits. If the QDD is a branch other than a disregarded entity (that is, a branch that is not a separate legal entity from its home office), check the box to indicate the status of the entity identified in Part I. If the Form W-8IMY is being used for more than one QDD and different boxes must be checked for different QDDs, check all relevant boxes and include the applicable information on the withholding statement for each QDD.

    Claim of treaty benefits or beneficial ownership. If you are acting as a QDD, you may be entitled to claim treaty benefits for certain payments that are subject to withholding that you receive in your principal capacity (for example, interest payments or payments of dividends beginning in 2023). See Notice 2020-2. To make a claim for treaty benefits in such a case, you may provide your withholding agent a statement associated with your Form W-8IMY that contains the information required in Part III of Form W-8BEN-E, including (if applicable) a treaty claim by a hybrid entity that is a disregarded entity that is identified on a QDD's withholding statement described in the instructions for Part II. Alternatively, a Form W-8BEN-E may be used for this purpose. An entity acting as a QDD (other than a flow-through entity or disregarded entity) for a payment of U.S. source FDAP income may also use Form W-8IMY to claim status as the foreign beneficial owner of the payment when the entity provides its foreign TIN (when required) on line 9b to this form).

    QDD branch of a U.S. person. If you are a foreign branch of a U.S. person that is acting as a QDD and you receive a payment that otherwise would be subject to withholding except for the U.S. person's status as a U.S. person, you may associate this Form W-8IMY with a Form W-9 from the U.S. person.
    ,\r\n caution: If you are acting as a QDD and fiscally transparent in your jurisdiction of organization, do not claim treaty benefits as described in these instructions. Instead, you must include the withholding certificates or documentary evidence of the owners claiming treaty benefits and provide an allocation on the withholding statement.\r\n },\r\n partIV: {\r\n hint:
    Withholding statement of an NQI. If you are an NQI, you must provide a withholding statement and appropriate documentation to obtain reduced rates of withholding under chapter 3 and section 3406 for your customers receiving reportable amounts and to avoid certain reporting responsibilities. However, see the paragraph later describing an NQI’s withholding statement for chapter 4 purposes for when an NQI may provide a chapter 4 withholding rate pool of U.S. payees instead of documentation for those payees. The withholding statement must be provided prior to a payment and becomes an integral part of the Form W-8IMY and, therefore, the certification statement that you sign in Part XXIX of the form applies to the withholding statement as well as to the form.

    For chapter 4 purposes. If you are an NQI that is a participating FFI or registered deemed-compliant FFI and you receive a withholdable payment, you must provide a withholding statement which satisfies the requirements of an FFI withholding statement or chapter 4 withholding statement. An FFI withholding statement may allocate the payment to chapter 4 reporting rate pools (as appropriate), including a chapter 4 withholding rate pool for nonparticipating FFIs, recalcitrant account holders (in each class of account holders described in Regulations section 1.1471-4(d)(6)(i)), or other pool of payees permitted on an FFI withholding statement under the chapter 3 or 4 regulations (see Regulations sections 1.1471-3(c)(3)(iii)(B) and 1.1441-1(e)(3)(iv)(C)), and, for a participating FFI (including a reporting Model 2 FFI) or a registered deemed-compliant FFI (including a reporting Model 1 FFI), U.S. payees. However, if you are an NQI, you may allocate a portion of a reportable amount (regardless of whether the payment is a withholdable payment) to a chapter 4 withholding rate pool of U.S. payees when you satisfy the requirements to provide such a pool (including the requirement to certify to your status as a participating FFI (including a reporting Model 2 FFI) or registered deemed-compliant FFI (including a reporting Model 1 FFI)). The withholding statement must also identify each intermediary or flow-through entity that is receiving a payment (excluding any intermediary or flow-through entity that is an account holder or interest holder in a QI, WP, or WT), each such entity’s chapter 4 status and GIIN (if applicable), and the chapter 4 withholding rate pools associated with each such entity receiving the payment. A chapter 4 withholding statement must contain the name, address, TIN (if any), entity type, chapter 4 status of each payee, the amount allocated to each payee, and a valid withholding certificate or other documentation sufficient to establish each payee’s chapter 4 status. However, a chapter 4 withholding statement may instead include pooled information for payees that are nonparticipating FFIs or another pool of payees as permitted under the chapter 4 regulations for a chapter 4 withholding statement. The withholding statement must also identify each intermediary or flow-through entity that is receiving a payment (excluding any intermediary or flow-through entity that is an account holder or interest holder in a QI, WP, or WT), each such entity’s chapter 4 status and GIIN (if applicable), and the chapter 4 withholding rate pools associated with each such entity receiving the payment.

    For chapter 3 and chapter 61 purposes. For chapter 3 and chapter 61 purposes, in the case of a reportable amount that is also a withholdable payment, the withholding statement should allocate only the portion of the payment that was not allocated to a chapter 4 withholding rate pool or a pool described in Regulations section 1.1441-1(e)(3)(iv)(C) or to a payee identified on the withholding statement to whom withholding was applied under chapter 4. The withholding statement must generally include the following information.
    • Include the name, address, U.S. TIN (if any), chapter 4 status (for a foreign person receiving a withholdable payment), and the type of documentation (documentary evidence, Form W-9, or type of Form W-8) for every person for whom documentation has been received and state whether that person is a U.S. exempt recipient, a U.S. non-exempt recipient, or a foreign person. The statement must indicate whether a foreign person is a beneficial owner or an intermediary, flow-through entity, U.S. branch, or territory financial institution and the type of recipient, based on the recipient codes shown on Form 1042-S.
    • Allocate each payment by income type to every payee for whom documentation has been provided. The type of income is based on the income codes reported on Form 1042-S (or, if applicable, the income categories for Form 1099). If a payee receives income through another NQI, flow-through entity, or U.S. branch acting as an intermediary, the withholding certificate must also state the name, address, U.S. TIN (if known), and, for a withholdable payment, the chapter 4 status (if required) and GIIN (if applicable) of the other NQI or U.S. branch from which the payee directly receives the payment or the flow-through entity in which the payee has a direct ownership interest. If another NQI, flow-through entity, or U.S. branch fails to allocate a payment, you must provide, for that payment, the name of the NQI, flow-through entity, or U.S. branch that failed to allocate the payment.
    • If a payee is identified as a foreign person, specify the rate of withholding under chapter 3 to which the payee is subject, the payee’s country of residence and, if a reduced rate of withholding is claimed, the basis for that reduced rate (for example, treaty benefit, portfolio interest, or exemption under section 501(c)(3), 892, or 895). The statement must also include the U.S. or foreign TIN (if required) and, if the beneficial owner is not an individual and is claiming treaty benefits, state whether the limitation on benefits and section 894 statements have been provided by the beneficial owner. You must inform the withholding agent as to which payments those statements relate.
    • Include any other information the withholding agent requests in order to fulfill its withholding and reporting obligations under chapters 3 and 4 of the Code and/or Form 1099 reporting and backup withholding responsibility.

    Withholding statement for amount realized or PTP distribution. In the case of a PTP distribution, an NQI may provide a withholding statement and appropriate documentation for each of its account holders receiving the distribution to allocate to its account holders the amounts subject to withholding on the distribution under chapters 3 and 4 (or under section 1446(a)). See Withholding statement, earlier, for additional requirements of a withholding statement provided by an intermediary for a PTP distribution.
      In the case of an amount realized (including on a PTP distribution), however, an NQI may provide a withholding statement and appropriate documentation on the transferors of the PTP interest only when:
    • The broker paying the amount realized to the NQI agrees to report (or ensures another broker will report) under section 1461 (and, if required, under section 6045) with respect to the amount realized allocated each of the account holders that are the transferors of the PTP interest (and provide NQI a copy of each Form 1042-S issued due to this reporting);
    • The NQI provides to the broker the statement described in Regulations section 1.6031(c)-1T(a)(1) with respect to each NQI account holder that is a partner required to be issued a statement under section 6031(b) for the calendar year of the payment and the information for the broker to allocate the amount realized to each transferor; and
    • The NQI receives from the broker paying the amount realized a written representation that the broker is acting as an agent of the PTP with respect to the statement described in Regulations section 1.6031(c)-1T(a) or otherwise designates the broker as its agent for providing the statement to the PTP (or the PTP's agent).

    Alternative procedure for NQIs receiving reportable amounts (and for chapter 4). To use the alternative procedure you must inform the withholding agent on your withholding statement that you are using the procedure, and the withholding agent must agree to the procedure. Under this procedure, you must provide a withholding agent with all the information required on the withholding statement and all payee documentation, except the specific allocation information for each payee, prior to the payment of a reportable amount. In addition, you must provide the withholding agent with withholding rate pool information. The withholding statement must assign each payee that is not subject to withholding under chapter 4 to a chapter 3 withholding rate pool prior to the payment of a reportable amount. The withholding rate pool may be established by any reasonable method agreed upon by you and the withholding agent. For example, you may agree to establish a separate account for a single withholding rate pool, or you may agree to divide a payment made to a single account into portions allocable to each withholding rate pool. You must determine withholding rate pools based on valid documentation or, to the extent a payment cannot be reliably associated with valid documentation, the applicable presumption rules. You must provide the withholding agent with sufficient information to allocate the income in each withholding rate pool to each payee (including U.S. exempt recipients) within the pool no later than January 31 of the year following the year of payment. If you fail to provide allocation information, if required, by January 31 for any withholding rate pool, you may not use this procedure for any payment made after that date for all withholding rate pools. You may remedy your failure to provide allocation information by providing the information to the withholding agent no later than February 14. In the case of a reportable amount that is also a withholdable payment, you may include amounts allocable to a chapter 4 withholding rate pool (other than a chapter 4 withholding rate pool of U.S. payees) and payees subject to chapter 4 withholding for whom you will provide payee-specific information in a 30-percent rate pool together with payees subject to chapter 3 withholding at the 30-percent rate and may not otherwise apply these provisions for payments made to U.S. non-exempt recipients (regardless of whether the payment is a withholdable payment). For the amount of the payment allocable to a chapter 4 withholding rate pool of U.S. payees, you may include such an amount in the withholding rate pool that is exempt from withholding (you can include such payees in an exempt pool regardless of whether the payment is a withholdable payment). You must identify prior to the payment each chapter 4 withholding rate pool to be allocated a portion of the payment and must also allocate by January 31 the portion of the payment to each such pool in addition to allocating the payment to each other payee as described in the preceding paragraph. See Regulations section 1.1441-1(e)(3)(iv)(D) for further information on alternative procedures for an NQI.

    Alternative withholding statement. If a withholding agent agrees, instead of providing a withholding statement that contains all of the information described previously, you may provide an alternative withholding statement for a payment of a reportable amount. You may only use an alternative withholding statement if you are providing the withholding agent with withholding certificates (and not documentary evidence) from the beneficial owners of the payment. The alternative withholding statement is not required to include information that is already on the withholding certificates (including name, address, TIN, chapter 4 status, and GIIN), and you are not required to provide the rate of withholding applicable to each beneficial owner, so long as the withholding agent can determine the appropriate rate based on the withholding certificates. Just as for a nonqualified intermediary withholding statement, the alternative withholding statement must provide information for allocating the payment to each payee and must include any other information the withholding agent needs to fulfill its withholding and reporting obligations.
    ,\r\n caution: If you are an NQI receiving an amount realized from the transfer of a PTP interest, however, the preceding paragraph and the representation made on line 17b applies only to the extent indicated in Withholding statement for amount realized or PTP distribution.

    A payment that is subject to chapter 3 withholding or that should be subject to chapter 4 withholding should not be included in a U.S. payee pool that is described in Regulations section 1.6049-4(c)(4)(ii). Instead, an allocation of a payment of an amount subject to chapter 3 withholding to a withholding rate pool of U.S. payees must identify the payees as described in Regulations section 1.1471-3(c)(3)(iii)(B)(2).

    The allowance for an NQI to provide a withholding statement and transferor documentation applies despite that an NQI may not obtain reduced withholding on an amount realized it receives from the transfer of a PTP interest.
    \r\n },\r\n line17a: {\r\n hint: If you are providing Form W-8IMY as a nonqualified intermediary (NQI), you must check the box on line 17a. By checking this box, you are certifying to all of the statements on line 17a.,\r\n },\r\n line17b: {\r\n hint: Check the box on line 17b if you are using this form to transmit withholding certificates or other documentation along with a withholding statement that satisfies the requirements of chapters 3 and 4 (including for purposes of section 1446(a) and including if you are providing pooled information for purposes of chapter 61 under the alternative procedure for U.S. non-exempt recipients, or chapter 4 withholding rate pool (as applicable) for a withholdable payment).,\r\n tip: If you are required to provide a chapter 4 status on line 5 and are acting as an intermediary for a withholdable payment, you must provide your chapter 4 status on line 5 or as otherwise permitted in these instructions to avoid withholding at the chapter 4 rate of 30% being applied to any withholdable payment you receive from the withholding agent regardless of whether you check the box on line 17b (except for documentation provided with respect to exempt beneficial owners).\r\n },\r\n line17c: {\r\n hint: Check the box on line box 17c to certify that you are permitted under Regulations section 1.6049-4(c)(4) to provide a chapter 4 withholding rate pool of U.S. payees to which a payment is allocated on a withholding statement associated with the Form W-8IMY. This checkbox does not apply to a PTP distribution. You may check this box with respect to U.S. source substitute dividends you receive as a QSL regardless of whether you act as an intermediary or principal for those amounts. See the instructions to line 8 for a QSL's requirement to provide a U.S. TIN.,\r\n },\r\n line17d: {\r\n hint: Check the box on line 17d to certify that you are acting as a QSL with respect to the accounts identified on this line or in a withholding statement associated with this form with respect to a payment that is a U.S. source substitute dividend. You may check this box with respect to U.S. source substitute dividends you receive as a QSL regardless of whether you act as an intermediary or principal for those amounts. See the instructions for line 8 for a QSL's requirement to provide a U.S. TIN. If you are acting on behalf of another NQI or on behalf of a foreign partnership or foreign trust that is not a withholding foreign partnership or a withholding foreign trust, you must attach to your Form W-8IMY the Form W-8IMY of the other NQI, foreign partnership, or foreign trust together with the withholding certificates and other documentation attached to that Form W-8IMY that are required for both chapter 3 and chapter 4 purposes.,\r\n caution: If you are an NQI receiving an amount realized from the transfer of a PTP interest, however, the preceding paragraph and the representation made on line 17b applies only to the extent indicated in Withholding statement for amount realized or PTP distribution in the Part IV instructions.\r\n },\r\n line17e: {\r\n hint: As part of providing any alternative withholding statements that are associated with your Form W-8IMY, you may make the representation indicated on line 17e. If you check the box line 17e, you are not required to represent on each alternative withholding statement that the information on the withholding certificates provided with the alternative withholding statement is not inconsistent with any other account information you have for the beneficial owners for determining the appropriate rate of withholding. See Regulations section 1.1441-1(e)(3)(iv)(C)(3) for further information on the representation otherwise required on each alternative withholding statement.,\r\n },\r\n partV: {\r\n hint: Check the box on line 18a to certify that you are a financial institution (other than an investment entity that is not also a depository institution, custodial institution, or specified insurance company) incorporated or organized under the laws of a territory of the United States.
      You must also check either the box on line 18b or 18c, the box on line 18d, and either the box line on 18e or 18f (each box as applicable based on the types of payments received). Check the box on line 18b to certify that you have agreed to be treated as a U.S. person for purposes of both chapter 3 and chapter 4 with respect to payments of reportable amounts and withholdable payments associated with this Form W-8IMY. In this case, you will be responsible for chapter 3 withholding and reporting, backup withholding under section 3406, and chapter 4 withholding and reporting for any payments you make to persons for whom you are receiving a reportable amount or withholdable payment. If you check the box on line 18b, you must provide an EIN on line 8.
      Check the box on line 18c to certify that you are a territory financial institution that has not agreed to be treated as a U.S. person for reportable amounts and withholdable payments associated with this form. You must certify that you are transmitting withholding certificates or other documentation for persons for whom you are receiving a payment (as required for chapter 3, chapter 61, and section 3406 purposes, and, in the case of a withholdable payment, for chapter 4 withholding and reporting purposes). You must also certify that you have provided or will provide a withholding statement (as required) with the information required on an NQI withholding statement.
      If this form is being provided for purposes of the entity’s holding of an interest in a PTP, check the box on line 18d to certify that you have agreed to be treated as a U.S. person under Regulations section 1.1446(f)-4(a)(2)(i)(B) with respect to an amount realized from a sale of a PTP interest. You may provide a withholding statement when you do not act as a U.S. person for an amount realized under the same conditions that apply to an NQI receiving an amount realized. See Withholding statement for amount realized or PTP distribution in the Part IV instructions. Check the box on line 18e to certify that you have agreed to be treated as a U.S. person (as described in Regulations section 1.1441-1(b)(2)(iv)) and as a nominee under Regulations section 1.1446-4(b)(3) with respect to distributions made by PTPs. If you check either the box on line 18d or 18e, you must provide an EIN on line 8. If you receive PTP distributions for which you do not act as a nominee under Regulations section 1.1446-4(b)(3), check the box on line 18f instead of the box on line 18e. You should provide a withholding statement to allocate the amounts subject to withholding on a distribution and provide the appropriate account holder documentation, taking into account the limitation on an NQI providing this documentation for an amount realized (to the extent applicable). See Withholding statement, for the requirements of a withholding statement provided by an intermediary for a PTP distribution.
    ,\r\n caution: A territory entity that is a flow-through entity but is not a territory financial institution may not complete this Part V to agree to be treated as a U.S. person. Instead, complete Part IV or Part VIII, as appropriate.\r\n },\r\n partVI: {\r\n hint: Check the box on line 19a to certify that you are a U.S. branch receiving payments of income that are reportable amounts or withholdable payments not effectively connected with the conduct of a trade or business in the United States, payments of PTP distributions, or payments of amounts realized.
      You must also check either the box on line 19b or 19c if you are receiving payments of reportable amounts or withholdable payments associated with this form. Check the box on line 19b to certify that you are a U.S. branch of a foreign bank or insurance company described in this certification that has agreed with the withholding agent to be treated as a U.S. person under Regulations section 1.1441-1(b)(2)(iv) with respect to such payments associated with this Form W-8IMY. In such case, you will be responsible for chapter 3 withholding and reporting and chapter 4 withholding and reporting for any such payments you make to persons for whom you are receiving a withholdable payment (including any of your branches treated as NPFFIs). In addition, you will be treated as a U.S. payor for chapter 61 purposes by checking the box on line 19b (including for backup withholding under section 3406). You must provide your EIN on line 8. You do not need to provide a chapter 4 status on line 5 or a GIIN on line 9.
      Check the box on line 19c to certify that you are a U.S. branch that does not have an agreement with the withholding agent to be treated as a U.S. person under Regulations section 1.1441-1(b)(2)(iv). You must certify that you are transmitting withholding certificates or other documentation for persons for whom you are receiving the payment of a reportable amount or withholdable payment. You must also certify that you have provided or will provide a withholding statement (as required) with the information required on an NQI withholding statement. Also, check the box on line 19c to certify that, when you are receiving a withholdable payment associated with this form, you are applying the rules described in Regulations section 1.1471-4(d)(2)(iii)(C). You must also provide your EIN on line 8 but do not need to include a chapter 4 status in Part I, line 5, or a GIIN on line 9. If you are unable to make this certification, you cannot fill out this part but instead must check the box on line 5 indicating you are a nonparticipating FFI.
      If this form is being provided for purposes of the entity’s holding of an interest in a PTP, check the box on line 19d to certify that you are a U.S. branch described in Regulations section 1.1446(f)-4(a)(2)(i)(B) that is acting as a U.S. person with respect to an amount realized from the sale of a PTP interest. You may provide a withholding statement when you do not act as a U.S. person for an amount realized under the same conditions that apply to an NQI receiving an amount realized. See Withholding statement for amount realized or PTP distribution in the Part IV instructions. Check the box on line 19e to certify that you are a U.S. branch described in Regulations section 1.1441-1(b)(2)(iv) that is acting as a nominee with respect to distributions by PTPs under Regulations section 1.1446-4(b)(3). You must provide your EIN on line 8 but do not need to provide a chapter 4 status on line 5 or a GIIN on line 9 when you check either the box on line 19d or 19e. If you are a U.S. branch receiving PTP distributions associated with the form and are not acting as a nominee for the distributions under Regulations section 1.1446-4(b)(3), you should check the box on line 19f instead of the box on line 19e. You should provide a withholding statement to allocate the amounts subject to withholding on a distribution and provide the appropriate account holder documentation, taking into account the limitation on an NQI providing this documentation for an amount realized (to the extent applicable). See Withholding statement, for the requirements of a withholding statement provided by an intermediary for a PTP distribution.
    ,\r\n },\r\n partVII: {\r\n hint: Check the box on line 20 if you are a WP or a WT and you are receiving the payment on behalf of your partners, beneficiaries, or owners.
      If you are acting as a WP or WT, you must assume primary withholding and reporting responsibility under chapter 3 and chapter 4 for all payments that are made to you for your partners, beneficiaries, or owners. Therefore, you are not required to provide information to the withholding agent regarding each partner’s, beneficiary’s, or owner’s distributive share of the payment and the information for the withholding agent to report under section 1472 (if otherwise required). You are not, however, permitted to assume primary withholding and reporting responsibility for payments subject to withholding under section 1445, 1446(a), 1446(f), or any other amount subject to withholding on a PTP distribution. If you are also receiving payments from the same withholding agent for persons other than your partners, beneficiaries, or owners, you must provide a separate Form W-8IMY for those payments. If you are receiving a withholdable payment, you must provide your chapter 4 status on line 5 and provide your GIIN (if applicable).
    ,\r\n },\r\n partVIII: {\r\n hint:

    Note. If you are receiving income that is effectively connected with the conduct of a trade or business in the United States, provide Form W-8ECI (instead of Form W-8IMY), when you are permitted to use that form to claim an exemption from withholding. If you are not receiving the income on behalf of your partners, beneficiaries, or owners, do not complete Part VIII. If you are a hybrid entity claiming treaty benefits, provide Form W-8BEN-E. However, if you are receiving a withholdable payment you may also be required to provide this Form W-8IMY and provide your chapter 4 status and the chapter 4 status of each of your owners. See the Instructions for Form W-8BEN-E for more information about hybrid entities claiming treaty benefits.
      If you are receiving a withholdable payment, you must provide a chapter 4 status on line 5 and provide your GIIN (if applicable) and the information required for the withholding agent to report under section 1472 (to the extent required).

    withholding statement of nonwithholding foreign partnership or nonwithholding foreign trust for purposes of chapters 3 and 4. You must provide the withholding agent with a withholding statement to obtain reduced rates of withholding and relief from certain reporting obligations. The withholding statement must provide the same information as required for an NQI withholding statement, including the information required with respect to an NQI, foreign partnership, or foreign trust (other than a WP or WT) for which you receive a payment. The withholding statement becomes an integral part of the Form W-8IMY. If you are an FFI and allocate any portion of the payment to a chapter 4 withholding rate pool of U.S. payees with respect to accounts that you maintain, you must meet the requirements of Regulations section 1.6049-4(c)(4)(iii) and certify to your status in Part I, line 5, as a participating FFI, registered deemed-compliant FFI, reporting Model 1 FFI, or reporting Model 2 FFI. By providing a withholding statement making such an allocation with this form, you certify that you meet the requirements outlined for an NQI withholding statement.

    Foreign partnerships and trusts providing Form W-8IMY for purposes of section 1446(a). In general, a partnership is required to withhold under section 1446(a) on effectively connected taxable income (ECTI) allocable to a foreign partner (or in the case of a PTP distribution, to the extent the distribution is attributable to ECTI, unless withholding is required by a nominee). A foreign upper-tier partnership (UTP) that is a partner in a lower-tier partnership (LTP) should provide the LTP with a Form W-8IMY and, for a partnership other than a PTP, documentation sufficient for the LTP (or nominee for the amounts) to determine the status of the indirect partner to whom the ECTI is allocable (looking through additional foreign UTPs, if applicable) and to determine such partner’s share of the lower-tier partnership’s ECTI.
      Also, for purposes of section 1446(a), a foreign grantor trust that is a partner in a partnership should provide Form W-8IMY to the partnership along with documentation and information concerning the grantor or other owner sufficient for the partnership to reliably associate the portion of the trust’s allocable share of ECTI with the grantor or other owner. Check the box on line 21b to certify that you are a foreign partnership or grantor trust providing this Form W-8IMY to a lower-tier partnership for purposes of section 1446(a).
    ,\r\n tip: If you are providing this Form W-8IMY solely for purposes of section 1446(a) or (f), you are not required to provide a chapter 4 status because items of effectively connected income are not withholdable payments. However, if you do not provide a chapter 4 status and subsequently receive a withholdable payment, you will also be required to provide a Form W-8IMY to provide your chapter 4 status or the lower-tier partnership or broker making the payment to you may have to withhold on the payment. You may provide your chapter 4 status on this form even if you are not required to do so.\r\n },\r\n line21a: {\r\n hint: Check the box on line 21a if you are a foreign partnership or a foreign simple or grantor trust that is not a WP or WT, and is providing this form for payments that are not effectively connected, or are not treated as effectively connected, with the conduct of a trade or business in the United States.\r\n },\r\n line21b: {\r\n hint: Check the box on line 21b if you are a foreign partnership or foreign grantor trust providing this form for purposes of section 1446(a). See Foreign partnerships and trusts providing Form W-8IMY for purposes of section 1446(a), in the Part VIII instructions. If you are a foreign partnership (other than a WP) or grantor trust receiving payments of both the amounts described on line 21a and for purposes of section 1446(a), you should check both boxes. By checking either box, you are certifying to the applicable statements on the form.\r\n },\r\n line21c: {\r\n hint: Check the box on line 21c if you are a foreign partnership that is a transferor of an interest in a partnership receiving an amount realized from the transfer. If you check the box on line 21c and are providing a withholding statement for a modified amount realized on the transfer, also check the box on line 21d. The withholding statement for a modified amount realized must show the allocation of the gain from the transfer to each of the partners for which a lower rate of withholding is being requested, and you must provide withholding certificates for each of the partners to avoid the requirement that the transferee (or your broker for a transfer of a PTP interest) treat a partner as a presumed foreign partner.,\r\n caution: For a modified amount realized, you may not use a withholding statement that you provided to your transferee or broker that only allocates a reportable amount or withholdable payment to your partners. You must provide a withholding statement that allocates the gain from the transfer of the PTP interest. Once you have provided that withholding statement, you may provide it for a subsequent amount realized provided that the gain allocations have not changed. You may instead provide a withholding statement that indicates both that it may be used for all reportable amounts, withholdable payments and gains on transfers allocable to your partners and that you will update the withholding statement for a change to any of these allocations.\r\n },\r\n line21e: {\r\n hint: Check the box on line 21e if you are a foreign grantor trust providing the form on behalf of each grantor or owner of the trust under Regulations section 1.1446(f)-1(c)(2) (vii) that is transmitting withholding certificates and providing a withholding statement to allocate an amount realized to each grantor or other owner in the trust for purposes of section 1446(f).\r\n },\r\n line21f: {\r\n hint: To the extent that the entity identified in Part 1 of this form is providing an alternative withholding statement described in Regulations section 1.1441-1(e)(3)(iv)(C)(3), you may check the box on this line to make the representation included on this line instead of making the representation on each alternative withholding statement. See Alternative withholding statement.\r\n },\r\n partIX: {\r\n hint: Check box 22 to certify that you are transmitting withholding certificates or other documentation for exempt beneficial owners for chapter 4 purposes on whose behalf you are receiving a payment that is a withholdable payment. See Regulations section 1.1471-6. You must also certify that you have provided or will provide a withholding statement (as required) allocating a portion of the payment to the exempt beneficial owners as required under Regulations section 1.1471-3(d)(8)(ii). The withholding statement must include the name, address, TIN (if any), entity type, and chapter 4 status of each exempt beneficial owner on behalf of which the nonparticipating FFI is receiving the payment, the amount of the payment allocable to each exempt beneficial owner, a valid withholding certificate or other documentation sufficient to establish the chapter 4 status of each exempt beneficial owner under the requirements of chapter 4, and any other information the withholding agent reasonably requests in order to fulfill its obligations under chapter 4. Additionally, the withholding statement must provide all information required for purposes of chapter 3 with respect to each exempt beneficial owner if the payment is subject to withholding under chapter 3. The withholding statement must allocate the remainder of the payment that is not allocated to an exempt beneficial owner to the nonparticipating FFI receiving the payment.,\r\n tip: You are not required to complete this part unless you are a nonparticipating FFI providing documentation on behalf of an exempt beneficial owner.\r\n },\r\n partX: {\r\n hint: If you are a sponsored FFI described in Regulations section 1.1471-5(f)(1)(i)(F), on line 23a, enter the name of the sponsoring entity that has agreed to fulfill your chapter 4 due diligence, reporting, and withholding obligations on your behalf. You must provide your GIIN on line 9.
      You must check the applicable box on line 23b or 23c to certify that you are either an investment entity or controlled foreign corporation (within the meaning of section 957(a)) and satisfy the other relevant requirements for this classification.
    ,\r\n },\r\n partXI: {\r\n hint: All owner-documented FFIs must check box 24a to certify that you satisfy the requirements for this classification and are providing this form to a U.S. financial institution, a participating FFI, or a reporting Model 1 FFI that has agreed to act as a designated withholding agent with respect to the entity identified on line 1 (see Regulations section 1.1471-5(f) (3)).
     You must also check either box 24b or 24c. Check box 24b to certify that you have provided or will provide the documentation set forth in the certifications, including the owner reporting statement described in this line 24b. Check box 24c to certify that you have provided or will provide an auditor’s letter (in lieu of the information required by line 24(b)) that satisfies the requirements described in this line.
    ,\r\n caution: An owner-documented FFI should only complete Form W-8IMY if it is a flow-through entity receiving income allocable to its partners, owners, or beneficiaries. An owner-documented FFI is not permitted to act as an intermediary with respect to a withholdable payment.\r\n },\r\n partXII: {\r\n hint: All nonregistering local banks must check box 25 to certify that you satisfy all of the requirements for this certified deemed-compliant classification.,\r\n },\r\n partXIII: {\r\n hint: All FFIs with only low-value accounts must check box 26 to certify that you satisfy all of the requirements for this certified deemed-compliant classification.,\r\n },\r\n partXIV: {\r\n hint: On line 27a, enter the name of the sponsoring entity that has agreed to fulfill your chapter 4 due diligence, reporting, and withholding obligations on your behalf. You must also enter the GIIN of your sponsoring entity on line 9.
     All sponsored, closely held investment vehicles must check box 27b to certify that you satisfy the requirements for certified deemed-compliant classification as a sponsored entity.
    ,\r\n },\r\n partXV: {\r\n hint: All limited life debt investment entities must check box 28 to certify that you satisfy the requirements for this certified deemed-compliant classification.,\r\n },\r\n partXVI: {\r\n hint: An investment advisor or investment manager must check the box to certify that it meets all of the requirements for this certified deemed-compliant status.,\r\n },\r\n partXVII: {\r\n hint: All restricted distributors must check box 30a to certify that you satisfy the requirements for this classification.
     You must also check either box 30b or 30c, as appropriate, to certify that your distribution agreement meets the requirements of this classification.
    ,\r\n },\r\n partXVIII: {\r\n hint: A foreign central bank of issue must check box 31 to certify that you are acting as an intermediary and are an entity defined in Regulations section 1.1471-6 that is treated as the beneficial owner of the payment for chapter 4 purposes (applying the rule in Regulations section 1.1471-6(d)(4)). You cannot be treated as an intermediary for purposes of this Part XVIII if you are receiving the payment in connection with a commercial activity described in Regulations section 1.1471-6(h)(1) or are not receiving payments subject to chapter 3 withholding.,\r\n },\r\n partXIX: {\r\n hint: Check box 32 to indicate that you are treated as a nonreporting IGA FFI under an applicable IGA, including an entity treated as a registered deemed-compliant FFI under an applicable IGA. You must identify the applicable IGA by entering the name of the jurisdiction that has the applicable IGA in effect with the United States and indicate whether it is a Model 1 or a Model 2 IGA. You must also provide the withholding agent with the specific category of entity described in Annex II of the IGA applicable to your status. In providing the specific category of FFI described in Annex II, you should use the language from Annex II that best and most specifically describes your status in the IGA. For example, indicate “investment entity wholly owned by exempt beneficial owners” rather than “exempt beneficial owner.” If you are a nonreporting IGA FFI claiming a deemed-compliant status under the regulations, you must instead indicate on this line which section of the regulations you qualify under.
      If you are a nonreporting FFI under an applicable IGA because you qualify as an owner-documented FFI under the regulations, do not check “Nonreporting IGA FFI.” Instead you must check “Owner-documented FFI” and complete Part XI rather than this Part XIX.
      If you are an FFI treated as a registered deemed-compliant FFI under an applicable Model 2 IGA, you must provide your GIIN in the space provided. The GIIN does not need to be provided on line 9. See https://home.treasury.gov/policy-issues/tax-policy/foreign-account-tax-compliance-act for a list of jurisdictions treated as having an IGA in effect for purposes of making this certification.
    Note. If you are a nonreporting IGA FFI and you have registered and received a GIIN and have not provided it in line 9 because your trustee's or sponsor's GIIN is in line 9, you should provide it here.
    ,\r\n },\r\n partXX: {\r\n hint: You must check the appropriate box on line 33a, b, c, d, e, or f to certify that you satisfy the requirements of exempt retirement plan status.,\r\n caution: If you are not a flow-through entity or acting as an intermediary with respect to the payment for chapter 3 purposes, do not complete Form W-8IMY. If you are the beneficial owner of the payment and are claiming an exemption under sections 115(2), 892, or 895 as well as exempt beneficial owner status under Regulations section 1.1471-6 you should provide Form W-8EXP. If you are receiving payments which do not qualify for a statutory exemption from tax but for which you are claiming benefits under an applicable income tax treaty, provide Form W-8BEN-E.\r\n },\r\n partXXI: {\r\n hint: All excepted nonfinancial group entities must check box 34 to certify that you satisfy the requirements for this classification.,\r\n },\r\n partXXII: {\r\n hint: All excepted nonfinancial start-up companies must check box 35 to certify that you satisfy the requirements for this classification. You must also provide the date you were formed or your board passed a resolution (or equivalent measure) approving a new line of business (which cannot be that of a financial institution or passive NFFE).,\r\n },\r\n partXXIII: {\r\n hint: All excepted nonfinancial group entities in liquidation or bankruptcy must check box 36 to certify that you satisfy the requirements for this classification. You must also provide the date that you filed a plan of liquidation, plan of reorganization, or bankruptcy petition.,\r\n },\r\n partXXIV: {\r\n hint: All publicly traded NFFEs must check box 37a to certify that you are not a financial institution and provide the name of a securities exchange on which the stock of the NFFE is publicly traded.
    An NFFE that is a member of the same expanded affiliated group (as described in Regulations section 1.1471-5(i)) as a publicly traded U.S. or foreign entity must check this box, provide the name of the publicly traded entity, and identify the securities market on which the stock of the publicly traded entity is traded. See Regulations section 1.1472-1(c)(1)(i) to determine if an entity is publicly traded.
    ,\r\n },\r\n partXXV: {\r\n hint: All excepted territory NFFEs must check box 38 to certify that you satisfy the requirements for this classification. See Regulations section 1.1472-1(c)(1)(iii) for the definition of an excepted territory NFFE.,\r\n },\r\n partXXVI: {\r\n hint: All active NFFEs must check box 39 to certify that you satisfy the requirements for this classification.,\r\n },\r\n partXXVII: {\r\n hint: All passive NFFEs must check box 40 to certify that you are not a financial institution (other than an investment entity organized in a possession of the United States). You must also certify that you have provided a withholding statement associated with Form W-8IMY to the extent you are required to provide a withholding statement.,\r\n },\r\n partXXVIII: {\r\n hint: All sponsored direct reporting NFFEs must check the box on line 42 to certify that you are not a financial institution and that you satisfy all relevant requirements for this classification. Provide your GIIN or, prior to the date specified in published guidance (i.e., January 1, 2017), the GIIN of your sponsor on line 9.
     Enter the name and the GIIN of the sponsoring entity in line 41.
    ,\r\n },\r\n partXXIX: {\r\n hint: Form W-8IMY must be signed and dated by a person authorized to sign a declaration under penalties of perjury on behalf of the person whose name is on the form. By signing Form W-8IMY the authorized representative, officer, or agent also agrees to provide a new form within 30 days following a change in circumstances (unless no future payments will be made to the intermediary or flow-through entity by the withholding agent and the requestor does not need an updated form for chapter 4 purposes).
      A withholding agent may allow you to provide this form with an electronic signature. The electronic signature must indicate that the form was electronically signed by a person authorized to do so (for example, with a time and date stamp and a statement that the form has been electronically signed). Simply typing your name into the signature line is not an electronic signature. A withholding agent may also rely on an electronically signed withholding certificate if you provide any additional information or documentation requested by the withholding agent to support that the form was signed by you or other person authorized to do so. See Regulations section 1.1441-1(e)(4)(i)(B).
    ,\r\n },\r\n};\r\n","import React from 'react';\r\n\r\n/* eslint-disable max-len */\r\nexport default {\r\n line1: {\r\n label: 'Name (as shown on your income tax return). Name is required on this line; do not leave this line blank.',\r\n hint: You must enter one of the following on this line; do not leave this line blank. The name should match the name on your tax return.

    If this Form W-9 is for a joint account, list first, and then circle, the name of the person or entity whose number you entered in Part I of Form W-9.

    a. Individual. Generally, enter the name shown on your tax return. If you have changed your last name without informing the Social Security Administration (SSA) of the name change, enter your first name, the last name as shown on your social security card, and your new last name.

    Note. ITIN applicant: Enter your individual name as it was entered on your Form W-7 application, line 1a. This should also be the same as the name you entered on the Form 1040/1040A/1040EZ you filed with your application.

    b. Sole proprietor or single-member LLC. Enter your individual name as shown on your 1040/1040A/1040EZ on line 1. You may enter your business, trade, or “doing business as” (DBA) name on line 2.

    c. Partnership, LLC that is not a single-member LLC, C Corporation, or S Corporation. Enter the entity's name as shown on the entity's tax return on line 1 and any business, trade, or DBA name on line 2.

    d. Other entities. Enter your name as shown on required U.S. federal tax documents on line 1. This name should match the name shown on the charter or other legal document creating the entity. You may enter any business, trade, or DBA name on line 2.

    e. Disregarded entity. For U.S. federal tax purposes, an entity that is disregarded as an entity separate from its owner is treated as a “disregarded entity.” See Regulations section 301.7701-2(c)(2)(iii). Enter the owner's name on line 1. The name of the entity entered on line 1 should never be a disregarded entity. The name on line 1 should be the name shown on the income tax return on which the income should be reported. For example, if a foreign LLC that is treated as a disregarded entity for U.S. federal tax purposes has a single owner that is a U.S. person, the U.S. owner's name is required to be provided on line 1. If the direct owner of the entity is also a disregarded entity, enter the first owner that is not disregarded for federal tax purposes. Enter the disregarded entity's name on line 2, “Business name/disregarded entity name.” If the owner of the disregarded entity is a foreign person, the owner must complete an appropriate Form W-8 instead of a Form W-9. This is the case even if the foreign person has a U.S. TIN.

    ,\r\n },\r\n line2: {\r\n label: 'Business name/disregarded entity name, if different from above.',\r\n hint: If you have a business name, trade name, DBA name, or disregarded entity name, you may enter it on line 2.,\r\n caution: A disregarded U.S. entity that has a foreign owner must use the appropriate Form W-8\r\n },\r\n line3: {\r\n label: 'Check appropriate box for federal tax classification; check only one of the following seven boxes:',\r\n hint: Check the appropriate box in line 3 for the U.S. federal tax classification of the person whose name is entered on line 1. Check only one box in line 3.

    Limited Liability Company (LLC). If the name on line 1 is an LLC treated as a partnership for U.S. federal tax purposes, check the “Limited Liability Company” box and enter “P” in the space provided. If the LLC has filed Form 8832 or 2553 to be taxed as a corporation, check the “Limited Liability Company” box and in the space provided enter “C” for C corporation or “S” for S corporation. If it is a single-member LLC that is a disregarded entity, do not check the “Limited Liability Company” box; instead check the first box in line 3 “Individual/sole proprietor or single-member LLC”.

    ,\r\n },\r\n line4: {\r\n label: Exemptions (codes apply only to
    certain entities, not individuals;
    see instructions on page 3):
    ,\r\n hint: If you are exempt from backup withholding and/or FATCA reporting, enter in the appropriate space in line 4 any code(s) that may apply to you.\r\n

    Exempt payee code.

    \r\n
      \r\n
    1. An organization exempt from tax under section 501(a), any IRA, or a custodial account under section 403(b)(7) if the account satisfies the requirements of section 401(f)(2)
    2. \r\n
    3. The United States or any of its agencies or instrumentalities
    4. \r\n
    5. A state, the District of Columbia, a U.S. commonwealth or possession, or any of their political subdivisions or instrumentalities
    6. \r\n
    7. A foreign government or any of its political subdivisions, agencies, or instrumentalities
    8. \r\n
    9. A corporation
    10. \r\n
    11. A dealer in securities or commodities required to register in the United States, the District of Columbia, or a U.S. commonwealth or possession
    12. \r\n
    13. A futures commission merchant registered with the Commodity Futures Trading Commission
    14. \r\n
    15. A real estate investment trust
    16. \r\n
    17. An entity registered at all times during the tax year under the Investment Company Act of 1940
    18. \r\n
    19. A common trust fund operated by a bank under section 584(a)
    20. \r\n
    21. A financial institution
    22. \r\n
    23. A middleman known in the investment community as a nominee or custodian
    24. \r\n
    25. A trust exempt from tax under section 664 or described in section 4947
    26. \r\n
    \r\n {\r\n if (event != null) {\r\n event.preventDefault();\r\n }\r\n const elem = document.getElementById('exemptions-payee-code');\r\n if (elem != null) {\r\n elem.scrollIntoView({ block: 'start', behavior: 'smooth' });\r\n }\r\n return null;\r\n } }\r\n >\r\n Read More\r\n \r\n

    Exemption from FATCA reporting code.

    \r\n

    A—An organization exempt from tax under section 501(a) or any individual retirement plan as defined in section 7701(a)(37)

    \r\n

    B—The United States or any of its agencies or instrumentalities

    \r\n

    C—A state, the District of Columbia, a U.S. commonwealth or possession, or any of their political subdivisions or instrumentalities

    \r\n

    D—A corporation the stock of which is regularly traded on one or more established securities markets, as described in Regulations section 1.1472-1(c)(1)(i)

    \r\n

    E—A corporation that is a member of the same expanded affiliated group as a corporation described in Regulations section 1.1472-1(c)(1)(i)

    \r\n

    F—A dealer in securities, commodities, or derivative financial instruments (including notional principal contracts, futures, forwards, and options) that is registered as such under the laws of the United States or any state

    \r\n

    G—A real estate investment trust

    \r\n

    H—A regulated investment company as defined in section 851 or an entity registered at all times during the tax year under the Investment Company Act of 1940

    \r\n

    I—A common trust fund as defined in section 584(a)

    \r\n

    J—A bank as defined in section 581

    \r\n

    K—A broker

    \r\n

    L—A trust exempt from tax under section 664 or described in section 4947(a)(1)

    \r\n

    M—A tax exempt trust under a section 403(b) plan or section 457(g) plan

    \r\n {\r\n if (event != null) {\r\n event.preventDefault();\r\n }\r\n const elem = document.getElementById('exemptions-fatca-code');\r\n if (elem != null) {\r\n elem.scrollIntoView({ block: 'start', behavior: 'smooth' });\r\n }\r\n return null;\r\n } }\r\n >\r\n Read More\r\n \r\n
    \r\n },\r\n line5: {\r\n label: 'Address (number, street, and apt. or suite no.)',\r\n hint: Enter your address (number, street, and apartment or suite number).
    This is where the requester of this Form W-9 will mail your information returns.
    ,\r\n },\r\n line6: {\r\n label: 'City, state, and ZIP code',\r\n hint: Enter your city, state, and ZIP code.\r\n },\r\n partI: {\r\n hint: Enter your TIN in the appropriate box. If you are a resident alien and you do not have and are not eligible to get an SSN, your TIN is your IRS individual taxpayer identification number (ITIN). Enter it in the social security number box. If you do not have an ITIN, see How to get a TIN below.

    If you are a sole proprietor and you have an EIN, you may enter either your SSN or EIN. However, the IRS prefers that you use your SSN.

    If you are a single-member LLC that is disregarded as an entity separate from its owner (see Limited Liability Company (LLC) on this page), enter the owner’s SSN (or EIN, if the owner has one). Do not enter the disregarded entity’s EIN. If the LLC is classified as a corporation or partnership, enter the entity’s EIN.

    Note. See the chart on page 4 for further clarification of name and TIN combinations.

    How to get a TIN. If you do not have a TIN, apply for one immediately. To apply for an SSN, get Form SS-5, Application for a Social Security Card, from your local SSA office or get this form online at www.ssa.gov. You may also get this form by calling 1-800-772-1213. Use Form W-7, Application for IRS Individual Taxpayer Identification Number, to apply for an ITIN, or Form SS-4, Application for Employer Identification Number, to apply for an EIN. You can apply for an EIN online by accessing the IRS website at www.irs.gov/businesses and clicking on Employer Identification Number (EIN) under Starting a Business. You can get Forms W-7 and SS-4 from the IRS by visiting IRS.gov or by calling 1-800-TAX-FORM (1-800-829-3676).

    If you are asked to complete Form W-9 but do not have a TIN, apply for a TIN and write “Applied For” in the space for the TIN, sign and date the form, and give it to the requester. For interest and dividend payments, and certain payments made with respect to readily tradable instruments, generally you will have 60 days to get a TIN and give it to the requester before you are subject to backup withholding on payments. The 60-day rule does not apply to other types of payments. You will be subject to backup withholding on all such payments until you provide your TIN to the requester.

    Note. Entering “Applied For” means that you have already applied for a TIN or that you intend to apply for one soon.

    ,\r\n },\r\n partII: {\r\n hint: To establish to the withholding agent that you are a U.S. person, or resident alien, sign Form W-9. You may be requested to sign by the withholding agent even if items 1, 4, or 5 below indicate otherwise.

    For a joint account, only the person whose TIN is shown in Part I should sign (when required). In the case of a disregarded entity, the person identified on line 1 must sign. Exempt payees, see Exempt payee code earlier.

    Signature requirements. Complete the certification as indicated in items 1 through 5 below.

    1. Interest, dividend, and barter exchange accounts opened before 1984 and broker accounts considered active during 1983. You must give your correct TIN, but you do not have to sign the certification.

    2. Interest, dividend, broker, and barter exchange accounts opened after 1983 and broker accounts considered inactive during 1983. You must sign the certification or backup withholding will apply. If you are subject to backup withholding and you are merely providing your correct TIN to the requester, you must cross out item 2 in the certification before signing the form.

    3. Real estate transactions. You must sign the certification. You may cross out item 2 of the certification.

    4. Other payments. You must give your correct TIN, but you do not have to sign the certification unless you have been notified that you have previously given an incorrect TIN. “Other payments” include payments made in the course of the requester’s trade or business for rents, royalties, goods (other than bills for merchandise), medical and health care services (including payments to corporations), payments to a nonemployee for services, payments made in settlement of payment card and third-party network transactions, payments to certain fishing boat crew members and fishermen, and gross proceeds paid to attorneys (including payments to corporations).

    5. Mortgage interest paid by you, acquisition or abandonment of secured property, cancellation of debt, qualified tuition program payments (under section 529), IRA, Coverdell ESA, Archer MSA or HSA contributions or distributions, and pension distributions. You must give your correct TIN, but you do not have to sign the certification

    ,\r\n tip: For Forms W-9 that are not required to be signed, the electronic system need not provide for an electronic signature or a perjury statement.\r\n },\r\n};\r\n","import React from 'react';\r\n\r\n/* eslint-disable max-len */\r\nexport default {\r\n line1: {\r\n label: 'Name (as shown on your income tax return). Name is required on this line; do not leave this line blank.',\r\n hint: You must enter one of the following on this line; do not leave this line blank. The name should match the name on your tax return.

    If this Form W-9 is for a joint account, list first, and then circle, the name of the person or entity whose number you entered in Part I of Form W-9.

    a. Individual. Generally, enter the name shown on your tax return. If you have changed your last name without informing the Social Security Administration (SSA) of the name change, enter your first name, the last name as shown on your social security card, and your new last name.

    Note. ITIN applicant: Enter your individual name as it was entered on your Form W-7 application, line 1a. This should also be the same as the name you entered on the Form 1040/1040A/1040EZ you filed with your application.

    b. Sole proprietor or single-member LLC. Enter your individual name as shown on your 1040/1040A/1040EZ on line 1. You may enter your business, trade, or “doing business as” (DBA) name on line 2.

    c. Partnership, LLC that is not a single-member LLC, C Corporation, or S Corporation. Enter the entity's name as shown on the entity's tax return on line 1 and any business, trade, or DBA name on line 2.

    d. Other entities. Enter your name as shown on required U.S. federal tax documents on line 1. This name should match the name shown on the charter or other legal document creating the entity. You may enter any business, trade, or DBA name on line 2.

    e. Disregarded entity. For U.S. federal tax purposes, an entity that is disregarded as an entity separate from its owner is treated as a “disregarded entity.” See Regulations section 301.7701-2(c)(2)(iii). Enter the owner's name on line 1. The name of the entity entered on line 1 should never be a disregarded entity. The name on line 1 should be the name shown on the income tax return on which the income should be reported. For example, if a foreign LLC that is treated as a disregarded entity for U.S. federal tax purposes has a single owner that is a U.S. person, the U.S. owner's name is required to be provided on line 1. If the direct owner of the entity is also a disregarded entity, enter the first owner that is not disregarded for federal tax purposes. Enter the disregarded entity's name on line 2, “Business name/disregarded entity name.” If the owner of the disregarded entity is a foreign person, the owner must complete an appropriate Form W-8 instead of a Form W-9. This is the case even if the foreign person has a U.S. TIN.

    ,\r\n },\r\n line2: {\r\n label: 'Business name/disregarded entity name, if different from above.',\r\n hint: If you have a business name, trade name, DBA name, or disregarded entity name, you may enter it on line 2.,\r\n caution: A disregarded U.S. entity that has a foreign owner must use the appropriate Form W-8\r\n },\r\n line3: {\r\n label: 'Check appropriate box for federal tax classification; check only one of the following seven boxes:',\r\n hint: Check the appropriate box in line 3 for the U.S. federal tax classification of the person whose name is entered on line 1. Check only one box in line 3.,\r\n },\r\n line4: {\r\n label: Exemptions (codes apply only to
    certain entities, not individuals;
    see instructions on page 3):
    ,\r\n hint: If you are exempt from backup withholding and/or FATCA reporting, enter in the appropriate space in line 4 any code(s) that may apply to you.\r\n

    Exempt payee code.

    \r\n
      \r\n
    1. An organization exempt from tax under section 501(a), any IRA, or a custodial account under section 403(b)(7) if the account satisfies the requirements of section 401(f)(2)
    2. \r\n
    3. The United States or any of its agencies or instrumentalities
    4. \r\n
    5. A state, the District of Columbia, a U.S. commonwealth or possession, or any of their political subdivisions or instrumentalities
    6. \r\n
    7. A foreign government or any of its political subdivisions, agencies, or instrumentalities
    8. \r\n
    9. A corporation
    10. \r\n
    11. A dealer in securities or commodities required to register in the United States, the District of Columbia, or a U.S. commonwealth or possession
    12. \r\n
    13. A futures commission merchant registered with the Commodity Futures Trading Commission
    14. \r\n
    15. A real estate investment trust
    16. \r\n
    17. An entity registered at all times during the tax year under the Investment Company Act of 1940
    18. \r\n
    19. A common trust fund operated by a bank under section 584(a)
    20. \r\n
    21. A financial institution
    22. \r\n
    23. A middleman known in the investment community as a nominee or custodian
    24. \r\n
    25. A trust exempt from tax under section 664 or described in section 4947
    26. \r\n
    \r\n {\r\n if (event != null) {\r\n event.preventDefault();\r\n }\r\n const elem = document.getElementById('exemptions-payee-code');\r\n if (elem != null) {\r\n elem.scrollIntoView({ block: 'start', behavior: 'smooth' });\r\n }\r\n return null;\r\n } }\r\n >\r\n Read More\r\n \r\n

    Exemption from FATCA reporting code.

    \r\n

    A—An organization exempt from tax under section 501(a) or any individual retirement plan as defined in section 7701(a)(37)

    \r\n

    B—The United States or any of its agencies or instrumentalities

    \r\n

    C—A state, the District of Columbia, a U.S. commonwealth or possession, or any of their political subdivisions or instrumentalities

    \r\n

    D—A corporation the stock of which is regularly traded on one or more established securities markets, as described in Regulations section 1.1472-1(c)(1)(i)

    \r\n

    E—A corporation that is a member of the same expanded affiliated group as a corporation described in Regulations section 1.1472-1(c)(1)(i)

    \r\n

    F—A dealer in securities, commodities, or derivative financial instruments (including notional principal contracts, futures, forwards, and options) that is registered as such under the laws of the United States or any state

    \r\n

    G—A real estate investment trust

    \r\n

    H—A regulated investment company as defined in section 851 or an entity registered at all times during the tax year under the Investment Company Act of 1940

    \r\n

    I—A common trust fund as defined in section 584(a)

    \r\n

    J—A bank as defined in section 581

    \r\n

    K—A broker

    \r\n

    L—A trust exempt from tax under section 664 or described in section 4947(a)(1)

    \r\n

    M—A tax exempt trust under a section 403(b) plan or section 457(g) plan

    \r\n {\r\n if (event != null) {\r\n event.preventDefault();\r\n }\r\n const elem = document.getElementById('exemptions-fatca-code');\r\n if (elem != null) {\r\n elem.scrollIntoView({ block: 'start', behavior: 'smooth' });\r\n }\r\n return null;\r\n } }\r\n >\r\n Read More\r\n \r\n
    \r\n },\r\n line5: {\r\n label: 'Address (number, street, and apt. or suite no.) See instructions.',\r\n hint: Enter your address (number, street, and apartment or suite number). This is where the requester of this Form W-9 will mail your information returns. If this address differs from the one the requester already has on file, write NEW at the top. If a new address is provided, there is still a chance the old address will be used until the payor changes your address in their records.,\r\n },\r\n line6: {\r\n label: 'City, state, and ZIP code',\r\n hint: Enter your city, state, and ZIP code.\r\n },\r\n partI: {\r\n hint: Enter your TIN in the appropriate box. If you are a resident alien and you do not have and are not eligible to get an SSN, your TIN is your IRS individual taxpayer identification number (ITIN). Enter it in the social security number box. If you do not have an ITIN, see How to get a TIN below.

    If you are a sole proprietor and you have an EIN, you may enter either your SSN or EIN.

    If you are a single-member LLC that is disregarded as an entity separate from its owner, enter the owner’s SSN (or EIN, if the owner has one). Do not enter the disregarded entity’s EIN. If the LLC is classified as a corporation or partnership, enter the entity’s EIN.

    Note. See the chart on page 4 for further clarification of name and TIN combinations.

    How to get a TIN. If you do not have a TIN, apply for one immediately. To apply for an SSN, get Form SS-5, Application for a Social Security Card, from your local SSA office or get this form online at www.ssa.gov. You may also get this form by calling 1-800-772-1213. Use Form W-7, Application for IRS Individual Taxpayer Identification Number, to apply for an ITIN, or Form SS-4, Application for Employer Identification Number, to apply for an EIN. You can apply for an EIN online by accessing the IRS website at www.irs.gov/businesses and clicking on Employer Identification Number (EIN) under Starting a Business. Go to www.irs.gov/Forms to view, download, or print Form W-7 and/or Form SS-4. Or, you can go to www.irs.gov/OrderForms to place an order and have Form W-7 and/or SS-4 mailed to you within 10 business days.

    If you are asked to complete Form W-9 but do not have a TIN, apply for a TIN and write “Applied For” in the space for the TIN, sign and date the form, and give it to the requester. For interest and dividend payments, and certain payments made with respect to readily tradable instruments, generally you will have 60 days to get a TIN and give it to the requester before you are subject to backup withholding on payments. The 60-day rule does not apply to other types of payments. You will be subject to backup withholding on all such payments until you provide your TIN to the requester.

    Note. Entering “Applied For” means that you have already applied for a TIN or that you intend to apply for one soon.

    ,\r\n },\r\n partII: {\r\n hint: To establish to the withholding agent that you are a U.S. person, or resident alien, sign Form W-9. You may be requested to sign by the withholding agent even if items 1, 4, or 5 below indicate otherwise.

    For a joint account, only the person whose TIN is shown in Part I should sign (when required). In the case of a disregarded entity, the person identified on line 1 must sign. Exempt payees, see Exempt payee code earlier.

    Signature requirements. Complete the certification as indicated in items 1 through 5 below.

    1. Interest, dividend, and barter exchange accounts opened before 1984 and broker accounts considered active during 1983. You must give your correct TIN, but you do not have to sign the certification.

    2. Interest, dividend, broker, and barter exchange accounts opened after 1983 and broker accounts considered inactive during 1983. You must sign the certification or backup withholding will apply. If you are subject to backup withholding and you are merely providing your correct TIN to the requester, you must cross out item 2 in the certification before signing the form.

    3. Real estate transactions. You must sign the certification. You may cross out item 2 of the certification.

    4. Other payments. You must give your correct TIN, but you do not have to sign the certification unless you have been notified that you have previously given an incorrect TIN. “Other payments” include payments made in the course of the requester’s trade or business for rents, royalties, goods (other than bills for merchandise), medical and health care services (including payments to corporations), payments to a nonemployee for services, payments made in settlement of payment card and third-party network transactions, payments to certain fishing boat crew members and fishermen, and gross proceeds paid to attorneys (including payments to corporations).

    5. Mortgage interest paid by you, acquisition or abandonment of secured property, cancellation of debt, qualified tuition program payments (under section 529), IRA, Coverdell ESA, Archer MSA or HSA contributions or distributions, and pension distributions. You must give your correct TIN, but you do not have to sign the certification

    ,\r\n tip: For Forms W-9 that are not required to be signed, the electronic system need not provide for an electronic signature or a perjury statement.\r\n },\r\n};\r\n","import React from 'react';\r\n\r\n/* eslint-disable max-len */\r\nexport default {\r\n line1: {\r\n label: 'Name (as shown on your income tax return). Name is required on this line; do not leave this line blank.',\r\n hint: You must enter one of the following on this line; do not leave this line blank. The name should match the name on your tax return.

    If this Form W-9 is for a joint account, list first, and then circle, the name of the person or entity whose number you entered in Part I of Form W-9.

    a. Individual. Generally, enter the name shown on your tax return. If you have changed your last name without informing the Social Security Administration (SSA) of the name change, enter your first name, the last name as shown on your social security card, and your new last name.

    Note. ITIN applicant: Enter your individual name as it was entered on your Form W-7 application, line 1a. This should also be the same as the name you entered on the Form 1040/1040A/1040EZ you filed with your application.

    b. Sole proprietor or single-member LLC. Enter your individual name as shown on your 1040/1040A/1040EZ on line 1. You may enter your business, trade, or “doing business as” (DBA) name on line 2.

    c. Partnership, LLC that is not a single-member LLC, C Corporation, or S Corporation. Enter the entity's name as shown on the entity's tax return on line 1 and any business, trade, or DBA name on line 2.

    d. Other entities. Enter your name as shown on required U.S. federal tax documents on line 1. This name should match the name shown on the charter or other legal document creating the entity. You may enter any business, trade, or DBA name on line 2.

    e. Disregarded entity. For U.S. federal tax purposes, an entity that is disregarded as an entity separate from its owner is treated as a “disregarded entity.” See Regulations section 301.7701-2(c)(2)(iii). Enter the owner's name on line 1. The name of the entity entered on line 1 should never be a disregarded entity. The name on line 1 should be the name shown on the income tax return on which the income should be reported. For example, if a foreign LLC that is treated as a disregarded entity for U.S. federal tax purposes has a single owner that is a U.S. person, the U.S. owner's name is required to be provided on line 1. If the direct owner of the entity is also a disregarded entity, enter the first owner that is not disregarded for federal tax purposes. Enter the disregarded entity's name on line 2, “Business name/disregarded entity name.” If the owner of the disregarded entity is a foreign person, the owner must complete an appropriate Form W-8 instead of a Form W-9. This is the case even if the foreign person has a U.S. TIN.

    ,\r\n },\r\n line2: {\r\n label: 'Business name/disregarded entity name, if different from above.',\r\n hint: If you have a business name, trade name, DBA name, or disregarded entity name, you may enter it on line 2.,\r\n caution: A disregarded U.S. entity that has a foreign owner must use the appropriate Form W-8\r\n },\r\n line3: {\r\n label: 'Check appropriate box for federal tax classification; check only one of the following seven boxes:',\r\n hint: Check the appropriate box in line 3 for the U.S. federal tax classification of the person whose name is entered on line 1. Check only one box in line 3.,\r\n },\r\n line4: {\r\n label: Exemptions (codes apply only to
    certain entities, not individuals;
    see instructions on page 3):
    ,\r\n hint: If you are exempt from backup withholding and/or FATCA reporting, enter in the appropriate space in line 4 any code(s) that may apply to you.\r\n

    Exempt payee code.

    \r\n
      \r\n
    1. An organization exempt from tax under section 501(a), any IRA, or a custodial account under section 403(b)(7) if the account satisfies the requirements of section 401(f)(2)
    2. \r\n
    3. The United States or any of its agencies or instrumentalities
    4. \r\n
    5. A state, the District of Columbia, a U.S. commonwealth or possession, or any of their political subdivisions or instrumentalities
    6. \r\n
    7. A foreign government or any of its political subdivisions, agencies, or instrumentalities
    8. \r\n
    9. A corporation
    10. \r\n
    11. A dealer in securities or commodities required to register in the United States, the District of Columbia, or a U.S. commonwealth or possession
    12. \r\n
    13. A futures commission merchant registered with the Commodity Futures Trading Commission
    14. \r\n
    15. A real estate investment trust
    16. \r\n
    17. An entity registered at all times during the tax year under the Investment Company Act of 1940
    18. \r\n
    19. A common trust fund operated by a bank under section 584(a)
    20. \r\n
    21. A financial institution
    22. \r\n
    23. A middleman known in the investment community as a nominee or custodian
    24. \r\n
    25. A trust exempt from tax under section 664 or described in section 4947
    26. \r\n
    \r\n {\r\n if (event != null) {\r\n event.preventDefault();\r\n }\r\n const elem = document.getElementById('exemptions-payee-code');\r\n if (elem != null) {\r\n elem.scrollIntoView({ block: 'start', behavior: 'smooth' });\r\n }\r\n return null;\r\n } }\r\n >\r\n Read More\r\n \r\n

    Exemption from FATCA reporting code.

    \r\n

    A—An organization exempt from tax under section 501(a) or any individual retirement plan as defined in section 7701(a)(37)

    \r\n

    B—The United States or any of its agencies or instrumentalities

    \r\n

    C—A state, the District of Columbia, a U.S. commonwealth or possession, or any of their political subdivisions or instrumentalities

    \r\n

    D—A corporation the stock of which is regularly traded on one or more established securities markets, as described in Regulations section 1.1472-1(c)(1)(i)

    \r\n

    E—A corporation that is a member of the same expanded affiliated group as a corporation described in Regulations section 1.1472-1(c)(1)(i)

    \r\n

    F—A dealer in securities, commodities, or derivative financial instruments (including notional principal contracts, futures, forwards, and options) that is registered as such under the laws of the United States or any state

    \r\n

    G—A real estate investment trust

    \r\n

    H—A regulated investment company as defined in section 851 or an entity registered at all times during the tax year under the Investment Company Act of 1940

    \r\n

    I—A common trust fund as defined in section 584(a)

    \r\n

    J—A bank as defined in section 581

    \r\n

    K—A broker

    \r\n

    L—A trust exempt from tax under section 664 or described in section 4947(a)(1)

    \r\n

    M—A tax exempt trust under a section 403(b) plan or section 457(g) plan

    \r\n {\r\n if (event != null) {\r\n event.preventDefault();\r\n }\r\n const elem = document.getElementById('exemptions-fatca-code');\r\n if (elem != null) {\r\n elem.scrollIntoView({ block: 'start', behavior: 'smooth' });\r\n }\r\n return null;\r\n } }\r\n >\r\n Read More\r\n \r\n
    \r\n },\r\n line5: {\r\n label: 'Address (number, street, and apt. or suite no.) See instructions.',\r\n hint: Enter your address (number, street, and apartment or suite number). This is where the requester of this Form W-9 will mail your information returns. If this address differs from the one the requester already has on file, write NEW at the top. If a new address is provided, there is still a chance the old address will be used until the payor changes your address in their records.,\r\n },\r\n line6: {\r\n label: 'City, state, and ZIP code',\r\n hint: Enter your city, state, and ZIP code.\r\n },\r\n partI: {\r\n hint: Enter your TIN in the appropriate box. If you are a resident alien and you do not have and are not eligible to get an SSN, your TIN is your IRS individual taxpayer identification number (ITIN). Enter it in the social security number box. If you do not have an ITIN, see How to get a TIN below.

    If you are a sole proprietor and you have an EIN, you may enter either your SSN or EIN.

    If you are a single-member LLC that is disregarded as an entity separate from its owner, enter the owner’s SSN (or EIN, if the owner has one). Do not enter the disregarded entity’s EIN. If the LLC is classified as a corporation or partnership, enter the entity’s EIN.

    Note. See the chart on page 4 for further clarification of name and TIN combinations.

    How to get a TIN. If you do not have a TIN, apply for one immediately. To apply for an SSN, get Form SS-5, Application for a Social Security Card, from your local SSA office or get this form online at www.ssa.gov. You may also get this form by calling 1-800-772-1213. Use Form W-7, Application for IRS Individual Taxpayer Identification Number, to apply for an ITIN, or Form SS-4, Application for Employer Identification Number, to apply for an EIN. You can apply for an EIN online by accessing the IRS website at www.irs.gov/businesses and clicking on Employer Identification Number (EIN) under Starting a Business. Go to www.irs.gov/Forms to view, download, or print Form W-7 and/or Form SS-4. Or, you can go to www.irs.gov/OrderForms to place an order and have Form W-7 and/or SS-4 mailed to you within 10 business days.

    If you are asked to complete Form W-9 but do not have a TIN, apply for a TIN and write “Applied For” in the space for the TIN, sign and date the form, and give it to the requester. For interest and dividend payments, and certain payments made with respect to readily tradable instruments, generally you will have 60 days to get a TIN and give it to the requester before you are subject to backup withholding on payments. The 60-day rule does not apply to other types of payments. You will be subject to backup withholding on all such payments until you provide your TIN to the requester.

    Note. Entering “Applied For” means that you have already applied for a TIN or that you intend to apply for one soon.

    ,\r\n },\r\n partII: {\r\n hint: To establish to the withholding agent that you are a U.S. person, or resident alien, sign Form W-9. You may be requested to sign by the withholding agent even if items 1, 4, or 5 below indicate otherwise.

    For a joint account, only the person whose TIN is shown in Part I should sign (when required). In the case of a disregarded entity, the person identified on line 1 must sign. Exempt payees, see Exempt payee code earlier.

    Signature requirements. Complete the certification as indicated in items 1 through 5 below.

    1. Interest, dividend, and barter exchange accounts opened before 1984 and broker accounts considered active during 1983. You must give your correct TIN, but you do not have to sign the certification.

    2. Interest, dividend, broker, and barter exchange accounts opened after 1983 and broker accounts considered inactive during 1983. You must sign the certification or backup withholding will apply. If you are subject to backup withholding and you are merely providing your correct TIN to the requester, you must cross out item 2 in the certification before signing the form.

    3. Real estate transactions. You must sign the certification. You may cross out item 2 of the certification.

    4. Other payments. You must give your correct TIN, but you do not have to sign the certification unless you have been notified that you have previously given an incorrect TIN. “Other payments” include payments made in the course of the requester’s trade or business for rents, royalties, goods (other than bills for merchandise), medical and health care services (including payments to corporations), payments to a nonemployee for services, payments made in settlement of payment card and third-party network transactions, payments to certain fishing boat crew members and fishermen, and gross proceeds paid to attorneys (including payments to corporations).

    5. Mortgage interest paid by you, acquisition or abandonment of secured property, cancellation of debt, qualified tuition program payments (under section 529), IRA, Coverdell ESA, Archer MSA or HSA contributions or distributions, and pension distributions. You must give your correct TIN, but you do not have to sign the certification

    ,\r\n tip: For Forms W-9 that are not required to be signed, the electronic system need not provide for an electronic signature or a perjury statement.\r\n },\r\n};\r\n","import React from 'react';\r\n\r\n/* eslint-disable max-len */\r\nexport default {\r\n line1: {\r\n label: 'Name of entity/individual. An entry is required. (For a sole proprietor or disregarded entity, enter the owner\\'s name on line 1, and enter the business/disregarded entity\\'s name on line 2.)',\r\n hint: You must enter one of the following on this line; do not leave this line blank. The name should match the name on your tax return.

    If this Form W-9 is for a joint account, list first, and then circle, the name of the person or entity whose number you entered in Part I of Form W-9.

    a. Individual. Generally, enter the name shown on your tax return. If you have changed your last name without informing the Social Security Administration (SSA) of the name change, enter your first name, the last name as shown on your social security card, and your new last name.

    Note. ITIN applicant: Enter your individual name as it was entered on your Form W-7 application, line 1a. This should also be the same as the name you entered on the Form 1040/1040A/1040EZ you filed with your application.

    b. Sole proprietor or single-member LLC. Enter your individual name as shown on your 1040/1040A/1040EZ on line 1. You may enter your business, trade, or “doing business as” (DBA) name on line 2.

    c. Partnership, LLC that is not a single-member LLC, C Corporation, or S Corporation. Enter the entity's name as shown on the entity's tax return on line 1 and any business, trade, or DBA name on line 2.

    d. Other entities. Enter your name as shown on required U.S. federal tax documents on line 1. This name should match the name shown on the charter or other legal document creating the entity. You may enter any business, trade, or DBA name on line 2.

    e. Disregarded entity. For U.S. federal tax purposes, an entity that is disregarded as an entity separate from its owner is treated as a “disregarded entity.” See Regulations section 301.7701-2(c)(2)(iii). Enter the owner's name on line 1. The name of the entity entered on line 1 should never be a disregarded entity. The name on line 1 should be the name shown on the income tax return on which the income should be reported. For example, if a foreign LLC that is treated as a disregarded entity for U.S. federal tax purposes has a single owner that is a U.S. person, the U.S. owner's name is required to be provided on line 1. If the direct owner of the entity is also a disregarded entity, enter the first owner that is not disregarded for federal tax purposes. Enter the disregarded entity's name on line 2, “Business name/disregarded entity name.” If the owner of the disregarded entity is a foreign person, the owner must complete an appropriate Form W-8 instead of a Form W-9. This is the case even if the foreign person has a U.S. TIN.

    ,\r\n },\r\n line2: {\r\n label: 'Business name/disregarded entity name, if different from above.',\r\n hint: If you have a business name, trade name, DBA name, or disregarded entity name, you may enter it on line 2.,\r\n caution: A disregarded U.S. entity that has a foreign owner must use the appropriate Form W-8\r\n },\r\n line3a: {\r\n label: Check the appropriate box for federal tax classification of the entity/individual whose name is entered on line 1. Check only one of the following seven boxes.,\r\n hint: Check the appropriate box in line 3a for the U.S. federal tax classification of the person whose name is entered on line 1. Check only one box in line 3a.,\r\n },\r\n line3b: {\r\n label: 'If on line 3a you checked “Partnership” or “Trust/estate,” or checked “LLC” and entered “P” as its tax classification, and you are providing this form to a partnership, trust, or estate in which you have an ownership interest, check this box if you have any foreign partners, owners, or beneficiaries. See instructions',\r\n hint: Check this box if you are a partnership (including an LLC classified as a partnership for U.S. federal tax purposes), trust, or estate that has any foreign partners, owners, or beneficiaries, and you are providing this form to a partnership, trust, or estate. You must check the box on line 3b if you receive a Form W-8 (or documentary evidence) from any partner, owner, or beneficiary establishing foreign status or if you receive a Form W-9 from any partner, owner, or beneficiary that has checked the box on line 3b.\r\n },\r\n line4: {\r\n label: Exemptions (codes apply only to
    certain entities, not individuals;
    see instructions on page 3):
    ,\r\n hint: If you are exempt from backup withholding and/or FATCA reporting, enter in the appropriate space in line 4 any code(s) that may apply to you.\r\n

    Exempt payee code.

    \r\n
      \r\n
    1. An organization exempt from tax under section 501(a), any IRA, or a custodial account under section 403(b)(7) if the account satisfies the requirements of section 401(f)(2)
    2. \r\n
    3. The United States or any of its agencies or instrumentalities
    4. \r\n
    5. A state, the District of Columbia, a U.S. commonwealth or possession, or any of their political subdivisions or instrumentalities
    6. \r\n
    7. A foreign government or any of its political subdivisions, agencies, or instrumentalities
    8. \r\n
    9. A corporation
    10. \r\n
    11. A dealer in securities or commodities required to register in the United States, the District of Columbia, or a U.S. commonwealth or possession
    12. \r\n
    13. A futures commission merchant registered with the Commodity Futures Trading Commission
    14. \r\n
    15. A real estate investment trust
    16. \r\n
    17. An entity registered at all times during the tax year under the Investment Company Act of 1940
    18. \r\n
    19. A common trust fund operated by a bank under section 584(a)
    20. \r\n
    21. A financial institution
    22. \r\n
    23. A middleman known in the investment community as a nominee or custodian
    24. \r\n
    25. A trust exempt from tax under section 664 or described in section 4947
    26. \r\n
    \r\n {\r\n if (event != null) {\r\n event.preventDefault();\r\n }\r\n const elem = document.getElementById('exemptions-payee-code');\r\n if (elem != null) {\r\n elem.scrollIntoView({ block: 'start', behavior: 'smooth' });\r\n }\r\n return null;\r\n } }\r\n >\r\n Read More\r\n \r\n

    Exemption from FATCA reporting code.

    \r\n

    A—An organization exempt from tax under section 501(a) or any individual retirement plan as defined in section 7701(a)(37)

    \r\n

    B—The United States or any of its agencies or instrumentalities

    \r\n

    C—A state, the District of Columbia, a U.S. commonwealth or possession, or any of their political subdivisions or instrumentalities

    \r\n

    D—A corporation the stock of which is regularly traded on one or more established securities markets, as described in Regulations section 1.1472-1(c)(1)(i)

    \r\n

    E—A corporation that is a member of the same expanded affiliated group as a corporation described in Regulations section 1.1472-1(c)(1)(i)

    \r\n

    F—A dealer in securities, commodities, or derivative financial instruments (including notional principal contracts, futures, forwards, and options) that is registered as such under the laws of the United States or any state

    \r\n

    G—A real estate investment trust

    \r\n

    H—A regulated investment company as defined in section 851 or an entity registered at all times during the tax year under the Investment Company Act of 1940

    \r\n

    I—A common trust fund as defined in section 584(a)

    \r\n

    J—A bank as defined in section 581

    \r\n

    K—A broker

    \r\n

    L—A trust exempt from tax under section 664 or described in section 4947(a)(1)

    \r\n

    M—A tax exempt trust under a section 403(b) plan or section 457(g) plan

    \r\n {\r\n if (event != null) {\r\n event.preventDefault();\r\n }\r\n const elem = document.getElementById('exemptions-fatca-code');\r\n if (elem != null) {\r\n elem.scrollIntoView({ block: 'start', behavior: 'smooth' });\r\n }\r\n return null;\r\n } }\r\n >\r\n Read More\r\n \r\n
    \r\n },\r\n line5: {\r\n label: 'Address (number, street, and apt. or suite no.) See instructions.',\r\n hint: Enter your address (number, street, and apartment or suite number). This is where the requester of this Form W-9 will mail your information returns. If this address differs from the one the requester already has on file, write NEW at the top. If a new address is provided, there is still a chance the old address will be used until the payor changes your address in their records.,\r\n },\r\n line6: {\r\n label: 'City, state, and ZIP code',\r\n hint: Enter your city, state, and ZIP code.\r\n },\r\n partI: {\r\n hint: Enter your TIN in the appropriate box. If you are a resident alien and you do not have and are not eligible to get an SSN, your TIN is your IRS individual taxpayer identification number (ITIN). Enter it in the social security number box. If you do not have an ITIN, see How to get a TIN below.

    If you are a sole proprietor and you have an EIN, you may enter either your SSN or EIN.

    If you are a single-member LLC that is disregarded as an entity separate from its owner, enter the owner’s SSN (or EIN, if the owner has one). Do not enter the disregarded entity’s EIN. If the LLC is classified as a corporation or partnership, enter the entity’s EIN.

    Note. See the chart on page 4 for further clarification of name and TIN combinations.

    How to get a TIN. If you do not have a TIN, apply for one immediately. To apply for an SSN, get Form SS-5, Application for a Social Security Card, from your local SSA office or get this form online at www.ssa.gov. You may also get this form by calling 1-800-772-1213. Use Form W-7, Application for IRS Individual Taxpayer Identification Number, to apply for an ITIN, or Form SS-4, Application for Employer Identification Number, to apply for an EIN. You can apply for an EIN online by accessing the IRS website at www.irs.gov/businesses and clicking on Employer Identification Number (EIN) under Starting a Business. Go to www.irs.gov/Forms to view, download, or print Form W-7 and/or Form SS-4. Or, you can go to www.irs.gov/OrderForms to place an order and have Form W-7 and/or SS-4 mailed to you within 10 business days.

    If you are asked to complete Form W-9 but do not have a TIN, apply for a TIN and write “Applied For” in the space for the TIN, sign and date the form, and give it to the requester. For interest and dividend payments, and certain payments made with respect to readily tradable instruments, generally you will have 60 days to get a TIN and give it to the requester before you are subject to backup withholding on payments. The 60-day rule does not apply to other types of payments. You will be subject to backup withholding on all such payments until you provide your TIN to the requester.

    Note. Entering “Applied For” means that you have already applied for a TIN or that you intend to apply for one soon.

    ,\r\n },\r\n partII: {\r\n hint: To establish to the withholding agent that you are a U.S. person, or resident alien, sign Form W-9. You may be requested to sign by the withholding agent even if items 1, 4, or 5 below indicate otherwise.

    For a joint account, only the person whose TIN is shown in Part I should sign (when required). In the case of a disregarded entity, the person identified on line 1 must sign. Exempt payees, see Exempt payee code earlier.

    Signature requirements. Complete the certification as indicated in items 1 through 5 below.

    1. Interest, dividend, and barter exchange accounts opened before 1984 and broker accounts considered active during 1983. You must give your correct TIN, but you do not have to sign the certification.

    2. Interest, dividend, broker, and barter exchange accounts opened after 1983 and broker accounts considered inactive during 1983. You must sign the certification or backup withholding will apply. If you are subject to backup withholding and you are merely providing your correct TIN to the requester, you must cross out item 2 in the certification before signing the form.

    3. Real estate transactions. You must sign the certification. You may cross out item 2 of the certification.

    4. Other payments. You must give your correct TIN, but you do not have to sign the certification unless you have been notified that you have previously given an incorrect TIN. “Other payments” include payments made in the course of the requester’s trade or business for rents, royalties, goods (other than bills for merchandise), medical and health care services (including payments to corporations), payments to a nonemployee for services, payments made in settlement of payment card and third-party network transactions, payments to certain fishing boat crew members and fishermen, and gross proceeds paid to attorneys (including payments to corporations).

    5. Mortgage interest paid by you, acquisition or abandonment of secured property, cancellation of debt, qualified tuition program payments (under section 529), IRA, Coverdell ESA, Archer MSA or HSA contributions or distributions, and pension distributions. You must give your correct TIN, but you do not have to sign the certification

    ,\r\n tip: For Forms W-9 that are not required to be signed, the electronic system need not provide for an electronic signature or a perjury statement.\r\n },\r\n};\r\n","import React from 'react';\r\n\r\n/* eslint-disable max-len */\r\nexport default {\r\n line1: {\r\n label: 'Name of organization that is the beneficial owner',\r\n hint: Enter your name. If you are filing for a disregarded entity with a single owner who is a foreign person, this form should be completed and signed by the foreign single owner. If the account to which a payment is made or credited is in the name of the disregarded entity, the foreign single owner may inform the withholding agent of this fact. This may be done by including the name of the disregarded entity on line 3 (name of disregarded entity (if applicable)) of Part I of the form.,\r\n tip: If you own the income or account jointly with one or more other persons, the income or account will be treated by the withholding agent as owned by a foreign person if Forms W-8ECI are provided by all of the owners. If the withholding agent receives a Form W-9, Request for Taxpayer Identification Number and Certification, from any of the joint owners, the payment must be treated as made to a U.S. person.\r\n },\r\n line2: {\r\n label: 'Country of incorporation or organization',\r\n hint: If you are filing for a corporation, enter the country of incorporation. If you are filing for another type of entity, enter the country under whose laws the entity is created, organized, or governed. If you are an individual, provide your country of residence for tax purposes.,\r\n },\r\n line3: {\r\n label: 'Name of disregarded entity receiving the payment (if applicable, see instructions)',\r\n hint: Enter the name of the disregarded entity receiving the payment. This line is not required but may assist the withholding agent that is making a payment to you. The withholding agent may request additional referencing information (such as your account number) which should be entered on line 9. See the instructions for line 9 below. When completing this form, do not provide information concerning the disregarded entity on any line other than this line 3 or line 9. Instead, you should complete the form using the information of the owner of the disregarded entity.,\r\n },\r\n line4: {\r\n label: 'Type of entity (check the appropriate box):',\r\n hint: Check the box that applies. By checking a box, you are representing that you qualify for this classification. You must check the one box that represents your classification (for example, corporation, partnership, etc.) under U.S. tax principles. If more than one classification applies to you, select the most specific status available. For example, if you are a private foundation, you are also considered a tax-exempt organization. You should check the box for private foundation rather than the box for tax-exempt organization.,\r\n },\r\n line5: {\r\n label: Permanent residence address (street, apt. or suite no., or rural route). Do not use a P.O. box or in-care-of address.,\r\n hint: Your permanent residence address is the address in the country where you claim to be a resident for that country's income tax. Do not show the address of a financial institution, a post office box, or an address used solely for mailing purposes unless such address is the registered address of an entity identified on line 1 which does not have another address in the jurisdiction. If you are an individual who does not have a tax residence in any country, your permanent residence is where you normally reside. If you are not an individual and you do not have a tax residence in any country, the permanent residence address is where you maintain your principal office.,\r\n },\r\n line6: {\r\n label: Business address in the United States (street, apt. or suite no., or rural route). Do not use a P.O. box or in-care-of address.,\r\n hint: Enter your business address in the United States. Do not show a post office box.,\r\n },\r\n line7: {\r\n label: 'U.S. taxpayer identification number (required—see instructions)',\r\n hint: Enter your U.S. taxpayer identification number (TIN). A U.S.TIN is a social security number (SSN), employer identification number (EIN), or IRS individual taxpayer identification number (ITIN). Check the appropriate box for the type of U.S. TIN you are providing. You are required to provide a TIN for this form to be valid.

    If you are an individual, you are generally required to enter your SSN. To apply for an SSN, get Form SS-5 from a Social Security Administration (SSA) office or online at http://www.socialsecurity.gov/ssnumber/ss5.htm. If in the United States, you can call the SSA at 1-800-772-1213. Fill in Form SS-5 and return it to the SSA.

    If you do not have an SSN and are not eligible to get one, you must get an ITIN. To apply for an ITIN, file Form W-7 with the IRS. It usually takes 4-6 weeks to get an ITIN.

    If you are not an individual (for example, if you are a foreign estate or trust), or you are an individual who is an employer or who is engaged in a U.S. trade or business as a sole proprietor, use Form SS-4, Application for Employer Identification Number, to obtain an EIN. If you are a disregarded entity, enter the U.S. TIN of your foreign single owner.

    ,\r\n tip: You may also apply for an EIN online. For more information, visit www.irs.gov/Businesses/Small-Businesses-&-Self-Employed/Apply-for-an-Employer-Identification-Number-(EIN)-Online. \r\n },\r\n line8: {\r\n label: 'Foreign tax identifying number',\r\n hint: Enter the tax identifying number (TIN) issued to you by your jurisdiction of tax residence unless:
    • You have not been issued a TIN, or
    • The jurisdiction does not issue TINs.
    ,\r\n },\r\n line9: {\r\n label: 'Reference number(s) (see instructions)',\r\n hint: This line may be used by the filer of Form W-8ECI or by the withholding agent to whom it is provided to include any referencing information that is useful to the withholding agent in carrying out its obligations. For example, a beneficial owner may use line 9 to include the name and number of the account for which he or she is providing the form.,\r\n },\r\n line10: {\r\n label: 'Date of birth (MM-DD-YYYY)',\r\n hint: Provide your date of birth if you are an individual. Use the following format to input your information MM-DD-YYYY. For example, if you were born on April 15, 1956, you would enter 04-15-1956,\r\n },\r\n line11: {\r\n label: Specify each item of income that is, or is expected to be, received from the payer that is effectively connected with the conduct of a trade or
    business in the United States. (attach statement if necessary)
    ,\r\n hint: You must specify the items of income that are effectively connected with the conduct of a trade or business in the United States. You will generally have to provide Form W-8BEN, Form W-8BEN-E, Form W-8EXP, or Form W-8IMY for those items from U.S. sources that are not effectively connected with the conduct of a trade or business in the United States. See Form W-8BEN, Form W-8BEN-E, Form W-8EXP, or Form W-8IMY, and the associated instructions for more details.

    If you are providing this form to a partnership because you are a partner and have made an election under section 871(d) or section 882(d), attach a copy of the election to the form. If you have not made the election, but intend to do so effective for the current tax year, attach a statement to the form indicating your intent. See Regulations section 1.871-10(d)(3).

    ,\r\n },\r\n partII: {\r\n hint: Signature. Form W-8ECI must be signed and dated by the beneficial owner of the income, or, if the beneficial owner is not an individual, by an authorized representative or officer of the beneficial owner. If an authorized representative or agent is completing Form W-8ECI on behalf of the beneficial owner of the income, the representative or agent must check the box to certify that he or she has the legal capacity to sign for the person identified on line 1. If Form W-8ECI is completed by an agent acting under a duly authorized power of attorney for the beneficial owner, the form must be accompanied by the power of attorney in proper form or a copy thereof specifically authorizing the agent to represent the principal in making, executing, and presenting the form (note that this requirement does not apply to a partnership or other flow-through entity submitting this form with respect to a payment of effectively connected income that is beneficially owned by the entity’s partners or owners). Form 2848, Power of Attorney and Declaration of Representative, may be used for this purpose. The agent, as well as the beneficial owner, may incur liability for the penalties provided for an erroneous, false, or fraudulent form.,\r\n caution: If any information on Form W-8ECI becomes incorrect, you must submit a correct new form within 30 days to the requester of this form unless you will not receive a future payment from the withholding agent that would require an updated Form W-8.\r\n },\r\n\r\n};\r\n","import React from 'react';\r\n\r\n/* eslint-disable max-len */\r\nexport default {\r\n line1: {\r\n label: 'Name of organization that is the beneficial owner',\r\n hint: Enter your name. If you are filing for a disregarded entity with a single owner who is a foreign person, this form should be completed and signed by the foreign single owner. If the account to which a payment is made or credited is in the name of the disregarded entity, the foreign single owner may inform the withholding agent of this fact. This may be done by including the name of the disregarded entity on line 3 (name of disregarded entity (if applicable)) of Part I of the form.,\r\n tip: If you own the income or account jointly with one or more other persons, the income or account will be treated by the withholding agent as owned by a foreign person if Forms W-8ECI are provided by all of the owners. If the withholding agent receives a Form W-9, Request for Taxpayer Identification Number and Certification, from any of the joint owners, the payment must be treated as made to a U.S. person.\r\n },\r\n line2: {\r\n label: 'Country of incorporation or organization',\r\n hint: If you are filing for a corporation, enter the country of incorporation. If you are filing for another type of entity, enter the country under whose laws the entity is created, organized, or governed. If you are an individual, provide your country of residence for tax purposes.,\r\n },\r\n line3: {\r\n label: 'Name of disregarded entity receiving the payment (if applicable, see instructions)',\r\n hint: Enter the name of the disregarded entity receiving the payment. This line is not required but may assist the withholding agent that is making a payment to you. The withholding agent may request additional referencing information (such as your account number) which should be entered on line 9. See the instructions for line 9 below. When completing this form, do not provide information concerning the disregarded entity on any line other than this line 3 or line 9. Instead, you should complete the form using the information of the owner of the disregarded entity.,\r\n },\r\n line4: {\r\n label: 'Type of entity (check the appropriate box):',\r\n hint: Check the box that applies. By checking a box, you are representing that you qualify for this classification. You must check the one box that represents your classification (for example, corporation, partnership, etc.) under U.S. tax principles. If more than one classification applies to you, select the most specific status available. For example, if you are a private foundation, you are also considered a tax-exempt organization. You should check the box for private foundation rather than the box for tax-exempt organization. To determine whether you are an integral part of a foreign government or an entity that is controlled by a foreign government, see Temporary Regulations section 1.892-2T.,\r\n },\r\n line5: {\r\n label: Permanent residence address (street, apt. or suite no., or rural route). Do not use a P.O. box or in-care-of address.,\r\n hint: Your permanent residence address is the address in the country where you claim to be a resident for that country's income tax. Do not show the address of a financial institution, a post office box, or an address used solely for mailing purposes unless such address is the registered address of an entity identified on line 1 which does not have another address in the jurisdiction. If you are an individual who does not have a tax residence in any country, your permanent residence is where you normally reside. If you are not an individual and you do not have a tax residence in any country, the permanent residence address is where you maintain your principal office.,\r\n },\r\n line6: {\r\n label: Business address in the United States (street, apt. or suite no., or rural route). Do not use a P.O. box or in-care-of address.,\r\n hint: Enter your business address in the United States. Do not show a post office box.,\r\n },\r\n line7: {\r\n label: 'U.S. taxpayer identification number (required—see instructions)',\r\n hint: Enter your U.S. taxpayer identification number (TIN). A U.S.TIN is a social security number (SSN), employer identification number (EIN), or IRS individual taxpayer identification number (ITIN). Check the appropriate box for the type of U.S. TIN you are providing. You are required to provide a TIN for this form to be valid.

    If you are an individual, you are generally required to enter your SSN. To apply for an SSN, get Form SS-5 from a Social Security Administration (SSA) office or online at http://www.socialsecurity.gov/ssnumber/ss5.htm. If in the United States, you can call the SSA at 1-800-772-1213. Fill in Form SS-5 and return it to the SSA.

    If you do not have an SSN and are not eligible to get one, you must get an ITIN. To apply for an ITIN, file Form W-7 with the IRS. It usually takes 4-6 weeks to get an ITIN.

    If you are not an individual (for example, if you are a foreign estate or trust), or you are an individual who is an employer or who is engaged in a U.S. trade or business as a sole proprietor, use Form SS-4, Application for Employer Identification Number, to obtain an EIN. If you are a disregarded entity, enter the U.S. TIN of your foreign single owner.

    ,\r\n tip: You may also apply for an EIN online. For more information, visit www.irs.gov/Businesses/Small-Businesses-&-Self-Employed/Apply-for-an-Employer-Identification-Number-(EIN)-Online. \r\n },\r\n line8a: {\r\n label: 'Foreign tax identifying number (FTIN)',\r\n hint: If you are providing this Form W-8ECI to document yourself as an account holder (as defined in Regulations section 1.1471-5(a)(3)) with respect to a financial account (as defined in Regulations section 1.1471-5(b)) that you hold at a U.S. office of a financial institution (including a U.S. branch of an FFI) and you receive U.S. source income reportable on a Form 1042-S associated with this form, you must provide on line 8a the foreign tax identifying number (FTIN) issued to you by your jurisdiction of tax residence identified on line 5 unless: (1) you properly identified yourself as a government (including a controlled entity that is a foreign government under section 892), foreign central bank of issue, or international organization on line 4; (2) you are a resident of a U.S. territory; or (3) your jurisdiction of residence is identified on the IRS’s List of Jurisdictions That Do Not Issue Foreign TINs at IRS.gov/businesses/corporations/list-of-jurisdictions-that-do-not-issue-foreigntins. You also do not need to provide an FTIN on line 8a if you meet the requirement for checking the box on line 8b.,\r\n },\r\n line8b: {\r\n label: Check if FTIN not legally required.,\r\n hint: You may check the box in this line 8b if you are an account holder as described for purposes of line 8a and you are not legally required to obtain an FTIN from your jurisdiction of residence (including if the jurisdiction does not issue TINs). By checking this box on line 8b you will be treated as having provided an explanation for not providing an FTIN on line 8a. If you wish to provide a further (or other) explanation why you are not required to provide an FTIN on line 8a, you may do so on a supporting document.\r\n ,\r\n },\r\n line9: {\r\n label: 'Reference number(s) (see instructions)',\r\n hint: This line may be used by the filer of Form W-8ECI or by the withholding agent to whom it is provided to include any referencing information that is useful to the withholding agent in carrying out its obligations. For example, a beneficial owner may use line 9 to include the name and number of the account for which he or she is providing the form.,\r\n },\r\n line10: {\r\n label: 'Date of birth (MM-DD-YYYY)',\r\n hint: Provide your date of birth if you are an individual. Use the following format to input your information MM-DD-YYYY. For example, if you were born on April 15, 1956, you would enter 04-15-1956,\r\n },\r\n line11: {\r\n label: Specify each item of income that is, or is expected to be, received from the payer that is effectively connected with the conduct of a trade or
    business in the United States. (attach statement if necessary)
    ,\r\n hint: You must specify the items of income that are effectively connected with the conduct of a trade or business in the United States. You will generally have to provide Form W-8BEN, Form W-8BEN-E, Form W-8EXP, or Form W-8IMY for those items from U.S. sources that are not effectively connected with the conduct of a trade or business in the United States. See Form W-8BEN, Form W-8BEN-E, Form W-8EXP, or Form W-8IMY, and the associated instructions for more details.

    If you are providing this form to a partnership because you are a partner and have made an election under section 871(d) or section 882(d), attach a copy of the election to the form. If you have not made the election, but intend to do so effective for the current tax year, attach a statement to the form indicating your intent. See Regulations section 1.871-10(d)(3).

    ,\r\n },\r\n line12: {\r\n label: Check here to certify that: you are a dealer in securities (as defined in section 475(c)(1)); you are a transferor of an interest in a publicly traded partnership (PTP) claiming an exception from withholding under Regulations section 1.1446(f)-4(b)(6); and any gain from the transfer of the PTP interest associated with this form is effectively connected with the conduct of a trade or business within the United States without regard to section 864(c)(8),\r\n hint: Check the box on line 12 if you are a foreign transferor providing this form to claim an exception from withholding under Regulations section 1.1446(f)-4(b)(6) on the amount realized paid to you from a transfer of a PTP interest for which withholding under section 1446(f) may otherwise apply. By checking box 12 you are certifying that you are a dealer in securities (as defined in section 475(c)(1)) and that any gain from the transfer of a PTP interest associated with this form is effectively connected with the conduct of a trade or business in the United States without regard to the provisions of section 864(c)(8). This representation applies to each transfer of a PTP interest associated with this form unless you specify otherwise on line 11 or an attachment.,\r\n },\r\n partII: {\r\n hint: Signature. Form W-8ECI must be signed and dated by the beneficial owner of the income, or, if the beneficial owner is not an individual, by an authorized representative or officer of the beneficial owner. If an authorized representative or agent is completing Form W-8ECI on behalf of the beneficial owner of the income, the representative or agent must check the box to certify that he or she has the legal capacity to sign for the person identified on line 1. If Form W-8ECI is completed by an agent acting under a duly authorized power of attorney for the beneficial owner, the form must be accompanied by the power of attorney in proper form or a copy thereof specifically authorizing the agent to represent the principal in making, executing, and presenting the form (note that this requirement does not apply to a partnership or other flow-through entity submitting this form with respect to a payment of effectively connected income that is beneficially owned by the entity’s partners or owners). Form 2848, Power of Attorney and Declaration of Representative, may be used for this purpose. The agent, as well as the beneficial owner, may incur liability for the penalties provided for an erroneous, false, or fraudulent form.,\r\n caution: If any information on Form W-8ECI becomes incorrect, you must submit a correct new form within 30 days to the requester of this form unless you will not receive a future payment from the withholding agent that would require an updated Form W-8.\r\n }\r\n};\r\n","import React from 'react';\r\n\r\n/* eslint-disable max-len */\r\nexport default {\r\n partI: {\r\n label: 'Identification of Beneficial Owner',\r\n hint: Before completing Part I, complete the Worksheet for Foreign Governments, International Organizations, and Foreign Central Banks of Issue, later, to determine whether amounts received are or will be exempt from U.S. tax under section 892 or 895 and exempt from withholding under sections 1441 and 1442. Use the results of this worksheet to check the appropriate box on line 3 and in Part II. Do not give the worksheet to the withholding agent. Instead, keep it for your records.,\r\n },\r\n line1: {\r\n label: 'Name of organization',\r\n hint: Enter the full name of the organization.,\r\n },\r\n line2: {\r\n label: 'Country of incorporation or organization',\r\n hint: Enter the country under the laws of which the foreign government or other foreign organization was created, incorporated, organized, or governed.,\r\n },\r\n line3: {\r\n label: 'Type of entity',\r\n hint: Check the one box that applies. A foreign central bank of issue (wholly owned by a foreign sovereign) should check the “Foreign government” box. If you are a foreign private foundation, you should check the “foreign private foundation” box rather than the “foreign tax-exempt organization” box.,\r\n },\r\n line4: {\r\n label: 'Chapter 4 Status (FATCA status):',\r\n hint: Check the one box that applies to your chapter 4 status (if necessary). You are required to provide a chapter 4 status if you are the payee of a withholdable payment or hold an account with an FFI requesting this form. See Regulations section 1.1471-3(a) for the definition of a payee for purposes of chapter 4. By checking a box on this line, you are representing that you qualify for this classification and, if you are claiming a status as an exempt beneficial owner, that you are the beneficial owner of the payments to which this form relates for purposes of chapter 4.,\r\n tip: For certain chapter 4 statuses, you are required to complete an additional line on this form certifying that you meet the conditions of the status indicated on line 4 (as defined under Regulations section 1.1471-5 or 1.1471-6 or an applicable IGA). Make sure you complete the required portion of this form before signing and providing it to the withholding agent.,\r\n caution: If you do not certify as to your chapter 4 status, this Form W-8EXP will not be valid for purposes of chapter 4 if you receive a withholdable payment at any time in the future. For example, if you do not certify as to your chapter 4 status because the only payments you receive from the withholding agent are with respect to grandfathered obligations described in Regulations section 1.1471-2(b), then you will be required to resubmit Form W-8EXP and certify to your chapter 4 status if you receive a withholdable payment in the future. You may consider certifying to your chapter 4 status even if not required in order to avoid resubmitting Form W-8EXP to the withholding agent. See “Expiration of Form W-8EXP,” earlier.\r\n },\r\n line5: {\r\n label: Permanent address (street, apt. or suite no., or rural route). Do not use a P.O. box or in-care-of address (other than a registered address).,\r\n hint: The permanent address of a foreign government, international organization, or foreign central bank of issue is where it maintains its principal office. For all other organizations, the permanent address is the address in the country where the organization claims to be a resident for tax purposes. Do not show the address of a financial institution, a post office box, or an address used solely for mailing purposes unless such address is the only permanent address you use and it appears as your registered address in your organizational documents.,\r\n },\r\n line6: {\r\n label: 'Mailing address (if different from above).',\r\n hint: Enter the mailing address only if it is different from the address shown on line 5.,\r\n },\r\n line7: {\r\n label: 'U.S. TIN, if required (see instructions)',\r\n hint: A U.S. taxpayer identification number (TIN) means an employer identification number (EIN). A U.S. TIN is generally required if you are claiming an exemption or reduced rate of withholding based solely on your claim of tax-exempt status under section 501(c) or private foundation status. Use Form SS-4, Application for Employer Identification Number, to obtain an EIN.,\r\n },\r\n line8a: {\r\n label: 'GIIN',\r\n hint: If the organization has registered with the IRS as a participating FFI (including a reporting Model 2 FFI), registered deemed-compliant FFI, (including a reporting Model 1 FFI ), direct reporting NFFE, check the box for “GIIN” and provide your GIIN. For payments made prior to January 1, 2015, a Form W-8EXP provided by a reporting Model 1 FFI need not contain a GIIN. For payments made prior to January 1, 2016, a sponsored direct reporting NFFE may provide the GIIN of its sponsoring entity.,\r\n },\r\n line8b: {\r\n label: 'Foreign TIN (see instructions)',\r\n hint: If the organization has been issued a tax identification number in its country of residence, enter it here.,\r\n },\r\n line9: {\r\n label: 'Reference number(s) (see instructions)',\r\n hint: This line may be used by the filer of Form W-8EXP or by the withholding agent to whom it is provided to include any referencing information that is necessary or useful to the withholding agent in carrying out its obligations. For example, a filer may use line 9 to include the name and number of the account for which the filer is providing the form.,\r\n },\r\n partII: {\r\n label: 'Qualification Statement for Chapter 3 Status',\r\n tip: You are not required to complete a chapter 3 qualification statement if you are submitting this form to document your chapter 4 status and are not receiving a payment that is subject to withholding under chapter 3. However, in such a case, you may also provide Form W-8BEN-E to document your chapter 4 status.,\r\n },\r\n line10: {\r\n label: For a foreign government:,\r\n hint: All foreign governments claiming the applicability of section 892 must check box 10a as well as box 10b or box 10c, whichever applies. Enter the name of the foreign sovereign’s country on line 10b (if the entity is an integral part of a foreign government) or on line 10c (if the entity is a controlled entity). A central bank of issue (wholly owned by a foreign sovereign) should check box 10c.,\r\n },\r\n line11: {\r\n label: For an international organization:,\r\n hint: Check this box if you are an international organization. By checking this box, you are certifying to all the statements made in line 11.,\r\n },\r\n line12: {\r\n label: For a foreign central bank of issue (not wholly owned by the foreign sovereign):,\r\n hint: Check this box if you are a foreign central bank of issue for purposes of chapter 3 (see definitions) not wholly owned by a foreign sovereign. By checking this box, you are certifying to all the statements made in line 12.,\r\n },\r\n line13: {\r\n label: For a foreign tax-exempt organization, including foreign private foundations:,\r\n hint: If you are a foreign tax-exempt organization, you must attach a statement setting forth any income that is includible under section 512 in computing your unrelated business taxable income.
    Box 13a. Check this box if you have been issued a determination letter by the IRS. Enter the date of the IRS determination letter.
    Box 13b. Check this box if you do not have an IRS determination letter, but are providing an opinion of U.S. counsel concluding that you are an organization described in section 501(c).
    Box 13c. If you are a section 501(c)(3) organization, check this box if you are not a private foundation. You must attach to the withholding certificate an affidavit setting forth sufficient facts concerning your operations and support to enable the IRS to determine that you would be likely to qualify as an organization described in section 509(a)(1), (2), (3), or (4). See Rev. Proc. 92-94, 1992-2 C.B. 507, section 4, for information on affidavit preparation of foreign equivalents of domestic public charities.
    Box 13d. Check this box if you are a section 501(c)(3) organization and you are a private foundation described in section 509.
    ,\r\n },\r\n line14: {\r\n label: For a government of a U.S. possession:,\r\n hint: Check this box if you are a government of a U.S. possession. By checking this box you are certifying to the statements made in line 14.,\r\n },\r\n partIII: {\r\n label: 'Qualification Statement for Chapter 4 Status',\r\n tip: You are not required to complete a chapter 4 qualification statement if you are not the payee of a withholdable payment or are not an accountholder holding an account with an FFI requesting this form.,\r\n },\r\n line15: {\r\n label: For a nonreporting IGA FFI:,\r\n hint: Check this box to indicate that you are treated as a nonreporting FFI under an applicable IGA (and as defined in the IGA). You must identify the applicable IGA by entering the name of the jurisdiction that has the applicable IGA in effect with the United States. You must also provide the withholding agent with the class of entity described in Annex II of the IGA applicable to your status. If you are an FFI treated as a registered deemed-compliant FFI under an applicable Model 2 IGA, you must provide your GIIN in the space provided. All Active IGA's are found at the Treasury website: https://home.treasury.gov/policy-issues/tax-policy/foreign-account-tax-compliance-act.,\r\n },\r\n line16: {\r\n label: For a territory financial institution:,\r\n hint: Check this box if you are a territory financial institution. By checking this box, you are certifying to the statement in line 16.,\r\n },\r\n line17: {\r\n label: For a foreign government (including a political subdivision), government of a U.S. possession, or foreign central bank of issue:,\r\n hint: Check this box if you are a foreign government, government of a U.S. possession, or foreign central bank of issue as defined for purposes of chapter 4 (see Regulations section 1.1471-6). By checking this box, you are certifying to the statement made in line 17.,\r\n },\r\n line18: {\r\n label: For an exempt retirement plan of a foreign government:,\r\n hint: Check this box if you are an exempt retirement plan of a foreign government as defined for purposes of chapter 4. By checking this box, you are certifying to all the statements made in line 18.,\r\n },\r\n line19: {\r\n label: For a 501(c) organization:,\r\n hint: Check this box if you are a 501(c) organization other an insurance company described in section 501(c)(15). By checking this box, you are certifying to the statement made in line 19.,\r\n },\r\n line20: {\r\n label: For a passive NFFE:,\r\n hint: Check box 20a if you are passive NFFE. If you do not have any substantial U.S. owners, check box 20b. If you have any substantial U.S. owners, you must provide a statement providing the information set forth on line 20c.,\r\n },\r\n line21: {\r\n label: Name of sponsoring entity:,\r\n hint: Check box 21 if you are a sponsored direct reporting NFFE. Provide the name of your sponsoring entity in the space provided. By checking this box, you are certifying to the statements made in line 21.,\r\n },\r\n partIV: {\r\n label: 'Certification',\r\n tip: Form W-8EXP must be signed and dated by an authorized official of the foreign government, international organization, foreign central bank of issue, foreign tax-exempt organization, foreign private foundation, or government of a U.S. possession, as appropriate. By signing Form W-8EXP, the authorized representative, officer, or agent also agrees to provide a new form within 30 days following a change in circumstances that makes any certification made on the form incorrect (unless no future payments will be made to the organization by the withholding agent). The authorized representative, officer, or agent must also check the box to certify that he or she has the capacity to sign for the organization.,\r\n },\r\n};\r\n","import React from 'react';\r\n\r\n/* eslint-disable max-len */\r\nexport default {\r\n partI: {\r\n label: 'Identification of Beneficial Owner',\r\n hint: Before completing Part I, complete the Worksheet for Foreign Governments, International Organizations, and Foreign Central Banks of Issue, found here, to determine whether amounts received are or will be exempt from U.S. tax under section 892 or 895 and exempt from withholding under sections 1441 and 1442. Use the results of this worksheet to check the appropriate box on line 3 and in Part II. Do not give the worksheet to the withholding agent. Instead, keep it for your records.,\r\n },\r\n line1: {\r\n label: 'Name of organization',\r\n hint: Enter the full name of the organization.,\r\n },\r\n line2: {\r\n label: 'Country of incorporation or organization',\r\n hint: Enter the country under the laws of which the foreign government or other foreign organization was created, incorporated, organized, or governed.,\r\n },\r\n line3: {\r\n label: 'Type of entity',\r\n hint: Check the one box that applies (unless you are also documenting yourself as a withholding qualified holder under section 1445). A foreign central bank of issue (wholly owned by a foreign sovereign) should check the “Foreign government” box. If you are a foreign private foundation, you should check the “Foreign private foundation” box rather than the “Foreign tax-exempt organization” box. If you are providing this form to claim an exemption to withholding under section 1445 as a qualified foreign pension fund that is a qualified holder (within the meaning of Regulations section 1.897(l)-1(e) (11)) or as a foreign partnership, all of the interests of which are held by qualified holders, including through one or more partnerships, you should check the “Withholding qualified holder under section 1445” box. See Regulations section 1.1445-1(g)(11). For purposes of completing this Form W-8EXP, a foreign partnership that is a withholding qualified holder should identify itself as the beneficial owner.

    If you are providing this form to document yourself as a withholding qualified holder under section 1445 and for purposes of sections 1441-1443 or section 1446, check the “Withholding qualified holder under section 1445” box and the one box that otherwise applies to your status. In all other cases, only one box should be checked.
    \r\n },\r\n line4: {\r\n label: 'Chapter 4 Status (FATCA status):',\r\n hint: Check the one box that applies to your chapter 4 status (if necessary). You are required to provide a chapter 4 status if you are the payee of a withholdable payment or hold an account with an FFI requesting this form. See Regulations section 1.1471-3(a) for the definition of a payee for purposes of chapter 4. By checking a box on this line, you are representing that you qualify for this classification and, if you are claiming a status as an exempt beneficial owner, that you are the beneficial owner of the payments to which this form relates for purposes of chapter 4.,\r\n tip: For certain chapter 4 statuses, you are required to complete an additional line on this form certifying that you meet the conditions of the status indicated on line 4 (as defined under Regulations section 1.1471-5 or 1.1471-6 or an applicable IGA). Make sure you complete the required portion of this form before signing and providing it to the withholding agent.,\r\n caution: If you do not certify as to your chapter 4 status, this Form W-8EXP will not be valid for purposes of chapter 4 if you receive a withholdable payment at any time in the future. For example, if you do not certify as to your chapter 4 status because the only payments you receive from the withholding agent are with respect to grandfathered obligations described in Regulations section 1.1471-2(b), then you will be required to resubmit Form W-8EXP and certify to your chapter 4 status if you receive a withholdable payment in the future. You may consider certifying to your chapter 4 status even if not required in order to avoid resubmitting Form W-8EXP to the withholding agent. See “Expiration of Form W-8EXP,” earlier.\r\n },\r\n line5: {\r\n label: Permanent address (street, apt. or suite no., or rural route). Do not use a P.O. box or in-care-of address (other than a registered address).,\r\n hint: The permanent address of a foreign government, international organization, or foreign central bank of issue is where it maintains its principal office. For all other organizations, the permanent address is the address in the country where the organization claims to be a resident for tax purposes. Do not show the address of a financial institution, a post office box, or an address used solely for mailing purposes unless such address is the only permanent address you use and it appears as your registered address in your organizational documents.,\r\n },\r\n line6: {\r\n label: 'Mailing address (if different from above).',\r\n hint: Enter the mailing address only if it is different from the address shown on line 5.,\r\n },\r\n line7: {\r\n label: 'U.S. TIN, if required (see instructions)',\r\n hint: A U.S. taxpayer identification number (TIN) means an employer identification number (EIN). A U.S. TIN is generally required if you are claiming an exemption or reduced rate of withholding based solely on your claim of tax-exempt status under section 501(c) or private foundation status. Use Form SS-4, Application for Employer Identification Number, to obtain an EIN.,\r\n },\r\n line8a: {\r\n label: 'GIIN',\r\n hint: If the organization has registered with the IRS as a participating FFI (including a reporting Model 2 FFI), registered deemed-compliant FFI, (including a reporting Model 1 FFI ), direct reporting NFFE, check the box for “GIIN” and provide your GIIN. For payments made prior to January 1, 2015, a Form W-8EXP provided by a reporting Model 1 FFI need not contain a GIIN. For payments made prior to January 1, 2016, a sponsored direct reporting NFFE may provide the GIIN of its sponsoring entity.,\r\n },\r\n line8b: {\r\n label: 'Foreign TIN (see instructions)',\r\n hint: If you are providing this Form W-8EXP to document yourself as an account holder (as defined in Regulations section 1.1471-5(a)(3)) with respect to a financial account (as defined in Regulations section 1.1471-5(b)) that you hold at a U.S. office of a financial institution (including a U.S. branch of an FFI) and you receive U.S. source income reportable on a Form 1042-S associated with this form, you must provide on line 8b the foreign TIN (FTIN) issued to you by the jurisdiction in which you are a tax resident identified on line 5 unless: If you are providing this form to document a financial account described above but you do not enter an FTIN on line 8b, and you are not a foreign government, foreign central bank of issue, international organization, or government of a U.S. territory, you must provide the withholding agent with an explanation of why you have not been issued a TIN (including if the jurisdiction does not issue TINs). For this purpose, an explanation is a statement that you are not legally required to obtain a TIN in your jurisdiction of tax residence. The explanation may be written on line 8b, in the margins of the form, or on a separate attached statement associated with the form. If you are writing the explanation on line 8b, you may shorten it to “not legally required.” Do not write “not applicable.”

    If you are providing this form to certify your status as a withholding qualified holder under section 1445 and did not provide an EIN on line 7, provide your FTIN on line 8b.
    ,\r\n },\r\n line9: {\r\n label: 'Reference number(s) (see instructions)',\r\n hint: This line may be used by the filer of Form W-8EXP or by the withholding agent to whom it is provided to include any referencing information that is necessary or useful to the withholding agent in carrying out its obligations. For example, a filer may use line 9 to include the name and number of the account for which the filer is providing the form.,\r\n },\r\n partII: {\r\n label: 'Qualification Statement for Chapter 3 Status',\r\n tip: You are not required to complete a chapter 3 qualification statement if you are submitting this form to document your chapter 4 status and are not receiving a payment that is subject to withholding under chapter 3. However, in such a case, you may also provide Form W-8BEN-E to document your chapter 4 status.,\r\n },\r\n line10: {\r\n label: For a foreign government:,\r\n hint: All foreign governments claiming the applicability of section 892 must check box 10a as well as box 10b or box 10c, whichever applies. Enter the name of the foreign sovereign’s country on line 10b (if the entity is an integral part of a foreign government) or on line 10c (if the entity is a controlled entity). A central bank of issue (wholly owned by a foreign sovereign) should check box 10c.,\r\n },\r\n line11: {\r\n label: For an international organization:,\r\n hint: Check this box if you are an international organization. By checking this box, you are certifying to all the statements made in line 11.,\r\n },\r\n line12: {\r\n label: For a foreign central bank of issue (not wholly owned by the foreign sovereign):,\r\n hint: Check this box if you are a foreign central bank of issue for purposes of chapter 3 (see definitions) not wholly owned by a foreign sovereign. By checking this box, you are certifying to all the statements made in line 12.,\r\n },\r\n line13: {\r\n label: For a foreign tax-exempt organization, including foreign private foundations:,\r\n hint: If you are a foreign tax-exempt organization, you must attach a statement setting forth any income that is includible under section 512 in computing your unrelated business taxable income.
    Box 13a. Check this box if you have been issued a determination letter by the IRS. Enter the date of the IRS determination letter.
    Box 13b. Check this box if you do not have an IRS determination letter, but are providing an opinion of U.S. counsel concluding that you are an organization described in section 501(c).
    Box 13c. If you are a section 501(c)(3) organization, check this box if you are not a private foundation. You must attach to the withholding certificate an affidavit setting forth sufficient facts concerning your operations and support to enable the IRS to determine that you would be likely to qualify as an organization described in section 509(a)(1), (2), (3), or (4) rather than as a private foundation.
    The affidavit must be based on information from your latest accounting year, identify the type of section 501(c) (3) organization (for example, charitable, religious, educational), and be signed by one of your principal officers. The affidavit must include information on your financial support if you are claiming public charity status under sections 509(a)(1) and 170(b)(1)(A)(vi) or section 509(a)(2). See Publication 557, Tax-Exempt Status for Your Organization, for information on determining whether you are a public charity or private foundation.
    In lieu of providing information in an affidavit concerning your operations, support, and financial information (when applicable), you may satisfy this requirement by referencing the opinion of U.S. counsel provided in accordance with Box 13b of these instructions when the opinion:
    • Concludes that you qualify under section 509(a)(1), (2), (3), or (4); and
    • Meets the requirements of current written advice rendered for a public charity equivalency determination in Rev. Proc. 2017-53, 2017-40 I.R.B. 263.
    Box 13d. Check this box if you are a section 501(c)(3) organization and you are a private foundation described in section 509.
    ,\r\n },\r\n line14: {\r\n label: For a government of a U.S. territory:,\r\n hint: Check this box if you are a government of a U.S. territory. By checking this box you are certifying to the statements made in line 14.,\r\n },\r\n partIII: {\r\n label: 'Qualification Statement for Chapter 4 Status',\r\n tip: You are not required to complete a chapter 4 qualification statement if you are not the payee of a withholdable payment or are not an accountholder holding an account with an FFI requesting this form.,\r\n },\r\n line15: {\r\n label: For a withholding qualified holder:
    Check either box 15a or 15b.
    ,\r\n hint: Check the applicable box if you are a withholding qualified holder. By checking one of these boxes, you are certifying to the statement made in either line 15a or line 15b, as applicable.\r\n },\r\n line16: {\r\n label: For a nonreporting IGA FFI:,\r\n hint: Check this box to indicate that you are treated as a nonreporting FFI under an applicable IGA (and as defined in the IGA). You must identify the applicable IGA by entering the name of the jurisdiction that has the applicable IGA in effect with the United States. You must also provide the withholding agent with the class of entity described in Annex II of the IGA applicable to your status. If you are an FFI treated as a registered deemed-compliant FFI under an applicable Model 2 IGA, you must provide your GIIN in the space provided. All Active IGA's are found at the Treasury website: https://home.treasury.gov/policy-issues/tax-policy/foreign-account-tax-compliance-act.,\r\n },\r\n line17: {\r\n label: For a territory financial institution:,\r\n hint: Check this box if you are a territory financial institution. By checking this box, you are certifying to the statement in line 17.,\r\n },\r\n line18: {\r\n label: For a foreign government (including a political subdivision), government of a U.S. territory, or foreign central bank of issue:,\r\n hint: Check this box if you are a foreign government, government of a U.S. territory, or foreign central bank of issue as defined for purposes of chapter 4 (see Regulations section 1.1471-6). By checking this box, you are certifying to the statement made in line 18.,\r\n },\r\n line19: {\r\n label: For an exempt retirement plan of a foreign government:
    Check box 19a or box 19b, whichever applies.
    ,\r\n hint: Check the applicable box if you are an exempt retirement plan of a foreign government as defined for purposes of chapter 4. By checking one of these boxes, you are certifying to the statement made in either line 19a or line 19b, as applicable.\r\n },\r\n line20: {\r\n label: For a 501(c) organization:,\r\n hint: Check this box if you are a 501(c) organization other than an insurance company described in section 501(c)(15). By checking this box, you are certifying to the statement made in line 20.,\r\n },\r\n line21: {\r\n label: For a passive NFFE:,\r\n hint: Check box 21a if you are passive NFFE. If you do not have any substantial U.S. owners, check box 21b. If you have any substantial U.S. owners, you must provide a statement with the information set forth on line 21c.,\r\n },\r\n line22: {\r\n label: Name of sponsoring entity:,\r\n hint: Check this box if you are a sponsored direct reporting NFFE. Provide the name of your sponsoring entity in the space provided. By checking this box, you are certifying to the statement made in line 22.,\r\n },\r\n partIV: {\r\n label: 'Certification',\r\n tip: Form W-8EXP must be signed and dated by an authorized official of the foreign government, international organization, foreign central bank of issue, foreign tax-exempt organization, foreign private foundation, or government of a U.S. possession, as appropriate. By signing Form W-8EXP, the authorized representative, officer, or agent also agrees to provide a new form within 30 days following a change in circumstances that makes any certification made on the form incorrect (unless no future payments will be made to the organization by the withholding agent). The authorized representative, officer, or agent must also check the box to certify that he or she has the capacity to sign for the organization.,\r\n },\r\n};\r\n","import React from 'react';\r\n\r\n/* eslint-disable max-len */\r\nexport default {\r\n line1a: {\r\n label: First name *,\r\n hint: 'Enter at least your first name and last name.'\r\n },\r\n line1b: {\r\n label: 'Business Name of Sole Proprietor',\r\n hint: 'Enter the Business Name of the Sole Proprietor if applicable.'\r\n },\r\n line1c: {\r\n label: Residence address: Address line 1*,\r\n hint: 'Your permanent residence address is the address in the country where you claim to be a resident for purposes of that country’s income tax. Do not show the address of a financial institution, a post office box, or an address used solely for mailing purposes. If you do not have a tax residence in any country, your permanent residence is where you normally reside. If you reside in a country that does not use street addresses, you may enter a descriptive address on Address line. The address must accurately indicate your permanent residence in the manner used in your jurisdiction.'\r\n },\r\n line1d: {\r\n label: 'Mailing address: Address line',\r\n hint: 'Enter your mailing address only if it is different from the address you populated in the Residence address.'\r\n },\r\n line1e: {\r\n label: 1e Date of Birth *,\r\n hint: 'Provide your date of birth. Use the following format to input your information: DD-MM-YYYY. For example, if you were born on April 15, 1956, you would enter 15-04-1956.'\r\n },\r\n line2a: {\r\n hint: \r\n For federal tax purposes, you are considered a U.S. person if you are:\r\n
      \r\n
    • An individual who is a U.S. citizen or U.S. resident alien;
    • \r\n
    • A partnership, corporation, company, or association created or organized in the United States or under the laws of the United States;
    • \r\n
    • An estate (other than a foreign estate); or
    • \r\n
    • A domestic trust (as defined in Regulations section 301.7701-7).
    • \r\n
    \r\n
    \r\n },\r\n 'line2a US TIN': {\r\n hint: \r\n If you have a social security number (SSN), enter it here. To apply for an SSN, get Form SS-5 from a Social Security Administration (SSA) office or online at www.ssa.gov/forms/ss-5.pdf.\r\n If you are in the United States, you can call the SSA at 1-800-772-1213. If you do not have an SSN and are not eligible to get one, you can get an individual taxpayer identification number (ITIN). To apply for an ITIN, file Form W-7 with the IRS. It usually takes 4–6 weeks to get an ITIN.\r\n A partner in a partnership conducting a trade or business in the United States will likely be allocated effectively connected taxable income. The partner is required to file a U.S. federal income tax return and must have a U.S. taxpayer identification number (TIN).\r\n ,\r\n caution: 'An ITIN is for tax use only. It does not entitle you to social security benefits or change your employment or immigration status under U.S. law.'\r\n },\r\n 'line3.1a': {\r\n label: 'Country of Tax Residence *',\r\n hint: 'Enter the Country where you are a Tax Resident. If you have populated 2a and identify as a U.S. person - make sure you populate one of the sections in Part 3 with the details of your U.S. tax residency. '\r\n },\r\n 'line3.1b': {\r\n label: Residence address: Line 1*,\r\n hint: 'Make sure you provide the Residence address for the Country of Tax Residence you populated above. '\r\n },\r\n 'line3.1c': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide your Tax Identification Number or Reason no TIN provided, taking into account the explanation about reasons A, B, and C above. '\r\n },\r\n 'line3.2a': {\r\n label: 'Country of Tax Residence',\r\n hint: 'Enter the Country where you are a Tax Resident. If you have populated 2a and identify as a U.S. person - make sure you populate one of the sections in Part 3 with the details of your U.S. tax residency. '\r\n },\r\n 'line3.2b': {\r\n label: Residence address: Line 1,\r\n hint: 'Make sure you provide the Residence address for the Country of Tax Residence you populated above. '\r\n },\r\n 'line3.2c': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide your Tax Identification Number or Reason no TIN provided, taking into account the explanation about reasons A, B, and C above. '\r\n },\r\n 'line3.3a': {\r\n label: 'Country of Tax Residence',\r\n hint: 'Enter the Country where you are a Tax Resident. If you have populated 2a and identify as a U.S. person - make sure you populate one of the sections in Part 3 with the details of your U.S. tax residency. '\r\n },\r\n 'line3.3b': {\r\n label: Residence address: Line 1,\r\n hint: 'Make sure you provide the Residence address for the Country of Tax Residence you populated above. '\r\n },\r\n 'line3.3c': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide your Tax Identification Number or Reason no TIN provided, taking into account the explanation about reasons A, B, and C above. '\r\n },\r\n 'line3.4a': {\r\n label: 'Country of Tax Residence',\r\n hint: 'Enter the Country where you are a Tax Resident. If you have populated 2a and identify as a U.S. person - make sure you populate one of the sections in Part 3 with the details of your U.S. tax residency. '\r\n },\r\n 'line3.4b': {\r\n label: Residence address: Line 1,\r\n hint: 'Make sure you provide the Residence address for the Country of Tax Residence you populated above. '\r\n },\r\n 'line3.4c': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide your Tax Identification Number or Reason no TIN provided, taking into account the explanation about reasons A, B, and C above. '\r\n },\r\n 'line3.5a': {\r\n label: 'Country of Tax Residence',\r\n hint: 'Enter the Country where you are a Tax Resident. If you have populated 2a and identify as a U.S. person - make sure you populate one of the sections in Part 3 with the details of your U.S. tax residency. '\r\n },\r\n 'line3.5b': {\r\n label: Residence address: Address line 1,\r\n hint: 'Make sure you provide the Residence address for the Country of Tax Residence you populated above. '\r\n },\r\n 'line3.5c': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide your Tax Identification Number or Reason no TIN provided, taking into account the explanation about reasons A, B, and C above. '\r\n },\r\n 'lineSigned Date': {\r\n label: Date *:,\r\n hint: 'Use the following format to input information about your signature date: DD-MM-YYYY. For example, if the signature date is April 15, 2022, you would enter 15-04-2022.'\r\n }\r\n};\r\n","import React from 'react';\r\n\r\n/* eslint-disable max-len */\r\nexport default {\r\n line1a: {\r\n label: 'Full legal name*',\r\n hint: 'Enter the Full Legal Name of Entity/Branch.'\r\n },\r\n line1b: {\r\n label: Country of incorporation/organisation *,\r\n hint: 'If you are a corporation, enter your country of incorporation. If you are another type of entity, enter the country under whose laws you are created, organized, or governed.'\r\n },\r\n line1c: {\r\n label: Residence address: Address line 1*,\r\n hint: 'Enter the permanent residence address of the entity identified in line 1. Your permanent residence address is the address in the country where the entity claims to be a resident for purposes of that country’s income tax. Do not show the address of a financial institution (unless you are a financial institution providing your own address), a post office box, or an address used solely for mailing purposes unless it is the only address used by the entity and such address appears in the entity’s organizational documents (i.e., your registered address). If you do not have a tax residence in any country, the permanent residence address is where you maintain your principal office.'\r\n },\r\n line1d: {\r\n label: 'Mailing address: Address line',\r\n hint: 'Enter your mailing address only if it is different from the permanent Residence address you entered.'\r\n },\r\n line2a: {\r\n hint: \r\n For federal tax purposes, you are considered a U.S. person if you are:\r\n
      \r\n
    • An individual who is a U.S. citizen or U.S. resident alien;
    • \r\n
    • A partnership, corporation, company, or association created or organized in the United States or under the laws of the United States;
    • \r\n
    • An estate (other than a foreign estate); or
    • \r\n
    • A domestic trust (as defined in Regulations section 301.7701-7).
    • \r\n
    \r\n
    \r\n },\r\n 'line2a US TIN': {\r\n hint: \r\n If you have a social security number (SSN), enter it here. To apply for an SSN, get Form SS-5 from a Social Security Administration (SSA) office or online at www.ssa.gov/forms/ss-5.pdf.\r\n If you are in the United States, you can call the SSA at 1-800-772-1213. If you do not have an SSN and are not eligible to get one, you can get an individual taxpayer identification number (ITIN). To apply for an ITIN, file Form W-7 with the IRS. It usually takes 4–6 weeks to get an ITIN.\r\n A partner in a partnership conducting a trade or business in the United States will likely be allocated effectively connected taxable income. The partner is required to file a U.S. federal income tax return and must have a U.S. taxpayer identification number (TIN).\r\n ,\r\n caution: 'An ITIN is for tax use only. It does not entitle you to social security benefits or change your employment or immigration status under U.S. law.'\r\n },\r\n lineCountryOfTaxResidence: {\r\n hint: 'Enter the Country where the Account Holder is a Tax Resident. If you have populated 2a and identify as a U.S. person - make sure you populate one of the sections in Part 3 with the details of the Account Holder\\'s U.S. tax residency.'\r\n },\r\n lineResidenceAddress: {\r\n hint: 'Make sure that the Residence address is provided corresponds to the Country of Tax Residence that was populated for this Controlling Person.'\r\n },\r\n lineTIN: {\r\n hint: 'Provide Account Holder\\'s Tax Identification Number or Reason no TIN provided, taking into account the explanation A, B, and C above. '\r\n },\r\n 'lineSigned Date': {\r\n label: Date *:,\r\n hint: 'Use the following format to input information about your signature date: DD-MM-YYYY. For example, if the signature date is April 15, 2022, you would enter 15-04-2022.'\r\n },\r\n line4a1: {\r\n label: 'FATCA',\r\n hint: 'Make sure you select only one FATCA classification and provide GIIN and additional information if applicable.'\r\n },\r\n line4a2: {\r\n label: 'CRS',\r\n hint: 'Make sure you select only one CRS classification and provide additional information if applicable.'\r\n },\r\n line4b: {\r\n hint:
    \r\n 4b1 FATCA: Make sure you select only one FATCA classification and provide GIIN and additional information if applicable.
    \r\n 4b2 CRS: Make sure you select only one CRS classification and provide additional information if applicable.\r\n
    \r\n },\r\n 'line5.1a': {\r\n label: First Name 5,\r\n hint: 'Please make sure to enter at least the first name and last name of the Controlling Person.'\r\n },\r\n 'line5.1b': {\r\n label: Country of Tax Residence 5,\r\n hint: 'Enter the Country where the Controlling Person is a Tax Resident. If you have selected With U.S. Controlling Persons option - make sure you populate one of the sections in Part 3 with the details of the Account Holder\\'s U.S. tax residency. '\r\n },\r\n 'line5.1c': {\r\n label: Residence address: Address line 1 5,\r\n hint: 'Make sure that the Residence address that is provided corresponds to the Country of Tax Residence that was populated for this Controlling Person. '\r\n },\r\n 'line5.1d': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide Controlling Person\\'s Tax Identification Number or Reason no TIN provided, taking into account the explanation A, B, and C above. '\r\n },\r\n 'line5.2a': {\r\n label: First Name,\r\n hint: 'Please make sure to enter at least the first name and last name of the Controlling Person.'\r\n },\r\n 'line5.2b': {\r\n label: Country of Tax Residence,\r\n hint: 'Enter the Country where the Controlling Person is a Tax Resident. If you have selected With U.S. Controlling Persons option - make sure you populate one of the sections in Part 3 with the details of the Account Holder\\'s U.S. tax residency. '\r\n },\r\n 'line5.2c': {\r\n label: Residence address: Address line 1,\r\n hint: 'Make sure that the Residence address that is provided corresponds to the Country of Tax Residence that was populated for this Controlling Person. '\r\n },\r\n 'line5.2d': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide Controlling Person\\'s Tax Identification Number or Reason no TIN provided, taking into account the explanation A, B, and C above. '\r\n },\r\n 'line5.3a': {\r\n label: First Name,\r\n hint: 'Please make sure to enter at least the first name and last name of the Controlling Person.'\r\n },\r\n 'line5.3b': {\r\n label: Country of Tax Residence,\r\n hint: 'Enter the Country where the Controlling Person is a Tax Resident. If you have selected With U.S. Controlling Persons option - make sure you populate one of the sections in Part 3 with the details of the Account Holder\\'s U.S. tax residency. '\r\n },\r\n 'line5.3c': {\r\n label: Residence address: Address line 1,\r\n hint: 'Make sure that the Residence address that is provided corresponds to the Country of Tax Residence that was populated for this Controlling Person. '\r\n },\r\n 'line5.3d': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide Controlling Person\\'s Tax Identification Number or Reason no TIN provided, taking into account the explanation A, B, and C above. '\r\n },\r\n 'line5.4a': {\r\n label: First Name,\r\n hint: 'Please make sure to enter at least the first name and last name of the Controlling Person.'\r\n },\r\n 'line5.4b': {\r\n label: Country of Tax Residence,\r\n hint: 'Enter the Country where the Controlling Person is a Tax Resident. If you have selected With U.S. Controlling Persons option - make sure you populate one of the sections in Part 3 with the details of the Account Holder\\'s U.S. tax residency. '\r\n },\r\n 'line5.4c': {\r\n label: Residence address: Address line 1,\r\n hint: 'Make sure that the Residence address that is provided corresponds to the Country of Tax Residence that was populated for this Controlling Person. '\r\n },\r\n 'line5.4d': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide Controlling Person\\'s Tax Identification Number or Reason no TIN provided, taking into account the explanation A, B, and C above. '\r\n },\r\n 'line5.5a': {\r\n label: First Name,\r\n hint: 'Please make sure to enter at least the first name and last name of the Controlling Person.'\r\n },\r\n 'line5.5b': {\r\n label: Country of Tax Residence,\r\n hint: 'Enter the Country where the Controlling Person is a Tax Resident. If you have selected With U.S. Controlling Persons option - make sure you populate one of the sections in Part 3 with the details of the Account Holder\\'s U.S. tax residency. '\r\n },\r\n 'line5.5c': {\r\n label: Residence address: Address line 1,\r\n hint: 'Make sure that the Residence address that is provided corresponds to the Country of Tax Residence that was populated for this Controlling Person. '\r\n },\r\n 'line5.5d': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide Controlling Person\\'s Tax Identification Number or Reason no TIN provided, taking into account the explanation A, B, and C above. '\r\n },\r\n 'line5.6a': {\r\n label: First Name,\r\n hint: 'Please make sure to enter at least the first name and last name of the Controlling Person.'\r\n },\r\n 'line5.6b': {\r\n label: Country of Tax Residence,\r\n hint: 'Enter the Country where the Controlling Person is a Tax Resident. If you have selected With U.S. Controlling Persons option - make sure you populate one of the sections in Part 3 with the details of the Account Holder\\'s U.S. tax residency. '\r\n },\r\n 'line5.6c': {\r\n label: Residence address: Address line 1,\r\n hint: 'Make sure that the Residence address that is provided corresponds to the Country of Tax Residence that was populated for this Controlling Person. '\r\n },\r\n 'line5.6d': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide Controlling Person\\'s Tax Identification Number or Reason no TIN provided, taking into account the explanation A, B, and C above. '\r\n }\r\n};\r\n","import React from 'react';\r\n\r\n/* eslint-disable max-len */\r\nexport default {\r\n line1a: {\r\n label: First name *,\r\n hint: 'Enter at least your first name and last name.'\r\n },\r\n line1b: {\r\n label: 'Business Name of Sole Proprietor',\r\n hint: 'Enter the Business Name of the Sole Proprietor if applicable.'\r\n },\r\n line1c: {\r\n label: Residence address: Address line 1*,\r\n hint: 'Your permanent residence address is the address in the country where you claim to be a resident for purposes of that country’s income tax. Do not show the address of a financial institution, a post office box, or an address used solely for mailing purposes. If you do not have a tax residence in any country, your permanent residence is where you normally reside. If you reside in a country that does not use street addresses, you may enter a descriptive address on Address line. The address must accurately indicate your permanent residence in the manner used in your jurisdiction.'\r\n },\r\n line1d: {\r\n label: 'Mailing address: Address line',\r\n hint: 'Enter your mailing address only if it is different from the address you populated in the Residence address.'\r\n },\r\n line1e: {\r\n label: 1e Date of Birth *,\r\n hint: 'Provide your date of birth. Use the following format to input your information: DD-MM-YYYY. For example, if you were born on April 15, 1956, you would enter 15-04-1956.'\r\n },\r\n line2a: {\r\n hint: \r\n For federal tax purposes, you are considered a U.S. person if you are:\r\n
      \r\n
    • An individual who is a U.S. citizen or U.S. resident alien;
    • \r\n
    • A partnership, corporation, company, or association created or organized in the United States or under the laws of the United States;
    • \r\n
    • An estate (other than a foreign estate); or
    • \r\n
    • A domestic trust (as defined in Regulations section 301.7701-7).
    • \r\n
    \r\n
    \r\n },\r\n 'line2a US TIN': {\r\n hint: \r\n If you have a social security number (SSN), enter it here. To apply for an SSN, get Form SS-5 from a Social Security Administration (SSA) office or online at www.ssa.gov/forms/ss-5.pdf.\r\n If you are in the United States, you can call the SSA at 1-800-772-1213. If you do not have an SSN and are not eligible to get one, you can get an individual taxpayer identification number (ITIN). To apply for an ITIN, file Form W-7 with the IRS. It usually takes 4–6 weeks to get an ITIN.\r\n A partner in a partnership conducting a trade or business in the United States will likely be allocated effectively connected taxable income. The partner is required to file a U.S. federal income tax return and must have a U.S. taxpayer identification number (TIN).\r\n ,\r\n caution: 'An ITIN is for tax use only. It does not entitle you to social security benefits or change your employment or immigration status under U.S. law.'\r\n },\r\n 'line3.1a': {\r\n label: 'Country of Tax Residence *',\r\n hint: 'Enter the Country where you are a Tax Resident. If you have populated 2a and identify as a U.S. person - make sure you populate one of the sections in Part 3 with the details of your U.S. tax residency. '\r\n },\r\n 'line3.1b': {\r\n label: Residence address:Address line 1*,\r\n hint: 'Make sure you provide the Residence address for the Country of Tax Residence you populated above. '\r\n },\r\n 'line3.1c': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide your Tax Identification Number or Reason no TIN provided, taking into account the explanation about reasons A, B, and C above. '\r\n },\r\n 'line3.2a': {\r\n label: 'Country of Tax Residence',\r\n hint: 'Enter the Country where you are a Tax Resident. If you have populated 2a and identify as a U.S. person - make sure you populate one of the sections in Part 3 with the details of your U.S. tax residency. '\r\n },\r\n 'line3.2b': {\r\n label: Residence address:Address line1,\r\n hint: 'Make sure you provide the Residence address for the Country of Tax Residence you populated above. '\r\n },\r\n 'line3.2c': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide your Tax Identification Number or Reason no TIN provided, taking into account the explanation about reasons A, B, and C above. '\r\n },\r\n 'line3.3a': {\r\n label: 'Country of Tax Residence',\r\n hint: 'Enter the Country where you are a Tax Resident. If you have populated 2a and identify as a U.S. person - make sure you populate one of the sections in Part 3 with the details of your U.S. tax residency. '\r\n },\r\n 'line3.3b': {\r\n label: Residence address:Address line1,\r\n hint: 'Make sure you provide the Residence address for the Country of Tax Residence you populated above. '\r\n },\r\n 'line3.3c': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide your Tax Identification Number or Reason no TIN provided, taking into account the explanation about reasons A, B, and C above. '\r\n },\r\n 'line3.4a': {\r\n label: 'Country of Tax Residence',\r\n hint: 'Enter the Country where you are a Tax Resident. If you have populated 2a and identify as a U.S. person - make sure you populate one of the sections in Part 3 with the details of your U.S. tax residency. '\r\n },\r\n 'line3.4b': {\r\n label: Residence address:Address line1,\r\n hint: 'Make sure you provide the Residence address for the Country of Tax Residence you populated above. '\r\n },\r\n 'line3.4c': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide your Tax Identification Number or Reason no TIN provided, taking into account the explanation about reasons A, B, and C above. '\r\n },\r\n 'line3.5a': {\r\n label: 'Country of Tax Residence',\r\n hint: 'Enter the Country where you are a Tax Resident. If you have populated 2a and identify as a U.S. person - make sure you populate one of the sections in Part 3 with the details of your U.S. tax residency. '\r\n },\r\n 'line3.5b': {\r\n label: Residence address:Address line1,\r\n hint: 'Make sure you provide the Residence address for the Country of Tax Residence you populated above. '\r\n },\r\n 'line3.5c': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide your Tax Identification Number or Reason no TIN provided, taking into account the explanation about reasons A, B, and C above. '\r\n },\r\n 'lineSigned Date': {\r\n label: Date *:,\r\n hint: 'Use the following format to input information about your signature date: DD-MM-YYYY. For example, if the signature date is April 15, 2022, you would enter 15-04-2022.'\r\n }\r\n};\r\n","import React from 'react';\r\n\r\n/* eslint-disable max-len */\r\nexport default {\r\n line1a: {\r\n label: 'Full legal name*',\r\n hint: 'Enter the Full Legal Name of Entity/Branch.'\r\n },\r\n line1b: {\r\n label: Country of incorporation/organisation *,\r\n hint: 'If you are a corporation, enter your country of incorporation. If you are another type of entity, enter the country under whose laws you are created, organized, or governed.'\r\n },\r\n line1c: {\r\n label: Residence address: Address line 1*,\r\n hint: 'Enter the permanent residence address of the entity identified in line 1. Your permanent residence address is the address in the country where the entity claims to be a resident for purposes of that country’s income tax. Do not show the address of a financial institution (unless you are a financial institution providing your own address), a post office box, or an address used solely for mailing purposes unless it is the only address used by the entity and such address appears in the entity’s organizational documents (i.e., your registered address). If you do not have a tax residence in any country, the permanent residence address is where you maintain your principal office.'\r\n },\r\n line1d: {\r\n label: 'Mailing address: Address line',\r\n hint: 'Enter your mailing address only if it is different from the permanent Residence address you entered.'\r\n },\r\n line2a: {\r\n hint: \r\n For federal tax purposes, you are considered a U.S. person if you are:\r\n
      \r\n
    • An individual who is a U.S. citizen or U.S. resident alien;
    • \r\n
    • A partnership, corporation, company, or association created or organized in the United States or under the laws of the United States;
    • \r\n
    • An estate (other than a foreign estate); or
    • \r\n
    • A domestic trust (as defined in Regulations section 301.7701-7).
    • \r\n
    \r\n
    \r\n },\r\n 'line2a US TIN': {\r\n hint: \r\n If you have a social security number (SSN), enter it here. To apply for an SSN, get Form SS-5 from a Social Security Administration (SSA) office or online at www.ssa.gov/forms/ss-5.pdf.\r\n If you are in the United States, you can call the SSA at 1-800-772-1213. If you do not have an SSN and are not eligible to get one, you can get an individual taxpayer identification number (ITIN). To apply for an ITIN, file Form W-7 with the IRS. It usually takes 4–6 weeks to get an ITIN.\r\n A partner in a partnership conducting a trade or business in the United States will likely be allocated effectively connected taxable income. The partner is required to file a U.S. federal income tax return and must have a U.S. taxpayer identification number (TIN).\r\n ,\r\n caution: 'An ITIN is for tax use only. It does not entitle you to social security benefits or change your employment or immigration status under U.S. law.'\r\n },\r\n lineCountryOfTaxResidence: {\r\n hint: 'Enter the Country where the Account Holder is a Tax Resident. If you have populated 2a and identify as a U.S. person - make sure you populate one of the sections in Part 3 with the details of the Account Holder\\'s U.S. tax residency.'\r\n },\r\n lineResidenceAddress: {\r\n hint: 'Make sure that the Residence address is provided corresponds to the Country of Tax Residence that was populated for this Controlling Person.'\r\n },\r\n lineTIN: {\r\n hint: 'Provide Account Holder\\'s Tax Identification Number or Reason no TIN provided, taking into account the explanation A, B, and C above. '\r\n },\r\n 'lineSigned Date': {\r\n label: Date *:,\r\n hint: 'Use the following format to input information about your signature date: DD-MM-YYYY. For example, if the signature date is April 15, 2022, you would enter 15-04-2022.'\r\n },\r\n line4a1: {\r\n label: 'FATCA',\r\n hint: 'Make sure you select only one FATCA classification and provide GIIN and additional information if applicable.'\r\n },\r\n line4a2: {\r\n label: 'CRS',\r\n hint: 'Make sure you select only one CRS classification and provide additional information if applicable.'\r\n },\r\n line4b: {\r\n hint:
    \r\n 4b1 FATCA: Make sure you select only one FATCA classification and provide GIIN and additional information if applicable.
    \r\n 4b2 CRS: Make sure you select only one CRS classification and provide additional information if applicable.\r\n
    \r\n },\r\n 'line5.1a': {\r\n label: First Name 6,\r\n hint: 'Please make sure to enter at least the first name and last name of the Controlling Person.'\r\n },\r\n 'line5.1b': {\r\n label: Country of Tax Residence 6,\r\n hint: 'Enter the Country where the Controlling Person is a Tax Resident. If you have selected With U.S. Controlling Persons option - make sure you populate one of the sections in Part 3 with the details of the Account Holder\\'s U.S. tax residency. '\r\n },\r\n 'line5.1c': {\r\n label: Residence address: Address line 1 6,\r\n hint: 'Make sure that the Residence address that is provided corresponds to the Country of Tax Residence that was populated for this Controlling Person. '\r\n },\r\n 'line5.1d': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide Controlling Person\\'s Tax Identification Number or Reason no TIN provided, taking into account the explanation A, B, and C above. '\r\n },\r\n 'line5.2a': {\r\n label: First Name 6,\r\n hint: 'Please make sure to enter at least the first name and last name of the Controlling Person.'\r\n },\r\n 'line5.2b': {\r\n label: Country of Tax Residence,\r\n hint: 'Enter the Country where the Controlling Person is a Tax Resident. If you have selected With U.S. Controlling Persons option - make sure you populate one of the sections in Part 3 with the details of the Account Holder\\'s U.S. tax residency. '\r\n },\r\n 'line5.2c': {\r\n label: Residence address: Address line 1 6,\r\n hint: 'Make sure that the Residence address that is provided corresponds to the Country of Tax Residence that was populated for this Controlling Person. '\r\n },\r\n 'line5.2d': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide Controlling Person\\'s Tax Identification Number or Reason no TIN provided, taking into account the explanation A, B, and C above. '\r\n },\r\n 'line5.3a': {\r\n label: First Name 6,\r\n hint: 'Please make sure to enter at least the first name and last name of the Controlling Person.'\r\n },\r\n 'line5.3b': {\r\n label: Country of Tax Residence,\r\n hint: 'Enter the Country where the Controlling Person is a Tax Resident. If you have selected With U.S. Controlling Persons option - make sure you populate one of the sections in Part 3 with the details of the Account Holder\\'s U.S. tax residency. '\r\n },\r\n 'line5.3c': {\r\n label: Residence address: Address line 1 6,\r\n hint: 'Make sure that the Residence address that is provided corresponds to the Country of Tax Residence that was populated for this Controlling Person. '\r\n },\r\n 'line5.3d': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide Controlling Person\\'s Tax Identification Number or Reason no TIN provided, taking into account the explanation A, B, and C above. '\r\n },\r\n 'line5.4a': {\r\n label: First Name 6,\r\n hint: 'Please make sure to enter at least the first name and last name of the Controlling Person.'\r\n },\r\n 'line5.4b': {\r\n label: Country of Tax Residence,\r\n hint: 'Enter the Country where the Controlling Person is a Tax Resident. If you have selected With U.S. Controlling Persons option - make sure you populate one of the sections in Part 3 with the details of the Account Holder\\'s U.S. tax residency. '\r\n },\r\n 'line5.4c': {\r\n label: Residence address: Address line 1 6,\r\n hint: 'Make sure that the Residence address that is provided corresponds to the Country of Tax Residence that was populated for this Controlling Person. '\r\n },\r\n 'line5.4d': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide Controlling Person\\'s Tax Identification Number or Reason no TIN provided, taking into account the explanation A, B, and C above. '\r\n },\r\n 'line5.5a': {\r\n label: First Name 6,\r\n hint: 'Please make sure to enter at least the first name and last name of the Controlling Person.'\r\n },\r\n 'line5.5b': {\r\n label: Country of Tax Residence,\r\n hint: 'Enter the Country where the Controlling Person is a Tax Resident. If you have selected With U.S. Controlling Persons option - make sure you populate one of the sections in Part 3 with the details of the Account Holder\\'s U.S. tax residency. '\r\n },\r\n 'line5.5c': {\r\n label: Residence address: Address line 1 6,\r\n hint: 'Make sure that the Residence address that is provided corresponds to the Country of Tax Residence that was populated for this Controlling Person. '\r\n },\r\n 'line5.5d': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide Controlling Person\\'s Tax Identification Number or Reason no TIN provided, taking into account the explanation A, B, and C above. '\r\n },\r\n 'line5.6a': {\r\n label: First Name 6,\r\n hint: 'Please make sure to enter at least the first name and last name of the Controlling Person.'\r\n },\r\n 'line5.6b': {\r\n label: Country of Tax Residence,\r\n hint: 'Enter the Country where the Controlling Person is a Tax Resident. If you have selected With U.S. Controlling Persons option - make sure you populate one of the sections in Part 3 with the details of the Account Holder\\'s U.S. tax residency. '\r\n },\r\n 'line5.6c': {\r\n label: Residence address: Address line 1 6,\r\n hint: 'Make sure that the Residence address that is provided corresponds to the Country of Tax Residence that was populated for this Controlling Person. '\r\n },\r\n 'line5.6d': {\r\n label: 'Tax Identification Number',\r\n hint: 'Provide Controlling Person\\'s Tax Identification Number or Reason no TIN provided, taking into account the explanation A, B, and C above. '\r\n }\r\n};\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n/* eslint max-len: 0 */\r\nconst allDefinitions = {\r\n 'Account holder': 'An account holder is generally the person listed or identified as the holder or owner of a financial account. For example, if a partnership is listed as the holder or owner of a financial account, then the partnership is the account holder, rather than the partners of the partnership. However, an account that is held by a disregarded entity (other than a disregarded entity treated as an FFI for chapter 4 purposes) is treated as held by the person owning the entity',\r\n 'Amounts subject to withholding under chapter 3': Generally, an amount subject to chapter 3 withholding is an amount from sources within the United States that is fixed or determinable annual or periodical (FDAP) income. FDAP income is all income included in gross income, including interest (as well as OID), dividends, rents, royalties, and compensation. Amounts subject to chapter 3 withholding do not include amounts that are not FDAP, such as most gains from the sale of property (including market discount and option premiums), as well as other specific items of income described in Regulations section 1.1441-2 (such as interest on bank deposits and short-term OID).
     For purposes of section 1446, the amount subject to withholding is the foreign partner’s share of the partnership’s effectively connected taxable income.
    ,\r\n 'Beneficial owner': For payments other than those for which a reduced rate of, or exemption from, withholding is claimed under an income tax treaty, the beneficial owner of income is generally the person who is required under U.S. tax principles to include the payment in gross income on a tax return. A person is not a beneficial owner of income, however, to the extent that person is receiving the income as a nominee, agent, or custodian, or to the extent the person is a conduit whose participation in a transaction is disregarded. In the case of amounts paid that do not constitute income, beneficial ownership is determined as if the payment were income.
     Foreign partnerships, foreign simple trusts, and foreign grantor trusts are not the beneficial owners of income paid to the partnership or trust. The beneficial owners of income paid to a foreign partnership are generally the partners in the partnership, provided that the partner is not itself a partnership, foreign simple or grantor trust, nominee or other agent. The beneficial owners of income paid to a foreign simple trust (that is, a foreign trust that is described in section 651(a)) are generally the beneficiaries of the trust, if the beneficiary is not a foreign partnership, foreign simple or grantor trust, nominee, or other agent. The beneficial owners of income paid to a foreign grantor trust (that is, a foreign trust to the extent that all or a portion of the income of the trust is treated as owned by the grantor or another person under sections 671 through 679) are the persons treated as the owners of the trust. The beneficial owners of income paid to a foreign complex trust (that is, a foreign trust that is not a foreign simple trust or foreign grantor trust) is the trust itself.
     For purposes of section 1446, the same beneficial owner rules apply, except that under section 1446 a foreign simple trust rather than the beneficiary provides the form to the partnership.
     The beneficial owner of income paid to a foreign estate is the estate itself.
    Note. A payment to a U.S. partnership, U.S. trust, or U.S. estate is treated as a payment to a U.S. payee that is not subject to 30% withholding for purposes of chapter 3 and chapter 4. A U.S. partnership, trust, or estate should provide the withholding agent with a Form W-9. For purposes of section 1446, a U.S. grantor trust or disregarded entity shall not provide the withholding agent a Form W-9 in its own right. Rather, the grantor or other owner shall provide the withholding agent the appropriate form.
    ,\r\n 'Chapter 3': 'Chapter 3 means chapter 3 of the Internal Revenue Code (Withholding of Tax on Nonresident Aliens and Foreign Corporations). Chapter 3 contains sections 1441 through 1464.',\r\n 'Chapter 4': 'Chapter 4 means chapter 4 of the Internal Revenue Code (Taxes to Enforce Reporting on Certain Foreign Accounts). Chapter 4 contains sections 1471 through 1474.',\r\n 'Chapter 4 status': 'The term chapter 4 status means a person’s status as a U.S. person, specified U.S. person, foreign individual, participating FFI, deemed-compliant FFI, restricted distributor, exempt beneficial owner, nonparticipating FFI, territory financial institution,excepted NFFE, or passive NFFE. See Regulations section 1.1471-1(b) for the definitions of these terms.',\r\n 'Deemed-compliant FFI': Under section 1471(b)(2), certain FFIs are deemed to comply with the regulations under chapter 4 without the need to enter into an FFI agreement with the IRS. However, certain deemed-compliant FFIs are required to register with the IRS and obtain a GIIN. These FFIs are referred to as registered deemed-compliant FFIs. See Regulations section 1.1471-5(f)(1).,\r\n 'Disregarded entity': A business entity that has a single owner and is not a corporation under Regulations section 301.7701-2(b) is disregarded as an entity separate from its owner. Generally, a disregarded entity does not submit this Form W-8BEN-E to a withholding agent or FFI. Instead, the owner of such entity provides the appropriate documentation (for example, a Form W-8BEN-E if the owner is a foreign entity). See Regulations section 1.1446-1 and section 1.1471-3(a)(3)(v), respectively. However, if a disregarded entity receiving a withholdable payment is an FFI outside the single owner’s country of organization or has its own GIIN, its foreign owner will be required to complete Part II of Form W-8BEN-E to document the chapter 4 status of the disregarded entity receiving the payment.
     Certain entities that are disregarded for U.S. tax purposes may be treated as a treaty resident for purposes of claiming treaty benefits under an applicable tax treaty (see the definition of hybrid entity, later) or may be recognized as an FFI under an applicable IGA (see instructions for line 3, later, for when this applies). A hybrid entity claiming treaty benefits on its own behalf is required to complete this Form W-8BEN-E. See Hybrid Entities under Special Instructions, later.
     A disregarded entity with a U.S. owner or a disregarded entity with a foreign owner that is not otherwise able to fill out Part II (i.e., because it is in the same country as its single owner and does not have a GIIN) may provide this form to an FFI solely for purposes of documenting itself for chapter 4 purposes. In such a case, the disregarded entity should complete Part I as if it were a beneficial owner and should not complete line 3.
    ,\r\n 'Entities Providing Certifications Under an Applicable IGA': An FFI in an IGA jurisdiction with which you have an account may provide you with a chapter 4 status certification other than as shown in Parts IV through XXVIII in order to satisfy its due diligence requirements under the applicable IGA. In such a case, you may attach the alternative certification to this Form W-8BEN-E in lieu of completing a certification otherwise required in Parts IV through XXVIII provided that you: (1) determine that the certification accurately reflects your status for chapter 4 purposes or under an applicable IGA; and (2) the withholding agent provides a written statement to you that it has provided the certification to meet its due diligence requirements as a participating FFI or registered deemed-compliant FFI under an applicable IGA. For example, Entity A organized in Country A holds an account with an FFI in Country B. Country B has a Model 1 IGA in effect. The FFI in Country B may ask Entity A to provide a chapter 4 status certification based on the terms of the Country B IGA in order to fulfil its due diligence and documentation requirements under the Country B IGA.
    You may also provide with this form an applicable IGA certification if you are determining your chapter 4 status under the definitions provided in an applicable IGA and your certification identifies the jurisdiction that is treated as having an IGA in effect and describes your status as an NFFE or FFI in accordance with the applicable IGA. However, if you determine your status under an applicable IGA as an NFFE, you must still determine if you are an excepted NFFE under the Regulations in order to complete this form unless you are provided an alternative certification by an FFI described in the preceding paragraph that covers your certification as an NFFE (such as “active NFFE”) as defined in an applicable IGA. Additionally, you are required to comply with the conditions of your status under the law of the IGA jurisdiction to which you are subject if you are determining your status under that IGA. If you cannot provide the certifications in Parts IV through XXVIII, or if you are a nonprofit entity that meets the definition of “active NFFE” under the applicable IGA, do not check a box in line 5. However, if you determine your status under the definitions of the IGA and can certify to a chapter 4 status included on this form, you do not need to provide the certifications described in this paragraph unless required by the FFI to whom you are providing this form.
    Any certifications provided under an applicable IGA remain subject to the penalty of perjury statement and other certifications made in Part XXX.
    ,\r\n 'Financial account': A financial account includes:
    • A depository account maintained by an FFI;
    • A custodial account maintained by an FFI;
    • Equity or debt interests (other than interests regularly traded on an established securities market) in investment entities and certain holding companies, treasury centers, or financial institutions as defined in Regulations section 1.1471-5(e);
    • Certain cash value insurance contracts; and
    • Annuity contracts.
    For purposes of chapter 4, exceptions are provided for accounts such as certain tax-favored savings accounts, term life insurance contracts, accounts held by estates, escrow accounts, and certain annuity contracts. These exceptions are subject to certain conditions. See Regulations section 1.1471-5(b)(2). Accounts may also be excluded from the definition of financial account under an applicable IGA.
    ,\r\n 'Financial institution': 'A financial institution generally means an entity that is a depository institution, custodial institution, investment entity, or an insurance company (or holding company of an insurance company) that issues cash value insurance or annuity contracts. See Regulations section 1.1471-5(e).',\r\n 'Foreign financial institution (FFI)': 'A foreign financial institution (FFI) generally means a foreign entity that is a financial institution.',\r\n 'Fiscally transparent entity': 'An entity is treated as fiscally transparent with respect to an item of income for which treaty benefits are claimed to the extent that the interest holders in the entity must, on a current basis, take into account separately their shares of an item of income paid to the entity, whether or not distributed, and must determine the character of the items of income as if they were realized directly from the sources from which realized by the entity. For example, partnerships, common trust funds, and simple trusts or grantor trusts are generally considered to be fiscally transparent with respect to items of income received by them.',\r\n 'Flow-through entity': A flow-through entity is a foreign partnership (other than a withholding foreign partnership), a foreign simple or foreign grantor trust (other than a withholding foreign trust), or, for payments for which a reduced rate of, or exemption from, withholding is claimed under an income tax treaty, any entity to the extent the entity is considered to be fiscally transparent (see above) with respect to the payment by an interest holder’s jurisdiction.
     For purposes of section 1446, a foreign partnership or foreign grantor trust must submit Form W-8IMY to establish the partnership or grantor trust as a look-through entity. The Form W-8IMY may be accompanied by this form or another version of Form W-8 or Form W-9 to establish the foreign or domestic status of a partner or grantor or other owner. See Regulations section 1.1446-1.
    ,\r\n 'Foreign person': 'A foreign person includes a foreign corporation, a foreign partnership, a foreign trust, a foreign estate, and any other person that is not a U.S. person. It also includes a foreign branch or office of a U.S. financial institution or U.S. clearing organization if the foreign branch is a qualified intermediary (QI). Generally, a payment to a U.S. branch of a foreign person is a payment to a foreign person.',\r\n GIIN: 'The term GIIN means a global intermediary identification number. A GIIN is the identification number assigned to an entity that has registered with the IRS for chapter 4 purposes.',\r\n 'Hybrid entity': 'A hybrid entity is any person (other than an individual) that is treated as fiscally transparent (rather than as a beneficial owner) for purposes of declaring status under the Code but is not treated as fiscally transparent by a country with which the United States has an income tax treaty. Hybrid entity status is relevant for claiming treaty benefits. A hybrid entity, is, however, required to provide its chapter 4 status if it is receiving a withholdable payment.',\r\n 'Hybrid Entity Making a Claim of Treaty Benefits': If you are a hybrid entity making a claim for treaty benefits as a resident on your own behalf, you may do so as permitted under an applicable tax treaty. You should complete this Form W-8BEN-E to claim treaty benefits in the manner described in the instructions for Part III and complete Part I to the extent indicated below. Note that you should not complete line 5 indicating your chapter 4 status unless you are a disregarded entity that is treated as the payee for chapter 4 purposes.
    If you are a flow-through entity claiming treaty benefits on a payment that is a withholdable payment, you should also provide Form W-8IMY along with a withholding statement (if required) establishing the chapter 4 status of each of your partners or owners. Allocation information is not required on this withholding statement unless one or more partners or owners are subject to chapter 4 withholding (such as a nonparticipating FFI). If you are a disregarded entity claiming treaty benefits on a payment that is a withholdable payment, unless you are treated as the payee for chapter 4 purposes and have your own GIIN, your single owner should provide Form W-8BEN-E or Form W-8BEN (as applicable) to the withholding agent along with this form. You or the withholding agent may use line 10 to inform the withholding agent to associate the two forms.
    ,\r\n 'Intergovernmental agreement (IGA)': An intergovernmental agreement (IGA) means a Model 1 IGA or a Model 2 IGA. For a list of jurisdictions treated as having in effect a Model 1 or Model 2 IGA, see https://home.treasury.gov/policy-issues/tax-policy/foreign-account-tax-compliance-act.
     A Model 1 IGA means an agreement between the U.S. or the Treasury Department and a foreign government or one or more agencies to implement FATCA through reporting by FFIs to such foreign government or agency thereof, followed by automatic exchange of the reported information with the IRS. An FFI in a Model 1 IGA jurisdiction that performs account reporting to the jurisdiction’s government is referred to as a reporting Model 1 FFI.
     A Model 2 IGA means an agreement or arrangement between the U.S. or the Treasury Department and a foreign government or one or more agencies to implement FATCA through reporting by FFIs directly to the IRS in accordance with the requirements of an FFI agreement, supplemented by the exchange of information between such foreign government or agency thereof and the IRS. An FFI in a Model 2 IGA jurisdiction that has entered into an FFI agreement is a participating FFI, but may be referred to as a reporting Model 2 FFI. The term reporting IGA FFI refers to both reporting Model 1 FFIs and reporting Model 2 FFIs.
    ,\r\n 'Limited branch': 'A limited branch means a branch of a participating FFI that is described in Regulations section 1.1471-4(e)(2).',\r\n 'Nonparticipating FFI': 'A nonparticipating FFI means an FFI that is not a participating FFI, deemed-compliant FFI, or exempt beneficial owner.',\r\n 'Participating FFI': 'A participating FFI is an FFI (including a reporting Model 2 FFI covered by an FFI agreement) that has agreed to comply with the terms of an FFI agreement. The term participating FFI also includes a QI branch of a U.S. financial institution, unless such branch is a reporting Model 1 FFI.',\r\n 'Participating payee': 'A participating payee means any person that accepts a payment card as payment or accepts payment from a third party settlement organization in settlement of a third party network transaction for purposes of section 6050W.',\r\n Payee: 'A payee is generally a person to whom a payment is made, regardless of whether such person is the beneficial owner. For a payment made to a financial account, the payee is generally the holder of the financial account. However, under certain circumstances a person who receives a payment will not be considered the payee. For purposes of chapter 3, see Regulations section 1.1441-1(b)(2). For purposes of chapter 4, see Regulations section 1.1471-3(a)(3).',\r\n 'Payment settlement entity (PSE)': 'A payment settlement entity is a merchant acquiring entity or third party settlement organization. Under section 6050W, a PSE is generally required to report payments made in settlement of payment card transactions or third party network transactions. However, a PSE is not required to report payments made to a beneficial owner that is documented as foreign with an applicable W-8.',\r\n 'Qualified intermediary (QI)': A qualified intermediary (QI) (as described in Regulations section 1.1441-1(e)(5) (ii)) is a person that is a party to an agreement with the IRS that is described in Regulations section 1.1441-1(e)(5)(iii). A qualified derivatives dealer is a QI that has agreed to certain reporting and withholding requirements pursuant to Regulations section 1.1441-1(e)(6).,\r\n 'Recalcitrant account holder': 'A recalcitrant account holder for purposes of chapter 4 includes an entity (other than an entity required to be treated as a nonparticipating FFI by the withholding agent) that fails to comply with a request by an FFI maintaining the account for documentation and information for determining whether the account is a U.S. account (as defined in Regulations section 1.1471-5(a)). See Regulations section 1.1471-5(g).',\r\n 'Reverse hybrid entity': 'A reverse hybrid entity is any person (other than an individual) that is not fiscally transparent under U.S. tax law principles but that is fiscally transparent under the laws of a jurisdiction with which the United States has an income tax treaty. See Form W-8IMY and accompanying instructions for information on a reverse hybrid entity making a claim of treaty benefits on behalf of its owners.',\r\n 'Specified U.S. person': 'A specified U.S. person is any U.S. person other than a person identified in Regulations section 1.1473-1(c).',\r\n 'Substantial U.S. owner': A substantial U.S. owner (as defined in Regulations section 1.1473-1(b)) means any specified U.S. person that:
    • Owns, directly or indirectly, more than 10 percent (by vote or value) of the stock of any foreign corporation;
    • Owns, directly or indirectly, more than 10 percent of the profits or capital interests in a foreign partnership;
    • Is treated as an owner of any portion of a foreign trust under sections 671 through 679; or
    • Holds, directly or indirectly, more than a 10 percent beneficial interest in a trust.
    An investment entity organized in a territory that is not also a depository institution, custodial institution, or specified insurance company is not treated as a financial institution. Instead, it is a territory NFFE. If such an entity cannot qualify as an excepted NFFE as described in Regulations section 1.1472-1(c)(1) (including an excepted territory NFFE), it must disclose its substantial U.S. owners using this definition (applying the 10 percent threshold) under Regulations section 1.1473-1(b)(1).
    ,\r\n 'U.S. person': A U.S. person is defined in section 7701(a)(30) and includes domestic partnerships, corporations, and trusts.
    Certain foreign insurance companies issuing annuities or cash value insurance contracts that elect to be treated as a U.S. person for federal tax purposes but are not licensed to do business in the United States are treated as FFIs for purposes of chapter 4. For purposes of providing a withholding agent with documentation for both chapter 3 and chapter 4 purposes, however, such an insurance company is permitted to use Form W-9 to certify its status as a U.S. person. Likewise, a foreign branch of a U.S. financial institution (other than a branch that operates as a qualified intermediary) that is treated as an FFI under an applicable IGA is permitted to use Form W-9 to certify its status as a U.S. person for chapter 3 and chapter 4 purposes.
    ,\r\n 'Withholdable payment': 'Withholding under chapter 4 may apply to payments of U.S. source FDAP income that are withholdable payments as defined in Regulations section 1.1473-1(a) to which an exception does not apply under chapter 4. The exceptions from withholding provided for under chapter 3 are not applicable when determining whether withholding applies under chapter 4. For exceptions applicable to the definition of a withholdable payment, see Regulations section 1.1473-1(a)(4) (exempting, for example, certain nonfinancial payments).',\r\n 'Withholding agent': Any person, U.S. or foreign, that has control, receipt, custody, disposal, or payment of U.S. source FDAP income subject to chapter 3 or 4 withholding is a withholding agent. The withholding agent may be an individual, corporation, partnership, trust, association, or any other entity, including (but not limited to) any foreign intermediary, foreign partnership, and U.S. branches of certain foreign banks and insurance companies.
     For purposes of section 1446, the withholding agent is the partnership conducting the trade or business in the United States. For a publicly traded partnership, the withholding agent may be the partnership, a nominee holding an interest on behalf of a foreign person, or both. See Regulations sections 1.1446-1 through 1.1446-6.
    ,\r\n 'w8ben___Account holder': An account holder is generally the person listed or identified as the holder or owner of a financial account. For example, if a partnership is listed as the holder or owner of a financial account, then the partnership is the account holder, rather than the partners of the partnership (subject to some exceptions). However, an account that is held by a single-member disregarded entity is treated as held by the entity's single owner.,\r\n 'w8ben___Beneficial owner': For payments other than those for which a reduced rate of, or exemption from, withholding is claimed under an income tax treaty, the beneficial owner of income is generally the person who is required under U.S. tax principles to include the payment in gross income on a tax return. A person is not a beneficial owner of income, however, to the extent that person is receiving the income as a nominee, agent, or custodian, or to the extent the person is a conduit whose participation in a transaction is disregarded. In the case of amounts paid that do not constitute income, beneficial ownership is determined as if the payment were income.
    Foreign partnerships, foreign simple trusts, and foreign grantor trusts are not the beneficial owners of income paid to the partnership or trust. The beneficial owners of income paid to a foreign partnership are generally the partners in the partnership, provided that the partner is not itself a partnership, foreign simple or grantor trust, nominee, or other agent. The beneficial owners of income paid to a foreign simple trust (that is, a foreign trust that is described in section 651(a)) are generally the beneficiaries of the trust, if the beneficiary is not a foreign partnership, foreign simple or grantor trust, nominee, or other agent. The beneficial owners of a foreign grantor trust (that is, a foreign trust to the extent that all or a portion of the income of the trust is treated as owned by the grantor or another person under sections 671 through 679) are the persons treated as the owners of the trust. The beneficial owners of income paid to a foreign complex trust (that is, a foreign trust that is not a foreign simple trust or foreign grantor trust) is the trust itself.
    For purposes of section 1446, the same beneficial owner rules apply, except that under section 1446 a foreign simple trust rather than the beneficiary provides the form to the partnership.
    The beneficial owner of income paid to a foreign estate is the estate itself.
    Note. A payment to a U.S. partnership, U.S. trust, or U.S. estate is treated as a payment to a U.S. payee that is not subject to 30% withholding under chapter 3 or 4. A U.S. partnership, trust, or estate should provide the withholding agent with a Form W-9. For purposes of section 1446, a U.S. grantor trust or disregarded entity shall not provide the withholding agent a Form W-9 in its own right. Rather, the grantor or other owner shall provide the withholding agent the appropriate form.
    ,\r\n 'w8ben___Disregarded entity': A business entity that has a single owner and is not a corporation under Regulations section 301.7701-2(b) is disregarded as an entity separate from its owner. A disregarded entity does not submit this Form W-8BEN to a partnership for purposes of section 1446 or to an FFI for purposes of chapter 4. Instead, the owner of such entity provides appropriate documentation. See Regulations section 1.1446-1 and section 1.1471-3(a)(3) (v), respectively.
    Certain entities that are disregarded for U.S. tax purposes may be recognized for purposes of claiming treaty benefits under an applicable tax treaty (see the definition of hybrid entity below). A hybrid entity claiming treaty benefits is required to complete Form W-8BEN-E. See Form W-8BEN-E and its instructions.
    ,\r\n 'w8ben___Financial account': A financial account includes:
    • A depository account maintained by a financial institution;
    • A custodial account maintained by a financial institution;
    • Equity or debt interests (other than interests regularly traded on an established securities market) in investment entities and certain holding companies, treasury centers, or financial institutions as defined in Regulations section 1.1471-5(e);
    • Cash value insurance contracts; and
    • Annuity contracts.
    For purposes of chapter 4, exceptions are provided for accounts such as certain tax-favored savings accounts; term life insurance contracts; accounts held by estates; escrow accounts; and annuity contracts. These exceptions are subject to certain conditions. See Regulations section 1.1471-5(b)(2). Accounts may also be excluded from the definition of financial account under an applicable IGA.
    ,\r\n 'w8ben___Financial institution': A financial institution generally means an entity that is a depository institution, custodial institution, investment entity, or an insurance company (or holding company of an insurance company) that issues cash value insurance or annuity contracts.,\r\n 'w8ben___Hybrid entity': A hybrid entity is any person (other than an individual) that is treated as fiscally transparent for purposes of its status under the Code but is not treated as fiscally transparent by a country with which the United States has an income tax treaty. Hybrid status is relevant for claiming treaty benefits.,\r\n 'w8ben___Nonresident alien individual': Any individual who is not a citizen or resident alien of the United States is a nonresident alien individual. An alien individual meeting either the “green card test” or the “substantial presence test” for the calendar year is a resident alien. Any person not meeting either test is a nonresident alien individual. Additionally, an alien individual who is treated as a nonresident alien pursuant to Regulations section 301.7701(b)-7 for purposes figuring the individual's U.S. tax liability, or an alien individual who is a bona fide resident of Puerto Rico, Guam, the Commonwealth of the Northern Mariana Islands, the U.S. Virgin Islands, or American Samoa is a nonresident alien individual. See Pub. 519 for more information on resident and nonresident alien status.

    Even though a nonresident alien individual married to a U.S. citizen or resident alien may choose to be treated as a resident alien for certain purposes (for example, filing a joint income tax return), such individual is still treated as a nonresident alien for chapter 3 withholding tax purposes on all income except wages. For purposes of chapter 4, a nonresident alien individual who holds a joint account with a U.S. person will be considered a holder of a U.S. account for chapter 4 purposes.
    ,\r\n 'w8ben___Withholding agent': Any person, U.S. or foreign, that has control, receipt, custody, disposal, or payment of U.S. source FDAP income subject to chapter 3 or 4 withholding is a withholding agent. The withholding agent may be an individual, corporation, partnership, trust, association, or any other entity, including (but not limited to) any foreign intermediary, foreign partnership, and U.S. branches of certain foreign banks and insurance companies.
    For purposes of section 1446, the withholding agent is the partnership conducting the trade or business in the United States. For a publicly traded partnership, the withholding agent may be the partnership, a nominee holding an interest on behalf of a foreign person, or both. See Regulations sections 1.1446-1 through 1.1446-6.
    ,\r\n 'w8ben___Foreign person': A foreign person includes a nonresident alien individual and certain foreign entities that are not U.S. persons (entities should complete Form W-8BEN-E rather than this Form W-8BEN).,\r\n FFI: 'An FFI generally means a foreign entity that is a financial institution.',\r\n 'w8imy___Account holder': An account holder is generally the person listed or identified as the holder or owner of a financial account (other than an agent or nominee that is not an FFI). For example, if a partnership is listed as the holder or owner of a financial account, then the partnership is the account holder, rather than the partners of the partnership. However, an account that is held by a disregarded entity is treated as held by the person owning the entity.,\r\n 'w8imy___Beneficial owner': For payments other than those for which a reduced rate of, or exemption from, withholding is claimed under an income tax treaty, the beneficial owner of income is generally the person who is required under U.S. tax principles to include the payment in gross income on a tax return. A person is not a beneficial owner of income, however, to the extent that person is receiving the income as a nominee, agent, or custodian, or to the extent the person is a conduit whose participation in a transaction is disregarded. In the case of amounts paid that do not constitute income, beneficial ownership is determined as if the payment were income.
      Foreign partnerships, foreign simple trusts, and foreign grantor trusts are not the beneficial owners of income paid to the partnership or trust. The beneficial owners of income paid to a foreign partnership are generally the partners in the partnership, provided that the partner is not itself a partnership, foreign simple or grantor trust, nominee, or other agent. The beneficial owners of income paid to a foreign simple trust (that is, a foreign trust that is described in section 651(a)) are generally the beneficiaries of the trust, if the beneficiary is not itself a foreign partnership, foreign simple or grantor trust, nominee, or other agent. The beneficial owners of income paid to a foreign grantor trust (that is, a foreign trust to the extent that all or a portion of the income of the trust is treated as owned by the grantor or another person under sections 671 through 679) are the persons treated as the owners of the trust. The beneficial owner of income paid to a foreign complex trust (that is, a foreign trust that is not a foreign simple trust or foreign grantor trust) is the trust itself.
      The beneficial owner of income paid to a foreign estate is the estate itself. Note. A payment to a U.S. partnership, U.S. trust, or U.S. estate is treated as a payment to a U.S. payee that is not subject to 30% withholding for purposes of chapter 3 and chapter 4. A U.S. partnership, trust, or estate should provide the withholding agent with a Form W-9. For purposes of section 1446, a U.S. grantor trust or disregarded entity shall not provide the withholding agent a Form W-9 in its own right. Rather, the grantor or other owner shall provide the withholding agent the appropriate form.
    ,\r\n 'w8imy___Chapter 3 withholding rate pool': A chapter 3 withholding rate pool is a payment of a single type of income, based on the categories of income reported on Form 1042-S (for example, interest or dividends), that is not subject to withholding under chapter 4 but is subject to a single rate of withholding for chapter 3 purposes and is paid to foreign persons or, in the case of a zero-percent pool, U.S. exempt recipients not included in a separate pool of exempt recipients. See the instructions for the withholding statement of a QI, later.,\r\n 'w8imy___Chapter 4 withholding rate pool': The term chapter 4 withholding rate pool means a pool identified on a withholding statement (see the description for a withholding statement of a QI and an NQI, later) provided by an intermediary or flow-through entity with respect to a withholdable payment that is allocated to payees that are nonparticipating FFIs. The term chapter 4 withholding rate pool also includes a pool identified on an FFI withholding statement provided by a participating FFI or registered deemed-compliant FFI with respect to a withholdable payment that is allocated to a class of recalcitrant account holders subject to withholding under chapter 4 as described in Regulations section 1.1471- 4(d)(6)(i) (including a pool of account holders to which the escrow procedures for dormant accounts apply). Finally, a chapter 4 withholding rate pool also includes a pool of U.S. persons included in a U.S. payee pool described in Regulations section 1.6049-4(c)(4) provided by a participating FFI (including a reporting Model 2 FFI), a registered deemed-compliant FFI (including a reporting Model 1 FFI), or a QI.,\r\n 'w8imy___Chapter 4': Chapter 4 means chapter 4 of the Internal Revenue Code (Taxes to Enforce Reporting on Certain Foreign Accounts). Chapter 4 contains sections 1471 through 1474.,\r\n 'w8imy___Chapter 4 status': The term chapter 4 status means a person’s status as a U.S. person, specified U.S. person, foreign individual, participating FFI, deemed-compliant FFI, restricted distributor, exempt beneficial owner, nonparticipating FFI, territory financial institution, excepted NFFE, or passive NFFE. See Regulations section 1.1471-1(b) for the definitions of these terms.,\r\n 'w8imy___Disregarded entity': A business entity that has a single owner and is not a corporation under Regulations section 301.7701-2(b) is disregarded as an entity separate from its owner. A disregarded entity does not submit this Form W-8IMY to a withholding agent or FFI. Instead, the owner of such entity provides the appropriate documentation (for example, a Form W-8BEN-E if the owner is a foreign entity). See Regulations section 1.1446-1 and section 1.1471-3(a)(3) (v), respectively. However, if a disregarded entity receiving a withholdable payment is an FFI outside the single owner’s country of organization or has its own GIIN, the owner will be required to complete Part II of Form W-8IMY to document the chapter 4 status of the disregarded entity receiving the payment except as otherwise provided in these instructions.
     Certain entities that are disregarded for U.S. tax purposes may nevertheless be treated as a treaty resident for purposes of claiming treaty benefits under an applicable tax treaty (see the definition of hybrid entity, later). See Form W-8BEN-E and the accompanying instructions for more information about a hybrid entity claiming treaty benefits on its own behalf as a resident of a treaty jurisdiction.
    ,\r\n 'w8imy___Foreign person': A foreign person includes a nonresident alien individual, a foreign corporation, a foreign partnership, a foreign trust, a foreign estate, and any other person that is not a U.S. person. It also includes a foreign branch or office of a U.S. financial institution or U.S. clearing organization if the foreign branch is a qualified intermediary. Generally, a payment to a U.S. branch of a foreign person is a payment to a foreign person.,\r\n 'w8imy___Flow-through entity': A flow-through entity is a foreign partnership (other than a withholding foreign partnership), a foreign simple or foreign grantor trust (other than a withholding foreign trust), or, for payments for which a reduced rate of withholding is claimed under an income tax treaty, any entity to the extent the entity is considered to be fiscally transparent (see above) with respect to the payment by an interest holder’s jurisdiction.,\r\n 'w8imy___Hybrid entity': 'A hybrid entity is any person (other than an individual) that is treated as fiscally transparent (rather than as a beneficial owner) for purposes of declaring status under the Code but is not treated as fiscally transparent by a country with which the United States has an income tax treaty. Hybrid entity status is relevant for claiming treaty benefits for purposes of chapter 3. A hybrid entity, may, however, be considered the payee for purposes of chapter 4 (see Regulations section 1.1471-3(a) defining who is a payee of a withholdable payment). See the special instructions for hybrid entities, later, and Regulations section 1.1471-3(d) for the documentation requirements with respect to entities receiving withholdable payments.',\r\n 'w8imy___A Model 1 IGA': means an agreement between the United States or the Treasury Department and a foreign government or one or more agencies to implement FATCA through reporting by FFIs to such foreign government or agency thereof, followed by automatic exchange of the reported information with the IRS. An FFI in a Model 1 IGA jurisdiction that performs account reporting to the jurisdiction’s government is referred to as a reporting Model 1 FFI.,\r\n 'w8imy___A Model 2 IGA': means an agreement or arrangement between the U.S. or the Treasury Department and a foreign government or one or more agencies to implement FATCA through reporting by FFIs directly to the IRS in accordance with the requirements of an FFI agreement, supplemented by the exchange of information between such foreign government or agency thereof and the IRS. An FFI in a Model 2 IGA jurisdiction that registered with the IRS to obtain a GIIN and agreed to comply with the terms of an FFI agreement is treated as a participating FFI, but may be referred to as a reporting Model 2 FFI. The term reporting IGA FFI refers to both reporting Model 1 FFIs, and reporting Model 2 FFIs.,\r\n 'w8imy___Intermediary ': An intermediary is any person that acts as a custodian, broker, nominee, or otherwise as an agent for another person, regardless of whether that other person is the beneficial owner of the amount paid, a flow-through entity, or another intermediary.
    Qualified intermediary (QI). A QI is a person that is a party to a withholding agreement with the IRS (described in Regulations section 1.1441-1(e)(5)(iii)) and is:
    • A foreign financial institution (other than a U.S. branch of an FFI) that is a participating FFI, registered deemed-compliant FFI (including an FFI treated as a registered deemed-compliant FFI under an applicable Model 2 IGA), or FFI treated as a deemed-compliant FFI under an applicable Model 1 IGA subject to due diligence and reporting requirements similar to those applicable to a registered deemed-compliant FFI under Regulations section 1.1471-5(f)(1), including the requirement to register with the IRS;
    • An exempt beneficial owner that is a central bank of issue that meets the requirements of and agrees to be treated as a participating FFI (including a reporting Model 2 FFI) or a registered deemed-compliant FFI (including a reporting Model 1 FFI) with respect to any account that it maintains and that is held in connection with a commercial financial activity described in Regulations section 1.1471-6(h) and for which it receives a withholdable payment;
    • An eligible entity (as defined in Regulations section 1.1441-1(e)(6)(ii), without regard to the requirement that the eligible entity be a qualified intermediary);
    • A foreign branch or office of a U.S. financial institution or a foreign branch or office of a U.S. clearing organization;
    • A foreign corporation for purposes of presenting claims of benefits under an income tax treaty on behalf of its shareholders to the extent permitted to act as such by the IRS; or
    • A foreign entity not described above that is acting as an intermediary for either withholdable payments or reportable amounts that the IRS accepts as a qualified intermediary.
    Qualified derivatives dealer (QDD). A QDD is a qualified intermediary that is an eligible entity that agrees to meet the requirements of Regulations section 1.1441-1(e)(6) (i) and the QI agreement. An eligible entity is defined in Regulations section 1.1441-1(e)(6)(ii).
      A QDD, among other requirements provided for in the QI agreement that will be effective on or after January 1, 2017, and Regulations section 1.1441-1(e)(6), must (1) document itself to a withholding agent with a Form W-8IMY indicating that it is acting as a QDD for the payments with respect to potential section 871(m) transactions and underlying securities it receives in a principal capacity and (2) indicate to the withholding agent that it will assume primary chapters 3 and 4 withholding responsibility and primary Form 1099 reporting and backup withholding responsibility for the payments it makes and receives as a QDD (as provided in the QI agreement).
    Qualified securities lender (QSL). Notice 2010-46, 2010-24 I.R.B. 757, provided rules for QSLs acting with respect to payments of substitute dividends. A QSL should certify to its QSL status in Part III of this form, even if it is not a qualified intermediary. The QSL regime is being replaced by the QDD regime once the QDD regime is implemented.
    Nonqualified intermediary. A nonqualified intermediary is any intermediary that is not a U.S. person and that is not a qualified intermediary.
    ,\r\n 'w8imy___Nonwithholding foreign': partnership, simple trust, or grantor trust. A nonwithholding foreign partnership is any foreign partnership other than a withholding foreign partnership. A nonwithholding foreign simple trust is any foreign simple trust that is not a withholding foreign trust. A nonwithholding foreign grantor trust is any foreign grantor trust that is not a withholding foreign trust.,\r\n 'w8imy___Reverse hybrid entity': 'A reverse hybrid entity is any person (other than an individual) that is not fiscally transparent under U.S. tax law principles but that is fiscally transparent under the laws of a jurisdiction with which the United States has an income tax treaty.',\r\n 'w8imy___Reportable amount': Solely for purposes of the statements required to be attached to Form W-8IMY, a reportable amount is an amount subject to withholding under chapter 3, U.S. source deposit interest (including original issue discount), and U.S. source interest or original issue discount on the redemption of short-term obligations. It does not include payments on deposits with banks and other financial institutions that remain on deposit for 2 weeks or less or amounts received from the sale or exchange (other than a redemption) of a short-term obligation that is effected outside the United States. It also does not include amounts of original issue discount arising from a sale and repurchase transaction completed within a period of 2 weeks or less, or amounts described in Regulations section 1.6049-5(b)(7), (10), or (11) (relating to certain obligations issued in bearer form). See the instructions for Forms 1042-S and 1099 to determine whether these amounts are subject to information reporting.,\r\n 'w8imy___Territory financial institution': 'The term territory financial institution means a financial institution that is incorporated or organized under the laws of any U.S. territory. However, an investment entity that is not also a depository institution, custodial institution, or specified insurance company is not a territory financial institution. A territory financial institution acting as an intermediary or that is a flow-through entity may agree to be treated as a U.S. person under Regulations section 1.1441-1(b)(2)(iv)(A).',\r\n 'w8imy___Withholdable payment': The term withholdable payment means an amount subject to withholding for purposes of chapter 4 as described in Amounts subject to withholding. Also see Regulations section 1.1473-1(a) for the definition of withholdable payment.

    Amounts subject to withholding Generally, an amount subject to chapter 3 withholding is an amount from sources within the United States that is fixed or determinable annual or periodical (FDAP) income. FDAP income is all income included in gross income, including interest (as well as OID), dividends, rents, royalties, and compensation. Amounts subject to chapter 3 withholding do not include amounts that are not FDAP, such as most gains from the sale of property (including market discount and option premiums), as well as other specific items of income described in Regulations section 1.1441-2 (such as interest on bank deposits and short-term OID).
      Withholding under chapter 4 applies to payments of U.S. source FDAP income that are withholdable payments as defined in Regulations section 1.1473-1(a) to which an exception does not apply under chapter 4. The exemptions from withholding provided for under chapter 3 are not applicable when determining whether withholding applies under chapter 4. For exceptions applicable to the definition of a withholdable payment, see Regulations section 1.1473-1(a)(4) (exempting, for example, certain nonfinancial payments).
      For purposes of section 1446, the amount subject to withholding is the foreign partner’s share of the partnership’s effectively connected taxable income.
    ,\r\n 'w8imy___Withholding foreign partnership (WP) or withholding foreign trust (WT)': A WP or WT is a foreign partnership or a foreign simple or grantor trust that has entered into a withholding agreement with the IRS in which it agrees to assume primary withholding responsibility for purposes of chapter 4 and under sections 1441 and 1442 for all payments that are made to its partners, beneficiaries, or owners, except as otherwise provided in the withholding agreement.,\r\n 'w8imy___Withholding statement': A withholding statement provides an allocation (by income type) to each payee (or withholding rate pool, if applicable, or other pool of payees to the extent permitted under the chapter 4 regulations) of each payment an intermediary or flow-through entity receives. The withholding statement forms an integral part of the withholding certificate, and the penalties of perjury statement provided on the withholding certificate shall apply to the withholding statement. The withholding statement may be provided in any manner the intermediary or the flow-through entity and the withholding agent mutually agree, including electronically if certain safeguards concerning electronic transmission are met. A withholding statement also provides information required for purposes of chapter 4 if the intermediary or flow-through entity is receiving a withholdable payment, in which case the entity must provide an FFI withholding statement, chapter 4 withholding statement, or exempt beneficial owner withholding statement (as applicable). See Regulations section 1.1471-3(c)(3)(iii)(B).,\r\n 'w8imy___QDD Withholding statement': Similar to a QI withholding statement, a QDD withholding statement becomes an integral part of a QDD's Form W-8IMY. In addition to the information required on a withholding statement (if any) you provide in your QI capacity, generally a QDD withholding statement should (as applicable) for each QDD (identifying the QDD by name used for the QI application):
    • Designate the accounts for which the QDD is receiving payments with respect to potential section 871(m) transactions or underlying securities as a QDD;
    • Designate the accounts for which the QDD is receiving payments with respect to potential section 871(m) transactions as a QDD (and that are not underlying securities) for which withholding is not required;
    • Designate the accounts for which the QDD is receiving payments with respect to underlying securities as a QDD for which withholding is required; and
    • Identify the home office or branch that is treated as the owner for U.S. income tax purposes. If you are acting as a QDD that meets the conditions described below, you must provide on line 9b, your foreign taxpayer identification number (FTIN) issued by the jurisdiction in which you are tax resident identified on line 6, unless you were not issued an FTIN (including if the jurisdiction does not issue FTINs). If you do not provide your FTIN, you must provide on your QDD withholding statement a reasonable explanation of why you have not been issued an FTIN. For this purpose, such an explanation includes a statement that you are not legally required to obtain an FTIN in your jurisdiction of tax residence. Do not write “not applicable.” If you are acting as a QDD, you are required to provide your FTIN or an explanation of why you have not been issued an FTIN if:
    • You are providing this Form W-8IMY to document yourself as an account holder (as defined in Regulations section 1.1471-5(a)(3)) with respect to a financial account (as defined in Regulations section 1.1471-5(b)) that you hold at a U.S. office of a financial institution (including a U.S. branch of an FFI);
    • You receive U.S. source income reportable on a Form 1042-S associated with this form; and
    • This form is treated as a beneficial owner withholding certificate under Regulations section 1.1441-1(e)(2)(i).
      If you are a QDD using its Form W-8IMY to make a claim for treaty benefits, see Claim of treaty benefits or beneficial ownership, earlier, for the information required for the claim (including for a hybrid entity that is a disregarded entity).
    ,\r\n 'w8imy__Qualified securities lender': Notice 2010-46, provided rules for QSLs acting with respect to payments of substitute dividends. A QSL that is a QI should certify to its QSL status in Part III of this form, regardless of whether it is acting as a principal or an agent with respect to its QSL transactions. A QSL that is not a QI, including a QSL acting as a principal with respect to QSL transactions, should certify its QSL status in Part IV of this form. Notwithstanding the foregoing, a QDD may not act as a QSL for potential section 871(m) transactions, except with respect to a payment on a securities lending or sale-repurchase transaction for which the QI has determined that it is acting as an intermediary for the payment. While Notice 2010-46 was obsoleted, Notice 2020-2 permits withholding agents to apply the transition rules described in Notice 2010-46 for payments made in 2021 and 2022.,\r\n 'w8imy___Alternative withholding statement': If a withholding agent agrees, instead of providing a withholding statement that contains all of the information described previously, you may provide an alternative withholding statement for a payment of a reportable amount. You may only use an alternative withholding statement if you are providing the withholding agent with withholding certificates (and not documentary evidence) from the beneficial owners of the payment. The alternative withholding statement is not required to include information that is already on the withholding certificates (including name, address, TIN, chapter 4 status, and GIIN), and you are not required to provide the rate of withholding applicable to each beneficial owner, so long as the withholding agent can determine the appropriate rate based on the withholding certificates. Just as for a nonqualified intermediary withholding statement, the alternative withholding statement must provide information for allocating the payment to each payee and must include any other information the withholding agent needs to fulfill its withholding and reporting obligations.,\r\n 'w8imy___Example 5': A QI that is foreign corporation and a Participating FFI does not assume primary withholding and reporting responsibility for a payment of $100 from a U.S. broker that is an amount realized from the sale of a PTP interest. The QI also does not assume primary Form 1099 reporting and backup withholding responsibility for any of its accounts. The QI holds the PTP interest in an account with a U.S. broker and does not act as a disclosing QI for the payment of the amount realized. The QI determines that the amount realized from the sale is allocable to the following transferors of the interest in the PTP on whose behalf the QI held the interest:
    • $20 each on behalf of A and B, two nonresident alien individuals who are account holders of the QI;
    • $10 each on behalf of C and D, two U.S. individual account holders of the QI that the QI reports as U.S. accounts pursuant to its chapter 4 reporting obligations as a participating FFI;
    • $20 on behalf of F, a foreign partnership and account holder of the QI that has provided the certification and other information specified in Regulations section 1.1446(f)-4(c)(2)(ii)(C) for QI to determine a modified amount realized of $10 (one-half of the $20 is allocable to partners of F who are nonresident alien individuals and one-half allocable to a U.S. partner of F (USP)), and QI does not report F’s account as a U.S. account for purposes of chapter 4 reporting;
    • $10 on behalf of foreign grantor trust H, an account holder of QI that has provided to QI the documentation from which QI can associate the amount realized with G, a nonresident alien that is the sole grantor of the trust;
    • $10, on behalf of N, an account holder of the QI that is a nonqualified intermediary.
      As QI is not acting as a disclosing QI for this payment, QI may provide to its U.S. broker a withholding statement that allocates the amount realized to chapter 3 withholding rate pools, excluding amounts allocable to a U.S. partner or to a chapter 4 reporting pool of U.S. payees. QI must report on the withholding statement the payment allocated as follows:
    • To a chapter 3 withholding rate pool at a 10% rate - $70 (for the $40 allocable to A and B, $10 allocable to F’s nonresident alien partners; $10 allocable to G, and $10 allocable to N);
    • To a chapter 4 withholding rate pool of U.S. payees - $20 (for the total amount allocable to C and D); and
    • To USP, for the $10 of the $20 of amount realized by F that is allocable to USP.
      The QI will complete Form W-8IMY and check the box on line 14. As QI does not assume primary withholding responsibility under section 1446(f) for the amount realized, QI must not check the box on line 15b but should check the boxes on lines 15g and 15h because it has not assumed Form 1099 reporting and backup withholding responsibility. QI does not account for any of the account holders of N on its withholding statement as withholding applies to N at the 10% rate on the payment regardless of the statuses of N’s account holders receiving the payment. See Regulations section 1.1446(f)-4(a)(2) for this withholding requirement. See Withholding statement for amount realized or PTP distribution in Part IV, later, however, for when N (as an NQI) would be permitted to provide to QI allocation information and beneficial owner withholding certificates for the account holders of N receiving the amount realized from the sale. With respect to grantor trust H, the withholding is determined with respect to grantor G, rather than H, as G is the transferor of the PTP interest. With respect to foreign partnership F, the withholding statement includes the $10 allocable to F’s foreign partners in a chapter 3 withholding rate pool at the 10% rate as these partners did not claim any exception to withholding based on an income tax treaty. With respect to USP, QI discloses the identity of USP on the withholding statement because it does not assume primary Form 1099 reporting and backup withholding responsibility and does not report the account of USP for purposes of QI’s chapter 4 requirements as a participating FFI. QI must also provide the documentation permitted for section 1446(f) purposes to support USP’s non-foreign status. With respect to C and D, however, as QI reports their accounts under QI’s requirements as a participating FFI, QI may report the amount realized allocable to C and D in a chapter 4 withholding rate pool of U.S. payees.
    ,\r\n 'w8imy___Example 6': The facts are the same as Example 5, except the QI acts as a disclosing QI for the payment of the amount realized. Unlike Example 5, because the QI is a disclosing QI, it may not allocate any portion of the payment to a chapter 3 withholding rate pool on the withholding statement provided to the U.S. broker. QI must instead allocate the payment of the amount realized to each account holder that is a transferor of the PTP interest, excluding any transferors that are includible in a chapter 4 withholding rate pool of U.S. payees. See Regulations section 1.1446(f)-4(a)(7)(iii). Thus, with respect to QI’s account holders that are foreign transferors, QI must allocate $20 of the amount realized each to A and B and must associate a valid Form W-8BEN for each of them with the withholding statement. With respect to foreign partnership F, QI must identify F as the transferor of the interest (with a valid Form W-8IMY from F completed in accordance with Part VIII , later), must indicate on its withholding statement that QI has determined a modified amount realized of $10 from the $20 of the amount realized allocable to F, and must allocate the amount realized between each of the partners of F based on the certification and withholding statement provided by F for this payment in accordance with Regulations section 1.1446(f)-4(c)(2)(ii)(C). QI must include on the withholding statement the amount allocable to USP for the reasons noted in Example 5, earlier, (with the documentation permitted to support USP’s non-foreign status) that F should have provided to QI with its withholding statement. With respect to foreign grantor trust H, QI must allocate the $10 received on behalf of H to G (as G is the transferor), and must associate with the withholding statement a valid Form W-8IMY from H (completed in accordance with Part VIII, later), a valid Form W-8BEN from G, and information provided by H regarding the amount realized allocable to G. With respect to nonqualified intermediary N, QI must allocate the $10 received on behalf of N to N and associate this amount with the withholding statement and a valid Form W-8IMY from N. See Withholding statement for amount realized or PTP distribution in Part IV, later, however, for when N would also be permitted to provide to QI allocation information and beneficial owner withholding certificates for the account holders of N receiving the amount realized from the sale. As indicated in Example 5, earlier, QI may include C and D in a chapter 4 withholding rate pool of U.S. payees with respect to the amount allocable to them (an allowance that applies even when a QI acts as a disclosing QI for an amount realized).,\r\n 'w8eci___Account holder': An account holder is generally the person listed or identified as the holder or owner of a financial account. For example, if a partnership is listed as the holder or owner of a financial account, then the partnership is the account holder, rather than the partners of the partnership (subject to some exceptions). However, an account that is held by a single-member disregarded entity is treated as held by the entity's single owner.,\r\n 'w8eci___Beneficial owner': For payments other than those for which a reduced rate of withholding is claimed under an income tax treaty, the beneficial owner of income is generally the person who is required under U.S. tax principles to include the income in gross income on a tax return. A person is not a beneficial owner of income, however, to the extent that person is receiving the income as a nominee, agent, or custodian, or to the extent the person is a conduit whose participation in a transaction is disregarded. In the case of amounts paid that do not constitute income, beneficial ownership is determined as if the payment were income.
     Foreign partnerships, foreign simple trusts, and foreign grantor trusts are not the beneficial owners of income paid to the partnership or trust. The beneficial owners of income paid to a foreign partnership are generally the partners in the partnership, provided that the partner is not itself a partnership, foreign simple or grantor trust, nominee or other agent. The beneficial owners of income paid to a foreign simple trust (that is, a foreign trust that is described in section 651(a)) are generally the beneficiaries of the trust, if the beneficiary is not a foreign partnership, foreign simple or grantor trust, nominee or other agent. The beneficial owners of a foreign grantor trust (that is, a foreign trust to the extent that all or a portion of the income of the trust is treated as owned by the grantor or another person under sections 671 through 679) are the persons treated as the owners of the trust. The beneficial owners of income paid to a foreign complex trust (that is, a foreign trust that is not a foreign simple trust or foreign grantor trust) is the trust itself.
     Generally, these beneficial owner rules apply for purposes of sections 1441, 1442, and 1446, except that section 1446 requires a foreign simple trust to provide a Form W-8 on its own behalf rather than on behalf of the beneficiary of such trust.
     The beneficial owner of income paid to a foreign estate is the estate itself.
     A payment to a U.S. partnership, U.S. trust, or U.S. estate is treated as a payment to a U.S. payee. A U.S. partnership, trust, or estate should provide the withholding agent with a Form W-9. However, for purposes of section 1446, a U.S. grantor trust shall not provide the withholding agent a Form W-9. Instead, the grantor or other owner must provide Form W-8 or Form W-9 as appropriate.
    ,\r\n 'w8eci___Disregarded entity': A business entity that has a single owner and is not a corporation under Regulations section 301.7701-2(b) is disregarded as an entity separate from its owner. A disregarded entity does not submit Form W-8ECI to a partnership for purposes of section 1446. Instead, the owner of such entity provides the appropriate documentation. See Regulations section 1.1446-1.,\r\n 'w8eci___Effectively connected income': Generally, when a foreign person engages in a trade or business in the United States, all income from sources in the United States other than fixed or determinable annual or periodical (FDAP) income (for example, interest, dividends, rents, and certain similar amounts) is considered income effectively connected with a U.S. trade or business. FDAP income may or may not be effectively connected with a U.S. trade or business. Factors to be considered to determine whether FDAP income and similar amounts from U.S. sources are effectively connected with a U.S. trade or business include whether:
    • The income is from assets used in, or held for use in, the conduct of that trade or business, or
    • The activities of that trade or business were a material factor in the realization of the income.

      There are special rules for determining whether income from securities is effectively connected with the active conduct of a U.S. banking, financing, or similar business. See section 864(c)(4)(B)(ii) and Regulations section 1.864-4(c)(5)(ii) for more information. Effectively connected income, after allowable deductions, is taxed at graduated rates applicable to U.S. persons and resident aliens, rather than at the 30% rate. You must report this income on your annual U.S. income tax or information return.
      A partnership that has effectively connected income allocable to foreign partners is generally required to withhold tax under section 1446. The withholding tax rate on a partner's share of effectively connected income is 35% for corporate partners and 39.6% for all other taxable partners. In certain circumstances the partnership may withhold tax at the highest applicable rate to a particular type of income (for example, long-term capital gain allocated to a noncorporate partner). Any amount withheld under section 1446 on your behalf, and reflected on Form 8805 issued by the partnership to you may be credited on your U.S. income tax return.
    ,\r\n 'w8eci___Foreign person': A foreign person includes a nonresident alien individual, a foreign corporation, a foreign partnership, a foreign trust, a foreign estate, and any other person that is not a U.S. person.,\r\n 'w8eci___Nonresident alien individual': Any individual who is not a citizen or resident alien of the United States is a nonresident alien individual. An alien individual meeting either the “green card test” or the “substantial presence test” for the calendar year is a resident alien. Any person not meeting either test is a nonresident alien individual. Additionally, an alien individual who is a resident of a foreign country under the residence article of an income tax treaty, or an alien individual who is a bona fide resident of Puerto Rico, Guam, the Commonwealth of the Northern Mariana Islands, the U.S. Virgin Islands, or American Samoa is a nonresident alien individual.,\r\n 'w8eci___Withholding agent': ny person, U.S. or foreign, that has control, receipt, custody, disposal, or payment of U.S. source FDAP income subject to chapter 3 withholding is a withholding agent. For purposes of chapter 4, any person, U.S. or foreign, that has control, receipt, custody, disposal, or payment of a withholdable payment is a withholding agent. The withholding agent may be an individual, corporation, partnership, trust, association, or any other entity including (but not limited to) any foreign intermediary, foreign partnership, and U.S. branches treated as U.S. person. Generally, the person who pays (or causes to be paid) an amount subject to withholding to the foreign person (or to its agent) must withhold.For purposes of section 1446, the withholding agent is the partnership conducting the trade or business in the United States. For a publicly traded partnership, the withholding agent may be the partnership, a nominee holding an interest on behalf of a foreign person, or both. ee Regulations sections 1.1446-1 through 1.1446-6.,\r\n 'w8eci___Withholdable payment': A withholdable payment means any payment of U.S. source FDAP income, subject to certain exemptions described in Regulations sections 1.1471-2(b) and 1.1473-1(a). However, no exceptions to withholding on U.S. source FDAP income for purposes other than chapter 4 apply when determining whether a payment is a withholdable payment. For example, an exclusion from an amount subject to withholding under Regulations section 1.1441-2(a) does not apply for purposes of determining whether a payment constitutes a withholdable payment. Underchapter 4, a payment of effectively connected income is not a withholdable payment,\r\n 'w8eci___U.S. person': A U.S. person is defined in section 7701(a)(30) and includes an individual who is a citizen or resident of the United States, as well as domestic partnerships, corporations, trusts, and estates.,\r\n 'w8exp___Beneficial owner': For payments other than those for which a reduced rate of, or exemption from, withholding is claimed under an income tax treaty, the beneficial owner of income is generally the person who is required under U.S. tax principles to include the payment in gross income on a tax return. A person is not a beneficial owner of income, however, to the extent that person is receiving the income as a nominee, agent, or custodian, or to the extent the person is a conduit whose participation in a transaction is disregarded. In the case of amounts paid that do not constitute income, beneficial ownership is determined as if the payment were income.
      Foreign partnerships, foreign simple trusts, and foreign grantor trusts are not the beneficial owners of income paid to the partnership or trust. The beneficial owners of income paid to a foreign partnership are generally the partners in the partnership, provided that the partner is not itself a partnership, foreign simple or grantor trust, nominee or other agent. The beneficial owners of income paid to a foreign simple trust (that is, a foreign trust that is described in section 651(a)) are generally the beneficiaries of the trust, if the beneficiary is not a foreign partnership, foreign simple or grantor trust, nominee or other agent. The beneficial owners of income paid to a foreign grantor trust (that is, a foreign trust to the extent that all or a portion of the income of the trust is treated as owned by the grantor or another person under sections 671 through 679) are the persons treated as the owners of the trust. The beneficial owners of income paid to a foreign complex trust (that is, a foreign trust that is not a foreign simple trust or foreign grantor trust) is the trust itself.
     The beneficial owner of income paid to a foreign estate is the estate itself.
      These beneficial owner rules apply primarily for purposes of withholding under sections 1441 and 1442. The rules also generally apply for purposes of section 1446, with a few exceptions. See Regulations section 1.1446-1 for instances where the documentation requirements of sections 1441 and 1442 differ from section 1446.
    ,\r\n 'w8exp___Chapter 3': Chapter 3 means Chapter 3 of the Internal Revenue Code (Withholding of Tax on Nonresident Aliens and Foreign Corporations). Chapter 3 contains sections 1441 through 1464.,\r\n 'w8exp___Chapter 4': Chapter 4 means Chapter 4 of the Internal Revenue Code (Taxes to Enforce Reporting on Certain Foreign Accounts). Chapter 4 contains sections 1471 through 1474.,\r\n 'w8exp___Commercial activities': For purposes of chapter 4, commercial activities are financial activities of a type engaged in by an insurance company, custodial institution, or depository institution (including the act of accepting deposits). An exempt beneficial owner will not be considered exempt for chapter 4 purposes with respect to payments derived from an obligation held in connection with a commercial financial activity. See Regulations section 1.1471-6(h), including limitations on the scope of a commercial financial activity. For purposes of chapter 3, commercial activities are described in Temporary Regulations section 1.892-4T.,\r\n 'w8exp___Controlled commercial entity': A controlled commercial entity is an entity engaged in commercial activities described in Temporary Regulations section 1.892-4T (whether within or outside the United States) if the foreign government holds:
    • Any interest in the entity that is 50% or more of the total of all interests in the entity, or
    • A sufficient interest or any other interest in the entity which provides the foreign government with effective practical control of the entity.

     An entity includes a corporation, a partnership, a trust (including a pension trust) and an estate. A partnership's commercial activities are attributable to its general and limited partners for purposes of determining whether the partner is a controlled commercial entity for purposes of section 892. The partnership's activities will result in the partnership having to withhold tax under section 1446 on commercial income that is the effectively connected taxable income allocable to a foreign government partner.
    Note. A foreign central bank of issue will be treated as a controlled commercial entity only if it engages in commercial activities within the United States.
    ,\r\n 'w8exp___Chapter 4 status': The term chapter 4 status means a person’s status as a U.S. person, specified U.S. person, foreign individual, participating FFI, deemed-compliant FFI, restricted distributor, exempt beneficial owner, nonparticipating FFI, territory financial institution, excepted NFFE, or passive NFFE. See Regulations section 1.1471-1(b) for the definitions of these terms.,\r\n 'w8exp___Deemed-compliant FFI': Under section 1471(b)(2), certain FFIs are deemed to comply with the regulations under chapter 4 without the need to enter into an FFI agreement with the IRS. However, certain deemed-compliant FFIs are required to register with the IRS and obtain a Global Intermediary Identification Number (GIIN). These FFIs are referred to as registered deemed-compliant FFIs. See Regulations section 1.1471-5(f).,\r\n 'w8exp___Exempt beneficial owner': An exempt beneficial owner means a person that is described in Regulations section 1.1471-6 and includes a foreign government, a political subdivision of a foreign government, a wholly owned instrumentality or agency of a foreign government or governments, an international organization, a wholly owned agency or instrumentality of an international organization, a foreign central bank of issue, a government of a U.S. possession, certain retirement funds, and certain entities wholly owned by one or more exempt beneficial owners. In addition, an exempt beneficial owner includes any person treated as an exempt beneficial owner under an applicable Model 1 IGA or Model 2 IGA.,\r\n 'w8exp___Financial institution': A financial institution generally means an entity that is a depository institution, custodial institution, investment entity, or an insurance company (or holding company of an insurance company) that issues cash value insurance or annuity contracts. See Regulations section 1.1471-5(e).,\r\n 'w8exp___Foreign central bank of issue': A foreign central bank of issue is a bank that is by law or government sanction the principal authority, other than the government itself, to issue instruments intended to circulate as currency. Such a bank is generally the custodian of the banking reserves of the country under whose law it is organized. The Bank Page of International Settlements is treated as though it were a foreign central bank of issue.
     A foreign central bank of issue must provide Form W-8EXP to establish eligibility for exemption from withholding for payments exempt from tax under either section 892 or section 895.
    ,\r\n 'w8exp___Foreign person': A foreign person includes a nonresident alien individual, foreign corporation, foreign partnership, foreign trust, foreign estate, foreign government, international organization, foreign central bank of issue, foreign tax-exempt organization, foreign private foundation, or government of a U.S. possession, and any other person that is not a U.S. person. It also includes a foreign branch or office of a U.S. financial institution or U.S. clearing organization if the foreign branch is a qualified intermediary. Generally, a payment to a U.S. branch of a foreign person is a payment to a foreign person.,\r\n 'w8exp___Foreign government': For chapter 3 purposes, a foreign government includes only the integral parts or controlled entities of a foreign sovereign as defined in Temporary Regulations section 1.892-2T. Similar definitions apply for chapter 4 purposes under Regulations section 1.1471-6(b).
     An integral part of a foreign sovereign, in general, is any person, body of persons, organization, agency, bureau, fund, instrumentality, or other body, however designated, that constitutes a governing authority of a foreign country. The net earnings of the governing authority must be credited to its own account or to other accounts of the foreign sovereign, with no portion benefiting any private person.
     A controlled entity of a foreign sovereign is an entity that is separate in form from the foreign sovereign or otherwise constitutes a separate juridical entity only if:
    • It is wholly owned and controlled by the foreign sovereign directly or indirectly through one or more controlled entities.
    • It is organized under the laws of the foreign sovereign by which it is owned.
    • Its net earnings are credited to its own account or to other accounts of the foreign sovereign, with no portion of its income benefiting any private person.
    • Its assets vest in the foreign sovereign upon dissolution.
     A controlled entity of a foreign sovereign also includes a pension trust defined in Temporary Regulations section 1.892-2T(c) and may include a foreign central bank of issue to the extent that it is wholly owned by a foreign sovereign.
     A foreign government must provide Form W-8EXP to establish eligibility for exemption from withholding for payments exempt from tax under section 892 or for purposes of establishing its status as an exempt beneficial owner.
    ,\r\n 'w8exp___Model 1 IGA': A Model 1 IGA means an agreement between the United States or the Treasury Department and a foreign government or one or more agencies to implement FATCA through reporting by FFIs to such foreign government or agency thereof, followed by automatic exchange of the reported information with the IRS. An FFI in a Model 1 IGA jurisdiction that performs account reporting to the jurisdiction’s government is referred to as a reporting Model 1 FFI.,\r\n 'w8exp___Model 2 IGA': A Model 2 IGA means an agreement or arrangement between the U.S. or the Treasury Department and a foreign government or one or more agencies to implement FATCA through reporting by FFIs directly to the IRS in accordance with the requirements of an FFI agreement, supplemented by the exchange of information between such foreign government or agency thereof and the IRS. An FFI in a Model 2 IGA jurisdiction that has entered into an FFI agreement is a participating FFI, but may be referred to as a reporting Model 2 FFI.,\r\n 'w8exp___International organization': For purposes of chapter 3, an international organization is any public international organization entitled to enjoy privileges, exemptions, and immunities as an international organization under the International Organizations Immunities Act (22 U.S.C. 288-288(f)). In general, to qualify as an international organization, the United States must participate in the organization pursuant to a treaty or under the authority of an Act of Congress authorizing such participation.
     Any organization that qualifies as an international organization under chapter 3 also qualifies as an international organization under chapter 4.
     For purposes of chapter 4, an international organization also includes any intergovernmental or supranational organization that is comprised primarily of foreign governments, that is recognized as an intergovernmental or supranational organization under a foreign law similar to 22 U.S.C. 288-288(f) or that has in effect a headquarters agreement with a foreign government, and whose income does not inure to the benefit of private persons.
    ,\r\n 'w8exp___Participating FFI': A participating FFI is an FFI (including a reporting Model 2 FFI ) that has agreed to comply with the terms of an FFI agreement. The term participating FFI also includes a QI branch of a U.S. financial institution, unless such branch is a reporting Model 1 FFI.,\r\n 'w8exp___Specified U.S. person': A specified U.S. person is any U.S. person other than a person identified in Regulations section 1.1473-1(c).,\r\n 'w8exp___Substantial U.S. owner': A substantial U.S. owner (as described in Regulations section 1.1473-1(b)) means any specified U.S. person that:
    • Owns, directly or indirectly, more than 10 percent (by vote or value) of the stock of any foreign corporation;
    • Owns, directly or indirectly, more than 10 percent of the profits interests or capital interests in a foreign partnership;
    • Is treated as an owner of any portion of a foreign trust under sections 671 through 679; or
    • Holds, directly or indirectly, more than a 10 percent beneficial interest in a trust.
    ,\r\n 'w8exp___Territory financial institution': The term territory financial institution means a financial institution that is incorporated or organized under the laws of any U.S. territory. However, an investment entity that is not also a depository institution, custodial institution, or specified insurance company is not a territory financial institution.,\r\n 'w8exp___Withholdable payment': The term withholdable payment means an amount subject to withholding for purposes of chapter 4 as described in “Amounts subject to withholding,” earlier. Also see Regulations section 1.1473-1(a) for the definition of withholdable payment.,\r\n 'w8exp___Withholding agent': Any person, U.S. or foreign, that has control, receipt, custody, disposal, or payment of U.S. source FDAP income subject to chapter 3 or 4 withholding is a withholding agent. The withholding agent may be an individual, corporation, partnership, trust, association, or any other entity, including (but not limited to) any foreign intermediary, foreign partnership, and U.S. branches of certain foreign banks and insurance companies.,\r\n};\r\n\r\nconst InstructionDefinition = ({\r\n definition\r\n}) => {\r\n const split = definition.split('___');\r\n /* eslint prefer-destructuring: 0 */\r\n let string;\r\n if (split.length > 1) {\r\n string = split[1];\r\n } else {\r\n string = split[0];\r\n }\r\n return (\r\n \r\n \r\n Definition of\r\n \r\n { string }\r\n \r\n \r\n . \r\n { allDefinitions[definition] || 'No such definition' }\r\n \r\n );\r\n};\r\n\r\nInstructionDefinition.propTypes = {\r\n definition: PropTypes.string.isRequired\r\n};\r\n\r\nexport default InstructionDefinition;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport Modal from 'react-modal';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { hideAddFormResults } from 'actions';\r\n\r\nclass ModalWrapper extends Component {\r\n static propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ]),\r\n headerClose: PropTypes.bool,\r\n isOpen: PropTypes.bool,\r\n title: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node\r\n ]),\r\n subTitle: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node\r\n ]),\r\n dispatch: PropTypes.func.isRequired,\r\n onAfterOpen: PropTypes.func,\r\n onRequestClose: PropTypes.func,\r\n onCancel: PropTypes.func,\r\n onConfirm: PropTypes.func,\r\n shouldCloseOnOverlayClick: PropTypes.bool,\r\n showFooter: PropTypes.bool,\r\n showCancel: PropTypes.bool,\r\n disableConfirm: PropTypes.func,\r\n btnConfirmTitle: PropTypes.string,\r\n btnConfirmClass: PropTypes.string,\r\n btnCancelTitle: PropTypes.string,\r\n btnCancelClass: PropTypes.string,\r\n modalSize: PropTypes.string,\r\n formId: PropTypes.string,\r\n addingFormResults: PropTypes.shape({\r\n error: PropTypes.shape({\r\n code: PropTypes.number,\r\n message: PropTypes.string,\r\n }),\r\n success: PropTypes.bool,\r\n files: PropTypes.shape()\r\n }),\r\n useDummySubmit: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n children: null,\r\n headerClose: true,\r\n isOpen: false,\r\n title: 'Modal title',\r\n subTitle: null,\r\n onAfterOpen: null,\r\n onRequestClose: null,\r\n onConfirm: () => {},\r\n onCancel: () => {},\r\n shouldCloseOnOverlayClick: true,\r\n showFooter: true,\r\n showCancel: true,\r\n disableConfirm: () => false,\r\n btnConfirmTitle: 'Submit',\r\n btnConfirmClass: 'btn-primary',\r\n btnCancelTitle: 'Cancel',\r\n btnCancelClass: '',\r\n modalSize: '',\r\n formId: '',\r\n addingFormResults: null,\r\n useDummySubmit: false\r\n };\r\n\r\n hideError() {\r\n const { dispatch } = this.props;\r\n dispatch(hideAddFormResults());\r\n }\r\n\r\n render() {\r\n const {\r\n isOpen,\r\n onAfterOpen,\r\n onRequestClose,\r\n modalSize,\r\n formId,\r\n shouldCloseOnOverlayClick,\r\n headerClose,\r\n onConfirm,\r\n onCancel,\r\n title,\r\n subTitle,\r\n children,\r\n showFooter,\r\n showCancel,\r\n disableConfirm,\r\n btnConfirmClass,\r\n btnConfirmTitle,\r\n btnCancelClass,\r\n btnCancelTitle,\r\n addingFormResults,\r\n useDummySubmit\r\n } = this.props;\r\n /* eslint-disable react/button-has-type */\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n { headerClose &&
    \r\n
    \r\n
    \r\n { children }\r\n
    \r\n
    \r\n { showFooter &&
    \r\n { addingFormResults && !addingFormResults.success && addingFormResults.error &&
    \r\n
    }\r\n { showCancel && onCancel() }\r\n >{ btnCancelTitle } }\r\n {\r\n if ((useDummySubmit || formId === 'uploadingPdfForm' || formId === 'uploadingPdfFormW8imy' || formId === 'pwdChgForm') && document.getElementById('dummy-add-form-btn') != null) {\r\n document.getElementById('dummy-add-form-btn').click(); e.preventDefault();\r\n } else { onConfirm(e); }\r\n } }\r\n disabled={ disableConfirm() }\r\n >\r\n { btnConfirmTitle }\r\n \r\n
    }\r\n
    \r\n \r\n );\r\n /* eslint-enable react/button-has-type */\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapDispatchToProps\r\n)(ModalWrapper);\r\n","const logglyConfig = require('../loggly.json');\r\n\r\nconst env = process.env.NODE_ENV;\r\nconst apiPort = 44376;\r\nconst urlParts = window.location.hostname.split('.');\r\nconst baseSiteUrl = env !== 'development' && urlParts != null && urlParts.length > 2\r\n ? `${ window.location.protocol }//${ urlParts.shift() }-api.${ urlParts.join('.') }`\r\n : 'http://localhost';\r\n\r\nconst EnvConfig = {\r\n env,\r\n baseApiUrl: env !== 'development'\r\n ? `${ baseSiteUrl }`\r\n : `https://localhost:${ apiPort }`,\r\n baseSiteUrl: env !== 'development'\r\n ? baseSiteUrl\r\n : `${ baseSiteUrl }:8080`,\r\n tokenName: 't_0',\r\n optionsName: 't_a',\r\n firstTokenName: 't_b',\r\n apiEndpoints: {\r\n config: '/config',\r\n token: '/token',\r\n forms: '/forms',\r\n account: '/accounts',\r\n customer: '/customers',\r\n details: '/details',\r\n validation: '/validation',\r\n reporting: '/reporting',\r\n reportingXls: '/validation-result/xls',\r\n customerExportXls: '/customer-export/xls',\r\n auditTrail: '/forms/email',\r\n formPdf: '/forms/pdf',\r\n viewPdf: '/forms/pdf/view',\r\n bulkDelete: '/bulk-delete',\r\n feoption: '/feoptions',\r\n allocationStmnts: '/witholding-statement',\r\n w8imystructure: '/w8imystructure',\r\n WhdCalculatedResults: '/whd-calculation',\r\n miDashboard: '/mi-dashboard',\r\n miDashboardXls: '/mi-dashboard/xls',\r\n workflow: '/workflow',\r\n withholding: '/withholding',\r\n cicalert: '/cic-alert',\r\n batches: '/batches',\r\n legalEntities: '/legal-entities',\r\n activityPermissions: '/activity-permissions',\r\n whdStatement: '/whdstatement',\r\n controllingPersons: '/accounts',\r\n tinMatchApi: '/tinmatch',\r\n staticData: '/staticdata'\r\n },\r\n showAnyError: env !== 'production',\r\n loggly: {\r\n enabled: env !== 'development',\r\n key: logglyConfig.key,\r\n src: logglyConfig.src\r\n }\r\n};\r\n\r\nexport default EnvConfig;\r\n","// eslint-disable-next-line import/prefer-default-export\r\nexport const SiteReadyState = {\r\n Unknown: 'Unknown',\r\n GettingState: 'GettingState',\r\n Ready: 'Ready',\r\n NoClients: 'NoClients',\r\n Down: 'Down',\r\n Unlicensed: 'Unlicensed'\r\n};\r\n\r\nexport const AuthMode = {\r\n Manual: 'Manual',\r\n SSO: 'SSO',\r\n Both: 'Both'\r\n};\r\n\r\nexport const AuthState = {\r\n Unknown: 'Unknown',\r\n Requesting: 'Requesting',\r\n Known: 'Known',\r\n Unauthorised: 'Unauthorised',\r\n LoggedOut: 'LoggedOut'\r\n};\r\n","const PreloadBrands = ['hsbc'];\r\nexport default PreloadBrands;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nconst LoadingWrapper = ({ children, loaded, message }) => {\r\n if (!loaded) {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { message != null && message !== '' &&
    { message }
    }\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n return (\r\n
    \r\n { children }\r\n
    \r\n );\r\n};\r\n\r\nLoadingWrapper.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ]),\r\n loaded: PropTypes.bool.isRequired,\r\n message: PropTypes.string\r\n};\r\n\r\nLoadingWrapper.defaultProps = {\r\n children: null,\r\n message: null\r\n};\r\n\r\nexport default LoadingWrapper;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\n\r\nconst SiteLoading = ({ title, caption, isLoaded, className }) => (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Powered by TAINA
    \r\n
    \r\n\r\n

    \r\n TAINA Fully Automated Tax Form Validator and Classifier\r\n

    \r\n \r\n

    { title !== '' &&
    { title }
    } { caption }

    \r\n
    \r\n
    \r\n);\r\n\r\nSiteLoading.propTypes = {\r\n isLoaded: PropTypes.bool,\r\n className: PropTypes.string,\r\n caption: PropTypes.string,\r\n title: PropTypes.string\r\n};\r\n\r\nSiteLoading.defaultProps = {\r\n isLoaded: false,\r\n className: null,\r\n title: '',\r\n caption: 'We are getting the system ready. Please wait...'\r\n};\r\n\r\nexport default SiteLoading;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport SiteLoading from 'components/SiteLoading';\r\nimport Logger from 'logger';\r\n\r\nconst EXCEPTION_TYPE = {\r\n UNCAUGHT: 'UNCAUGHT',\r\n API_REQUEST: 'API_REQUEST',\r\n NETWORK: 'NETWORK'\r\n};\r\n\r\nclass AppErrorBoundary extends Component {\r\n static propTypes = {\r\n children: PropTypes.node,\r\n origin: PropTypes.string\r\n };\r\n\r\n static defaultProps = {\r\n children: null,\r\n origin: null\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { hasError: false };\r\n this.logError = this.logError.bind(this);\r\n }\r\n\r\n static getDerivedStateFromError(error) {\r\n return { hasError: true };\r\n }\r\n\r\n componentDidCatch(error, info) {\r\n this.logError(error, info);\r\n this.setState({ hasError: true });\r\n }\r\n\r\n logError = (error, info) => {\r\n const { origin } = this.props;\r\n Logger.error({\r\n message: error?.message,\r\n stack: error?.stack,\r\n componentStack: info?.componentStack,\r\n filename: origin,\r\n type: EXCEPTION_TYPE.UNCAUGHT\r\n });\r\n };\r\n\r\n render() {\r\n const { children } = this.props;\r\n const { hasError } = this.state;\r\n\r\n if (hasError) {\r\n return ;\r\n }\r\n\r\n return children;\r\n }\r\n}\r\n\r\nexport default AppErrorBoundary;\r\n","import React from 'react';\r\nimport AppErrorBoundary from 'components/ErrorBoundaries/AppErrorBoundary';\r\n\r\nconst withAppErrorBoundary = (WrappedComponent, key) => {\r\n const appBoundaryHigherOrderComponent = props => (\r\n \r\n \r\n \r\n );\r\n return appBoundaryHigherOrderComponent;\r\n};\r\n\r\nexport default withAppErrorBoundary;\r\n","import React from 'react';\r\n\r\nconst PoweredBy = () => (
    Powered by
    );\r\n\r\nexport default PoweredBy;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { reduxForm, Field } from 'redux-form';\r\n\r\nimport { TextInput } from 'components/Common/Inputs/TextInput';\r\nimport PoweredBy from 'components/PoweredBy';\r\n\r\nconst isRequired = value => !value || !value.trim();\r\n\r\nconst LoginForm = ({\r\n handleSubmit,\r\n errorMessage,\r\n onCloseErrorMessage,\r\n isFetching,\r\n isFetchingUserConfig,\r\n showSSOLogin\r\n}) => (\r\n handleSubmit(values) }\r\n >\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n

    \r\n TAINA Fully Automated Tax Form Validator and Classifier\r\n

    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n value && value.replace(/^[ ]+/g, '') }\r\n validate={ isRequired }\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n { errorMessage &&
    \r\n
    \r\n onCloseErrorMessage() }\r\n />\r\n { errorMessage.code === 401 && !errorMessage.message && 'Please enter a valid email and password' }\r\n { ((errorMessage.code !== 401)\r\n || (errorMessage.code === 401 && errorMessage.message)) && \r\n Access Denied: { errorMessage.message }\r\n }\r\n
    \r\n
    }\r\n\r\n
    \r\n Sign in\r\n
    \r\n\r\n { showSSOLogin &&
    \r\n { window.location = '/'; } }\r\n >Sign in with Single Sign-On\r\n
    }\r\n \r\n);\r\n\r\nLoginForm.propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n errorMessage: PropTypes.shape({\r\n code: PropTypes.number,\r\n message: PropTypes.string\r\n }),\r\n onCloseErrorMessage: PropTypes.func.isRequired,\r\n isFetching: PropTypes.bool,\r\n isFetchingUserConfig: PropTypes.bool,\r\n showSSOLogin: PropTypes.bool\r\n};\r\n\r\nLoginForm.defaultProps = {\r\n errorMessage: null,\r\n isFetching: false,\r\n isFetchingUserConfig: false,\r\n showSSOLogin: false\r\n};\r\n\r\nexport default reduxForm({\r\n form: 'signIn-form'\r\n})(LoginForm);\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { push } from 'connected-react-router';\r\n\r\nimport {\r\n loginUser,\r\n resetRestorePath,\r\n resetAuthError\r\n} from 'actions';\r\n\r\nimport { AuthMode } from 'actions/auth/common';\r\nimport withAppErrorBoundary from 'components/ErrorBoundaries/AppErrorBoundary/withAppErrorBoundary';\r\n\r\nimport LoginForm from 'components/LoginForm';\r\n\r\nclass Login extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n isFetching: PropTypes.bool,\r\n isAuthenticated: PropTypes.bool.isRequired,\r\n restorePath: PropTypes.string,\r\n errorMessage: PropTypes.shape({\r\n code: PropTypes.number,\r\n message: PropTypes.string\r\n }),\r\n settings: PropTypes.shape(),\r\n authMode: PropTypes.string.isRequired\r\n };\r\n\r\n static defaultProps = {\r\n isFetching: false,\r\n restorePath: '/',\r\n errorMessage: null,\r\n settings: null\r\n };\r\n\r\n /* eslint-disable-next-line camelcase */\r\n UNSAFE_componentWillMount() {\r\n const { isAuthenticated } = this.props;\r\n this.checkAndRedirectToHome(isAuthenticated);\r\n }\r\n\r\n /* eslint-disable-next-line camelcase */\r\n UNSAFE_componentWillUpdate(nextProps, nextState) {\r\n const { isAuthenticated } = nextProps;\r\n this.checkAndRedirectToHome(isAuthenticated);\r\n }\r\n\r\n checkAndRedirectToHome(isAuthenticated) {\r\n const { dispatch, restorePath, settings } = this.props;\r\n\r\n if (settings != null && (settings.selectedClient != null || settings.clients == null || settings.clients.length <= 1)) {\r\n if (isAuthenticated) {\r\n if (restorePath) {\r\n dispatch(push(restorePath));\r\n dispatch(resetRestorePath());\r\n } else {\r\n dispatch(push('/'));\r\n }\r\n }\r\n }\r\n }\r\n\r\n loginUser(creds) {\r\n const { dispatch } = this.props;\r\n dispatch(loginUser(creds));\r\n }\r\n\r\n resetErrorMessage() {\r\n const { dispatch } = this.props;\r\n dispatch(resetAuthError());\r\n }\r\n\r\n render() {\r\n const {\r\n isFetching,\r\n errorMessage,\r\n authMode\r\n } = this.props;\r\n\r\n return (\r\n
    \r\n this.loginUser(creds) }\r\n onCloseErrorMessage={ () => this.resetErrorMessage() }\r\n isFetching={ isFetching }\r\n showSSOLogin={ authMode !== AuthMode.Manual }\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const { auth } = state;\r\n const {\r\n isFetching,\r\n isAuthenticated,\r\n restorePath,\r\n errorMessage,\r\n settings,\r\n authMode\r\n } = auth;\r\n\r\n return {\r\n isFetching,\r\n isAuthenticated,\r\n restorePath,\r\n errorMessage,\r\n settings,\r\n authMode\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withAppErrorBoundary(Login, 'Login'));\r\n","const WorkflowStages = {\r\n Draft: 1,\r\n PendingSignature: 2,\r\n BatchStaging: 3,\r\n PendingReview: 4,\r\n UnderInitialReview: 5,\r\n PendingSecondaryReview: 6,\r\n UnderSecondaryReview: 7,\r\n PendingExpertReview: 8,\r\n UnderExpertReview: 9,\r\n Complete: 100\r\n};\r\n\r\nexport default WorkflowStages;\r\n","import WorkflowStages from './WorkflowStages';\r\n\r\nconst FormWorkflowStages = WorkflowStages;\r\n\r\nexport default FormWorkflowStages;\r\n","import { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\n\r\nconst AccessControl = ({\r\n permissions,\r\n allowedPermissions,\r\n matchAll,\r\n children,\r\n renderNoAccess,\r\n}) => {\r\n const permitted = AccessControl.hasPermission(permissions, allowedPermissions, matchAll);\r\n\r\n if (permitted) {\r\n return children;\r\n }\r\n if (renderNoAccess) {\r\n return renderNoAccess();\r\n }\r\n return null;\r\n};\r\n\r\nAccessControl.propTypes = {\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n allowedPermissions: PropTypes.arrayOf(PropTypes.string),\r\n matchAll: PropTypes.bool,\r\n children: PropTypes.node,\r\n renderNoAccess: PropTypes.func\r\n};\r\n\r\nAccessControl.defaultProps = {\r\n allowedPermissions: [],\r\n permissions: [],\r\n children: null,\r\n matchAll: false,\r\n renderNoAccess: () => null,\r\n};\r\n\r\nAccessControl.hasPermission = function (permissions, allowedPermissions, matchAll = false) {\r\n if (!permissions || permissions.length === 0\r\n || !allowedPermissions || allowedPermissions.length === 0) {\r\n return false;\r\n }\r\n\r\n if (matchAll === true) {\r\n return allowedPermissions.every(permission => permissions.includes(permission));\r\n }\r\n\r\n return permissions.some(permission => allowedPermissions.includes(permission));\r\n};\r\n\r\n// Compose AccessControl component with redux\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n permissions\r\n }\r\n } = state;\r\n\r\n return {\r\n permissions,\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps\r\n)(AccessControl);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst IndeterminateCheckbox = React.forwardRef(\r\n ({ indeterminate, checked, ...rest }, ref) => {\r\n const defaultRef = React.useRef();\r\n const resolvedRef = ref || defaultRef;\r\n\r\n React.useEffect(() => {\r\n resolvedRef.current.indeterminate = indeterminate;\r\n }, [resolvedRef, indeterminate]);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n);\r\n\r\nIndeterminateCheckbox.propTypes = {\r\n indeterminate: PropTypes.bool,\r\n checked: PropTypes.bool\r\n};\r\n\r\nIndeterminateCheckbox.defaultProps = {\r\n indeterminate: false,\r\n checked: false\r\n};\r\n\r\nexport default IndeterminateCheckbox;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nconst FreeTextFilter = ({ column: { setFilter, filterValue, preFilteredRows } }) => {\r\n const [inputValue, setInputValue] = React.useState('');\r\n const [showFilter, setShowFilter] = React.useState(false);\r\n const node = React.useRef();\r\n\r\n const handleClickOutside = (e) => {\r\n if (node === null || node.current === null) {\r\n return;\r\n }\r\n\r\n if (node.current.contains(e.target)) {\r\n // inside click\r\n return;\r\n }\r\n setShowFilter(false);\r\n };\r\n\r\n const keyHit = (e) => {\r\n if (e.keyCode === 13) {\r\n setShowFilter(false);\r\n setFilter({\r\n filter: [inputValue],\r\n filterType: 'text'\r\n });\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n setInputValue('');\r\n }, [preFilteredRows]);\r\n\r\n React.useEffect(() => {\r\n setInputValue(filterValue != null && filterValue.filter.length > 0 ? filterValue.filter[0] : '');\r\n }, [filterValue]);\r\n\r\n React.useEffect(() => {\r\n if (showFilter) {\r\n document.addEventListener('mousedown', handleClickOutside);\r\n } else {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n }\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [showFilter]);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { setInputValue(e.target.value); } }\r\n onKeyUp={ (e) => { keyHit(e); } }\r\n />\r\n
    \r\n
    \r\n {\r\n setShowFilter(false);\r\n setFilter({ filter: [inputValue.trim()], filterType: 'text' });\r\n } }\r\n > Filter\r\n
    \r\n
    \r\n {\r\n setShowFilter(false);\r\n setInputValue('');\r\n setFilter({\r\n filter: [],\r\n filterType: 'text'\r\n });\r\n } }\r\n > Clear\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nFreeTextFilter.propTypes = {\r\n column: PropTypes.shape().isRequired,\r\n};\r\n\r\nFreeTextFilter.defaultProps = {\r\n};\r\n\r\nexport default FreeTextFilter;\r\n","import React from 'react';\r\n\r\nimport {\r\n actions,\r\n ensurePluginOrder,\r\n useGetLatest,\r\n useMountedLayoutEffect,\r\n} from 'react-table';\r\n\r\n// Actions\r\nactions.resetSortBy = 'resetSortBy';\r\n\r\n// Reducer\r\nfunction reducer(state, action) {\r\n if (action.type === actions.resetSortBy) {\r\n return {\r\n ...state,\r\n sortBy: [],\r\n };\r\n }\r\n return { ...state };\r\n}\r\n\r\nfunction useInstance(instance) {\r\n const {\r\n columns,\r\n dispatch,\r\n plugins,\r\n autoResetSortBy = true,\r\n } = instance;\r\n\r\n ensurePluginOrder(\r\n plugins,\r\n ['useSortBy'],\r\n 'useResetSortBy'\r\n );\r\n\r\n const resetSortBy = React.useCallback(\r\n () => {\r\n dispatch({ type: actions.resetSortBy });\r\n },\r\n [dispatch]\r\n );\r\n\r\n const getAutoResetSortBy = useGetLatest(autoResetSortBy);\r\n\r\n useMountedLayoutEffect(() => {\r\n if (getAutoResetSortBy()) {\r\n dispatch({ type: actions.resetSortBy });\r\n }\r\n }, [columns]);\r\n\r\n Object.assign(instance, {\r\n resetSortBy,\r\n });\r\n}\r\n\r\nconst useResetSortBy = (hooks) => {\r\n hooks.stateReducers.push(reducer);\r\n hooks.useInstance.push(useInstance);\r\n};\r\n\r\nuseResetSortBy.pluginName = 'useResetSortBy';\r\n\r\nexport default useResetSortBy;\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst Pager = ({ page, pageCount, itemCount, totalLimit, onPageChanged, onPageSizeChanged }) => {\r\n const pageDescription = useMemo(() => {\r\n const minRowNumber = itemCount !== 0 ? (page.index * page.size) + 1 : 0;\r\n const lastRow = (page.index * page.size) + page.length;\r\n const maxRowNumber = (lastRow > itemCount) ? itemCount : lastRow;\r\n const totalRowNumber = `${ itemCount }${ itemCount === totalLimit ? '+' : '' }`;\r\n return (\r\n { minRowNumber} to { maxRowNumber} of { totalRowNumber }\r\n );\r\n }, [page.index, page.size, page.length, pageCount, itemCount, totalLimit]);\r\n\r\n const pages = useMemo(() => {\r\n let pagesArray = Array.from({ length: pageCount }, (_, i) => ({ page: i + 1, index: i, show: false, extend: false })).map((p) => {\r\n if (p.index === 0 || p.index === pageCount - 1) {\r\n p.show = true;\r\n } else if (page.index < 5 && p.index < 5) {\r\n p.show = true;\r\n } else if (page.index > (pageCount - 6) && p.index > (pageCount - 6)) {\r\n p.show = true;\r\n } else if (p.index >= (page.index - 2) && p.index <= (page.index + 2)) {\r\n p.show = true;\r\n }\r\n return p;\r\n });\r\n pagesArray = pagesArray.map((p,) => {\r\n if (p.index > 0) {\r\n const previousPageindex = p.index - 1;\r\n const nextPageindex = p.index + 1;\r\n if (pagesArray) {\r\n if (!p.show && pagesArray[previousPageindex].show && previousPageindex !== 0) {\r\n p.extend = true;\r\n } else if (!p.show && pagesArray[nextPageindex].show && nextPageindex !== (pageCount - 1)) {\r\n p.extend = true;\r\n }\r\n }\r\n }\r\n return p;\r\n });\r\n return pagesArray;\r\n }, [page.index, page.size, pageCount, itemCount]);\r\n\r\n return (
    \r\n {pageDescription }\r\n \r\n \r\n \r\n { pages.map((p) => {\r\n if (p.show) {\r\n return ;\r\n }\r\n if (p.extend) {\r\n return ;\r\n }\r\n return null;\r\n }) }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    );\r\n};\r\n\r\nPager.propTypes = {\r\n page: PropTypes.shape({\r\n index: PropTypes.number,\r\n size: PropTypes.number,\r\n length: PropTypes.number,\r\n canPreviousPage: PropTypes.bool,\r\n canNextPage: PropTypes.bool,\r\n }).isRequired,\r\n pageCount: PropTypes.number.isRequired,\r\n itemCount: PropTypes.number.isRequired,\r\n totalLimit: PropTypes.number.isRequired,\r\n onPageChanged: PropTypes.func.isRequired,\r\n onPageSizeChanged: PropTypes.func.isRequired\r\n};\r\n\r\nexport default Pager;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useTable, usePagination, useFilters, useSortBy, useRowSelect } from 'react-table';\r\nimport { Link } from 'react-router-dom';\r\nimport IndeterminateCheckbox from 'components/IndeterminateCheckbox';\r\nimport FreeTextFilter from './Filters/FreeTextFilter';\r\nimport useResetSortBy from './Hooks/useResetSortBy';\r\nimport Pager from './Pager';\r\n\r\nconst ReactTable = ({\r\n data,\r\n gridCriteria,\r\n onGridCriteriaChanged,\r\n onRowSelectionChanged,\r\n onRowExpandedStateChanged,\r\n actions,\r\n enableExpandCollapse,\r\n enableSelection,\r\n childRowPropertyName,\r\n getChildRowLayout,\r\n initialLoaded,\r\n loading,\r\n className,\r\n collapseHeight,\r\n enablePagination\r\n}) => {\r\n const onSelectCheckboxClicked = (rows) => {\r\n gridCriteria.selectedItems = rows.map(d => d.original);\r\n if (typeof onRowSelectionChanged === 'function') {\r\n onRowSelectionChanged({ selectedItems: gridCriteria.selectedItems });\r\n }\r\n };\r\n\r\n const expandCollapse = {\r\n id: 'expand-collapse-column',\r\n Header: () => (''),\r\n // eslint-disable-next-line react/prop-types, react/no-unstable-nested-components\r\n Cell: ({ row }) => (\r\n {\r\n if (enableExpandCollapse && onRowExpandedStateChanged) {\r\n onRowExpandedStateChanged(row, childRowPropertyName && row.original[childRowPropertyName] == null);\r\n }\r\n } }\r\n >\r\n { (childRowPropertyName && row.original[childRowPropertyName] != null) ? '▲' : '▼' }\r\n \r\n )\r\n };\r\n\r\n const defaultColumn = React.useMemo(() => ({ Filter: FreeTextFilter }), []);\r\n const rowsFound = gridCriteria.itemCount > 0;\r\n\r\n const getPreSelectedRows = () => {\r\n if (data && data.length > 0 && gridCriteria && gridCriteria.selectedItems.length > 0) {\r\n const selectedIds = gridCriteria.selectedItems.map(v => v.itemId);\r\n\r\n const selectedData = data.map((v, i) => {\r\n const item = {\r\n key: i,\r\n value: selectedIds.includes(v.itemId)\r\n };\r\n return item;\r\n });\r\n\r\n const result = {};\r\n for (let i = 0; i < selectedData.length; i += 1) {\r\n if (selectedData[i].value) {\r\n result[selectedData[i].key] = selectedData[i].value;\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n return [];\r\n };\r\n\r\n const {\r\n getTableProps,\r\n getTableBodyProps,\r\n headerGroups,\r\n prepareRow,\r\n page,\r\n canPreviousPage,\r\n canNextPage,\r\n pageCount,\r\n gotoPage,\r\n setHiddenColumns,\r\n state: { sortBy, filters },\r\n setAllFilters,\r\n selectedFlatRows,\r\n resetSortBy,\r\n toggleAllRowsSelected\r\n } = useTable(\r\n {\r\n data,\r\n columns: gridCriteria.columnDefs,\r\n pageCount: gridCriteria.pageCount,\r\n defaultColumn,\r\n initialState: {\r\n pageIndex: gridCriteria.pageIndex,\r\n filters: gridCriteria.filters ?? [],\r\n sortBy: gridCriteria.sortBy,\r\n hiddenColumns: gridCriteria.columnDefs.filter(i => i.isVisible === false).map(i => i.accessor),\r\n selectedRowIds: getPreSelectedRows()\r\n },\r\n manualPagination: true,\r\n manualFilters: true,\r\n manualGlobalFilter: true,\r\n manualSortBy: true,\r\n },\r\n useFilters,\r\n useSortBy,\r\n usePagination,\r\n useRowSelect,\r\n useResetSortBy,\r\n (hooks) => {\r\n hooks.allColumns.push((cols) => {\r\n const combinedCols = [];\r\n if (enableSelection) {\r\n combinedCols.push({\r\n id: 'selection-column',\r\n // eslint-disable-next-line react/no-unstable-nested-components\r\n Header: ({ getToggleAllRowsSelectedProps }) => (\r\n \r\n ),\r\n // eslint-disable-next-line react/no-unstable-nested-components\r\n Cell: ({ row }) => (\r\n \r\n )\r\n });\r\n }\r\n combinedCols.push(...cols);\r\n if (actions) {\r\n combinedCols.push(actions);\r\n }\r\n if (enableExpandCollapse && onRowExpandedStateChanged) {\r\n combinedCols.push(expandCollapse);\r\n }\r\n\r\n return combinedCols;\r\n });\r\n }\r\n );\r\n\r\n React.useEffect(() => {\r\n if (initialLoaded) {\r\n gotoPage(0);\r\n setAllFilters([]);\r\n resetSortBy();\r\n toggleAllRowsSelected(false);\r\n }\r\n setHiddenColumns(gridCriteria.columnDefs.filter(i => i.isVisible === false).map(i => i.accessor));\r\n }, [gridCriteria.columnDefs]);\r\n\r\n React.useEffect(() => {\r\n gotoPage(gridCriteria.pageIndex);\r\n }, [gridCriteria.pageIndex]);\r\n\r\n React.useEffect(() => {\r\n if (initialLoaded) {\r\n gotoPage(0);\r\n toggleAllRowsSelected(false);\r\n }\r\n }, [gridCriteria.itemCount]);\r\n\r\n React.useEffect(() => {\r\n onSelectCheckboxClicked(selectedFlatRows);\r\n }, [selectedFlatRows]);\r\n\r\n React.useEffect(() => {\r\n const newGridCriteria = { ...gridCriteria, sortBy, filters, selectedItems: [], pageIndex: 0 };\r\n onGridCriteriaChanged(newGridCriteria);\r\n }, [gridCriteria.pageSize, sortBy, filters]);\r\n\r\n const getHeaderClassName = (index, col) => {\r\n if (enableSelection && index <= 0) {\r\n return 'checkbox-header-cell';\r\n }\r\n return col.id === 'expand-collapse-column' ? 'expand-header-cell' : col.className ?? 'col-10p';\r\n };\r\n\r\n const getCellClassName = (index, col) => {\r\n if (enableSelection && index <= 0) {\r\n return 'checkbox-cell';\r\n }\r\n return col.id === 'expand-collapse-column' ? 'expand-cell' : col.className ?? 'col-10p';\r\n };\r\n\r\n const getSortIcon = (column) => {\r\n if (column.isSorted) {\r\n if (column.isSortedDesc) {\r\n return   ;\r\n }\r\n return   ;\r\n }\r\n return   ;\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n { headerGroups.map((headerGroup, i) => (\r\n \r\n { headerGroup.headers.map((column, j) => (\r\n \r\n )) }\r\n \r\n )) }\r\n \r\n { !rowsFound && !loading && }\r\n { loading && }\r\n { !loading && rowsFound && \r\n { page.map((row, i) => {\r\n prepareRow(row);\r\n return (\r\n \r\n \r\n {row.cells.map((cell, j) => ) }\r\n \r\n { row.original[childRowPropertyName] && getChildRowLayout && \r\n \r\n }\r\n \r\n );\r\n }) }\r\n }\r\n
    \r\n { column.render('Header') }\r\n \r\n { column.canSort && ((j > 0 && j < headerGroup.headers.length - 1) || !enableSelection) && \r\n { getSortIcon(column) }\r\n }\r\n { column.canFilter ? column.render('Filter') : null }\r\n \r\n
    No Rows to Show
    {cell.column.isLinkToAccount ? (\r\n \r\n {cell.render('Cell')}\r\n \r\n ) : (\r\n cell.render('Cell')\r\n )}
    \r\n
    \r\n { getChildRowLayout(row.original[childRowPropertyName]) }\r\n
    \r\n
    \r\n {enablePagination && initialLoaded && {\r\n gotoPage(p);\r\n const newGridCriteria = { ...gridCriteria, pageIndex: p };\r\n onGridCriteriaChanged(newGridCriteria);\r\n } }\r\n onPageSizeChanged={ (pageSize) => {\r\n gotoPage(0);\r\n gridCriteria.pageSize = pageSize;\r\n onGridCriteriaChanged(gridCriteria);\r\n } }\r\n /> }\r\n
    \r\n );\r\n};\r\n\r\nReactTable.propTypes = {\r\n data: PropTypes.arrayOf(PropTypes.shape()),\r\n gridCriteria: PropTypes.shape({\r\n selectedItems: PropTypes.arrayOf(PropTypes.shape()),\r\n itemCount: PropTypes.number,\r\n totalLimit: PropTypes.number,\r\n pageSize: PropTypes.number,\r\n pageIndex: PropTypes.number,\r\n pageCount: PropTypes.number,\r\n filters: PropTypes.arrayOf(PropTypes.shape()),\r\n sortBy: PropTypes.arrayOf(PropTypes.shape()),\r\n columnDefs: PropTypes.arrayOf(PropTypes.shape()),\r\n }),\r\n onGridCriteriaChanged: PropTypes.func,\r\n onRowSelectionChanged: PropTypes.func,\r\n onRowExpandedStateChanged: PropTypes.func,\r\n getToggleAllRowsSelectedProps: PropTypes.func,\r\n actions: PropTypes.shape(),\r\n row: PropTypes.shape(),\r\n enableExpandCollapse: PropTypes.bool,\r\n enableSelection: PropTypes.bool,\r\n childRowPropertyName: PropTypes.string,\r\n getChildRowLayout: PropTypes.func,\r\n initialLoaded: PropTypes.bool,\r\n loading: PropTypes.bool,\r\n className: PropTypes.string,\r\n collapseHeight: PropTypes.bool,\r\n enablePagination: PropTypes.bool,\r\n};\r\n\r\nReactTable.defaultProps = {\r\n data: null,\r\n gridCriteria: null,\r\n onGridCriteriaChanged: null,\r\n onRowSelectionChanged: null,\r\n onRowExpandedStateChanged: null,\r\n getToggleAllRowsSelectedProps: null,\r\n actions: null,\r\n row: null,\r\n enableExpandCollapse: true,\r\n enableSelection: false,\r\n childRowPropertyName: null,\r\n getChildRowLayout: null,\r\n initialLoaded: false,\r\n loading: true,\r\n className: null,\r\n collapseHeight: false,\r\n enablePagination: true,\r\n};\r\n\r\nexport default ReactTable;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Field } from 'redux-form';\r\nimport Autosuggest from 'react-autosuggest';\r\nimport AutosuggestHighlightParse from 'autosuggest-highlight/parse';\r\n\r\nimport { ApiService } from 'services';\r\n\r\nconst wordCharacterRegex = /[a-z0-9_]/i;\r\nconst whitespacesRegex = /\\s+/;\r\n\r\nconst WAIT_INTERVAL = 500;\r\n\r\n// https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions#Using_Special_Characters\r\nfunction escapeRegexCharacters(str) {\r\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n}\r\n\r\nfunction getSuggestions(category, context, activeOnly, value, suggestionsCallback) {\r\n const escapedValue = escapeRegexCharacters(value?.trim() || '');\r\n\r\n if (escapedValue === '') {\r\n suggestionsCallback([]);\r\n return;\r\n }\r\n\r\n if (category === '' || category === null) {\r\n suggestionsCallback([]);\r\n return;\r\n }\r\n\r\n const postData = {\r\n type: category,\r\n activeOnly,\r\n valueEntered: value,\r\n };\r\n\r\n if (context != null) {\r\n postData.context = context;\r\n }\r\n\r\n ApiService\r\n .lookup(postData)\r\n .then((result) => {\r\n suggestionsCallback(result.data);\r\n })\r\n .catch(err => suggestionsCallback([]));\r\n}\r\n\r\nfunction extend(subject, baseObject) {\r\n subject = subject || {};\r\n Object.keys(subject).forEach((key) => {\r\n if (key != null) {\r\n baseObject[key] = !!subject[key];\r\n }\r\n });\r\n return baseObject;\r\n}\r\n\r\nfunction findMatchesToHighlight(text, query) {\r\n const options = extend({}, {\r\n insideWords: true,\r\n findAllOccurrences: true,\r\n requireMatchAll: false\r\n });\r\n\r\n return (\r\n query\r\n .trim()\r\n .split(whitespacesRegex)\r\n // If query is blank, we'll get empty string here, so let's filter it out.\r\n .filter(word => word.length > 0)\r\n .reduce((result, word) => {\r\n const wordLen = word.length;\r\n const prefix = !options.insideWords && wordCharacterRegex.test(word[0]) ? '\\\\b' : '';\r\n const regex = new RegExp(prefix + escapeRegexCharacters(word), 'i');\r\n let occurrence;\r\n let index;\r\n\r\n occurrence = regex.exec(text);\r\n if (options.requireMatchAll && occurrence === null) {\r\n text = '';\r\n return [];\r\n }\r\n\r\n while (occurrence) {\r\n // eslint-disable-next-line\r\n index = occurrence.index;\r\n\r\n result.push([index, index + wordLen]);\r\n\r\n // Replace what we just found with spaces so we don't find it again.\r\n text = text.slice(0, index)\r\n + new Array(wordLen + 1).join(' ')\r\n + text.slice(index + wordLen);\r\n\r\n if (!options.findAllOccurrences) {\r\n break;\r\n }\r\n\r\n occurrence = regex.exec(text);\r\n }\r\n return result;\r\n }, [])\r\n .sort((match1, match2) => match1[0] - match2[0])\r\n );\r\n}\r\n\r\nfunction renderSuggestion(suggestion, { query }) {\r\n const suggestionText = `${ suggestion.value }`;\r\n const matches = findMatchesToHighlight(suggestionText, query);\r\n const parts = AutosuggestHighlightParse(suggestionText, matches);\r\n\r\n return (\r\n \r\n \r\n {\r\n parts != null && parts\r\n .map((part, index) => {\r\n if (part != null) {\r\n const className = part.highlight ? 'highlight' : null;\r\n return (\r\n // eslint-disable-next-line\r\n { part.text }\r\n );\r\n }\r\n return null;\r\n })\r\n }\r\n \r\n \r\n );\r\n}\r\n\r\nconst AutoSuggestWrapper = ({ input, ...custom }) => {\r\n input.onChange(suggestion.value);\r\n return suggestion.value;\r\n } }\r\n { ...custom }\r\n/>;\r\n\r\nAutoSuggestWrapper.propTypes = {\r\n input: PropTypes.shape({\r\n onChange: PropTypes.func\r\n }).isRequired\r\n};\r\n\r\nexport class AutoCompleteInput extends Component {\r\n static propTypes = {\r\n input: PropTypes.shape(),\r\n id: PropTypes.string.isRequired,\r\n name: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.object\r\n ]),\r\n className: PropTypes.string,\r\n required: PropTypes.bool,\r\n minCharacters: PropTypes.number,\r\n category: PropTypes.string.isRequired,\r\n context: PropTypes.shape({\r\n type: PropTypes.string.isRequired,\r\n id: PropTypes.number.isRequired,\r\n value: PropTypes.string.isRequired\r\n }),\r\n onSelectedItem: PropTypes.func,\r\n onChange: PropTypes.func,\r\n disabled: PropTypes.bool,\r\n activeOnly: PropTypes.bool,\r\n exclude: PropTypes.arrayOf(\r\n PropTypes.string\r\n )\r\n };\r\n\r\n static defaultProps = {\r\n input: null,\r\n name: null,\r\n placeholder: 'Start typing...',\r\n value: '',\r\n className: 'form-input',\r\n required: false,\r\n minCharacters: 3,\r\n context: null,\r\n onSelectedItem: null,\r\n onChange: null,\r\n disabled: false,\r\n exclude: [],\r\n activeOnly: true\r\n };\r\n\r\n static getAutoCompleteText(id) {\r\n switch (id) {\r\n case 0:\r\n return 'client';\r\n case 1:\r\n return 'legalentity';\r\n case 2:\r\n return 'customer';\r\n case 5:\r\n return 'account';\r\n case 9:\r\n return 'user';\r\n case 10:\r\n return 'customeraccount';\r\n case 11:\r\n return 'whsaccount';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n let currentValue = '';\r\n if (props.value && typeof props.value === 'object') {\r\n if (typeof props.value.value !== 'undefined') {\r\n currentValue = props.value.value;\r\n }\r\n } else if (props.value && typeof props.value === 'string') {\r\n currentValue = props.value ?? '';\r\n }\r\n\r\n this.state = {\r\n currentSelection: props.value,\r\n currentValue,\r\n currentContext: props.context,\r\n suggestions: []\r\n };\r\n\r\n this.setSuggestionsState = this.setSuggestionsState.bind(this);\r\n }\r\n\r\n static getDerivedStateFromProps(props, state) {\r\n if (JSON.stringify(props.context) !== JSON.stringify(state.currentContext)) {\r\n return {\r\n currentContext: props.context,\r\n currentSelection: null,\r\n currentValue: '',\r\n };\r\n }\r\n if (props.value && typeof props.value === 'object') {\r\n if (JSON.stringify(props.value) !== JSON.stringify(state.currentSelection)) {\r\n let currentValue = '';\r\n if (typeof props.value.value !== 'undefined') {\r\n currentValue = props.value.value ?? '';\r\n } else {\r\n currentValue = props.value ?? '';\r\n }\r\n return {\r\n currentSelection: props.value,\r\n currentValue\r\n };\r\n }\r\n } else if (props.value && typeof props.value === 'string') {\r\n if (JSON.stringify(props.value) !== JSON.stringify(state.currentValue)) {\r\n let currentValue = '';\r\n if (typeof props.value.value !== 'undefined') {\r\n currentValue = props.value.value ?? '';\r\n } else {\r\n currentValue = props.value ?? '';\r\n }\r\n return {\r\n currentSelection: props.value,\r\n currentValue\r\n };\r\n }\r\n } else if (props.disabled || (!props.value && state.currentSelection)) {\r\n return {\r\n currentSelection: null,\r\n currentValue: ''\r\n };\r\n }\r\n return null;\r\n }\r\n\r\n onChange = (event, { newValue }) => {\r\n const { onChange } = this.props;\r\n const { suggestions } = this.state;\r\n\r\n if (suggestions && suggestions.length > 0) {\r\n if (suggestions.filter(s => s.value === newValue).length > 0) {\r\n return;\r\n }\r\n }\r\n\r\n this.setState({\r\n currentValue: newValue,\r\n });\r\n\r\n if (onChange != null) {\r\n onChange(event, newValue);\r\n }\r\n };\r\n\r\n onSuggestionSelected = (event, { suggestion, suggestionValue, suggestionIndex, sectionIndex, method }) => {\r\n const { onSelectedItem } = this.props;\r\n this.setState({\r\n currentValue: suggestionValue,\r\n });\r\n\r\n if (onSelectedItem) {\r\n if (suggestion.type === 1) {\r\n onSelectedItem({\r\n id: suggestion.id,\r\n type: AutoCompleteInput.getAutoCompleteText(suggestion.type),\r\n value: suggestion.value,\r\n chapter3Status: suggestion.chapter3Status,\r\n chapter4Status: suggestion.chapter4Status,\r\n crsParticipating: suggestion.crsParticipating,\r\n chapter4StatusDescription: suggestion.chapter4StatusDescription,\r\n chapter3StatusDescription: suggestion.chapter3StatusDescription\r\n });\r\n } else if (suggestion.type === 5) {\r\n onSelectedItem({\r\n id: suggestion.id,\r\n type: AutoCompleteInput.getAutoCompleteText(suggestion.type),\r\n value: suggestion.value,\r\n parentAccountId: suggestion.parentAccountId,\r\n withholdingStatementId: suggestion.withholdingStatementId,\r\n collectableSupportingDocumentTypes: suggestion.collectableSupportingDocumentTypes\r\n });\r\n } else if (suggestion.type === 10) {\r\n onSelectedItem({\r\n id: suggestion.id,\r\n type: AutoCompleteInput.getAutoCompleteText(suggestion.type),\r\n value: suggestion.value,\r\n accounts: suggestion.accounts\r\n });\r\n } else if (suggestion.type === 11) {\r\n onSelectedItem({\r\n id: suggestion.id,\r\n type: AutoCompleteInput.getAutoCompleteText(suggestion.type),\r\n value: suggestion.value,\r\n topLevelCustomerName: suggestion.attributes.topLevelCustomerName\r\n });\r\n } else {\r\n onSelectedItem({\r\n id: suggestion.id,\r\n type: AutoCompleteInput.getAutoCompleteText(suggestion.type),\r\n value: suggestion.value\r\n });\r\n }\r\n }\r\n };\r\n\r\n setSuggestionsState(suggestions) {\r\n const { exclude } = this.props;\r\n\r\n if (suggestions === undefined || suggestions === null) {\r\n this.setState({\r\n suggestions: []\r\n });\r\n }\r\n if (suggestions && exclude?.length > 0) {\r\n const filtered = suggestions.filter(data => exclude.some(item => item !== data.value));\r\n this.setState({\r\n suggestions: filtered\r\n });\r\n } else {\r\n this.setState({\r\n suggestions\r\n });\r\n }\r\n }\r\n\r\n onSuggestionsFetchRequested = ({ value }) => {\r\n clearTimeout(this.timer);\r\n const { currentValue, currentContext } = this.state;\r\n const { minCharacters, category, activeOnly } = this.props;\r\n\r\n if (value === currentValue) {\r\n return;\r\n }\r\n\r\n if (minCharacters <= 0 || value.length >= minCharacters) {\r\n this.timer = setTimeout(() => {\r\n getSuggestions(category, currentContext, activeOnly, value, this.setSuggestionsState);\r\n }, WAIT_INTERVAL);\r\n }\r\n };\r\n\r\n onSuggestionsClearRequested = () => {\r\n this.setState({\r\n suggestions: []\r\n });\r\n };\r\n\r\n render() {\r\n const { id, input, name, placeholder, className, required, disabled } = this.props;\r\n const { currentValue, suggestions } = this.state;\r\n const inputProps = {\r\n id,\r\n type: 'search',\r\n name: input != null ? input.name : name,\r\n placeholder,\r\n value: typeof currentValue === 'object' ? currentValue.text : currentValue,\r\n required,\r\n onChange: this.onChange,\r\n className: `form-input ${ className }`,\r\n disabled\r\n };\r\n\r\n return
    \r\n \r\n
    ;\r\n }\r\n}\r\n\r\nexport default AutoCompleteInput;\r\n","const formTypes = [\r\n { description: 'W-8BEN', family: 'W8BEN', value: 'W8BEN' },\r\n { description: 'W-8BEN-E', family: 'W8BENE', value: 'W8BENE' },\r\n { description: 'W-8ECI', family: 'W8ECI', value: 'W8ECI' },\r\n { description: 'W-8EXP', family: 'W8EXP', value: 'W8EXP' },\r\n { description: 'W-8IMY', family: 'W8IMY', value: 'W8IMY' },\r\n { description: 'W-9', family: 'W9', value: 'W9' },\r\n { description: 'CRSE', family: 'CRSE', value: 'CRSE' },\r\n { description: 'CRSCP', family: 'CRSCP', value: 'CRSCP' },\r\n { description: 'CRSI', family: 'CRSI', value: 'CRSI' },\r\n { description: 'FATCA/CRS-I', family: 'FATCACRSI', value: 'FATCACRSI' },\r\n { description: 'FATCA/CRS-E', family: 'FATCACRSE', value: 'FATCACRSE' },\r\n { description: 'RC518', family: 'RC518', value: 'RC518' },\r\n { description: 'RC519', family: 'RC519', value: 'RC519' }\r\n];\r\n\r\nexport default formTypes;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { reduxForm } from 'redux-form';\r\nimport AutoCompleteInput from 'components/Common/Inputs/AutoCompleteInput';\r\nimport formTypes from 'components/HomePage/formTypeSelectValues';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AccessControl from 'components/AccessControl';\r\n\r\nconst SearchPanel = ({ title, searchCriteria, onSearchCriteriaChanged, onSearchClicked, permissions, actionButton }) => {\r\n const onSearchClick = () => {\r\n onSearchClicked(searchCriteria);\r\n };\r\n\r\n const onInputKeyUp = (e) => {\r\n if (e.keyCode === 13) {\r\n onSearchClick();\r\n }\r\n };\r\n\r\n const onGridChange = (e) => {\r\n const newSearchCriteria = { ...searchCriteria };\r\n newSearchCriteria.gridType = e.target.value;\r\n onSearchCriteriaChanged(newSearchCriteria);\r\n };\r\n\r\n const onSearchQueryChanged = (e) => {\r\n const newSearchCriteria = { ...searchCriteria };\r\n newSearchCriteria.searchQuery = e.target.value;\r\n onSearchCriteriaChanged(newSearchCriteria);\r\n };\r\n\r\n const onAutoCompleteChange = (_, lookupValue, propertyName) => {\r\n if ((typeof lookupValue === 'string' || lookupValue instanceof String)) {\r\n searchCriteria[propertyName] = lookupValue;\r\n searchCriteria[`${ propertyName }Selected`] = false;\r\n } else if (lookupValue !== null) {\r\n searchCriteria[propertyName] = lookupValue;\r\n searchCriteria[`${ propertyName }Selected`] = true;\r\n }\r\n onSearchCriteriaChanged(searchCriteria);\r\n };\r\n\r\n const onFormTypeChange = (e) => {\r\n searchCriteria.formType = e.target.value;\r\n onSearchCriteriaChanged(searchCriteria);\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n { title }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.customerPageView, ActivityPerms.customerEdit])\r\n && }\r\n { AccessControl.hasPermission(permissions, [ActivityPerms.accountPageView, ActivityPerms.accountEdit])\r\n && }\r\n { AccessControl.hasPermission(permissions, [ActivityPerms.accountPageView, ActivityPerms.customerPageView], true)\r\n && }\r\n
    \r\n
    \r\n
    \r\n
    \r\n onSearchQueryChanged(e) }\r\n onKeyUp={ e => onInputKeyUp(e) }\r\n />\r\n
    \r\n
    \r\n onAutoCompleteChange(null, value, 'legalEntity') }\r\n onSelectedItem={ value => onAutoCompleteChange(null, value, 'legalEntity') }\r\n />\r\n
    \r\n
    \r\n onAutoCompleteChange(null, value, 'accountNumber') }\r\n onSelectedItem={ value => onAutoCompleteChange(null, value, 'accountNumber') }\r\n />\r\n
    \r\n
    \r\n onAutoCompleteChange(null, value, 'customer') }\r\n onSelectedItem={ value => onAutoCompleteChange(null, value, 'customer') }\r\n disabled={ searchCriteria.gridType === 'accounts' }\r\n />\r\n
    \r\n
    \r\n onFormTypeChange(e) }\r\n >\r\n \r\n {formTypes.map((option, i) => (\r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n onSearchClick() }\r\n >\r\n \r\n Search\r\n \r\n
    \r\n { actionButton }\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nSearchPanel.propTypes = {\r\n title: PropTypes.oneOfType([\r\n PropTypes.node,\r\n PropTypes.string\r\n ]),\r\n searchCriteria: PropTypes.shape().isRequired,\r\n onSearchCriteriaChanged: PropTypes.func.isRequired,\r\n onSearchClicked: PropTypes.func.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n actionButton: PropTypes.node\r\n};\r\n\r\nSearchPanel.defaultProps = {\r\n title: 'Search',\r\n permissions: null,\r\n actionButton: null\r\n};\r\n\r\nconst SearchPanelForm = reduxForm({\r\n form: 'searchForm',\r\n})(SearchPanel);\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nconst ConnectedSearchPanel = connect(\r\n null,\r\n mapDispatchToProps\r\n)(SearchPanelForm);\r\n\r\nexport default ConnectedSearchPanel;\r\n","import ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AccessControl from 'components/AccessControl';\r\n\r\nfunction hasPermissionsForForms(forms, permissions, areOnlineForms) {\r\n if (!permissions || permissions.length <= 0) {\r\n return false;\r\n }\r\n\r\n if (!forms || forms.length <= 0) {\r\n return true;\r\n }\r\n\r\n const hasCompletePermission = areOnlineForms ? AccessControl.hasPermission(permissions, [ActivityPerms.electronicDeleteCompleteForms]) : AccessControl.hasPermission(permissions, [ActivityPerms.scannedDeleteCompleteForms]);\r\n const hasReviewPermission = areOnlineForms ? AccessControl.hasPermission(permissions, [ActivityPerms.electronicDeleteInReviewForms]) : AccessControl.hasPermission(permissions, [ActivityPerms.scannedDeleteInReviewForms]);\r\n\r\n if (!hasCompletePermission && !hasReviewPermission) {\r\n return false;\r\n }\r\n\r\n const completeForms = forms.filter(f => f.workflowStatus?.trim().toLowerCase().includes('complete'));\r\n const underReviewForms = forms.filter(f => !f.workflowStatus?.trim().toLowerCase().includes('complete'));\r\n\r\n if ((completeForms && completeForms.length > 0 && !hasCompletePermission) || (underReviewForms && underReviewForms.length > 0 && !hasReviewPermission)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport default function CanDeleteAllFormsInSelection(forms, permissions) {\r\n if (!forms || forms.length <= 0) {\r\n return true;\r\n }\r\n\r\n if (!permissions || permissions.length <= 0) {\r\n return false;\r\n }\r\n\r\n const hasDeleteOnlineCompletePermission = AccessControl.hasPermission(permissions, [ActivityPerms.electronicDeleteCompleteForms]);\r\n const hasDeleteOnlineReviewPermission = AccessControl.hasPermission(permissions, [ActivityPerms.electronicDeleteInReviewForms]);\r\n const hasDeleteScannedCompletePermission = AccessControl.hasPermission(permissions, [ActivityPerms.scannedDeleteCompleteForms]);\r\n const hasDeleteScannedReviewPermission = AccessControl.hasPermission(permissions, [ActivityPerms.scannedDeleteInReviewForms]);\r\n\r\n if (hasDeleteOnlineCompletePermission && hasDeleteOnlineReviewPermission && hasDeleteScannedCompletePermission && hasDeleteScannedReviewPermission) {\r\n return true;\r\n }\r\n\r\n const onlineForms = forms.filter(f => f.isOnlineForm);\r\n const scannedForms = forms.filter(f => !f.isOnlineForm);\r\n\r\n let hasOnlinePermissions = false;\r\n let hasScannedPermissions = false;\r\n\r\n if (onlineForms.length > 0) {\r\n hasOnlinePermissions = hasPermissionsForForms(onlineForms, permissions, true);\r\n } else {\r\n hasOnlinePermissions = true;\r\n }\r\n\r\n if (scannedForms.length > 0) {\r\n hasScannedPermissions = hasPermissionsForForms(scannedForms, permissions, false);\r\n } else {\r\n hasScannedPermissions = true;\r\n }\r\n\r\n return hasOnlinePermissions && hasScannedPermissions;\r\n}\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport CanDeleteAllFormsInSelection from 'common/Forms/Helpers/DeleteFormsHelper';\r\n\r\nconst ActionSelect = ({ selectedItems, permissions, openAssignToUserModal, openDeleteFormModal, openEditFormReferenceModal }) => (\r\n
    \r\n
    \r\n
    \r\n \r\n { selectedItems.length } items selected\r\n \r\n \r\n
      \r\n {CanDeleteAllFormsInSelection(selectedItems, permissions)\r\n &&
    • \r\n openDeleteFormModal() }\r\n >\r\n Remove all\r\n \r\n
    • }\r\n { AccessControl.hasPermission(permissions, [ActivityPerms.scannedEdit])\r\n &&
    • \r\n openEditFormReferenceModal() }\r\n >\r\n Edit Form Reference\r\n \r\n
    • }\r\n { AccessControl.hasPermission(permissions, [ActivityPerms.fwfReassignToUser], true)\r\n &&
    • \r\n openAssignToUserModal(selectedItems) }\r\n >\r\n Assign to user/s\r\n \r\n
    • }\r\n
    \r\n
    \r\n
    \r\n
    \r\n);\r\n\r\nActionSelect.propTypes = {\r\n selectedItems: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n settings: PropTypes.shape({}).isRequired,\r\n openAssignToUserModal: PropTypes.func.isRequired,\r\n openDeleteFormModal: PropTypes.func.isRequired,\r\n openEditFormReferenceModal: PropTypes.func.isRequired\r\n};\r\n\r\nActionSelect.defaultProps = {\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n settings: state.auth.settings,\r\n permissions: state.auth.permissions\r\n});\r\nexport const ConnectedActionSelect = connect(mapStateToProps)(ActionSelect);\r\n\r\nexport default ConnectedActionSelect;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst MultiSelectFilter = ({ column: { filterValue, setFilter, preFilteredRows, id, filterType, options } }) => {\r\n const [inputValue, setInputValue] = React.useState([]);\r\n const [showFilter, setShowFilter] = React.useState(false);\r\n const formtypes = useSelector(state => state.auth.settings.formtypes);\r\n const node = React.useRef();\r\n\r\n const handleClickOutside = (e) => {\r\n if (node === null || node.current === null) {\r\n return;\r\n }\r\n if (node.current.contains(e.target)) {\r\n // inside click\r\n return;\r\n }\r\n setShowFilter(false);\r\n };\r\n const baseOptions = React.useMemo(() => {\r\n let opts = new Set();\r\n switch (id) {\r\n case 'cicDataPoints':\r\n opts = new Set();\r\n opts.add({ title: 'Name', value: 'name' });\r\n opts.add({ title: 'Permanent Address Country', value: 'permanentaddress' });\r\n opts.add({ title: 'Mailing Address Country', value: 'mailingaddress' });\r\n opts.add({ title: 'US Tax Residency', value: 'ustaxresidency' });\r\n opts.add({ title: 'US TIN', value: 'ustin' });\r\n opts.add({ title: 'GIIN', value: 'giin' });\r\n opts.add({ title: 'Country Of Birth', value: 'countryofbirth' });\r\n opts.add({ title: 'Phone Number', value: 'phonenumber' });\r\n opts.add({ title: 'Entity Type', value: 'entitytype' });\r\n opts.add({ title: 'Treaty Country', value: 'treatycountry' });\r\n opts.add({ title: 'Treaty Eligibility', value: 'treatyeligibility' });\r\n opts.add({ title: 'Residence Country Differs From Treaty Country', value: 'residencecountrydiffersfromtreaty' });\r\n opts.add({ title: 'Tax Country Differs From Treaty Country', value: 'taxcountrydiffersfromtreaty' });\r\n opts.add({ title: 'GIIN Removed from IRS GIIN list', value: 'giinremoved' });\r\n opts.add({ title: 'International Organisation Removed From List', value: 'internationalorganisationremoved' });\r\n break;\r\n case 'closureReasonDesc':\r\n opts = new Set();\r\n opts.add({ title: 'Processed', value: 'processed' });\r\n opts.add({ title: 'Expired', value: 'expired' });\r\n opts.add({ title: 'N/A', value: 'unknown' });\r\n break;\r\n case 'formTypeDescription':\r\n opts = new Set();\r\n if (formtypes.some(ft => ft.key === 'w8ben_2014')) opts.add({ title: 'W-8BEN Jul-2014', value: 'w8ben_2014' });\r\n if (formtypes.some(ft => ft.key === 'w8ben')) opts.add({ title: 'W-8BEN Jul-2017', value: 'w8ben' });\r\n if (formtypes.some(ft => ft.key === 'w8ben_2021')) opts.add({ title: 'W-8BEN Oct-2021', value: 'w8ben_2021' });\r\n if (formtypes.some(ft => ft.key === 'w8bene')) opts.add({ title: 'W-8BEN-E Apr-2016', value: 'w8bene' });\r\n if (formtypes.some(ft => ft.key === 'w8bene_2017')) opts.add({ title: 'W-8BEN-E Jul-2017', value: 'w8bene_2017' });\r\n if (formtypes.some(ft => ft.key === 'w8bene_2021')) opts.add({ title: 'W-8BEN-E Oct-2021', value: 'w8bene_2021' });\r\n if (formtypes.some(ft => ft.key === 'w8imy')) opts.add({ title: 'W-8IMY Sep-2016', value: 'w8imy' });\r\n if (formtypes.some(ft => ft.key === 'w8imy_2017')) opts.add({ title: 'W-8IMY Jun-2017', value: 'w8imy_2017' });\r\n if (formtypes.some(ft => ft.key === 'w8imy_2021')) opts.add({ title: 'W-8IMY Oct-2021', value: 'w8imy_2021' });\r\n if (formtypes.some(ft => ft.key === 'w8exp_2016')) opts.add({ title: 'W-8EXP Sep-2016', value: 'w8exp_2016' });\r\n if (formtypes.some(ft => ft.key === 'w8exp')) opts.add({ title: 'W-8EXP Jul-2017', value: 'w8exp' });\r\n if (formtypes.some(ft => ft.key === 'w8exp_2023')) opts.add({ title: 'W-8EXP Oct-2023', value: 'w8exp_2023' });\r\n if (formtypes.some(ft => ft.key === 'w8eci_2014')) opts.add({ title: 'W-8ECI Feb-2014', value: 'w8eci_2014' });\r\n if (formtypes.some(ft => ft.key === 'w8eci')) opts.add({ title: 'W-8ECI Jul-2017', value: 'w8eci' });\r\n if (formtypes.some(ft => ft.key === 'w8eci_2021')) opts.add({ title: 'W-8ECI Oct-2021', value: 'w8eci_2021' });\r\n if (formtypes.some(ft => ft.key === 'w9')) opts.add({ title: 'W-9 Dec-2014', value: 'w9' });\r\n if (formtypes.some(ft => ft.key === 'w9_2017')) opts.add({ title: 'W-9 Nov-2017', value: 'w9_2017' });\r\n if (formtypes.some(ft => ft.key === 'w9_2018')) opts.add({ title: 'W-9 Oct-2018', value: 'w9_2018' });\r\n if (formtypes.some(ft => ft.key === 'w9_2024')) opts.add({ title: 'W-9 Mar-2024', value: 'w9_2024' });\r\n if (formtypes.some(ft => ft.key === 'crscp')) opts.add({ title: 'CRSCP 2017', value: 'crscp' });\r\n if (formtypes.some(ft => ft.key === 'crse')) opts.add({ title: 'CRSE 2017', value: 'crse' });\r\n if (formtypes.some(ft => ft.key === 'crsi')) opts.add({ title: 'CRSI 2017', value: 'crsi' });\r\n if (formtypes.some(ft => ft.key === 'crsi_2024')) opts.add({ title: 'CRSI 2024', value: 'crsi_2024' });\r\n if (formtypes.some(ft => ft.key === 'dt_crscp')) opts.add({ title: 'Deloitte CRS-CP', value: 'dt_crscp' });\r\n if (formtypes.some(ft => ft.key === 'dt_crsi')) opts.add({ title: 'Deloitte CRS-I', value: 'dt_crsi' });\r\n if (formtypes.some(ft => ft.key === 'dt_crse')) opts.add({ title: 'Deloitte CRS-E', value: 'dt_crse' });\r\n if (formtypes.some(ft => ft.key === 'ucrscp_2019')) opts.add({ title: 'Universal CRSCP 2019', value: 'ucrscp_2019' });\r\n if (formtypes.some(ft => ft.key === 'ucrse_2019')) opts.add({ title: 'Universal CRSE 2019', value: 'ucrse_2019' });\r\n if (formtypes.some(ft => ft.key === 'ucrsi_2023')) opts.add({ title: 'Universal CRSI 2023', value: 'ucrsi_2023' });\r\n if (formtypes.some(ft => ft.key === 'fatca_crsi_2022')) opts.add({ title: 'FATCA/CRS-I Jun-2022', value: 'fatca_crsi_2022' });\r\n if (formtypes.some(ft => ft.key === 'fatca_crsi_2023')) opts.add({ title: 'FATCA/CRS-I Apr-2023', value: 'fatca_crsi_2023' });\r\n if (formtypes.some(ft => ft.key === 'fatca_crse_2022')) opts.add({ title: 'FATCA/CRS-E Jul-2022', value: 'fatca_crse_2022' });\r\n if (formtypes.some(ft => ft.key === 'fatca_crse_2023')) opts.add({ title: 'FATCA/CRS-E Apr-2023', value: 'fatca_crse_2023' });\r\n if (formtypes.some(ft => ft.key === 'rc518')) opts.add({ title: 'RC518 2023', value: 'rc518' });\r\n if (formtypes.some(ft => ft.key === 'rc519')) opts.add({ title: 'RC519 2023', value: 'rc519' });\r\n break;\r\n case 'formSourceDescription':\r\n opts = new Set();\r\n opts.add({ title: 'Scanned Form Upload', value: 'manualupload' });\r\n opts.add({ title: 'Digital Entry', value: 'digitalentry' });\r\n opts.add({ title: 'Online', value: 'online' });\r\n opts.add({ title: 'Batch', value: 'batch' });\r\n break;\r\n case 'isValid':\r\n opts = new Set();\r\n opts.add('true');\r\n opts.add('false');\r\n break;\r\n case 'validityDescription':\r\n opts = new Set();\r\n opts.add({ title: 'Valid (Not Expired)', value: 'validactive' });\r\n opts.add({ title: 'Valid (Under Review)', value: 'validunderreview' });\r\n opts.add({ title: 'Invalid', value: 'invalid' });\r\n opts.add({ title: 'Expired', value: 'expired' });\r\n opts.add({ title: 'Not Validated', value: 'notvalidated' });\r\n break;\r\n default:\r\n break;\r\n }\r\n return [...opts.values()];\r\n }, [id]);\r\n\r\n if (!options || options.length === 0) {\r\n options = baseOptions;\r\n }\r\n\r\n if (!filterType) {\r\n filterType = 'multiselect';\r\n }\r\n\r\n const keyHit = (e) => {\r\n if (e.keyCode === 13) {\r\n setShowFilter(false);\r\n setFilter({\r\n filter: inputValue,\r\n filterType: `${ filterType }`\r\n });\r\n }\r\n };\r\n\r\n const filterInput = React.createRef();\r\n\r\n const clear = () => {\r\n for (let i = 0, l = filterInput.current.options.length; i < l; i += 1) {\r\n filterInput.current.options[i].selected = false;\r\n }\r\n setShowFilter(false);\r\n setInputValue([]);\r\n setFilter({\r\n filter: [],\r\n filterType: 'multiselect'\r\n });\r\n };\r\n\r\n React.useEffect(() => {\r\n setInputValue(filterValue != null && filterValue.filter.length > 0 ? filterValue.filter : '');\r\n\r\n if (filterValue?.filter && filterValue.filter.length > 0) {\r\n for (let i = 0, l = filterValue.filter.length; i < l; i += 1) {\r\n for (let j = 0, k = filterInput.current.options.length; j < k; j += 1) {\r\n if (filterInput.current.options[j].value === filterValue.filter[i]) {\r\n filterInput.current.options[j].selected = true;\r\n }\r\n }\r\n }\r\n } else {\r\n for (let i = 0, l = filterInput.current.options.length; i < l; i += 1) {\r\n filterInput.current.options[i].selected = false;\r\n }\r\n }\r\n }, [filterValue]);\r\n\r\n React.useEffect(() => {\r\n if (showFilter) {\r\n document.addEventListener('mousedown', handleClickOutside);\r\n } else {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n }\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [showFilter]);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n const ops = e.target.options;\r\n const value = [];\r\n for (let i = 0, l = ops.length; i < l; i += 1) {\r\n if (ops[i].selected) {\r\n value.push(ops[i].value);\r\n }\r\n }\r\n setInputValue(value);\r\n } }\r\n onKeyUp={ (e) => { keyHit(e); } }\r\n >\r\n { options.map((option, i) => (\r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n {\r\n setShowFilter(false);\r\n setFilter({ filter: inputValue, filterType: 'multiselect' });\r\n } }\r\n > Filter\r\n
    \r\n
    \r\n {\r\n clear();\r\n } }\r\n > Clear\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nMultiSelectFilter.propTypes = {\r\n column: PropTypes.shape().isRequired,\r\n};\r\n\r\nMultiSelectFilter.defaultProps = {\r\n};\r\n\r\nexport default MultiSelectFilter;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nconst WorkflowStageFilter = ({ column: { filterValue, setFilter, preFilteredRows, id, filterType, options }, showStpOnly }) => {\r\n const [inputValue, setInputValue] = React.useState([]);\r\n const [showFilter, setShowFilter] = React.useState(false);\r\n const [stpOnly, setStpOnly] = React.useState(filterValue?.options?.stpOnly === true && showStpOnly === true);\r\n const node = React.useRef();\r\n\r\n const handleClickOutside = (e) => {\r\n if (node === null || node.current === null) {\r\n return;\r\n }\r\n if (node.current.contains(e.target)) {\r\n // inside click\r\n return;\r\n }\r\n setShowFilter(false);\r\n };\r\n\r\n const baseOptions = React.useMemo(() => {\r\n const opts = new Set();\r\n opts.add({ title: 'Pending Initial Review', value: 'pendingreview' });\r\n opts.add({ title: 'Under Initial Review', value: 'underinitialreview' });\r\n opts.add({ title: 'Pending Secondary Review', value: 'pendingsecondaryreview' });\r\n opts.add({ title: 'Under Secondary Review', value: 'undersecondaryreview' });\r\n opts.add({ title: 'Pending Expert Review', value: 'pendingexpertreview' });\r\n opts.add({ title: 'Under Expert Review', value: 'underexpertreview' });\r\n opts.add({ title: 'Complete', value: 'complete' });\r\n opts.add({ title: 'Automatically Closed', value: 'closed' });\r\n\r\n return [...opts.values()];\r\n }, [id]);\r\n\r\n if (!options || options.length === 0) {\r\n options = baseOptions;\r\n }\r\n\r\n if (!filterType) {\r\n filterType = 'workflow';\r\n }\r\n\r\n const filterInput = React.createRef();\r\n\r\n const clear = () => {\r\n for (let i = 0, l = filterInput.current.options.length; i < l; i += 1) {\r\n filterInput.current.options[i].selected = false;\r\n }\r\n setShowFilter(false);\r\n setInputValue([]);\r\n setStpOnly(false);\r\n setFilter({\r\n filter: [],\r\n options: null,\r\n filterType: `${ filterType }`\r\n });\r\n };\r\n\r\n const apply = () => {\r\n setShowFilter(false);\r\n setFilter({\r\n filter: inputValue,\r\n\r\n options: stpOnly ? { stpOnly } : null,\r\n filterType: `${ filterType }`\r\n });\r\n };\r\n\r\n React.useEffect(() => {\r\n setInputValue(filterValue != null && filterValue.filter.length > 0 ? filterValue.filter : '');\r\n setStpOnly(filterValue?.options?.stpOnly === true);\r\n\r\n if (filterValue?.filter && filterValue.filter.length > 0) {\r\n for (let i = 0, l = filterValue.filter.length; i < l; i += 1) {\r\n for (let j = 0, k = filterInput.current.options.length; j < k; j += 1) {\r\n if (filterInput.current.options[j].value === filterValue.filter[i]) {\r\n filterInput.current.options[j].selected = true;\r\n }\r\n }\r\n }\r\n } else {\r\n for (let i = 0, l = filterInput.current.options.length; i < l; i += 1) {\r\n filterInput.current.options[i].selected = false;\r\n }\r\n }\r\n }, [filterValue]);\r\n\r\n React.useEffect(() => {\r\n if (showFilter) {\r\n document.addEventListener('mousedown', handleClickOutside);\r\n } else {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n }\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [showFilter]);\r\n\r\n const keyHit = (e) => {\r\n if (e.keyCode === 13) {\r\n apply();\r\n }\r\n };\r\n\r\n const onStpClick = e => setStpOnly(e.target.checked);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n const ops = e.target.options;\r\n const value = [];\r\n for (let i = 0, l = ops.length; i < l; i += 1) {\r\n if (ops[i].selected) {\r\n value.push(ops[i].value);\r\n }\r\n }\r\n setInputValue(value);\r\n } }\r\n onKeyUp={ (e) => { keyHit(e); } }\r\n >\r\n { options.map((option, i) => (\r\n \r\n ))}\r\n \r\n
    \r\n
    0 && inputValue.includes('complete') ? '' : 'hide' }` }>\r\n onStpClick(e) }\r\n />\r\n \r\n
    \r\n
    \r\n apply() }\r\n > Filter\r\n
    \r\n
    \r\n {\r\n clear();\r\n } }\r\n > Clear\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nWorkflowStageFilter.propTypes = {\r\n column: PropTypes.shape().isRequired,\r\n showStpOnly: PropTypes.bool\r\n};\r\n\r\nWorkflowStageFilter.defaultProps = {\r\n showStpOnly: false\r\n};\r\n\r\nexport default WorkflowStageFilter;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AccessControl from 'components/AccessControl';\r\n\r\nconst CustomerLinkCell = ({ dataKey, data, permissions }) => \r\n { data && data[dataKey] != null && data[dataKey] > 0 && AccessControl.hasPermission(permissions, [ActivityPerms.customerEdit, ActivityPerms.customerPageView])\r\n && \r\n { `${ data.customerId } - ${ data.customerName }` }\r\n }\r\n { data && data[dataKey] != null && data[dataKey] > 0 && !AccessControl.hasPermission(permissions, [ActivityPerms.customerEdit, ActivityPerms.customerPageView])\r\n && \r\n { `${ data.customerId } - ${ data.customerName }` }\r\n }\r\n { (!data || !data[dataKey] == null || data[dataKey] <= 0) && 'N/A' }\r\n;\r\n\r\nCustomerLinkCell.propTypes = {\r\n dataKey: PropTypes.string,\r\n data: PropTypes.shape(),\r\n permissions: PropTypes.arrayOf(PropTypes.string)\r\n};\r\n\r\nCustomerLinkCell.defaultProps = {\r\n dataKey: null,\r\n data: null,\r\n permissions: null\r\n};\r\n\r\nexport default CustomerLinkCell;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AccessControl from 'components/AccessControl';\r\n\r\nconst AccountLinkCell = ({ dataKey, data, permissions }) => \r\n { data && data[dataKey] && AccessControl.hasPermission(permissions, [ActivityPerms.accountEdit, ActivityPerms.accountPageView])\r\n && \r\n { `${ data.accountNumber } - ${ data.accountName }` }\r\n }\r\n { data && data[dataKey] && !AccessControl.hasPermission(permissions, [ActivityPerms.accountEdit, ActivityPerms.accountPageView])\r\n && \r\n { `${ data.accountNumber } - ${ data.accountName }` }\r\n }\r\n { (!data || !data[dataKey]) && 'N/A' }\r\n;\r\n\r\nAccountLinkCell.propTypes = {\r\n dataKey: PropTypes.string,\r\n data: PropTypes.shape(),\r\n permissions: PropTypes.arrayOf(PropTypes.string)\r\n};\r\n\r\nAccountLinkCell.defaultProps = {\r\n dataKey: null,\r\n data: null,\r\n permissions: null\r\n};\r\n\r\nexport default AccountLinkCell;\r\n","import React from 'react';\r\nimport MultiSelectFilter from 'components/ReactTable/Filters/MultiSelectFilter';\r\nimport WorkflowStageFilter from 'components/ReactTable/Filters/WorkflowStageFilter';\r\nimport CustomerLinkCell from 'components/ReactTable/CellRenderers/CustomerLinkCell';\r\nimport AccountLinkCell from 'components/ReactTable/CellRenderers/AccountLinkCell';\r\n\r\n// note: for the sorting to work, the 'accessor' properties below must have the same name as the backend property to be sorted by\r\nconst formColumnDefs = permissions => [\r\n {\r\n Header: 'Form Type',\r\n accessor: 'formTypeDescription',\r\n Filter: MultiSelectFilter,\r\n className: 'col-7p5'\r\n },\r\n {\r\n Header: 'Customer',\r\n accessor: 'customer',\r\n Cell: (cellInfo) => {\r\n const { row: { original } } = cellInfo;\r\n return ();\r\n },\r\n className: 'col-12p5'\r\n },\r\n {\r\n Header: 'Account',\r\n accessor: 'account',\r\n Cell: (cellInfo) => {\r\n const { row: { original } } = cellInfo;\r\n return ();\r\n },\r\n className: 'col-12p5'\r\n },\r\n {\r\n Header: 'Source',\r\n accessor: 'formSourceDescription',\r\n Filter: MultiSelectFilter,\r\n className: 'col-6p5'\r\n },\r\n {\r\n Header: 'Workflow',\r\n accessor: 'workflowStatus',\r\n Filter: props => ,\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Validity',\r\n accessor: 'validityDescription',\r\n Filter: MultiSelectFilter,\r\n className: 'col-7p5'\r\n },\r\n {\r\n Header: 'Date of Validation',\r\n accessor: 'validationDate',\r\n disableFilters: true,\r\n className: 'col-7p5'\r\n },\r\n {\r\n Header: 'Uploaded By',\r\n accessor: 'uploadedBy',\r\n disableSortBy: true,\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Assigned To',\r\n accessor: 'workflowUsername',\r\n disableSortBy: true,\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Item Id',\r\n accessor: 'itemId',\r\n isVisible: false\r\n }\r\n];\r\n\r\nexport default formColumnDefs;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst SelectFilter = ({ column: { setFilter, preFilteredRows, id, filterValue, filterType, options }, className }) => {\r\n const [inputValue, setInputValue] = React.useState('');\r\n const [showFilter, setShowFilter] = React.useState(false);\r\n const formtypes = useSelector(state => state.auth.settings.formtypes);\r\n\r\n const node = React.useRef();\r\n\r\n const handleClickOutside = (e) => {\r\n if (node === null || node.current === null) {\r\n return;\r\n }\r\n if (node.current.contains(e.target)) {\r\n // inside click\r\n return;\r\n }\r\n setShowFilter(false);\r\n };\r\n\r\n const baseOptions = React.useMemo(() => {\r\n let opts = new Set();\r\n\r\n switch (id) {\r\n case 'workflowStatus':\r\n case 'workflowStageDescription':\r\n opts = new Set();\r\n opts.add({ title: 'Pending Initial Review', value: 'pendingreview' });\r\n opts.add({ title: 'Under Initial Review', value: 'underinitialreview' });\r\n opts.add({ title: 'Pending Secondary Review', value: 'pendingsecondaryreview' });\r\n opts.add({ title: 'Under Secondary Review', value: 'undersecondaryreview' });\r\n opts.add({ title: 'Pending Expert Review', value: 'pendingexpertreview' });\r\n opts.add({ title: 'Under Expert Review', value: 'underexpertreview' });\r\n opts.add({ title: 'Complete', value: 'complete' });\r\n break;\r\n case 'formTypeDescription':\r\n opts = new Set();\r\n if (formtypes.some(ft => ft.key === 'w8ben_2014')) opts.add({ title: 'W-8BEN Jul-2014', value: 'w8ben_2014' });\r\n if (formtypes.some(ft => ft.key === 'w8ben')) opts.add({ title: 'W-8BEN Jul-2017', value: 'w8ben' });\r\n if (formtypes.some(ft => ft.key === 'w8ben_2021')) opts.add({ title: 'W-8BEN Oct-2021', value: 'w8ben_2021' });\r\n if (formtypes.some(ft => ft.key === 'w8bene')) opts.add({ title: 'W-8BEN-E Apr-2016', value: 'w8bene' });\r\n if (formtypes.some(ft => ft.key === 'w8bene_2017')) opts.add({ title: 'W-8BEN-E Jul-2017', value: 'w8bene_2017' });\r\n if (formtypes.some(ft => ft.key === 'w8bene_2021')) opts.add({ title: 'W-8BEN-E Oct-2021', value: 'w8bene_2021' });\r\n if (formtypes.some(ft => ft.key === 'w8imy')) opts.add({ title: 'W-8IMY Sep-2016', value: 'w8imy' });\r\n if (formtypes.some(ft => ft.key === 'w8imy_2017')) opts.add({ title: 'W-8IMY Jun-2017', value: 'w8imy_2017' });\r\n if (formtypes.some(ft => ft.key === 'w8imy_2021')) opts.add({ title: 'W-8IMY Oct-2021', value: 'w8imy_2021' });\r\n if (formtypes.some(ft => ft.key === 'w8exp_2016')) opts.add({ title: 'W-8EXP Sep-2016', value: 'w8exp_2016' });\r\n if (formtypes.some(ft => ft.key === 'w8exp')) opts.add({ title: 'W-8EXP Jul-2017', value: 'w8exp' });\r\n if (formtypes.some(ft => ft.key === 'w8exp_2023')) opts.add({ title: 'W-8EXP Oct-2023', value: 'w8exp_2023' });\r\n if (formtypes.some(ft => ft.key === 'w8eci_2014')) opts.add({ title: 'W-8ECI Feb-2014', value: 'w8eci_2014' });\r\n if (formtypes.some(ft => ft.key === 'w8eci')) opts.add({ title: 'W-8ECI Jul-2017', value: 'w8eci' });\r\n if (formtypes.some(ft => ft.key === 'w8eci_2021')) opts.add({ title: 'W-8ECI Oct-2021', value: 'w8eci_2021' });\r\n if (formtypes.some(ft => ft.key === 'w9')) opts.add({ title: 'W-9 Dec-2014', value: 'w9' });\r\n if (formtypes.some(ft => ft.key === 'w9_2017')) opts.add({ title: 'W-9 Nov-2017', value: 'w9_2017' });\r\n if (formtypes.some(ft => ft.key === 'w9_2018')) opts.add({ title: 'W-9 Oct-2018', value: 'w9_2018' });\r\n if (formtypes.some(ft => ft.key === 'w9_2024')) opts.add({ title: 'W-9 Oct-2024', value: 'w9_2024' });\r\n if (formtypes.some(ft => ft.key === 'crscp')) opts.add({ title: 'CRSCP 2017', value: 'crscp' });\r\n if (formtypes.some(ft => ft.key === 'crse')) opts.add({ title: 'CRSE 2017', value: 'crse' });\r\n if (formtypes.some(ft => ft.key === 'crsi')) opts.add({ title: 'CRSI 2017', value: 'crsi' });\r\n if (formtypes.some(ft => ft.key === 'crsi_2024')) opts.add({ title: 'CRSI 2024', value: 'crsi_2024' });\r\n if (formtypes.some(ft => ft.key === 'dt_crscp')) opts.add({ title: 'Deloitte CRS-CP', value: 'dt_crscp' });\r\n if (formtypes.some(ft => ft.key === 'dt_crsi')) opts.add({ title: 'Deloitte CRS-I', value: 'dt_crsi' });\r\n if (formtypes.some(ft => ft.key === 'dt_crse')) opts.add({ title: 'Deloitte CRS-E', value: 'dt_crse' });\r\n if (formtypes.some(ft => ft.key === 'ucrscp_2019')) opts.add({ title: 'Universal CRSCP 2019', value: 'ucrscp_2019' });\r\n if (formtypes.some(ft => ft.key === 'ucrse_2019')) opts.add({ title: 'Universal CRSE 2019', value: 'ucrse_2019' });\r\n if (formtypes.some(ft => ft.key === 'ucrsi_2023')) opts.add({ title: 'Universal CRSI 2023', value: 'ucrsi_2023' });\r\n break;\r\n case 'formSourceDescription':\r\n opts = new Set();\r\n opts.add({ title: 'Manual Upload', value: 'manualupload' });\r\n opts.add({ title: 'Online', value: 'online' });\r\n opts.add({ title: 'Batch', value: 'batch' });\r\n break;\r\n case 'isValid':\r\n opts = new Set();\r\n opts.add({ value: 'true', title: 'Valid' });\r\n opts.add({ value: 'false', title: 'Invalid' });\r\n opts.add({ value: 'null', title: 'N/A' });\r\n break;\r\n default:\r\n }\r\n return [...opts.values()];\r\n }, [id]);\r\n\r\n const keyHit = (e) => {\r\n if (e.keyCode === 13) {\r\n setShowFilter(false);\r\n setFilter({\r\n filter: [inputValue],\r\n filterType: `${ filterType }`\r\n });\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n setInputValue(null);\r\n }, [preFilteredRows]);\r\n\r\n React.useEffect(() => {\r\n setInputValue(filterValue != null && filterValue.filter.length > 0 ? filterValue.filter[0] : '');\r\n }, [filterValue]);\r\n\r\n React.useEffect(() => {\r\n if (showFilter) {\r\n document.addEventListener('mousedown', handleClickOutside);\r\n } else {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n }\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [showFilter]);\r\n\r\n if (!options || options.length === 0) {\r\n options = baseOptions;\r\n }\r\n\r\n if (!filterType) {\r\n filterType = `${ filterType }`;\r\n }\r\n\r\n const clear = () => {\r\n setShowFilter(false);\r\n setInputValue(null);\r\n setFilter({\r\n filter: [],\r\n filterType: `${ filterType }`\r\n });\r\n };\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { setInputValue(e.target.value); } }\r\n onKeyUp={ (e) => { keyHit(e); } }\r\n value={ inputValue ?? 'No Selection' }\r\n >\r\n \r\n {options.map((option, i) => (\r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n {\r\n setShowFilter(false);\r\n setFilter({ filter: [inputValue], filterType: `${ filterType }` });\r\n } }\r\n > Filter\r\n
    \r\n
    \r\n clear() }\r\n > Clear\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nSelectFilter.propTypes = {\r\n column: PropTypes.shape().isRequired,\r\n className: PropTypes.string\r\n};\r\n\r\nSelectFilter.defaultProps = {\r\n className: 'clickover-bottom'\r\n};\r\n\r\nexport default SelectFilter;\r\n","const getOptions = (filterName) => {\r\n let filterTitles;\r\n switch (filterName) {\r\n case 'isActive':\r\n filterTitles = ['Active', 'Inactive'];\r\n break;\r\n case 'isDirect':\r\n filterTitles = ['Yes', 'No'];\r\n break;\r\n case 'isFinancialAccount':\r\n filterTitles = ['Yes', 'No', 'N/A'];\r\n break;\r\n default:\r\n break;\r\n }\r\n if (filterTitles) {\r\n const options = [\r\n { title: filterTitles[0], value: 'true' },\r\n { title: filterTitles[1], value: 'false' }\r\n ];\r\n if (filterTitles.length === 3) {\r\n options.push({ title: filterTitles[2], value: 'null' });\r\n }\r\n return options;\r\n }\r\n return [];\r\n};\r\n\r\nexport default getOptions;\r\n","import React from 'react';\r\nimport SelectFilter from 'components/ReactTable/Filters/SelectFilter';\r\nimport AccountLinkCell from 'components/ReactTable/CellRenderers/AccountLinkCell';\r\nimport GetOptions from './GetOptions';\r\n\r\n// note: for the sorting to work, the 'accessor' properties below must have the same name as the backend property to be sorted by\r\nconst accountColumnDefs = permissions => [\r\n {\r\n Header: 'Account',\r\n accessor: 'account',\r\n Cell: (cellInfo) => {\r\n const { row: { original } } = cellInfo;\r\n return ();\r\n },\r\n className: 'col-20p'\r\n },\r\n {\r\n Header: 'Legal Entity',\r\n accessor: 'legalEntityName',\r\n className: 'col-20p'\r\n },\r\n {\r\n Header: 'Parent Account',\r\n accessor: 'parentAccountName',\r\n className: 'col-20p'\r\n },\r\n {\r\n Header: 'Financial Account?',\r\n accessor: 'isFinancialAccount',\r\n Filter: SelectFilter,\r\n filterType: 'bool',\r\n options: GetOptions('isFinancialAccount'),\r\n className: 'col-15p'\r\n },\r\n {\r\n Header: 'Is Active?',\r\n accessor: 'isActive',\r\n Filter: SelectFilter,\r\n filterType: 'bool',\r\n options: GetOptions('isActive'),\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Is Direct?',\r\n accessor: 'isDirect',\r\n Filter: SelectFilter,\r\n filterType: 'bool',\r\n options: GetOptions('isDirect'),\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Item Id',\r\n accessor: 'itemId',\r\n isVisible: false\r\n }\r\n];\r\n\r\nexport default accountColumnDefs;\r\n","const Chapter3Status = [\r\n { value: 1, name: 'UswaFi', description: 'US WHD Agent - FI' },\r\n { value: 2, name: 'UswaOther', description: 'US WHD Agent - Other' },\r\n { value: 3, name: 'TerritoryFiUsPerson', description: 'Territory FI - treated as US Person' },\r\n { value: 4, name: 'TerritoryFiNonUsPerson', description: 'Territory FI - not treated as US Person' },\r\n { value: 5, name: 'UsBranchParticipatingFfiUsPerson', description: 'US Branch of Participating FFI - treated as US Person' },\r\n { value: 6, name: 'UsBranchParticipatingFfiNonUsPerson', description: 'US Branch of Participating FFI - not treated as US Person' },\r\n { value: 7, name: 'UsBranchREgisteredDeemedCompliantFfi', description: 'US Branch of Registered Deemed - ECI presumption applied' },\r\n { value: 8, name: 'Partnership', description: 'Partnership other than Withholding Foreign Partnership' },\r\n { value: 9, name: 'WithholdingForeignPartnership', description: 'Withholding Foreign Partnership' },\r\n { value: 10, name: 'Trust', description: 'Trust other than Withholding Foreign Trust' },\r\n { value: 11, name: 'WithholdingForeignTrust', description: 'Withholding Foreign Trust' },\r\n { value: 12, name: 'QualifiedIntermediary', description: 'Qualified Intermediary' },\r\n { value: 13, name: 'QualifiedSecuritiesLenderQi', description: 'Qualified Securities Lender - Qualified Intermediary' },\r\n { value: 14, name: 'QualifiedSecuritiesLenderOther', description: 'Qualified Securities Lender - Other' },\r\n { value: 15, name: 'Corporation', description: 'Corporation' },\r\n { value: 16, name: 'Individual', description: 'Individual' },\r\n { value: 17, name: 'Estate', description: 'Estate' },\r\n { value: 18, name: 'PrivateFoundation', description: 'Private Foundation' },\r\n { value: 19, name: 'InternationalOrganization', description: 'International Organization' },\r\n { value: 20, name: 'TaxExemptOrganization', description: 'Tax Exempt Organization (Section 501(c) entities)' },\r\n { value: 21, name: 'UnknownRecipient', description: 'Unknown Recipient' },\r\n { value: 22, name: 'ArtistOrAthlete', description: 'Artist or Athlete' },\r\n { value: 23, name: 'Pension', description: 'Pension' },\r\n { value: 24, name: 'ForeignCentralBankOfIssue', description: 'Foreign Central Bank of Issue' },\r\n { value: 25, name: 'NonQualifiedIntermediary', description: 'Nonqualified Intermediary' },\r\n { value: 26, name: 'HybridEntity', description: 'Hybrid entity making Treaty Claim' },\r\n { value: 27, name: 'WithholdingRatePoolGeneral', description: 'WHD Rate Pool - General', whsPooledStatus: true },\r\n { value: 28, name: 'WithholdingRatePoolExemptOrganization', description: 'WHD Rate Pool - Exempt Organization', whsPooledStatus: true },\r\n { value: 29, name: 'PaiWithholdingRatePoolGeneral', description: 'PAI WHD Rate Pool - General', pooledStatus: true },\r\n { value: 30, name: 'PaiWithholdingRatePoolExemptOrganization', description: 'PAI WHD Rate Pool - Exempt Organization', whsPooledStatus: true },\r\n { value: 31, name: 'AgencyWithholdingRatePoolGeneral', description: 'Agency WHD Rate Pool - General', whsPooledStatus: true },\r\n { value: 32, name: 'AgencyWithholdingRatePoolExemptOrganization', description: 'Agency WHD Rate Pool - Exempt Organization', whsPooledStatus: true },\r\n { value: 33, name: 'JointAccountWithholdingRate', description: 'Joint Account Withholding Rate' },\r\n { value: 34, name: 'USWithholdingAgentForeignBranchFi', description: 'US WHD Agent - Foreign branch of FI' },\r\n { value: 35, name: 'QualifiedDerivativesDealer', description: 'Qualified Derivatives Dealer' },\r\n { value: 36, name: 'ForeignGovernmentIntegraPart', description: 'Foreign Government - Integral Part' },\r\n { value: 37, name: 'ForeignGovernmentControlledEntity', description: 'Foreign Government - Controlled Entity' },\r\n { value: 38, name: 'PubliclyTradedPartnership', description: 'Publicly Traded Partnership' },\r\n { value: 39, name: 'DisclosingQualifiedIntermediary', description: 'Disclosing Qualified Intermediary' },\r\n { value: 100, name: 'USPersonSpecified', description: 'U.S. Person (Specified)', whsPooledStatus: true },\r\n { value: 101, name: 'WithholdingQualifiedHolderUnderSection1445', description: 'Withholding Qualified Holder Under Section 1445' }\r\n];\r\n\r\nChapter3Status.findByName = (statusName) => {\r\n if (!statusName || statusName.length <= 0) {\r\n return null;\r\n }\r\n\r\n const status = Chapter3Status.find(x => x.name.toLowerCase() === statusName.toLowerCase());\r\n return status || null;\r\n};\r\n\r\nexport default Chapter3Status;\r\n","const Chapter4Status = [\r\n { value: 1, name: 'USWHDAgentFi', description: 'US WHD Agent - FI' },\r\n { value: 2, name: 'USWHDAgentOther', description: 'US WHD Agent - Other' },\r\n { value: 3, name: 'TerritoryFinancialInstitution', description: 'Territory Financial Institution' },\r\n { value: 4, name: 'TerritoryFiUsPerson', description: 'TerritoryFFI - US' },\r\n { value: 5, name: 'ParticipatingFfi', description: 'Participating FFI' },\r\n { value: 6, name: 'ReportingModel2Ffi', description: 'Reporting Model 2 FFI' },\r\n { value: 7, name: 'ReportingModel1Ffi', description: 'Reporting Model 1 FFI' },\r\n { value: 8, name: 'SponsoredFfi', description: 'Sponsored FFI' },\r\n { value: 9, name: 'RegisteredDeemedCompliantFfi', description: 'Registered Deemed Compliant FFI' },\r\n { value: 10, name: 'CertifiedDeemedCompliantLtdLifeInvestmentEntity', description: 'Certified Deemed Compliant Limited Life Dept Investment Entity' },\r\n { value: 11, name: 'CertifiedDeemedCompliantFfiLowValueAccounts', description: 'Certified Deemed Compliant FFI Low Value Accounts' },\r\n { value: 12, name: 'CertifiedDeemedCompliantNonRegisteringLocalBank', description: 'Certified Deemed Compliant Non Registering Local Bank' },\r\n { value: 13, name: 'CertifiedDeemedCompliantSponsored', description: 'Certified Deemed Compliant Sponsored' },\r\n { value: 14, name: 'CertifiedDeemedCompliantInvestmentAdvisors', description: 'Certified Deemed Compliant Investment Advisors' },\r\n { value: 15, name: 'NonParticipatingFfi', description: 'Non Participating FFI' },\r\n { value: 16, name: 'OwnerDocumentedFfi', description: 'Owner Documented FFI' },\r\n { value: 17, name: 'UsBranchUsPerson', description: 'US Branch - US Person' },\r\n { value: 18, name: 'UsBranchSection1471', description: 'US Branch - Section 1471' },\r\n { value: 19, name: 'PassiveNffe', description: 'Passive NFFE' },\r\n { value: 20, name: 'PassiveNffeNoUsOwners', description: 'PSVNFFE - No US Owner' },\r\n { value: 21, name: 'PubliclyTradedNffeOrNffeAffiliate', description: 'Publicly Traded NFFE Affiliate' },\r\n { value: 22, name: 'ActiveNffe', description: 'Active NFFE' },\r\n { value: 23, name: 'Individual', description: 'Individual' },\r\n { value: 24, name: 'Organization501C', description: '501c Organization' },\r\n { value: 25, name: 'ExceptedTerritoryNffe', description: 'Excepted Territory NFFE' },\r\n { value: 26, name: 'ExceptedTerritoryNffeOther', description: 'Excepted Territory NFFE - Other' },\r\n { value: 27, name: 'ExemptBeneficialOwner', description: 'Exempt Beneficial Owner' },\r\n { value: 28, name: 'EntityOwnedByBeneficialOwners', description: 'Entity Owned By Beneficial Owner' },\r\n { value: 29, name: 'UnknownRecipient', description: 'Unknown Recipient' },\r\n { value: 30, name: 'RecalcitrantAccountHolder', description: 'Recalcitrant Account Holder' },\r\n { value: 31, name: 'NonReportingIgaFfi', description: 'Non Reporting IGA FFI' },\r\n { value: 32, name: 'DirectReportingNffe', description: 'Direct Reporting NFFE' },\r\n { value: 33, name: 'UsReportableAccount', description: 'US Reportable Account' },\r\n { value: 34, name: 'NonconsentingUsAccount', description: 'Nonconsenting US Acc.' },\r\n { value: 35, name: 'SponsoredDirectReportingNffe', description: 'Sponsored Direct Reporting NFFE' },\r\n { value: 36, name: 'ExceptedInterAffiliateFfi', description: 'Excepted Inter Affiliate FFI' },\r\n { value: 37, name: 'UndocumentedPreExistingObligation', description: 'Undocumented PreExisting Obligation' },\r\n { value: 38, name: 'UsBranchEci', description: 'US Branch - ECI' },\r\n { value: 39, name: 'NonFinancialAccount', description: 'Non Financial Account' },\r\n { value: 40, name: 'PassiveNFFEFfi', description: 'Passive NFFE FFI' },\r\n { value: 41, name: 'Nffe1472Withholding', description: 'NFFE - 1472 Withholding' },\r\n { value: 42, name: 'RecalcitrantPoolNonUsIndicia', description: 'Recalcitrant Pool - No U.S. Indicia', whsPooledStatus: true },\r\n { value: 43, name: 'RecalcitrantPoolUsIndicia', description: 'Recalcitrant Pool - U.S. Indicia', whsPooledStatus: true },\r\n { value: 44, name: 'RecalcitrantPoolDormantAccount', description: 'Recalcitrant Pool - Dormant Account', whsPooledStatus: true },\r\n { value: 45, name: 'RecalcitrantPoolUsPersons', description: 'Recalcitrant Pool - U.S. Persons', whsPooledStatus: true },\r\n { value: 46, name: 'RecalcitrantPoolPassiveNffe', description: 'Recalcitrant Pool - Passive NFFEs', whsPooledStatus: true },\r\n { value: 47, name: 'NonParticipatingFfiPool', description: 'Non Participating FFI Pool', whsPooledStatus: true },\r\n { value: 48, name: 'UsPayeesPool', description: 'US Payees Pool', whsPooledStatus: true },\r\n { value: 49, name: 'QiRecalcitrantPoolGeneral', description: 'QI - Recalcitrant Pool General', whsPooledStatus: true },\r\n { value: 50, name: 'UswaForeignBranchFi', description: 'USWA - Foreign Branch' },\r\n { value: 80, name: 'InternationalOrganization', description: 'International Organization' },\r\n { value: 100, name: 'USPersonSpecified', description: 'U.S. Person (Specified)' },\r\n { value: 101, name: 'USPersonExempt', description: 'U.S. Person (Non-Specified)' }\r\n];\r\n\r\nChapter4Status.findByName = (statusName) => {\r\n if (!statusName || statusName.length <= 0) {\r\n return null;\r\n }\r\n\r\n const status = Chapter4Status.find(x => x.name.toLowerCase() === statusName.toLowerCase());\r\n return status || null;\r\n};\r\n\r\nexport default Chapter4Status;\r\n","const CRSClassificationStatus = [\r\n { value: 1, name: 'Individual', description: 'Individual' },\r\n { value: 2, name: 'FiInvestmentEntity', description: 'Financial Institution - Investment Entity' },\r\n { value: 3, name: 'FiOther', description: 'Financial Institution - Other' },\r\n { value: 4, name: 'ActiveNfeRegularlyTraded', description: 'Active NFE - Regularly Traded' },\r\n { value: 5, name: 'ActiveNfeGovernmentEntityOrCentralBank', description: 'Active NFE - Government Entity or Central Bank' },\r\n { value: 6, name: 'ActiveNfeInternationalOrganisation', description: 'Active NFE - International Organisation' },\r\n { value: 7, name: 'ActiveNfeOther', description: 'Active NFE - Other' },\r\n { value: 8, name: 'PassiveNfe', description: 'Passive NFE' },\r\n { value: 9, name: 'ControllingPerson', description: 'Controlling Person' },\r\n { value: 10, name: 'DepositoryCustodialOrSpecified', description: 'Financial Institution - Depositary, Custodial, Specified Insurance' },\r\n];\r\n\r\nexport default CRSClassificationStatus;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport moment from 'moment';\r\nimport isValid from 'date-fns/isValid';\r\nimport DateTimes from 'components/Common/DateTimes';\r\nimport DatePicker from 'react-datepicker';\r\n\r\nconst DateRangeFilter = ({ column: { filterValue, setFilter, preFilteredRows, id }, dateFormat, popperPlacement, popperModifiers }) => {\r\n const [inputValue, setInputValue] = React.useState([]);\r\n const [showFilter, setShowFilter] = React.useState(false);\r\n const [overflow, setOverflow] = React.useState(false);\r\n\r\n const GetDate = (dateString) => {\r\n if (dateString !== null && dateString !== undefined) {\r\n return moment(dateString, dateFormat.toUpperCase()).toDate();\r\n }\r\n return null;\r\n };\r\n\r\n const [minDate, maxDate] = React.useMemo(() => {\r\n let minVal = null;\r\n let maxVal = null;\r\n\r\n if (preFilteredRows && preFilteredRows.length) {\r\n const baseDate = GetDate(preFilteredRows[0]);\r\n minVal = isValid(baseDate) ? baseDate : new Date(0);\r\n maxVal = isValid(baseDate) ? baseDate : GetDate(DateTimes.today);\r\n preFilteredRows.forEach((row) => {\r\n const rowDate = moment(row);\r\n minVal = rowDate <= minVal ? rowDate : minVal;\r\n maxVal = rowDate >= maxVal ? rowDate : maxVal;\r\n });\r\n }\r\n\r\n return [minVal, maxVal];\r\n }, [id, preFilteredRows]);\r\n\r\n React.useEffect(() => {\r\n setInputValue(filterValue && filterValue.filter && filterValue.filter.length ? filterValue.filter : []);\r\n }, [filterValue]);\r\n\r\n const clear = () => {\r\n setShowFilter(false);\r\n setOverflow(false);\r\n setInputValue([]);\r\n setFilter({ filter: [], filterType: 'between' });\r\n };\r\n\r\n return (\r\n \r\n setShowFilter(!showFilter) }\r\n className={ `btn btn-link filter-menu ${ inputValue != null && inputValue.length > 0 ? 'filter-active' : '' }` }\r\n >\r\n ☰\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    From:
    \r\n
    \r\n setOverflow(true) }\r\n onCalendarClose={ () => setOverflow(false) }\r\n onChange={ (e) => {\r\n const val = GetDate(e);\r\n const oldMax = GetDate(inputValue[1]);\r\n setInputValue([val, oldMax]);\r\n } }\r\n popperPlacement={ popperPlacement }\r\n popperModifiers={ popperModifiers ?? [{ name: 'flip', enabled: false }] }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    To:
    \r\n
    \r\n setOverflow(true) }\r\n onCalendarClose={ () => setOverflow(false) }\r\n onChange={ (e) => {\r\n const val = GetDate(e);\r\n const oldMin = GetDate(inputValue[0]);\r\n setInputValue([oldMin, val]);\r\n } }\r\n popperPlacement={ popperPlacement }\r\n popperModifiers={ popperModifiers ?? [{ name: 'flip', enabled: false }] }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setShowFilter(false);\r\n setFilter({ filter: inputValue, filterType: 'between' });\r\n } }\r\n >\r\n Filter\r\n \r\n
    \r\n
    \r\n { clear(); } }\r\n >\r\n Clear\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nDateRangeFilter.propTypes = {\r\n column: PropTypes.shape().isRequired,\r\n dateFormat: PropTypes.string,\r\n popperPlacement: PropTypes.string,\r\n popperModifiers: PropTypes.shape({}),\r\n};\r\n\r\nDateRangeFilter.defaultProps = {\r\n dateFormat: 'yyyy-MM-dd',\r\n popperPlacement: 'bottom-start',\r\n popperModifiers: null,\r\n};\r\n\r\nexport default DateRangeFilter;\r\n","const CertificationStatus = [\r\n { value: 1, name: 'Uncertified', description: 'Uncertified' },\r\n { value: 2, name: 'Fatca', description: 'FATCA' },\r\n { value: 3, name: 'Chapter61', description: 'Chapter 61' },\r\n { value: 4, name: 'Nra', description: 'NRA' },\r\n { value: 5, name: 'CRS', description: 'CRS' },\r\n { value: 6, name: 'ExpiredFatca', description: 'FATCA Expired' },\r\n { value: 7, name: 'ExpiredChapter61', description: 'Chapter 61 Expired' },\r\n { value: 8, name: 'ExpiredNra', description: 'NRA Expired' },\r\n { value: 9, name: 'ExpiredCRS', description: 'CRS Expired' },\r\n];\r\n\r\nexport default CertificationStatus;\r\n","import React from 'react';\r\nimport MultiSelectFilter from 'components/ReactTable/Filters/MultiSelectFilter';\r\nimport SelectFilter from 'components/ReactTable/Filters/SelectFilter';\r\nimport CustomerLinkCell from 'components/ReactTable/CellRenderers/CustomerLinkCell';\r\nimport AccountLinkCell from 'components/ReactTable/CellRenderers/AccountLinkCell';\r\nimport Chapter3Status from 'common/Customers/Chapter3Status';\r\nimport Chapter4Status from 'common/Customers/Chapter4Status';\r\nimport CRSClassificationStatus from 'common/Customers/CRSClassificationStatus';\r\nimport DateRangeFilter from 'components/ReactTable/Filters/DateRangeFilter';\r\nimport CertificationStatus from 'common/Customers/CertificationStatus';\r\nimport GetOptions from './GetOptions';\r\n\r\n// note: for the sorting to work, the 'accessor' properties below must have the same name as the backend property to be sorted by\r\nconst customerColumnDefs = permissions => [\r\n {\r\n Header: 'Customer',\r\n accessor: 'customer',\r\n Cell: (cellInfo) => {\r\n const { row: { original } } = cellInfo;\r\n return ();\r\n },\r\n className: 'col-17p'\r\n },\r\n {\r\n Header: 'Email Address',\r\n accessor: 'emailAddress',\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Account',\r\n accessor: 'account',\r\n Cell: (cellInfo) => {\r\n const { row: { original } } = cellInfo;\r\n return ();\r\n },\r\n className: 'col-15p'\r\n },\r\n {\r\n Header: 'Ch. 3 Status',\r\n accessor: 'chapter3StatusDescription',\r\n Filter: MultiSelectFilter,\r\n options: Chapter3Status.map(item => ({ value: item.name, title: item.description })).sort((a, b) => (a.title > b.title ? 1 : -1)),\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Ch. 4 Status',\r\n accessor: 'chapter4StatusDescription',\r\n Filter: MultiSelectFilter,\r\n options: Chapter4Status.map(item => ({ value: item.name, title: item.description })).sort((a, b) => (a.title > b.title ? 1 : -1)),\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'CRS Classification',\r\n accessor: 'crsClassificationDescription',\r\n Filter: MultiSelectFilter,\r\n options: CRSClassificationStatus.map(item => ({ value: item.name, title: item.description })).sort((a, b) => (a.title > b.title ? 1 : -1)),\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Is Active?',\r\n accessor: 'isActive',\r\n Filter: SelectFilter,\r\n filterType: 'bool',\r\n options: GetOptions('isActive'),\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Customer Active Date', // Only shown as active date for end users\r\n accessor: 'openDate',\r\n Filter: DateRangeFilter,\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Is Direct?',\r\n accessor: 'isDirect',\r\n Filter: SelectFilter,\r\n filterType: 'bool',\r\n options: GetOptions('isDirect'),\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Certification Status',\r\n accessor: 'certificationStatus',\r\n Filter: MultiSelectFilter,\r\n options: CertificationStatus.map(item => ({ value: item.name, title: item.description })).sort((a, b) => (a.title > b.title ? 1 : -1)),\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Item Id',\r\n accessor: 'itemId',\r\n isVisible: false\r\n }\r\n];\r\n\r\nexport default customerColumnDefs;\r\n","import React from 'react';\r\nimport CustomerLinkCell from 'components/ReactTable/CellRenderers/CustomerLinkCell';\r\nimport AccountLinkCell from 'components/ReactTable/CellRenderers/AccountLinkCell';\r\nimport SelectFilter from 'components/ReactTable/Filters/SelectFilter';\r\nimport GetOptions from './GetOptions';\r\n\r\n// note: for the sorting to work, the 'accessor' properties below must have the same name as the backend property to be sorted by\r\nconst legalEntityColumnDefs = permissions => [\r\n {\r\n Header: 'Legal Entity Name',\r\n accessor: 'legalEntityName',\r\n disableFilters: true,\r\n className: 'col-20p'\r\n },\r\n {\r\n Header: 'Legal Entity Code',\r\n accessor: 'legalEntityClientIdentifier',\r\n disableFilters: true,\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Is Legal Entity Active?',\r\n accessor: 'legalEntityIsActive',\r\n Filter: SelectFilter,\r\n filterType: 'bool',\r\n options: GetOptions('isActive'),\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Account',\r\n accessor: 'account',\r\n Cell: (cellInfo) => {\r\n const { row: { original } } = cellInfo;\r\n return ();\r\n },\r\n className: 'col-20p'\r\n },\r\n {\r\n Header: 'Is Account Active?',\r\n accessor: 'accountIsActive',\r\n Filter: SelectFilter,\r\n filterType: 'bool',\r\n options: GetOptions('isActive'),\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Customer',\r\n accessor: 'customer',\r\n Cell: (cellInfo) => {\r\n const { row: { original } } = cellInfo;\r\n return ();\r\n },\r\n className: 'col-20p'\r\n },\r\n {\r\n Header: 'Is Customer Active?',\r\n accessor: 'customerIsActive',\r\n // eslint-disable-next-line\r\n Filter: ({ column }) => ,\r\n filterType: 'bool',\r\n options: GetOptions('isActive'),\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Item Id',\r\n accessor: 'itemId',\r\n isVisible: false\r\n }\r\n];\r\n\r\nexport default legalEntityColumnDefs;\r\n","import React from 'react';\r\nimport MultiSelectFilter from 'components/ReactTable/Filters/MultiSelectFilter';\r\nimport WorkflowStageFilter from 'components/ReactTable/Filters/WorkflowStageFilter';\r\nimport CustomerLinkCell from 'components/ReactTable/CellRenderers/CustomerLinkCell';\r\n\r\n// note: for the sorting to work, the 'accessor' properties below must have the same name as the backend property to be sorted by\r\nconst workflowColumnDefs = (permissions, classNameInitialReview, classNameWorkflow) => [\r\n {\r\n Header: 'Customer',\r\n accessor: 'customer',\r\n Cell: (cellInfo) => {\r\n const { row: { original } } = cellInfo;\r\n return ();\r\n },\r\n className: classNameInitialReview,\r\n },\r\n {\r\n Header: 'Form Type',\r\n accessor: 'formTypeDescription',\r\n Filter: MultiSelectFilter,\r\n className: classNameInitialReview,\r\n },\r\n {\r\n Header: 'Source',\r\n accessor: 'formSourceDescription',\r\n Filter: MultiSelectFilter,\r\n className: classNameInitialReview,\r\n },\r\n {\r\n Header: 'Workflow',\r\n accessor: 'workflowStageDescription',\r\n Filter: WorkflowStageFilter,\r\n className: classNameWorkflow\r\n },\r\n {\r\n Header: 'Last Action',\r\n accessor: 'lastActionDate',\r\n disableFilters: true,\r\n className: classNameInitialReview,\r\n },\r\n {\r\n Header: 'Uploaded By',\r\n accessor: 'uploadedBy',\r\n disableSortBy: true,\r\n className: 'col-15p'\r\n },\r\n {\r\n Header: 'Initial Review By',\r\n accessor: 'workflowPreviousUsername',\r\n disableSortBy: true,\r\n isVisible: false,\r\n className: 'col-15p'\r\n },\r\n {\r\n Header: 'Assigned To',\r\n accessor: 'workflowUsername',\r\n disableSortBy: true,\r\n isVisible: false,\r\n className: 'col-15p'\r\n },\r\n {\r\n Header: 'Item Id',\r\n accessor: 'itemId',\r\n isVisible: false\r\n },\r\n {\r\n Header: 'Form Type Description',\r\n accessor: 'formTypeString',\r\n isVisible: false\r\n },\r\n {\r\n Header: 'Workflow Stage',\r\n accessor: 'workflowStage',\r\n isVisible: false\r\n }\r\n];\r\n\r\nexport default workflowColumnDefs;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Route } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\n\r\nimport { showOwnershipModal, takeQueueItem, getStorageSetting } from 'actions';\r\n\r\nclass FormViewRedirectButton extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n formId: PropTypes.number.isRequired,\r\n accountId: PropTypes.number,\r\n form: PropTypes.shape().isRequired,\r\n content: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node\r\n ]).isRequired,\r\n title: PropTypes.string,\r\n className: PropTypes.string,\r\n disabled: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n accountId: null,\r\n permissions: null,\r\n title: '',\r\n className: '',\r\n disabled: false\r\n };\r\n\r\n static isUserFormOwner(user) {\r\n const loggedOnUser = getStorageSetting('username');\r\n\r\n return (loggedOnUser != null && user != null && loggedOnUser === user);\r\n }\r\n\r\n static showModal = (permissions, form) => {\r\n if (form != null && (form.workflowStatus != null || form.workflowStageDescription != null) && form.workflowUsername != null) {\r\n let wfStatus = form.workflowStatus ? form.workflowStatus.toLowerCase() : null;\r\n wfStatus = !wfStatus && form.workflowStageDescription ? form.workflowStageDescription.toLowerCase() : wfStatus;\r\n const hasHigherPermission = AccessControl.hasPermission(permissions, [ActivityPerms.fwfExpertReviewer, ActivityPerms.fwfSupplReviewer]);\r\n\r\n if (wfStatus.includes('initial')) {\r\n return AccessControl.hasPermission(permissions, [ActivityPerms.fwfInitialReviewer]) && hasHigherPermission;\r\n }\r\n\r\n if (wfStatus.includes('secondary')) {\r\n return AccessControl.hasPermission(permissions, [ActivityPerms.fwfSecondaryReviewer]) && hasHigherPermission;\r\n }\r\n\r\n if (wfStatus.includes('expert')) {\r\n return AccessControl.hasPermission(permissions, [ActivityPerms.fwfExpertReviewer]);\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n onClick(history) {\r\n const { dispatch, formId, accountId, form, permissions } = this.props;\r\n if (formId == null || form == null || (form.workflowStatus == null && form.workflowStageDescription == null) || form.workflowUsername == null) {\r\n return;\r\n }\r\n\r\n let wfStatus = form.workflowStatus ? form.workflowStatus.toLowerCase() : null;\r\n wfStatus = !wfStatus && form.workflowStageDescription ? form.workflowStageDescription.toLowerCase() : wfStatus;\r\n\r\n let formUrl = `/forms/${ form.formType.toLowerCase() }/${ formId }`;\r\n if (accountId && accountId > 0) {\r\n formUrl = `${ formUrl }?account=${ accountId }`;\r\n }\r\n\r\n if (FormViewRedirectButton.isUserFormOwner(form.workflowUsername) || wfStatus === 'complete') {\r\n history.push(formUrl);\r\n } else if (FormViewRedirectButton.showModal(permissions, form)) {\r\n dispatch(showOwnershipModal({\r\n id: formId,\r\n accountId: form.accountId,\r\n formType: form.formType.toLowerCase(),\r\n currentUser: form.workflowUsername,\r\n currentUserFullName: form.workflowUserFullName\r\n }));\r\n } else {\r\n if (wfStatus.includes('initial') && AccessControl.hasPermission(permissions, [ActivityPerms.fwfInitialReviewer])) {\r\n dispatch(takeQueueItem('form', formId, form.accountId));\r\n }\r\n\r\n if (wfStatus.includes('secondary') && AccessControl.hasPermission(permissions, [ActivityPerms.fwfSecondaryReviewer])) {\r\n dispatch(takeQueueItem('form', formId, form.accountId));\r\n }\r\n\r\n if (wfStatus.includes('expert') && AccessControl.hasPermission(permissions, [ActivityPerms.fwfExpertReviewer])) {\r\n dispatch(takeQueueItem('form', formId, form.accountId));\r\n }\r\n history.push(formUrl);\r\n }\r\n }\r\n\r\n render() {\r\n const { className, content, title, disabled, formId } = this.props;\r\n return (\r\n this.onClick(history) }\r\n title={ title }\r\n disabled={ disabled }\r\n id={ `formViewBtn_${ formId }` }\r\n >\r\n { content }\r\n \r\n ) }\r\n />;\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport const FormViewButton = connect(\r\n null,\r\n mapDispatchToProps\r\n)(FormViewRedirectButton);\r\n\r\nexport default FormViewButton;\r\n","import React from 'react';\r\n\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AccessControl from 'components/AccessControl';\r\nimport FormViewButton from 'components/Common/Buttons/FormViewButton';\r\n\r\n/* eslint-disable react/prop-types, react/no-unstable-nested-components */\r\nconst FormsActions = ({ permissions, settings, openAddFormModal, openAccountWithholdingModal, openDeleteFormModal, navigateToImyStructure, navigateToWithholdingStatement }) => ({\r\n id: 'action-column',\r\n Header: View,\r\n Cell: ({ row }) => (\r\n
    \r\n { AccessControl.hasPermission(\r\n permissions,\r\n [ActivityPerms.scannedView, ActivityPerms.scannedEdit, ActivityPerms.scannedValidate]\r\n )\r\n && }\r\n className=\"btn btn-sm\"\r\n title=\"Reopen\"\r\n formId={ row.original.itemId }\r\n accountId={ row.original.accountId }\r\n form={ row.original }\r\n permissions={ permissions }\r\n /> }\r\n { AccessControl.hasPermission(permissions, [ActivityPerms.scannedViewTree])\r\n && ((row.original.hasParentAccount && row.original.formType.toString().toLowerCase().indexOf('w') >= 0)\r\n || (!row.original.hasParentAccount && row.original.formType.toString().toLowerCase().indexOf('w8imy') >= 0 && row.original.hasAllocationStmt && row.original.hasAllocationStmt !== 'N/A'))\r\n && row.original.accountId\r\n && navigateToImyStructure(row.original) }\r\n > }\r\n { settings?.selectedClient?.isPiiProtectionEnabled === false\r\n && (!row.original.isOnlineForm\r\n && AccessControl.hasPermission(permissions, [ActivityPerms.scannedUpload, ActivityPerms.scannedWhdStmtBoUpload], true)\r\n )\r\n && row.original.imyTier\r\n && (row.original.formType != null && row.original.formType.toString().toLowerCase().indexOf('w8imy') >= 0)\r\n && (row.original.hasParentAccount || (row.original.hasAllocationStmt && row.original.allocationStmtType\r\n && row.original.allocationStmtName.toLowerCase().indexOf('pooled') === -1))\r\n && openAddFormModal(row.original.imyTier) }\r\n type=\"button\"\r\n title=\"Add Tier\"\r\n >\r\n \r\n }\r\n { AccessControl.hasPermission(permissions, [ActivityPerms.multiTierMgrViewWhs])\r\n && (settings && settings.showMultiTierManager)\r\n && ((row.original.hasParentAccount && row.original.formType.toString().toLowerCase().indexOf('w') >= 0)\r\n || (!row.original.hasParentAccount && row.original.formType.toString().toLowerCase().indexOf('w8imy') >= 0 && row.original.hasAllocationStmt && row.original.hasAllocationStmt !== 'N/A'))\r\n && navigateToWithholdingStatement(row.original.accountId) }\r\n >WHS }\r\n { (settings && settings.showWithholding && AccessControl.hasPermission(permissions, [ActivityPerms.whdViewRates]))\r\n && (!row.original.hasParentAccount && !row.original.hasAllocationStmt)\r\n && openAccountWithholdingModal(row.original, 'forms') }\r\n title=\"Show Withholding Rates\"\r\n >\r\n \r\n }\r\n {\r\n (\r\n (\r\n row.original.isOnlineForm\r\n && (\r\n (AccessControl.hasPermission(permissions, [ActivityPerms.electronicDeleteCompleteForms]) && row.original.workflowStatus?.trim().toLowerCase().includes('complete'))\r\n || (AccessControl.hasPermission(permissions, [ActivityPerms.electronicDeleteInReviewForms]) && !row.original.workflowStatus?.trim().toLowerCase().includes('complete'))\r\n )\r\n )\r\n || (\r\n !row.original.isOnlineForm\r\n && (\r\n (AccessControl.hasPermission(permissions, [ActivityPerms.scannedDeleteCompleteForms]) && row.original.workflowStatus?.trim().toLowerCase().includes('complete'))\r\n || (AccessControl.hasPermission(permissions, [ActivityPerms.scannedDeleteInReviewForms]) && !row.original.workflowStatus?.trim().toLowerCase().includes('complete'))\r\n )\r\n && row.original.formType\r\n && row.original.formType.toLowerCase() !== 'unknown'\r\n )\r\n )\r\n && openDeleteFormModal(row.original) }\r\n >\r\n \r\n \r\n }\r\n
    \r\n ),\r\n className: 'col-10p'\r\n});\r\n/* eslint-enable react/prop-types, react/no-unstable-nested-components */\r\n\r\nexport default FormsActions;\r\n","import React from 'react';\r\n\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AccessControl from 'components/AccessControl';\r\nimport FormViewButton from 'components/Common/Buttons/FormViewButton';\r\n\r\n/* eslint-disable react/prop-types, react/no-unstable-nested-components */\r\nconst WorkflowActions = ({ permissions, settings, workflowType, openAccountWithholdingModal, openUnassignFormModal, onTakeQueueItem }) => ({\r\n id: 'action-column',\r\n Header: View,\r\n Cell: ({ row }) => (\r\n
    \r\n { (workflowType === 'complete')\r\n && AccessControl.hasPermission(\r\n permissions,\r\n [ActivityPerms.scannedView, ActivityPerms.scannedEdit, ActivityPerms.scannedValidate, ActivityPerms.electronicView, ActivityPerms.electronicValidate]\r\n )\r\n && }\r\n className=\"btn btn-sm\"\r\n title=\"Reopen\"\r\n formId={ row.original.itemId }\r\n accountId={ row.original.accountId }\r\n form={ row.original }\r\n permissions={ permissions }\r\n /> }\r\n { (workflowType !== 'complete')\r\n && AccessControl.hasPermission(\r\n permissions,\r\n [ActivityPerms.scannedView, ActivityPerms.scannedEdit, ActivityPerms.scannedValidate, ActivityPerms.electronicView, ActivityPerms.electronicValidate]\r\n )\r\n && onTakeQueueItem(row.original) }\r\n >\r\n \r\n }\r\n { (settings && settings.showWithholding && AccessControl.hasPermission(permissions, [ActivityPerms.whdViewRates]))\r\n && (!row.original.hasParentAccount && !row.original.hasAllocationStmt)\r\n && openAccountWithholdingModal(row.original, 'forms') }\r\n title=\"Show Withholding Rates\"\r\n >\r\n \r\n }\r\n { (workflowType === 'mywork') && (((settings && row.original.customerId && row.original.workflowStage === 5)\r\n || (settings && row.original.customerId && row.original.workflowStage === 7))\r\n && (\r\n row.original.formType\r\n && row.original.formType.toString().toLowerCase() !== 'unknown'\r\n )\r\n )\r\n && openUnassignFormModal(row.original) }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n }\r\n
    \r\n ),\r\n className: 'col-10p'\r\n});\r\n/* eslint-enable react/prop-types, react/no-unstable-nested-components */\r\n\r\nexport default WorkflowActions;\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AccessControl from 'components/AccessControl';\r\n\r\n/* eslint-disable react/prop-types */\r\nconst AccountsActions = ({ permissions, settings, openAccountWithholdingModal, openAccountImyFormsModal }) => ({\r\n id: 'action-column',\r\n Header: 'View',\r\n Cell: ({ row }) => (\r\n
    \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.accountEdit, ActivityPerms.accountPageView]) && \r\n \r\n \r\n \r\n }\r\n { (settings && settings.showWithholding && AccessControl.hasPermission(permissions, [ActivityPerms.whdViewRates]))\r\n && row.original.accountNumber && row.original.accountNumber !== 'N/A' && row.original.isDirect === 'Yes' && !row.original.hasImyStructure\r\n && openAccountWithholdingModal(row.original, 'accounts') }\r\n title=\"Show Withholding Rates\"\r\n >\r\n \r\n }\r\n { (AccessControl.hasPermission(permissions, [ActivityPerms.scannedViewTree]) && (row.original.isDirect === 'No' || row.original.hasImyStructure))\r\n && openAccountImyFormsModal(row.original) }\r\n title=\"Show IMY linked forms\"\r\n >\r\n \r\n }\r\n
    \r\n )\r\n});\r\n/* eslint-enable react/prop-types */\r\n\r\nexport default AccountsActions;\r\n","import React from 'react';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AccessControl from 'components/AccessControl';\r\nimport { Link } from 'react-router-dom';\r\n\r\n/* eslint-disable react/prop-types */\r\nconst customersActions = ({ permissions, settings, openAccountWithholdingModal, openCustomerImyFormsModal }) => ({\r\n id: 'action-column',\r\n Header: View,\r\n Cell: ({ row }) => (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n { (settings && settings.showWithholding && AccessControl.hasPermission(permissions, [ActivityPerms.whdViewRates]))\r\n && row.original.accountNumber && row.original.accountNumber !== 'N/A' && row.original.isDirect === 'Yes' && !row.original.hasImyStructure\r\n && openAccountWithholdingModal(row.original, 'customers') }\r\n title=\"Show Withholding Rates\"\r\n >\r\n \r\n }\r\n { (AccessControl.hasPermission(permissions, [ActivityPerms.scannedViewTree])) && (row.original.isDirect === 'No' || row.original.hasImyStructure)\r\n && openCustomerImyFormsModal(row.original) }\r\n title=\"Show IMY linked forms\"\r\n >\r\n \r\n }\r\n
    \r\n )\r\n});\r\n/* eslint-enable react/prop-types */\r\n\r\nexport default customersActions;\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Field } from 'redux-form';\r\nimport { SelectInput } from 'components/Common/Inputs';\r\n\r\n// eslint-disable-next-line react/prefer-stateless-function\r\nexport class FormTypeSelect extends Component {\r\n static propTypes = {\r\n id: PropTypes.string.isRequired,\r\n name: PropTypes.string.isRequired,\r\n className: PropTypes.string.isRequired,\r\n required: PropTypes.bool,\r\n validate: PropTypes.func,\r\n value: PropTypes.string,\r\n showAllForms: PropTypes.bool,\r\n entity: PropTypes.bool,\r\n individual: PropTypes.bool,\r\n onChange: PropTypes.func.isRequired,\r\n showCrsFormTypes: PropTypes.bool,\r\n showFatcaCrsFormTypes: PropTypes.bool,\r\n showWFormTypes: PropTypes.bool,\r\n usNonUsGiven: PropTypes.bool,\r\n usPerson: PropTypes.bool,\r\n addImyLayer: PropTypes.bool,\r\n beneficiaryForms: PropTypes.bool,\r\n formtypes: PropTypes.arrayOf(PropTypes.shape({\r\n key: PropTypes.string,\r\n value: PropTypes.string,\r\n })),\r\n };\r\n\r\n static defaultProps = {\r\n required: false,\r\n validate: () => {},\r\n showAllForms: true,\r\n value: null,\r\n showCrsFormTypes: false,\r\n showFatcaCrsFormTypes: false,\r\n showWFormTypes: false,\r\n entity: false,\r\n individual: false,\r\n usNonUsGiven: false,\r\n usPerson: false,\r\n addImyLayer: false,\r\n beneficiaryForms: false,\r\n formtypes: []\r\n };\r\n\r\n licensed(optionFormType) {\r\n const { formtypes } = this.props;\r\n\r\n for (let i = 0; i < formtypes.length; i += 1) {\r\n if (formtypes[i].key === optionFormType) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n render() {\r\n const {\r\n id,\r\n name,\r\n className,\r\n required,\r\n validate,\r\n value,\r\n showAllForms,\r\n entity,\r\n individual,\r\n showCrsFormTypes,\r\n showFatcaCrsFormTypes,\r\n showWFormTypes,\r\n usNonUsGiven,\r\n usPerson,\r\n addImyLayer,\r\n beneficiaryForms,\r\n onChange\r\n } = this.props;\r\n\r\n return (\r\n onChange(e, newValue) }\r\n >\r\n \r\n { this.licensed('crse') && showCrsFormTypes && (showAllForms || entity) && }\r\n { this.licensed('dt_crse') && showCrsFormTypes && (showAllForms || entity) && }\r\n { this.licensed('crscp') && showCrsFormTypes && (showAllForms || entity) && }\r\n { this.licensed('dt_crscp') && showCrsFormTypes && (showAllForms || entity) && }\r\n { this.licensed('crsi') && showCrsFormTypes && (showAllForms || individual) && }\r\n { this.licensed('crsi_2024') && showCrsFormTypes && (showAllForms || individual) && }\r\n { this.licensed('rc518') && showCrsFormTypes && (showAllForms || individual) && }\r\n { this.licensed('rc519') && showCrsFormTypes && (showAllForms || entity) && }\r\n { this.licensed('dt_crsi') && showCrsFormTypes && (showAllForms || individual) && }\r\n { this.licensed('fatca_crse_2022') && showFatcaCrsFormTypes && (showAllForms || entity) && }\r\n { this.licensed('fatca_crse_2023') && showFatcaCrsFormTypes && (showAllForms || entity) && }\r\n { this.licensed('fatca_crsi_2022') && showFatcaCrsFormTypes && (showAllForms || individual) && }\r\n { this.licensed('fatca_crsi_2023') && showFatcaCrsFormTypes && (showAllForms || individual) && }\r\n { this.licensed('w8bene') && showWFormTypes && (showAllForms || (entity && !usPerson)) && }\r\n { this.licensed('w8bene_2017') && showWFormTypes && (showAllForms || (entity && !usPerson)) && }\r\n { this.licensed('w8bene_2021') && showWFormTypes && (showAllForms || (entity && !usPerson)) && }\r\n { this.licensed('w8ben_2014') && showWFormTypes && (showAllForms || (individual && (!usNonUsGiven || !usPerson))) && }\r\n { this.licensed('w8ben') && showWFormTypes && (showAllForms || (individual && (!usNonUsGiven || !usPerson))) && }\r\n { this.licensed('w8ben_2021') && showWFormTypes && (showAllForms || (individual && (!usNonUsGiven || !usPerson))) && }\r\n { this.licensed('w8eci_2014') && showWFormTypes && (showAllForms || ((individual || entity) && !usPerson)) && }\r\n { this.licensed('w8eci') && showWFormTypes && (showAllForms || ((individual || entity) && !usPerson)) && }\r\n { this.licensed('w8eci_2021') && showWFormTypes && (showAllForms || ((individual || entity) && !usPerson)) && }\r\n { this.licensed('w8exp_2016') && showWFormTypes && (showAllForms || (entity && !usPerson)) && }\r\n { this.licensed('w8exp') && showWFormTypes && (showAllForms || (entity && !usPerson)) && }\r\n { this.licensed('w8exp_2023') && showWFormTypes && (showAllForms || (entity && !usPerson)) && }\r\n { this.licensed('w8imy') && showWFormTypes && (showAllForms || (addImyLayer || (entity && !usPerson))) && }\r\n { this.licensed('w8imy_2017') && showWFormTypes && (showAllForms || (addImyLayer || (entity && !usPerson))) && }\r\n { this.licensed('w8imy_2021') && showWFormTypes && (showAllForms || (addImyLayer || (entity && !usPerson))) && }\r\n { this.licensed('w9') && showWFormTypes && (showAllForms || ((individual || entity) && (!usNonUsGiven || usPerson))) && }\r\n { this.licensed('w9_2017') && showWFormTypes && (showAllForms || ((individual || entity) && (!usNonUsGiven || usPerson))) && }\r\n { this.licensed('w9_2018') && showWFormTypes && (showAllForms || ((individual || entity) && (!usNonUsGiven || usPerson))) && }\r\n { this.licensed('w9_2024') && showWFormTypes && (showAllForms || ((individual || entity) && (!usNonUsGiven || usPerson))) && }\r\n { this.licensed('w8bene') && beneficiaryForms && }\r\n { this.licensed('w8bene_2017') && beneficiaryForms && }\r\n { this.licensed('w8bene_2021') && beneficiaryForms && }\r\n { this.licensed('w8ben_2014') && beneficiaryForms && }\r\n { this.licensed('w8ben') && beneficiaryForms && }\r\n { this.licensed('w8ben_2021') && beneficiaryForms && }\r\n { this.licensed('w8eci_2014') && beneficiaryForms && }\r\n { this.licensed('w8eci') && beneficiaryForms && }\r\n { this.licensed('w8eci_2021') && beneficiaryForms && }\r\n { this.licensed('w8exp_2016') && beneficiaryForms && }\r\n { this.licensed('w8exp') && beneficiaryForms && }\r\n { this.licensed('w8exp_2023') && beneficiaryForms && }\r\n { this.licensed('w9') && beneficiaryForms && }\r\n { this.licensed('w9_2017') && beneficiaryForms && }\r\n { this.licensed('w9_2018') && beneficiaryForms && }\r\n { this.licensed('w9_2024') && beneficiaryForms && }\r\n \r\n );\r\n }\r\n}\r\n\r\n// Compose FormTypeSelect component with redux\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n settings: {\r\n formtypes\r\n }\r\n }\r\n } = state;\r\n\r\n return {\r\n formtypes,\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps\r\n)(FormTypeSelect);\r\n","import React, { useState } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport AsyncSelect from 'react-select/async';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AutoCompleteInput from 'components/Common/Inputs/AutoCompleteInput';\r\nimport HintButton from 'components/Common/Buttons/HintButton';\r\n\r\nimport { ApiService } from 'services';\r\n\r\nexport const CustomerAccountInputLayout = {\r\n Default: 0,\r\n Horizontal: 1\r\n};\r\n\r\nfunction CustomerAccountInput(props) {\r\n const emptySelections = {\r\n customerId: null,\r\n accountId: null,\r\n accounts: [],\r\n newCustomer: false,\r\n newAccount: false,\r\n legalEntities: [],\r\n selectionValid: false,\r\n errors: []\r\n };\r\n\r\n const { clientId, onSelectionChange, layout, initialSelections, accountExclusions, accountsPartOfAnImyStructure } = props;\r\n\r\n if (initialSelections && initialSelections.customer) {\r\n initialSelections.customerId = initialSelections.customer.id;\r\n }\r\n\r\n const [customer, setCustomer] = useState(initialSelections\r\n && initialSelections.customer\r\n && Object.assign(initialSelections.customer, {\r\n value: `${ initialSelections.customer.customerId } - ${ initialSelections.customer.name }`,\r\n type: 'customeraccount'\r\n }));\r\n const [legalEntities, setLegalEntities] = useState([]);\r\n const [legalEntityOptions, setLegalEntityOptions] = useState([]);\r\n const [legalEntityInputValue, setLegalEntityInputValue] = useState('');\r\n const [excluded, setExcluded] = useState([]);\r\n const [selections, setSelections] = useState(Object.assign(emptySelections, initialSelections ?? {}));\r\n const [leChapter3Shown, setLeChapter3Shown] = useState(false);\r\n const [leChapter4Shown, setLeChapter4Shown] = useState(false);\r\n const [customerAccounts, setCustomerAccounts] = useState([]);\r\n const [customerAccountOptions, setCustomerAccountOptions] = useState([]);\r\n const [customerAccountInputValue, setCustomerAccountInputValue] = useState('');\r\n const [searchTimer, setSearchTimer] = useState();\r\n const searchTimerDelay = 500;\r\n\r\n const fieldHasErrors = (field) => {\r\n if (selections.errors && selections.errors.length && selections.errors.filter(error => error.type === field).length > 0) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n const validate = (data) => {\r\n const errors = [];\r\n\r\n if (data.customerId === null && !data.newCustomer) {\r\n errors.push({ type: 'customer', message: 'no customer selected' });\r\n }\r\n\r\n if ((!data.newCustomer) && !data.newAccount && data.accounts.length === 0) {\r\n errors.push({ type: 'account', message: 'no account(s) selected' });\r\n }\r\n\r\n if ((data.newCustomer || data.newAccount) && data.legalEntities.length === 0) {\r\n errors.push({ type: 'legalEntities', message: 'no legal entity(ies) selected' });\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n const isHorizonalLayout = () => layout === CustomerAccountInputLayout.Horizontal;\r\n\r\n const removeDuplicates = (arr, equals) => {\r\n const originalArr = arr.slice(0);\r\n arr.length = 0;\r\n\r\n for (let i = 0; i < originalArr.length; i += 1) {\r\n const val = originalArr[i];\r\n if (!arr.some(item => equals(item, val))) {\r\n arr.push(val);\r\n }\r\n }\r\n return arr;\r\n };\r\n\r\n const convertLegalEntity = le => Object.assign(le, { value: le.id, label: `${ le.identifier } - ${ le.name }` });\r\n\r\n const convertCustomerAccount = selectedAccount => Object.assign(\r\n {\r\n value: selectedAccount.id,\r\n label: selectedAccount.value,\r\n parentAccountId: selectedAccount.parentAccountId,\r\n withholdingStatementId: selectedAccount.withholdingStatementId\r\n }\r\n );\r\n\r\n const updateCustomerAccount = (type, value) => {\r\n let newCustomerAccountObj = {};\r\n newCustomerAccountObj = Object.assign({}, newCustomerAccountObj, selections);\r\n\r\n if (type === 'customer') {\r\n setCustomer(value);\r\n if (value === null) {\r\n newCustomerAccountObj.newAccount = false;\r\n newCustomerAccountObj.accountId = null;\r\n newCustomerAccountObj.accounts = [];\r\n newCustomerAccountObj.legalEntities = [];\r\n setCustomerAccounts([]);\r\n setLegalEntities([]);\r\n setSelections(newCustomerAccountObj);\r\n onSelectionChange(newCustomerAccountObj);\r\n return;\r\n }\r\n newCustomerAccountObj.customerId = value.id;\r\n const filteredAccounts = value?.accounts?.filter(a => !accountExclusions || !accountExclusions.includes(a.id));\r\n if (filteredAccounts) {\r\n setCustomerAccountOptions(filteredAccounts);\r\n }\r\n if (!filteredAccounts || filteredAccounts.length < 1) {\r\n newCustomerAccountObj.newAccount = true;\r\n } else if (filteredAccounts.length === 1) {\r\n const selectedAccount = value.accounts[0];\r\n if (accountExclusions && accountExclusions.includes(selectedAccount.id)) {\r\n newCustomerAccountObj.newAccount = true;\r\n } else {\r\n newCustomerAccountObj.newAccount = false;\r\n newCustomerAccountObj.accountId = selectedAccount.id;\r\n newCustomerAccountObj.accounts = [convertCustomerAccount(selectedAccount)];\r\n newCustomerAccountObj.legalEntities = [convertLegalEntity(selectedAccount.legalEntity)];\r\n setCustomerAccounts([convertCustomerAccount(selectedAccount)]);\r\n setLegalEntities([convertLegalEntity(selectedAccount.legalEntity)]);\r\n }\r\n }\r\n }\r\n\r\n if (type === 'newcustomer') {\r\n newCustomerAccountObj.newCustomer = value;\r\n newCustomerAccountObj.legalEntities = [];\r\n newCustomerAccountObj.newAccount = value;\r\n newCustomerAccountObj.accountId = null;\r\n newCustomerAccountObj.accounts = [];\r\n setCustomer(null);\r\n setLegalEntities([]);\r\n setCustomerAccounts([]);\r\n setExcluded([]);\r\n }\r\n\r\n if (type === 'account') {\r\n newCustomerAccountObj.accounts = value;\r\n setCustomerAccounts(value);\r\n\r\n if (customer !== null && value !== '' && value.length > 0) {\r\n const accountIds = value.map(v => Number(v.value));\r\n const accounts = customer?.accounts?.filter(a => accountIds.includes(a.id));\r\n if (accounts) {\r\n const uniqueIds = accounts\r\n .map(a => a.legalEntity.id)\r\n .filter((val, index, self) => self.indexOf(val) === index);\r\n const LEs = accounts\r\n .filter(a => uniqueIds.includes(a.legalEntity.id))\r\n .map(a => ({ ...a.legalEntity, value: a.legalEntity.id, label: `${ a.legalEntity.identifier } - ${ a.legalEntity.name }` }));\r\n newCustomerAccountObj.legalEntities = removeDuplicates(LEs, (left, right) => left.id === right.id);\r\n setLegalEntities(LEs);\r\n const selectedCustomerAccounts = accounts.map(a => convertCustomerAccount(a));\r\n newCustomerAccountObj.accounts = selectedCustomerAccounts;\r\n setCustomerAccounts(selectedCustomerAccounts);\r\n }\r\n } else {\r\n setCustomerAccounts([]);\r\n setLegalEntities([]);\r\n }\r\n }\r\n\r\n if (type === 'newaccount') {\r\n if (newCustomerAccountObj.newCustomer) {\r\n return;\r\n }\r\n setLegalEntities([]);\r\n setCustomerAccounts([]);\r\n newCustomerAccountObj.accountId = null;\r\n newCustomerAccountObj.accounts = [];\r\n newCustomerAccountObj.legalEntities = [];\r\n newCustomerAccountObj.newAccount = value;\r\n\r\n if (customer !== null && !newCustomerAccountObj.newCustomer && newCustomerAccountObj.newAccount) {\r\n const excludedLegalEntites = [];\r\n if (customer.accounts) {\r\n customer.accounts.map((item) => {\r\n setExcluded(excludedLegalEntites.push(`${ item.legalEntity.identifier } - ${ item.legalEntity.name }`));\r\n return item;\r\n });\r\n }\r\n setExcluded(excludedLegalEntites);\r\n }\r\n\r\n if (!newCustomerAccountObj.newAccount) {\r\n if (customer && customer.accounts) {\r\n const filteredAccounts = customer.accounts.filter(a => !accountExclusions || !accountExclusions.includes(a.id));\r\n if (filteredAccounts.length < 1) {\r\n newCustomerAccountObj.newAccount = true;\r\n } else if (filteredAccounts.length === 1) {\r\n const selectedAccount = customer.accounts[0];\r\n if (accountExclusions && accountExclusions.includes(selectedAccount.id)) {\r\n newCustomerAccountObj.newAccount = true;\r\n } else {\r\n newCustomerAccountObj.accountId = selectedAccount.id;\r\n newCustomerAccountObj.accounts = [convertCustomerAccount(selectedAccount)];\r\n newCustomerAccountObj.legalEntities = [convertLegalEntity(selectedAccount.legalEntity)];\r\n setLegalEntities([convertLegalEntity(selectedAccount.legalEntity)]);\r\n setCustomerAccounts([convertCustomerAccount(selectedAccount)]);\r\n }\r\n }\r\n }\r\n setExcluded([]);\r\n }\r\n }\r\n\r\n if (type === 'legalentity') {\r\n setLegalEntities(value);\r\n newCustomerAccountObj.legalEntities = value;\r\n }\r\n\r\n newCustomerAccountObj.errors = validate(newCustomerAccountObj);\r\n newCustomerAccountObj = Object.assign({}, selections, newCustomerAccountObj);\r\n newCustomerAccountObj.selectionValid = newCustomerAccountObj.errors.length === 0;\r\n setSelections(newCustomerAccountObj);\r\n onSelectionChange(newCustomerAccountObj);\r\n };\r\n\r\n const onCustomerChange = (e) => {\r\n if ((e.target.value.length > 0 && customer !== null && e.target.value !== customer.value) || e.target.value.length === 0) {\r\n updateCustomerAccount('customer', null);\r\n }\r\n };\r\n\r\n const getAccountOptionsFromCustomer = () => {\r\n if (selections.newCustomer\r\n || selections.newAccount\r\n || (customer !== null && customer.accounts && customer.accounts.length && customer.accounts.length < 1)) {\r\n return [];\r\n }\r\n if (customer && customer.accounts) {\r\n const filteredAccounts = accountExclusions ? customer.accounts.filter(a => !accountExclusions.includes(a.id)) : customer.accounts;\r\n\r\n return filteredAccounts.map(account => ({ value: account.id, label: account.value }));\r\n }\r\n return [];\r\n };\r\n\r\n const loadLegalEntities = (inputValue, callback) => {\r\n if (!inputValue || inputValue.length < 3) {\r\n setLegalEntityOptions([]);\r\n callback([]);\r\n } else {\r\n const postData = {\r\n type: 'legalentity',\r\n activeOnly: true,\r\n context: { type: 'client', id: parseInt(clientId, 10), value: '' },\r\n valueEntered: inputValue,\r\n };\r\n\r\n ApiService\r\n .lookup(postData)\r\n .then((result) => {\r\n const leValues = result.data\r\n .filter(data => !excluded.includes(data.value))\r\n .map(l => ({ ...l, label: l.value, value: l.id }));\r\n setLegalEntityOptions(leValues);\r\n callback(leValues);\r\n });\r\n }\r\n };\r\n\r\n const loadCustomerAccounts = (inputValue, callback) => {\r\n if (!inputValue || inputValue.length < 1) {\r\n setCustomerAccountOptions([]);\r\n callback([]);\r\n } else {\r\n clearTimeout(searchTimer);\r\n setSearchTimer(setTimeout(() => {\r\n const postData = {\r\n type: 'account',\r\n activeOnly: true,\r\n context: { type: 'customer', id: parseInt(customer.id, 10), value: '' },\r\n valueEntered: inputValue,\r\n };\r\n\r\n ApiService\r\n .lookup(postData)\r\n .then((result) => {\r\n const accounts = result.data\r\n .filter(data => !excluded.includes(data.value))\r\n .map(account => ({ ...account, label: account.value, value: account.id }));\r\n setCustomerAccountOptions(accounts);\r\n callback(accounts);\r\n });\r\n }, searchTimerDelay));\r\n }\r\n };\r\n\r\n const onCustomerAccountInputChange = (inputValue, { action }) => {\r\n if (!['input-blur', 'menu-close'].includes(action)) {\r\n setCustomerAccountInputValue(inputValue);\r\n }\r\n };\r\n\r\n const onLegalEntityInputChange = (inputValue, { action }) => {\r\n if (!['input-blur', 'menu-close'].includes(action)) {\r\n setLegalEntityInputValue(inputValue);\r\n }\r\n };\r\n\r\n const onMultiLegalEntityChange = (value) => {\r\n updateCustomerAccount('legalentity', value);\r\n };\r\n\r\n const onMultiCustomerAccountChange = (value) => {\r\n updateCustomerAccount('account', value);\r\n };\r\n\r\n const getTopLevelImyAccountId = account => account.parentAccountId ?? account.value;\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n onCustomerChange(e) }\r\n onSelectedItem={ e => updateCustomerAccount('customer', e) }\r\n />\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n ((customerAccountInputValue && customerAccountOptions && customerAccountOptions.length === 0) ? 'No accounts found...' : 'Enter a customer identifier') }\r\n value={ customerAccounts }\r\n inputValue={ customerAccountInputValue }\r\n onInputChange={ onCustomerAccountInputChange }\r\n onChange={ onMultiCustomerAccountChange }\r\n />\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n { accountsPartOfAnImyStructure\r\n &&
    \r\n
    \r\n
    \r\n {\r\n accountsPartOfAnImyStructure.map(a =>

    { a.label } is linked to an IMY Structure. Any new form for this account must be uploaded from the IMY Structure page.

    )\r\n }\r\n
    \r\n
    \r\n
    }\r\n
    \r\n { (legalEntities.length > 0 || selections.newCustomer || selections.newAccount)\r\n &&
    \r\n \r\n
    }\r\n\r\n { (selections.newCustomer || selections.newAccount)\r\n &&
    \r\n ((legalEntityInputValue && legalEntityOptions && legalEntityOptions.length === 0) ? 'No legal entities found...' : 'Enter a legal entity identifier') }\r\n value={ legalEntities }\r\n inputValue={ legalEntityInputValue }\r\n onInputChange={ onLegalEntityInputChange }\r\n onChange={ onMultiLegalEntityChange }\r\n />\r\n
    }\r\n { !selections.newCustomer && !selections.newAccount && legalEntities.length > 1\r\n &&
    \r\n \r\n
    }\r\n { legalEntities.length === 1\r\n && \r\n { !selections.newCustomer && !selections.newAccount &&
    \r\n \r\n
    }\r\n
    \r\n \r\n { `Chapter 4: ${ legalEntities[0].chapter4Status != null ? legalEntities[0].chapter4Status.toString().padStart(2, '0') : 'NA' }` }\r\n { setLeChapter4Shown(!leChapter4Shown); } } />\r\n { `Chapter 3: ${ legalEntities[0].chapter3Status != null ? legalEntities[0].chapter3Status.toString().padStart(2, '0') : 'NA' }` }\r\n { setLeChapter3Shown(!leChapter3Shown); } } />\r\n { `CRS: ${ legalEntities[0].crsParticipating ? 'Participating' : 'Non-Participating' }` }\r\n \r\n
    \r\n { leChapter4Shown && { `Chapter 4: ${ legalEntities[0].chapter4Status.toString().padStart(2, '0') } - ${ legalEntities[0].chapter4StatusDescription }` } }\r\n { leChapter3Shown && { `Chapter 3: ${ legalEntities[0].chapter3Status.toString().padStart(2, '0') } - ${ legalEntities[0].chapter3StatusDescription }` } }\r\n
    \r\n
    \r\n
    }\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nCustomerAccountInput.propTypes = {\r\n clientId: PropTypes.number.isRequired,\r\n onSelectionChange: PropTypes.func.isRequired,\r\n layout: PropTypes.number,\r\n initialSelections: PropTypes.shape({\r\n customerId: PropTypes.number,\r\n customer: PropTypes.shape(),\r\n newCustomer: PropTypes.bool,\r\n newAccount: PropTypes.bool,\r\n }),\r\n accountExclusions: PropTypes.arrayOf(PropTypes.number),\r\n accountsPartOfAnImyStructure: PropTypes.arrayOf(PropTypes.shape({\r\n parentAccountId: PropTypes.number,\r\n value: PropTypes.number,\r\n label: PropTypes.string\r\n }))\r\n};\r\n\r\nCustomerAccountInput.defaultProps = {\r\n layout: CustomerAccountInputLayout.Default,\r\n initialSelections: null,\r\n accountExclusions: null,\r\n accountsPartOfAnImyStructure: null\r\n};\r\n\r\nexport default CustomerAccountInput;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst EvidentiaryDocs = ({ input, className, showCollectableSupportingDocs, collectableSupportingDocs }) => {\r\n const documentTypes = useSelector(state => state.auth.settings.supportingDocTypes);\r\n const supportingDocs = documentTypes.map(obj => ({ ...obj }));\r\n if (showCollectableSupportingDocs && collectableSupportingDocs) {\r\n collectableSupportingDocs.forEach((doc) => {\r\n if (!supportingDocs.some(item => item.key === doc.key)) {\r\n supportingDocs.push({\r\n key: doc.key,\r\n value: doc.value\r\n });\r\n }\r\n });\r\n supportingDocs.sort((a, b) => a.key.localeCompare(b.key));\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nEvidentiaryDocs.propTypes = {\r\n input: PropTypes.shape({\r\n onChange: PropTypes.func.isRequired,\r\n value: PropTypes.string.isRequired,\r\n }).isRequired,\r\n className: PropTypes.string,\r\n showCollectableSupportingDocs: PropTypes.bool,\r\n collectableSupportingDocs: PropTypes.arrayOf(PropTypes.shape())\r\n};\r\n\r\nEvidentiaryDocs.defaultProps = {\r\n className: '',\r\n showCollectableSupportingDocs: false,\r\n collectableSupportingDocs: null\r\n};\r\n\r\nexport default EvidentiaryDocs;\r\n","const formFamily = {\r\n w8ben: 'W-8BEN',\r\n w8bene: 'W-8BEN-E',\r\n w8eci: 'W-8ECI',\r\n w8exp: 'W-8EXP',\r\n w8imy: 'W-8IMY',\r\n w9: 'W-9',\r\n fatcacrsi: 'FATCA/CRS-I',\r\n fatcacrse: 'FATCA/CRS-E',\r\n crse: 'CRS-E',\r\n crsi: 'CRS-I',\r\n crscp: 'CRS-CP',\r\n rc518: 'RC-518',\r\n rc519: 'RC-519',\r\n getFamily(name) {\r\n const family = Object.entries(formFamily).filter(([k, v]) => k === name);\r\n return family.length > 0 && family[0];\r\n }\r\n};\r\n\r\nconst formTypeDefinition = (value, code, description, family) => ({\r\n value,\r\n code,\r\n description,\r\n family: family ?? code,\r\n getFamilyName() {\r\n const familyDescription = formFamily[this.family];\r\n return familyDescription ?? this.family;\r\n }\r\n});\r\n\r\nconst formTypes = {\r\n w8ben: formTypeDefinition(1, 'w8ben', 'W-8BEN Jul-2017', 'w8ben'),\r\n w8bene: formTypeDefinition(2, 'w8bene', 'W-8BEN-E Apr-2016', 'w8bene'),\r\n w8imy: formTypeDefinition(3, 'w8imy', 'W-8IMY Sep-2016', 'w8imy'),\r\n w9: formTypeDefinition(4, 'w9', 'W-9 Dec-2014', 'w9'),\r\n crse: formTypeDefinition(5, 'crse', 'CRSE 2017', 'crse'),\r\n crsebba: formTypeDefinition(6, 'crsebba', 'CRSEBBA 2017', 'crse'),\r\n crscp: formTypeDefinition(7, 'crscp', 'CRSCP 2017', 'crscp'),\r\n crsi: formTypeDefinition(8, 'crsi', 'CRSI 2017', 'crsi'),\r\n crsi_2024: formTypeDefinition(38, 'crsi_2024', 'CRSI 2024', 'crsi'),\r\n w8exp: formTypeDefinition(9, 'w8exp', 'W-8EXP Jul-2017', 'w8exp'),\r\n w8imy_2017: formTypeDefinition(10, 'w8imy_2017', 'W-8IMY Jun-2017', 'w8imy'),\r\n w8bene_2017: formTypeDefinition(11, 'w8bene_2017', 'W-8BEN-E Jul-2017', 'w8bene'),\r\n w8eci: formTypeDefinition(12, 'w8eci', 'W-8ECI Jul-2017', 'w8eci'),\r\n rc519: formTypeDefinition(14, 'rc519', 'RC-519'),\r\n rc518: formTypeDefinition(15, 'rc518', 'RC-518'),\r\n w8eci_2014: formTypeDefinition(16, 'w8eci_2014', 'W-8ECI Feb-2014', 'w8eci'),\r\n w8exp_2016: formTypeDefinition(17, 'w8exp_2016', 'W-8EXP Sep-2016', 'w8exp'),\r\n w8ben_2014: formTypeDefinition(18, 'w8ben_2014', 'W-8BEN Feb-2014', 'w8ben'),\r\n w9_2017: formTypeDefinition(19, 'w9_2017', 'W-9 Nov-2017', 'w9'),\r\n w9_2018: formTypeDefinition(20, 'w9_2018', 'W-9 Oct-2018', 'w9'),\r\n w9_2024: formTypeDefinition(36, 'w9_2024', 'W-9 Mar-2024', 'w9'),\r\n ucrscp_2019: formTypeDefinition(21, 'ucrscp_2019', 'Universal CRS-CP 2019', 'crscp'),\r\n ucrse_2019: formTypeDefinition(22, 'ucrse_2019', 'Universal CRS-E 2019', 'crse'),\r\n dt_crscp: formTypeDefinition(23, 'dt_crscp', 'Custom CRS-CP', 'crscp'),\r\n dt_crse: formTypeDefinition(24, 'dt_crse', 'Custom CRS-E', 'crse'),\r\n dt_crsi: formTypeDefinition(25, 'dr_crsi', 'Custom CRS-I', 'crsi'),\r\n w8ben_2021: formTypeDefinition(26, 'w8ben_2021', 'W-8BEN Oct-2021', 'w8ben'),\r\n w8eci_2021: formTypeDefinition(27, 'w8eci_2021', 'W-8ECI Oct-2021', 'w8eci'),\r\n w8bene_2021: formTypeDefinition(28, 'w8bene_2021', 'W-8BEN-E Oct-2021', 'w8bene'),\r\n w8imy_2021: formTypeDefinition(29, 'w8imy_2021', 'W-8IMY Oct-2021', 'w8imy'),\r\n fatca_crsi_2022: formTypeDefinition(31, 'fatca_crsi_2022', 'FATCA/CRS-I Jun-2022', 'fatcacrsi'),\r\n fatca_crse_2022: formTypeDefinition(32, 'fatca_crse_2022', 'FATCA-CRS-E Jul-2022', 'fatcacrse'),\r\n ucrsi_2023: formTypeDefinition(33, 'ucrsi_2023', 'Universal CRS-I 2023', 'crsi'),\r\n fatca_crsi_2023: formTypeDefinition(34, 'fatca_crsi_2023', 'FATCA/CRS-I May-2023', 'fatcacrsi'),\r\n fatca_crse_2023: formTypeDefinition(35, 'fatca_crse_2023', 'FATCA/CRS-E May-2023', 'fatcacrse'),\r\n w8exp_2023: formTypeDefinition(37, 'w8exp_2023', 'W-8EXP Oct-2023', 'w8exp'),\r\n\r\n getByValue(value) {\r\n const formType = Object.entries(formTypes).filter(([k, v]) => v && v.value === value).map(([k, v]) => v);\r\n return formType.length > 0 && formType[0];\r\n },\r\n getByCode(code) {\r\n const formType = Object.entries(formTypes).filter(([k, v]) => v && v.code === code).map(([k, v]) => v);\r\n return formType.length > 0 && formType[0];\r\n },\r\n getDescription(value) {\r\n const formType = this.getByValue(value);\r\n return (formType && formType.description) ?? value;\r\n },\r\n getFormName(family) {\r\n switch (family) {\r\n case 'fatcacrsi':\r\n return 'fatca_crsi-form';\r\n case 'fatcacrse':\r\n return 'fatca_crse-form';\r\n default:\r\n return `${ family }-form`;\r\n }\r\n }\r\n};\r\n\r\nexport default formTypes;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { SelectInput } from 'components/Common/Inputs';\r\nimport FileUpload from 'components/Common/FileUpload';\r\nimport FormTypeSelect from 'components/Common/FormTypeSelect';\r\nimport { ApiService } from 'services';\r\nimport { toastr } from 'react-redux-toastr';\r\nimport { getStorageSetting } from 'actions';\r\nimport FormTypes from 'common/Forms/FormTypes';\r\n\r\nclass BeneficialOwnerFormsUpload extends Component {\r\n static propTypes = {\r\n onFileUploadSuccess: PropTypes.func.isRequired,\r\n whdStatement: PropTypes.shape({\r\n owners: PropTypes.arrayOf(PropTypes.shape({}))\r\n }).isRequired,\r\n onBeneficiarySelected: PropTypes.func.isRequired,\r\n onFileDeleteSuccess: PropTypes.func,\r\n onFileDeleteError: PropTypes.func,\r\n onFileUploadCancel: PropTypes.func,\r\n onFileUploadError: PropTypes.func,\r\n formErrors: PropTypes.oneOfType([PropTypes.bool, PropTypes.arrayOf(PropTypes.any)]),\r\n disableToasters: PropTypes.bool,\r\n benefForms: PropTypes.arrayOf(PropTypes.shape({}))\r\n };\r\n\r\n static defaultProps = {\r\n formErrors: [],\r\n onFileDeleteError: null,\r\n onFileDeleteSuccess: null,\r\n onFileUploadCancel: null,\r\n onFileUploadError: null,\r\n disableToasters: false,\r\n benefForms: []\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const fileSettings = getStorageSetting('files') || [];\r\n\r\n this.state = {\r\n fileSettings,\r\n benefFormType: null\r\n };\r\n }\r\n\r\n static getOwnerFormType(value) {\r\n const formType = FormTypes.getByValue(value);\r\n return (formType && formType.getFamilyName()) || value;\r\n }\r\n\r\n onBeneficiaryFormFileUploadCancel(file) {\r\n const { onFileUploadCancel } = this.props;\r\n\r\n if (onFileUploadCancel) {\r\n onFileUploadCancel(file);\r\n }\r\n }\r\n\r\n onBeneficiaryFormFileUploadError(file, error) {\r\n const { disableToasters, onFileUploadError } = this.props;\r\n\r\n if (onFileUploadError) {\r\n onFileUploadError(file, error);\r\n }\r\n\r\n if (!disableToasters) {\r\n toastr.error('', `${ file.name } failed.\\n${ error && error.message }`);\r\n }\r\n }\r\n\r\n onBeneficiaryFormFileUploadSuccess(file, response) {\r\n const { disableToasters, onFileUploadSuccess } = this.props;\r\n\r\n if (onFileUploadSuccess) {\r\n onFileUploadSuccess(file, response);\r\n }\r\n\r\n if (!disableToasters) {\r\n toastr.success('', `${ response[0].fileName } has been uploaded`);\r\n }\r\n }\r\n\r\n onBeneficiaryFormTypeChange = (e, newValue) => this.setState({ benefFormType: newValue });\r\n\r\n onDeleteBeneficiaryForm(file) {\r\n const { disableToasters, onFileDeleteError, onFileDeleteSuccess } = this.props;\r\n ApiService\r\n .deleteTempUpload(file.id)\r\n .then((result) => {\r\n if (onFileDeleteSuccess) {\r\n onFileDeleteSuccess(file, result);\r\n }\r\n\r\n if (!result && !disableToasters) {\r\n toastr.error('', `Failed to remove ${ file.name }. Please try again`);\r\n }\r\n })\r\n .catch((err) => {\r\n if (onFileDeleteError) {\r\n onFileDeleteError(file, err);\r\n }\r\n\r\n if (!disableToasters) {\r\n toastr.error('', `Failed to remove ${ file.name }. Please try again`);\r\n }\r\n });\r\n }\r\n\r\n onImyBeneficiarySelected = (e, value, index) => {\r\n const { onBeneficiarySelected } = this.props;\r\n\r\n if (onBeneficiarySelected) {\r\n onBeneficiarySelected(e, value, index);\r\n }\r\n };\r\n\r\n fieldHasErrors(field) {\r\n const { formErrors } = this.props;\r\n return formErrors != null && formErrors.filter(error => error.field === field).length > 0;\r\n }\r\n\r\n render() {\r\n const { benefForms, whdStatement } = this.props;\r\n const { benefFormType, fileSettings } = this.state;\r\n const hasUnassignedOwners = whdStatement && whdStatement.owners && whdStatement.owners.length > 0;\r\n const whdStatementOwnerOptions = hasUnassignedOwners && whdStatement.owners.map((item, ownerIndex) => \r\n { ownerIndex + 1 } - { item.name }{ (item.formType > 0 && ` (${ BeneficialOwnerFormsUpload.getOwnerFormType(item.formType) })`) }{ (item.formId && ' (Pre-Existing)') }\r\n );\r\n\r\n return
    \r\n { !hasUnassignedOwners &&
    \r\n All beneficial owner forms have been uploaded for the current tier\r\n
    }\r\n { hasUnassignedOwners &&
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.onBeneficiaryFormTypeChange(e, newValue) }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n { !benefFormType &&
    \r\n
    Please select the beneficiary form type above
    \r\n
    }\r\n { benefFormType && this.onBeneficiaryFormFileUploadCancel(file) }\r\n onFileUploadSuccess={ (file, response) => this.onBeneficiaryFormFileUploadSuccess(file, response) }\r\n onFileUploadError={ (file, error) => this.onBeneficiaryFormFileUploadError(file, error) }\r\n /> }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { benefForms != null && benefForms.length > 0 && benefForms.map((doc, index) => doc != null && \r\n \r\n \r\n \r\n )}\r\n { (benefForms == null || benefForms.length === 0) && }\r\n \r\n
    BO FormsBeneficiary
    { `${ doc.fileName }` }
    (Form type: { doc.typeDescription })
    \r\n this.onImyBeneficiarySelected(e, e.target.value, index) }\r\n >\r\n \r\n { whdStatementOwnerOptions }\r\n \r\n \r\n this.onDeleteBeneficiaryForm(doc) }\r\n >\r\n \r\n \r\n
    \r\n No forms uploaded\r\n
    \r\n
    \r\n
    \r\n
    }\r\n
    ;\r\n }\r\n}\r\n\r\nexport default BeneficialOwnerFormsUpload;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { reduxForm, Field, change } from 'redux-form';\r\nimport { connect } from 'react-redux';\r\nimport { SelectInput } from 'components/Common/Inputs';\r\nimport FileUpload from 'components/Common/FileUpload';\r\nimport { ApiService } from 'services';\r\nimport { toastr } from 'react-redux-toastr';\r\n\r\nconst hasWhdStatement = (value, values) => (values.witholdingStmnt && (value === 'undefined' || value === null));\r\n\r\nclass WithholdingStatementUploadForm extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n statementType: PropTypes.string,\r\n onFileUploadCancel: PropTypes.func.isRequired,\r\n onFileUploadError: PropTypes.func.isRequired,\r\n onFileUploadSuccess: PropTypes.func.isRequired,\r\n onStatementTypeChange: PropTypes.func.isRequired,\r\n onFileDeleteSuccess: PropTypes.func,\r\n onFileDeleteError: PropTypes.func,\r\n formErrors: PropTypes.oneOfType([PropTypes.bool, PropTypes.arrayOf(PropTypes.any)]),\r\n disableToastr: PropTypes.bool,\r\n ddLabelText: PropTypes.string,\r\n existingStatements: PropTypes.any,\r\n disableConfirm: PropTypes.func.isRequired,\r\n singleColumnLayout: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n statementType: null,\r\n formErrors: [],\r\n disableToastr: false,\r\n onFileDeleteError: null,\r\n onFileDeleteSuccess: null,\r\n ddLabelText: 'WHD Stmt Type',\r\n existingStatements: null,\r\n singleColumnLayout: true\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n whdStatementType: props.statementType,\r\n whdStatement: null,\r\n whdStatementError: null,\r\n whdStatementUploading: false\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { statementType } = this.props;\r\n const { whdStatementType } = this.state;\r\n\r\n if (prevProps.statementType !== statementType && statementType !== whdStatementType) {\r\n this.resetStatement();\r\n }\r\n }\r\n\r\n onWhdStatementTypeChange(e, newValue) {\r\n const { onStatementTypeChange } = this.props;\r\n this.setState({ whdStatementType: newValue });\r\n if (onStatementTypeChange) {\r\n onStatementTypeChange(e, newValue);\r\n }\r\n }\r\n\r\n onWhdStatementFileUploadCancel(file) {\r\n const { onFileUploadCancel, disableConfirm } = this.props;\r\n\r\n if (onFileUploadCancel) {\r\n disableConfirm(false);\r\n onFileUploadCancel(file);\r\n }\r\n }\r\n\r\n onWhdStatementFileUploadError(file, response) {\r\n const { onFileUploadError, disableConfirm } = this.props;\r\n\r\n const fileDetails = {\r\n name: file.name,\r\n size: file.size,\r\n lastModified: file.lastModified\r\n };\r\n\r\n let whdError = {\r\n ...response.result,\r\n file: fileDetails\r\n };\r\n\r\n if (!response.result || (response.result && response.result.resultCode === 10)) { // Unlicensed\r\n whdError = null;\r\n toastr.error('', response.message);\r\n }\r\n\r\n this.setState({ whdStatement: null });\r\n this.setState({ whdStatementError: whdError });\r\n this.setState({ whdStatementUploading: false });\r\n\r\n if (onFileUploadError) {\r\n disableConfirm(false);\r\n onFileUploadError(file, response);\r\n }\r\n }\r\n\r\n onWhdStatementFileSending(file) {\r\n const { disableConfirm } = this.props;\r\n if (file) {\r\n disableConfirm(true);\r\n this.setState({ whdStatementError: null });\r\n this.setState({ whdStatementUploading: true });\r\n }\r\n }\r\n\r\n onWhdStatementFileUploadSuccess(file, response) {\r\n const { disableToastr, onFileUploadSuccess, disableConfirm } = this.props;\r\n this.setState({ whdStatement: response });\r\n this.setState({ whdStatementError: null });\r\n this.setState({ whdStatementUploading: false });\r\n\r\n if (!disableToastr) {\r\n if (response && response.file && response.file.fileName) {\r\n disableConfirm(false);\r\n toastr.success('', `${ response.file.fileName } has been uploaded`);\r\n } else {\r\n toastr.error('', `${ (file && file.name) || 'WHD Statement' } failed to upload`);\r\n }\r\n }\r\n\r\n if (onFileUploadSuccess) {\r\n onFileUploadSuccess(file, response);\r\n }\r\n }\r\n\r\n onDeleteWhdStatement(file) {\r\n const { disableToastr, onFileDeleteError, onFileDeleteSuccess } = this.props;\r\n ApiService\r\n .deleteTempUpload(file.id)\r\n .then((result) => {\r\n if (result != null) {\r\n this.setState({ whdStatement: null });\r\n } else if (!disableToastr) {\r\n toastr.error('', `Failed to remove ${ file.name }. Please try again`);\r\n }\r\n if (onFileDeleteSuccess) {\r\n onFileDeleteSuccess(file);\r\n }\r\n })\r\n .catch((err) => {\r\n if (!disableToastr) {\r\n toastr.error('', `Failed to remove ${ file.name }. Please try again`);\r\n }\r\n if (onFileDeleteError) {\r\n onFileDeleteError(file, err);\r\n }\r\n });\r\n }\r\n\r\n resetStatement() {\r\n const { dispatch, statementType } = this.props;\r\n\r\n this.setState({\r\n whdStatementType: statementType,\r\n whdStatement: null\r\n }, () => {\r\n dispatch(change('whdStmtUploadForm', 'statementType', statementType));\r\n });\r\n }\r\n\r\n isPooledStatement() {\r\n const { whdStatement } = this.state;\r\n return whdStatement && whdStatement.isValid && whdStatement.file && (whdStatement.file.type === 'QiPooled' || whdStatement.file.type === 'NqiPooled' || whdStatement.file.type === 'PooledWhdStatement');\r\n }\r\n\r\n fieldHasErrors(field) {\r\n const { formErrors } = this.props;\r\n return formErrors != null && formErrors.filter(error => error.field === field).length > 0;\r\n }\r\n\r\n render() {\r\n const {\r\n ddLabelText,\r\n existingStatements,\r\n singleColumnLayout\r\n } = this.props;\r\n const {\r\n whdStatement,\r\n whdStatementError,\r\n whdStatementType,\r\n whdStatementUploading\r\n } = this.state;\r\n\r\n return (\r\n { /* WHD Statement Upload --> */ }\r\n { existingStatements != null && existingStatements.length > 0 &&
    \r\n
    \r\n
    \r\n
    \r\n

    Existing WHD Statement{ existingStatements.length > 1 && s } Found

    \r\n
    \r\n
    \r\n

    Cannot upload new withholding statement as one is already present for the account{ existingStatements.length > 1 && s listed } below.

    \r\n
    \r\n
      \r\n { existingStatements.map(x =>
    • \r\n Account: { x.account.accountNumber } - { x.account.accountName }
      \r\n Intermediary: { x.withholdingStatement.intermediaryName }, { x.withholdingStatement.intermediaryCountry }\r\n
    • ) }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    }\r\n { (existingStatements == null || existingStatements.length === 0) &&
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.onWhdStatementTypeChange(e, newValue) }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n { whdStatementType !== '' && whdStatementType != null &&
    \r\n
    \r\n { whdStatement == null &&
    \r\n this.onWhdStatementFileSending(file) }\r\n onFileUploadCancel={ file => this.onWhdStatementFileUploadCancel(file) }\r\n onFileUploadSuccess={ (file, response) => this.onWhdStatementFileUploadSuccess(file, response) }\r\n onFileUploadError={ (file, error) => this.onWhdStatementFileUploadError(file, error) }\r\n />\r\n
    }\r\n { whdStatement != null &&
    \r\n \r\n
    }\r\n { whdStatement != null &&
    \r\n { whdStatement.file.fileName }\r\n this.onDeleteWhdStatement(whdStatement.file) }\r\n >\r\n \r\n \r\n
    }\r\n
    \r\n
    }\r\n { this.isPooledStatement(whdStatement) &&
    \r\n
    \r\n
    \r\n

    Withholding Statement Validation Successful

    \r\n
    \r\n
    \r\n

    Intermediary: { whdStatement.statement.intermediaryName }

    \r\n
    \r\n

    Accounts:

    \r\n
      \r\n { whdStatement.statement.listOfAccounts && whdStatement.statement.listOfAccounts.map((a, i) =>
    • \r\n { a.accountName }\r\n
    • ) }\r\n { whdStatement.statement.accounts && whdStatement.statement.accounts.map((a, i) =>
    • \r\n { a.accountName }\r\n
    • ) }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    }\r\n { whdStatementError != null && !whdStatementError.isValid &&
    \r\n
    \r\n
    \r\n

    WHD Statement Validation Failed

    \r\n { whdStatementError.file &&

    File: { whdStatementError.file.name } ({ whdStatementError.file.size / 1024 }kb)

    }\r\n
    \r\n
    \r\n
      \r\n { whdStatementError.validationResults && whdStatementError.validationResults.map(item =>
    • \r\n { item.codeDescription.replace('The withholding statement has failed validation. ', '') } ({ item.code })\r\n
    • ) }\r\n { (!whdStatementError.validationResults || whdStatementError.validationResults.length === 0) &&
    • \r\n The withholding statement failed to upload, but no error details were returned\r\n
    • }\r\n
    \r\n
    \r\n
    \r\n
    }\r\n
    }\r\n
    );\r\n }\r\n}\r\n\r\nconst WhdStmtUploadReduxForm = reduxForm({\r\n form: 'whdStmtUploadForm',\r\n})(WithholdingStatementUploadForm);\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport const WithholdingStatementUpload = connect(\r\n null,\r\n mapDispatchToProps\r\n)(WhdStmtUploadReduxForm);\r\n\r\nexport default WithholdingStatementUpload;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { withRouter } from 'react-router-dom';\r\nimport WhsLinkOperationStatus from 'common/Accounts/WhsLinkOperationStatus';\r\n\r\nconst LinkWhsOperationStatus = ({\r\n accountWhsLinkStatus,\r\n accountWhsLinkMonitorFailed,\r\n showExplanation,\r\n history\r\n}) => (\r\n \r\n {accountWhsLinkStatus && accountWhsLinkStatus.createdBy && (accountWhsLinkStatus.createdBy.fullName || accountWhsLinkStatus.createdBy.emailAddress)\r\n &&

    Linking of this structure started by { accountWhsLinkStatus.createdBy.fullName } ({ accountWhsLinkStatus.createdBy.emailAddress })

    }\r\n { showExplanation && \r\n

    For simple IMY Structure this will take a few seconds. For larger structures this may take a few minutes.

    \r\n

    The IMY Structure and Linked Accounts will not be editable until the linking is complete.

    \r\n
    }\r\n {!accountWhsLinkMonitorFailed\r\n && \r\n {(accountWhsLinkStatus === null || accountWhsLinkStatus === undefined || (accountWhsLinkStatus && accountWhsLinkStatus.linkedBos === 0))\r\n && \r\n {((accountWhsLinkStatus === null || accountWhsLinkStatus === undefined) || (accountWhsLinkStatus && accountWhsLinkStatus.status === WhsLinkOperationStatus.New))\r\n && \r\n \r\n

    Fetching Data...

    \r\n
    }\r\n {accountWhsLinkStatus && (accountWhsLinkStatus.status >= WhsLinkOperationStatus.Ready && accountWhsLinkStatus.status < WhsLinkOperationStatus.Linking)\r\n && \r\n \r\n

    Starting linking...

    \r\n
    }\r\n
    }\r\n {accountWhsLinkStatus && accountWhsLinkStatus.status >= WhsLinkOperationStatus.Linking && accountWhsLinkStatus.status <= WhsLinkOperationStatus.Completed\r\n && \r\n \r\n

    {accountWhsLinkStatus.linkedBos}/{accountWhsLinkStatus.totalBos} Beneficiaries Linked

    \r\n
    }\r\n
    }\r\n {accountWhsLinkMonitorFailed\r\n &&
    \r\n

    An error has occured. Please go back a page and try again.

    \r\n { history.goBack(); } }\r\n >\r\n Go back\r\n \r\n
    }\r\n
    \r\n);\r\n\r\nLinkWhsOperationStatus.propTypes = {\r\n accountWhsLinkStatus: PropTypes.shape(),\r\n accountWhsLinkMonitorFailed: PropTypes.bool,\r\n showExplanation: PropTypes.bool,\r\n history: PropTypes.shape().isRequired\r\n};\r\n\r\nLinkWhsOperationStatus.defaultProps = {\r\n accountWhsLinkStatus: null,\r\n accountWhsLinkMonitorFailed: false,\r\n showExplanation: true\r\n};\r\n\r\nexport default withRouter(LinkWhsOperationStatus);\r\n","import React, { useEffect } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect, useDispatch } from 'react-redux';\r\n\r\nimport LinkWhsOperationStatus from 'components/LinkWhsOperationStatus';\r\n\r\nimport { GetLinkOperationStatuses } from 'actions';\r\n\r\nconst LinkWhsOperationMultiMonitor = ({\r\n accounts,\r\n onActiveMonitorsChange,\r\n isGettingWhsLinkStatuses,\r\n whsLinkStatuses,\r\n whsLinkMultiMonitorFailed\r\n}) => {\r\n const dispatch = useDispatch();\r\n let interval;\r\n\r\n const getStatus = async () => {\r\n dispatch(GetLinkOperationStatuses(accounts?.map(x => x.value)));\r\n };\r\n\r\n useEffect(() => {\r\n getStatus();\r\n\r\n interval = setInterval(() => {\r\n getStatus();\r\n }, 5000);\r\n\r\n return () => clearInterval(interval);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (onActiveMonitorsChange) {\r\n const activeMonitors = whsLinkStatuses?.filter(x => x.status < 100).map(x => x.fromAccountId);\r\n onActiveMonitorsChange(activeMonitors);\r\n }\r\n }, [whsLinkStatuses]);\r\n\r\n const accountIds = accounts?.map(x => x.value) ?? [];\r\n\r\n return !isGettingWhsLinkStatuses\r\n && whsLinkStatuses\r\n && whsLinkStatuses.length > 0\r\n && \r\n { !whsLinkMultiMonitorFailed && whsLinkStatuses.filter(x => accountIds.includes(x.fromAccountId)).map((x) => {\r\n let account = accounts.filter(a => a.value === x.fromAccountId);\r\n account = account && account.length > 0 ? account : accounts.filter(a => a.value === x.toAccountId);\r\n const accountNumber = account?.length > 0 ? account[0].label : '';\r\n return (\r\n

    Account locked: { accountNumber }

    \r\n \r\n
    );\r\n }) }\r\n { !whsLinkMultiMonitorFailed && whsLinkStatuses && whsLinkStatuses.length > 0 && \r\n

    For simple IMY Structure this will take a few seconds. For larger structures this may take a few minutes.

    \r\n

    The IMY Structure and Linked Accounts will not be editable until the linking is complete.

    \r\n
    }\r\n { whsLinkMultiMonitorFailed\r\n &&
    \r\n

    An error has occured retrieving the status of the accounts selected. Please wait or re-select the accounts.

    \r\n
    }\r\n
    ;\r\n};\r\n\r\nLinkWhsOperationMultiMonitor.propTypes = {\r\n accounts: PropTypes.arrayOf(PropTypes.shape),\r\n onActiveMonitorsChange: PropTypes.func,\r\n isGettingWhsLinkStatuses: PropTypes.bool,\r\n whsLinkStatuses: PropTypes.arrayOf(PropTypes.shape),\r\n whsLinkMultiMonitorFailed: PropTypes.bool\r\n};\r\n\r\nLinkWhsOperationMultiMonitor.defaultProps = {\r\n accounts: [],\r\n onActiveMonitorsChange: undefined,\r\n isGettingWhsLinkStatuses: false,\r\n whsLinkStatuses: [],\r\n whsLinkMultiMonitorFailed: false,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n account: {\r\n isGettingWhsLinkStatuses,\r\n whsLinkStatuses,\r\n whsLinkMultiMonitorFailed\r\n }\r\n } = state;\r\n\r\n return {\r\n isGettingWhsLinkStatuses,\r\n whsLinkStatuses,\r\n whsLinkMultiMonitorFailed\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps)(LinkWhsOperationMultiMonitor);\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { reduxForm, Field, change } from 'redux-form';\r\nimport { connect } from 'react-redux';\r\nimport { toastr } from 'react-redux-toastr';\r\nimport { parse, isValid } from 'date-fns';\r\n\r\nimport { takeQueueItem, getStorageSetting, hideAddFormModal } from 'actions';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport FormTypeSelect from 'components/Common/FormTypeSelect';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport {\r\n TextInput,\r\n SelectInput,\r\n preventInvalidDateInitialization,\r\n RenderDatePicker\r\n} from 'components/Common/Inputs';\r\nimport RadioTableGroup from 'components/Common/Inputs/RadioTableGroup';\r\nimport CustomerAccountInput from 'components/Common/Inputs/CustomerAccountInput';\r\nimport FileUpload from 'components/Common/FileUpload';\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\nimport EvidentiaryDocs from 'components/EvidentiaryDocs';\r\nimport BeneficialOwnerFormsUpload from 'components/Common/BeneficialOwnerFormsUpload';\r\nimport WithholdingStatementUpload from 'components/Common/WithholdingStatementUpload';\r\nimport LinkWhsOperationMultiMonitor from 'components/LinkWhsOperationMultiMonitor';\r\n\r\nimport { ApiService } from 'services';\r\n\r\nconst isRequired = value => !value || !value.trim();\r\nconst isEmailAddress = value => (value ? value.indexOf('@') === -1 : false);\r\n\r\nclass AddFormsPopupForm extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n imyTier: PropTypes.shape(),\r\n addImyLayer: PropTypes.bool,\r\n onSubmit: PropTypes.func.isRequired,\r\n onSetModalSize: PropTypes.func.isRequired,\r\n setDisableConfirm: PropTypes.func.isRequired,\r\n id: PropTypes.string.isRequired,\r\n isSubmitting: PropTypes.bool,\r\n results: PropTypes.shape({\r\n accountIds: PropTypes.arrayOf(PropTypes.number),\r\n customerIds: PropTypes.arrayOf(PropTypes.shape()),\r\n success: PropTypes.bool,\r\n error: PropTypes.shape({\r\n code: PropTypes.number,\r\n message: PropTypes.string,\r\n }),\r\n files: PropTypes.arrayOf(PropTypes.shape({}))\r\n }),\r\n formTypes: PropTypes.arrayOf(PropTypes.shape({\r\n key: PropTypes.string,\r\n value: PropTypes.string,\r\n }))\r\n };\r\n\r\n static defaultProps = {\r\n results: null,\r\n permissions: null,\r\n imyTier: null,\r\n addImyLayer: null,\r\n isSubmitting: false,\r\n formTypes: []\r\n };\r\n\r\n static onFileUploadCancel(file) {\r\n toastr.info('', `Upload of ${ file.name } has been canceled`);\r\n }\r\n\r\n static onFileUploadError(file, error) {\r\n toastr.error('', `Upload of ${ file.name } has been canceled. ${ error.message }`);\r\n }\r\n\r\n static getDuplicateValues = (arrayItems, keyName) => {\r\n const arraySummary = arrayItems.reduce((prev, curr) => { prev[curr[keyName] || curr] = (prev[curr[keyName] || curr] || 0) + 1; return prev; }, []);\r\n return Object.keys(arraySummary).filter(x => arraySummary[x] > 1);\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const clients = this.filterClientList() || [];\r\n const files = getStorageSetting('files') || [];\r\n\r\n const clientKey = (clients != null && clients.length === 1) ? clients[0].key : '';\r\n const canUploadStmtBos = AccessControl.hasPermission(props.permissions, [ActivityPerms.scannedUpload, ActivityPerms.scannedWhdStmtBoUpload], true);\r\n const showBeneficiaryTab = props.addImyLayer != null && !props.addImyLayer && canUploadStmtBos;\r\n\r\n this.state = {\r\n files,\r\n addImyLayer: props.addImyLayer,\r\n clientId: clientKey,\r\n wFormReference: null,\r\n crsFormReference: null,\r\n fatcaCrsFormReference: null,\r\n customerType: null,\r\n usNonUs: null,\r\n wFormDate: null,\r\n crsCustomer: null,\r\n crsFormDate: null,\r\n fatcaCrsFormDate: null,\r\n activeTab: showBeneficiaryTab ? 2 : 0,\r\n tabs: [\r\n {\r\n title: props.imyTier ? 'IMY' : 'W Forms',\r\n index: 0,\r\n enabled: props.addImyLayer != null,\r\n visible: props.imyTier && props.addImyLayer != null && props.addImyLayer\r\n },\r\n { title: 'CRS Forms', index: 1, enabled: false, visible: false },\r\n { title: 'Combined Forms', index: 2, enabled: false, visible: false },\r\n {\r\n title: props.imyTier ? 'Beneficiary Forms' : 'IMY',\r\n index: 3,\r\n enabled: props.imyTier && showBeneficiaryTab,\r\n visible: showBeneficiaryTab\r\n },\r\n { title: 'Supporting Docs', index: 4, enabled: false, visible: false },\r\n { title: 'Results', index: 5, enabled: false, visible: false },\r\n ],\r\n formType: null,\r\n crsFormType: null,\r\n fatcaCrsFormType: null,\r\n whdStatementType: null,\r\n whdStatement: null,\r\n supportingDocType: null,\r\n showBeneficiaryFileUpload: false,\r\n originEmail: null,\r\n clients,\r\n wForms: [],\r\n crsForms: [],\r\n fatcaCrsForms: [],\r\n benefForms: [],\r\n supportingDocs: [],\r\n formErrors: [],\r\n showAllForms: (props.imyTier == null),\r\n customerObject: null,\r\n imyParentCustomer: null,\r\n imyAccountGuid: null,\r\n isImyParentCreateNewCustomerChecked: false,\r\n existingStatements: null,\r\n initialStatement: null,\r\n whsLinkAccounts: null,\r\n showImyOverwriteWarning: false,\r\n showImyOverwriteWarningCombined: false\r\n };\r\n\r\n this.onFormTypeChange = this.onFormTypeChange.bind(this);\r\n\r\n props.dispatch(change('uploadingPdfForm', 'addImyLayer', props.addImyLayer));\r\n if (clientKey != null) {\r\n props.dispatch(change('uploadingPdfForm', 'clientId', `${ clientKey }`));\r\n }\r\n\r\n if (props.imyTier) {\r\n if (props.onSetModalSize) {\r\n props.onSetModalSize('');\r\n }\r\n }\r\n props.setDisableConfirm(true);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { imyTier, results, setDisableConfirm } = this.props;\r\n const { whdStatement } = this.state;\r\n\r\n if (prevProps.results !== results) {\r\n if (results != null && results.error != null) {\r\n this.clearStateForSessionResend();\r\n setDisableConfirm(true);\r\n }\r\n if (results !== null && results.success === true) {\r\n this.clearStateForSessionResend();\r\n setDisableConfirm(true);\r\n }\r\n }\r\n\r\n if (imyTier) {\r\n const prevParentAccountId = prevProps.imyTier.accountId;\r\n if (imyTier?.accountId > 0 && (!whdStatement || !prevProps.imyTier || prevParentAccountId !== imyTier.accountId)) {\r\n this.getWhdStatementOwners(imyTier.accountId);\r\n }\r\n }\r\n }\r\n\r\n onSelectTab(tabIndex) {\r\n const { isSubmitting } = this.props;\r\n const { tabs } = this.state;\r\n\r\n if (isSubmitting) {\r\n return;\r\n }\r\n\r\n if (tabs != null) {\r\n Object.keys(tabs).forEach((index) => {\r\n if (index != null) {\r\n tabs[index].visible = (tabs[index].index === tabIndex);\r\n }\r\n });\r\n }\r\n\r\n this.setState({\r\n activeTab: tabIndex,\r\n tabs\r\n });\r\n }\r\n\r\n /* File Uploads */\r\n\r\n onWFormFileUploadSuccess(file, response) {\r\n const { wForms } = this.state;\r\n const { setDisableConfirm } = this.props;\r\n const joined = wForms.concat(response);\r\n this.setState({ wForms: joined });\r\n setDisableConfirm(false);\r\n\r\n toastr.success('', `${ response[0].fileName } has been uploaded`);\r\n }\r\n\r\n onCrsFormFileUploadSuccess(file, response) {\r\n const { setDisableConfirm } = this.props;\r\n const { crsForms } = this.state;\r\n const joined = crsForms.concat(response);\r\n this.setState({ crsForms: joined });\r\n setDisableConfirm(false);\r\n\r\n toastr.success('', `${ response[0].fileName } has been uploaded`);\r\n }\r\n\r\n onFatcaCrsFormFileUploadSuccess(file, response) {\r\n const { setDisableConfirm } = this.props;\r\n const { fatcaCrsForms } = this.state;\r\n const joined = fatcaCrsForms.concat(response);\r\n this.setState({ fatcaCrsForms: joined });\r\n setDisableConfirm(false);\r\n\r\n toastr.success('', `${ response[0].fileName } has been uploaded`);\r\n }\r\n\r\n onBenefFormFileUploadSuccess(file, response) {\r\n const { setDisableConfirm, imyTier } = this.props;\r\n const { benefForms } = this.state;\r\n const joined = benefForms.concat(response);\r\n this.setState({ benefForms: joined });\r\n if (imyTier != null) {\r\n setDisableConfirm(false);\r\n }\r\n\r\n toastr.success('', `${ response[0].fileName } has been uploaded`);\r\n }\r\n\r\n onWhdStatementFileUploadError(file, response) {\r\n this.setState({ whdStatement: null });\r\n }\r\n\r\n onWhdStatementFileUploadSuccess(file, response) {\r\n this.setState({ whdStatement: response });\r\n }\r\n\r\n onSupportingDocFileUploadSuccess(file, response) {\r\n const { supportingDocs } = this.state;\r\n const joined = supportingDocs.concat(response);\r\n this.setState({ supportingDocs: joined });\r\n toastr.success('', `${ response[0].fileName } has been uploaded`);\r\n }\r\n\r\n onDeleteWForm(file) {\r\n const { crsForms } = this.state;\r\n const { fatcaCrsForms } = this.state;\r\n let { wForms } = this.state;\r\n const matched = wForms.filter(f => f.fileName === file.name);\r\n const { setDisableConfirm } = this.props;\r\n\r\n if (matched != null && matched.length > 0) {\r\n const fileId = matched[0].id;\r\n ApiService\r\n .deleteTempUpload(matched[0].id)\r\n .then((result) => {\r\n if (result != null) {\r\n wForms = wForms.filter(doc => doc.id !== fileId);\r\n\r\n this.setState({ wForms });\r\n setDisableConfirm((!wForms || wForms.length === 0) && (!crsForms || crsForms.length === 0) && (!fatcaCrsForms || fatcaCrsForms.length === 0));\r\n } else {\r\n toastr.error('', `Failed to remove ${ file.name }. Please try again`);\r\n }\r\n })\r\n .catch(err => toastr.error('', `Failed to remove ${ file.name }. Please try again`));\r\n }\r\n }\r\n\r\n onDeleteCrsForm(file) {\r\n const { wForms } = this.state;\r\n const { fatcaCrsForms } = this.state;\r\n let { crsForms } = this.state;\r\n const matched = crsForms.filter(f => f.fileName === file.name);\r\n const { setDisableConfirm } = this.props;\r\n\r\n if (matched != null && matched.length > 0) {\r\n const fileId = matched[0].id;\r\n ApiService\r\n .deleteTempUpload(matched[0].id)\r\n .then((result) => {\r\n if (result != null) {\r\n crsForms = crsForms.filter(doc => doc.id !== fileId);\r\n\r\n this.setState({ crsForms });\r\n setDisableConfirm((!crsForms || crsForms.length === 0) && (!wForms || wForms.length === 0) && (!fatcaCrsForms || fatcaCrsForms.length === 0));\r\n } else {\r\n toastr.error('', `Failed to remove ${ file.name }. Please try again`);\r\n }\r\n })\r\n .catch(err => toastr.error('', `Failed to remove ${ file.name }. Please try again`));\r\n }\r\n }\r\n\r\n onDeleteFatcaCrsForm(file) {\r\n const { wForms } = this.state;\r\n const { crsForms } = this.state;\r\n let { fatcaCrsForms } = this.state;\r\n const matched = fatcaCrsForms.filter(f => f.fileName === file.name);\r\n const { setDisableConfirm } = this.props;\r\n\r\n if (matched != null && matched.length > 0) {\r\n const fileId = matched[0].id;\r\n ApiService\r\n .deleteTempUpload(matched[0].id)\r\n .then((result) => {\r\n if (result != null) {\r\n fatcaCrsForms = fatcaCrsForms.filter(doc => doc.id !== fileId);\r\n\r\n this.setState({ fatcaCrsForms });\r\n setDisableConfirm((!fatcaCrsForms || fatcaCrsForms.length === 0) && (!crsForms || crsForms.length === 0) && (!wForms || wForms.length === 0));\r\n } else {\r\n toastr.error('', `Failed to remove ${ file.name }. Please try again`);\r\n }\r\n })\r\n .catch(err => toastr.error('', `Failed to remove ${ file.name }. Please try again`));\r\n }\r\n }\r\n\r\n onDeleteBeneficiaryFormSuccess(file, response) {\r\n const { imyTier, setDisableConfirm } = this.props;\r\n const { addImyLayer } = this.state;\r\n\r\n if (response != null) {\r\n let { benefForms } = this.state;\r\n benefForms = benefForms.filter(doc => doc.id !== file.id);\r\n this.setState({ benefForms });\r\n if (imyTier && !addImyLayer) {\r\n setDisableConfirm(!benefForms || benefForms.length === 0);\r\n }\r\n } else {\r\n toastr.error('', `Failed to remove ${ (file && file.name) ?? 'the file' }. Please try again`);\r\n }\r\n }\r\n\r\n onDeleteWhdStatement(file) {\r\n const { dispatch } = this.props;\r\n const { benefForms } = this.state;\r\n\r\n if (file != null) {\r\n this.setState({ whdStatement: null, benefForms: [] });\r\n dispatch(change('uploadingPdfForm', 'benefFormType', null));\r\n if (benefForms && benefForms.length > 0) {\r\n benefForms.forEach(beneForm => beneForm && beneForm.id && this.onDeleteSupportingDocument(beneForm));\r\n }\r\n } else {\r\n toastr.error('', 'Failed to remove withholding statement. Please try again');\r\n }\r\n }\r\n\r\n onDeleteSupportingDocument(file) {\r\n ApiService\r\n .deleteTempUpload(file.id)\r\n .then((result) => {\r\n if (result != null) {\r\n let { supportingDocs } = this.state;\r\n supportingDocs = supportingDocs.filter(doc => doc.id !== file.id);\r\n this.setState({ supportingDocs });\r\n } else {\r\n toastr.error('', `Failed to remove ${ file.name }. Please try again`);\r\n }\r\n })\r\n .catch(err => toastr.error('', `Failed to remove ${ file.name }. Please try again`));\r\n }\r\n\r\n /* Input Changes */\r\n\r\n onFormTypeChange(e, newValue) {\r\n const { permissions } = this.props;\r\n const { customerObject, tabs } = this.state;\r\n\r\n const accountsWhereImyTopLevel = customerObject?.accounts.filter(x => !(x?.parentAccountId) && x?.withholdingStatementId) ?? [];\r\n tabs[3].enabled = (newValue === 'w8imy' || newValue === 'w8imy_2017' || newValue === 'w8imy_2021') && AccessControl.hasPermission(permissions, [ActivityPerms.scannedUpload, ActivityPerms.scannedWhdStmtBoUpload], true);\r\n\r\n if (tabs[3].enabled) {\r\n const accountList = customerObject && customerObject.accounts && customerObject.accounts.map(x => x.value);\r\n this.setState({ showImyOverwriteWarning: false });\r\n if (accountList && accountList.length > 0) {\r\n ApiService\r\n .getAccountWithholdingStatements(accountList)\r\n .then(result => this.setState({ existingStatements: (result && result.data) || null }))\r\n .catch(() => toastr.error('', 'Unable to check for existing withholding statements'));\r\n }\r\n } else if (accountsWhereImyTopLevel.length > 0 && newValue && (newValue.startsWith('w8') || newValue.startsWith('w9') || newValue.startsWith('fatca'))) {\r\n this.setState({ showImyOverwriteWarning: true });\r\n } else {\r\n this.setState({ showImyOverwriteWarning: false });\r\n }\r\n\r\n this.setState({\r\n formType: newValue,\r\n tabs\r\n });\r\n }\r\n\r\n onActiveWhsLinkMonitorsChange(accounts) {\r\n const { whsLinkAccounts } = this.state;\r\n\r\n if (!accounts) {\r\n return;\r\n }\r\n const newAccounts = whsLinkAccounts.filter(x => accounts.includes(x.value));\r\n this.setState({ whsLinkAccounts: newAccounts });\r\n }\r\n\r\n /* Results Actions */\r\n\r\n onTakeForm(id, accountId) {\r\n const { dispatch } = this.props;\r\n\r\n if (!id) {\r\n toastr.error('Error', 'Cannot navigate to the form at this time. Please return to \\'Home\\' and pick this up from the \\'Initial Review\\' queue');\r\n return;\r\n }\r\n\r\n dispatch(takeQueueItem('form', id, accountId));\r\n }\r\n\r\n /* Form Validation */\r\n\r\n onFormSubmit(event) {\r\n const {\r\n onSubmit,\r\n imyTier,\r\n setDisableConfirm\r\n } = this.props;\r\n const { tabs, benefForms } = this.state;\r\n const errors = this.validate();\r\n\r\n tabs[5].enabled = true;\r\n this.setState({ tabs });\r\n\r\n this.onSelectTab(5);\r\n\r\n if (errors != null && errors.length === 0) {\r\n onSubmit(imyTier, this.state);\r\n\r\n if (benefForms.length <= 0) {\r\n setDisableConfirm(true);\r\n }\r\n tabs[4].enabled = false;\r\n } else {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n getWhdStatementOwners(accountId) {\r\n const { dispatch } = this.props;\r\n\r\n ApiService\r\n .getFormStatement(accountId)\r\n .then((response) => {\r\n if (!response.data) {\r\n this.setState({ whdStatement: response.data });\r\n return;\r\n }\r\n\r\n const whdStatement = response.data;\r\n const { imyOwners } = whdStatement;\r\n const initialStatement = JSON.parse(JSON.stringify(whdStatement));\r\n\r\n this.setState({ imyOwners, whdStatement, initialStatement });\r\n\r\n if (!imyOwners || imyOwners.length === 0) {\r\n const { tabs } = this.state;\r\n tabs[0].enabled = true;\r\n tabs[0].visible = false;\r\n tabs[3].visible = true;\r\n tabs[3].enabled = true;\r\n this.setState({ tabs, activeTab: 2, addImyLayer: false });\r\n }\r\n })\r\n .catch((err) => {\r\n toastr.error('', `Failed to get WHD Allocation Statement\\n${ err }`);\r\n dispatch(hideAddFormModal());\r\n });\r\n }\r\n\r\n getWhdStatementLayerOwners(accountId, accountName) {\r\n const { dispatch } = this.props;\r\n\r\n ApiService\r\n .getFormStatementLayerOwners(accountId, accountName)\r\n .then((response) => {\r\n const { whdStatement } = this.state;\r\n if (response.data) {\r\n const newStatement = JSON.parse(JSON.stringify(whdStatement));\r\n newStatement.owners = response.data;\r\n this.setState({ whdStatement: newStatement });\r\n return;\r\n }\r\n\r\n this.setState({ whdStatement });\r\n })\r\n .catch((err) => {\r\n toastr.error('', `Failed to get WHD Allocation Statement Tier Owners\\n${ err }`);\r\n dispatch(hideAddFormModal());\r\n });\r\n }\r\n\r\n onFormReferenceChange = (e) => {\r\n this.setState({ wFormReference: e.target.value });\r\n };\r\n\r\n onCrsFormReferenceChange = (e) => {\r\n this.setState({ crsFormReference: e.target.value });\r\n };\r\n\r\n onFatcaCrsFormReferenceChange = (e) => {\r\n this.setState({ fatcaCrsFormReference: e.target.value });\r\n };\r\n\r\n onCustomerType = (e, newValue, prevValue) => {\r\n const { dispatch } = this.props;\r\n const { wForms, crsForms, fatcaCrsForms, formType, crsFormType, fatcaCrsFormType } = this.state;\r\n const newFormType = wForms && wForms.length > 0 ? formType : '';\r\n const newCrsFormType = crsForms && crsForms.length > 0 ? crsFormType : '';\r\n const newfatcaCrsFormType = fatcaCrsForms && fatcaCrsForms.length > 0 ? fatcaCrsFormType : '';\r\n dispatch(change('uploadingPdfForm', 'formType', null));\r\n dispatch(change('uploadingPdfForm', 'crsFormType', null));\r\n dispatch(change('uploadingPdfForm', 'fatcaCrsFormType', null));\r\n this.setState({ customerType: newValue, formType: newFormType, crsFormType: newCrsFormType, showAllForms: false, fatcaCrsFormType: newfatcaCrsFormType });\r\n };\r\n\r\n onUsNonUsChange = (e, newValue, prevValue) => {\r\n const { dispatch } = this.props;\r\n const { wForms, crsForms, fatcaCrsForms, formType, crsFormType, fatcaCrsFormType } = this.state;\r\n const newFormType = wForms && wForms.length > 0 ? formType : '';\r\n const newCrsFormType = crsForms && crsForms.length > 0 ? crsFormType : '';\r\n const newfatcaCrsFormType = fatcaCrsForms && fatcaCrsForms.length > 0 ? fatcaCrsFormType : '';\r\n dispatch(change('uploadingPdfForm', 'formType', null));\r\n dispatch(change('uploadingPdfForm', 'crsFormType', null));\r\n dispatch(change('uploadingPdfForm', 'fatcaCrsFormType', null));\r\n this.setState({ usNonUs: newValue, formType: newFormType, crsFormType: newCrsFormType, showAllForms: false, fatcaCrsFormType: newfatcaCrsFormType });\r\n };\r\n\r\n onImyAccountSelectedItem = (lookupValue) => {\r\n const { dispatch, imyTier } = this.props;\r\n this.setState({ imyAccountGuid: lookupValue });\r\n if (imyTier) {\r\n this.getWhdStatementLayerOwners(imyTier.accountId, lookupValue || null);\r\n }\r\n dispatch(change('uploadingPdfForm', 'addImyOwner', lookupValue));\r\n };\r\n\r\n onImyAccountChange = (e, newValue) => {\r\n const { dispatch, imyTier } = this.props;\r\n this.setState({ imyAccountGuid: newValue });\r\n if (imyTier) {\r\n this.getWhdStatementLayerOwners(imyTier.accountId, newValue || null);\r\n }\r\n dispatch(change('uploadingPdfForm', 'addImyOwner', newValue));\r\n };\r\n\r\n onWFormDateChange = (e, newValue, prevValue) => this.setState({ wFormDate: newValue });\r\n\r\n onCrsFormTypeChange = (e, newValue) => this.setState({ crsFormType: newValue });\r\n\r\n onFatcaCrsFormTypeChange = (e, newValue) => {\r\n const { customerObject } = this.state;\r\n const accountsWhereImyTopLevel = customerObject?.accounts.filter(x => !(x?.parentAccountId) && x?.withholdingStatementId) ?? [];\r\n\r\n if (accountsWhereImyTopLevel.length > 0 && newValue && (newValue.startsWith('fatca'))) {\r\n this.setState({ showImyOverwriteWarningCombined: true });\r\n } else {\r\n this.setState({ showImyOverwriteWarningCombined: false });\r\n }\r\n\r\n this.setState({ fatcaCrsFormType: newValue });\r\n };\r\n\r\n onCrsFormDateChange = (e, newValue, prevValue) => this.setState({ crsFormDate: newValue });\r\n\r\n onFatcaCrsFormDateChange = (e, newValue, prevValue) => this.setState({ fatcaCrsFormDate: newValue });\r\n\r\n onWhdStatementTypeChange = (e, newValue) => this.setState({ whdStatementType: newValue, showBeneficiaryFileUpload: (newValue !== 'qipooled' && newValue !== 'nqipooled' && newValue !== 'pooledwhdstatement') });\r\n\r\n onOriginEmailChange = (e, newValue) => this.setState({ originEmail: newValue.trim() });\r\n\r\n onSupportingDocTypeChange = (e, newValue) => this.setState({ supportingDocType: newValue });\r\n\r\n onImyBeneficiarySelected = (e, value, index) => {\r\n const { benefForms, whdStatement } = this.state;\r\n const owner = whdStatement && whdStatement.owners && whdStatement.owners.find(o => o.guid === value);\r\n\r\n benefForms[index].subAccountId = owner && owner.accountId;\r\n benefForms[index].subAccountName = owner && owner.name;\r\n benefForms[index].subAccountGuid = owner && owner.guid;\r\n this.setState({ benefForms });\r\n };\r\n\r\n onImyChoiceChange = (newValue) => {\r\n const { tabs, addImyLayer, initialStatement } = this.state;\r\n const { dispatch } = this.props;\r\n\r\n if (newValue === addImyLayer) {\r\n return;\r\n }\r\n\r\n tabs[0].enabled = true;\r\n tabs[3].enabled = !newValue;\r\n\r\n this.setState({ imyAccountGuid: null, wForms: [], whdStatement: initialStatement });\r\n dispatch(change('uploadingPdfForm', 'addImyOwner', null));\r\n dispatch(change('uploadingPdfForm', 'formType', null));\r\n dispatch(change('uploadingPdfForm', 'benefFormType', null));\r\n\r\n dispatch(change('uploadingPdfForm', 'addImyLayer', newValue));\r\n this.setState({ tabs, wForms: [], benefForms: [], formType: null, addImyLayer: newValue }, () => {\r\n this.onSelectTab(newValue ? 0 : 2);\r\n });\r\n };\r\n\r\n setCustomerObjectCallback(data) {\r\n const { permissions, onSetModalSize } = this.props;\r\n this.setState({ customerObject: data });\r\n\r\n if (data.accounts && data.accounts.length > 0) {\r\n this.setState({ whsLinkAccounts: data.accounts });\r\n } else {\r\n this.setState({ whsLinkAccounts: [] });\r\n }\r\n\r\n const { tabs } = this.state;\r\n this.clearStateForSessionResend();\r\n\r\n const crsEnabled = data.legalEntities != null\r\n && data.legalEntities.filter(le => (le.chapter4Status === 6 || le.chapter4Status === 7) || le.crsParticipating).length > 0;\r\n\r\n const combinedAllowed = data.legalEntities != null\r\n && data.legalEntities.filter(le => le.chapter4Status === 1 || le.chapter4Status === 2).length === 0;\r\n\r\n tabs[0].enabled = data.selectionValid;\r\n tabs[1].enabled = data.selectionValid && crsEnabled;\r\n tabs[2].enabled = data.selectionValid && combinedAllowed && this.fatcaCrsFormsLicensed();\r\n tabs[4].enabled = data.selectionValid && AccessControl.hasPermission(permissions, [ActivityPerms.scannedSupDocs]);\r\n tabs[5].enabled = false;\r\n\r\n if (tabs.filter(t => t.enabled).length && onSetModalSize) {\r\n onSetModalSize('');\r\n } else {\r\n onSetModalSize('modal-allow-overflow');\r\n }\r\n\r\n this.setState({\r\n tabs\r\n });\r\n\r\n this.onSelectTab(0);\r\n }\r\n\r\n // eslint-disable-next-line react/sort-comp, class-methods-use-this\r\n filterClientList = () => {\r\n const clients = getStorageSetting('clients') || [];\r\n const selectedClient = getStorageSetting('selectedClient');\r\n let filteredClientList = clients;\r\n\r\n if (selectedClient != null) {\r\n filteredClientList = [];\r\n filteredClientList.push(selectedClient);\r\n }\r\n\r\n return filteredClientList;\r\n };\r\n\r\n fatcaCrsFormsLicensed() {\r\n const { formTypes } = this.props;\r\n if (formTypes && formTypes.length > 1) {\r\n for (let i = 0; i < formTypes.length; i += 1) {\r\n if (formTypes[i].key === 'fatca_crse_2022' || formTypes[i].key === 'fatca_crsi_2022' || formTypes[i].key === 'fatca_crsi_2023' || formTypes[i].key === 'fatca_crse_2023') {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n fieldHasErrors(field) {\r\n const { formErrors } = this.state;\r\n\r\n return formErrors != null && formErrors.filter(error => error.field === field).length > 0;\r\n }\r\n\r\n validate() {\r\n const { imyTier } = this.props;\r\n const { clientId,\r\n formType, wForms,\r\n crsFormType, crsForms,\r\n fatcaCrsFormType, fatcaCrsForms,\r\n wFormDate, crsFormDate, fatcaCrsFormDate,\r\n whdStatementType, whdStatement,\r\n imyAccountGuid,\r\n originEmail, benefForms, addImyLayer,\r\n wFormReference, crsFormReference, fatcaCrsFormReference } = this.state;\r\n let { formErrors } = this.state;\r\n\r\n formErrors = [];\r\n if (!imyTier) {\r\n if (!clientId) {\r\n formErrors.push({ field: 'client', message: 'A Client is required' });\r\n }\r\n }\r\n\r\n if (imyTier && !addImyLayer && (!benefForms || benefForms.length === 0) && (!formType || !wForms || !wForms.length === 0)) {\r\n formErrors.push({ field: 'benefForms', message: 'At least one beneficiary form or a replacment W-8IMY form should be uploaded' });\r\n } else if (!imyTier || (imyTier && addImyLayer)) {\r\n if (!(wForms && wForms.length > 0)\r\n && !(crsForms && crsForms.length > 0)\r\n && !(fatcaCrsForms && fatcaCrsForms.length > 0)) {\r\n formErrors.push({ field: 'wFormCrsForm', message: 'At least one form should be uploaded' });\r\n } else {\r\n if (formType || (wForms && wForms.length > 0)) {\r\n if (!formType) {\r\n formErrors.push({ field: 'formType', message: 'A W Form Type is required' });\r\n }\r\n\r\n if (!wForms == null || wForms.length === 0) {\r\n formErrors.push({ field: 'wForm', message: 'A W Form must be uploaded' });\r\n }\r\n }\r\n\r\n if (!imyTier && (crsFormType || (crsForms && crsForms.length > 0))) {\r\n if (!crsFormType) {\r\n formErrors.push({ field: 'crsFormType', message: 'A CRS Form Type is required' });\r\n }\r\n\r\n if (!crsForms == null || crsForms.length === 0) {\r\n formErrors.push({ field: 'crsForms', message: 'A CRS Form must be uploaded' });\r\n }\r\n }\r\n\r\n if (!imyTier && (fatcaCrsFormType || (fatcaCrsForms && fatcaCrsForms.length > 0))) {\r\n if (!fatcaCrsFormType) {\r\n formErrors.push({ field: 'fatcaCrsFormType', message: 'A Combined Form Type is required' });\r\n }\r\n\r\n if (!fatcaCrsForms == null || fatcaCrsForms.length === 0) {\r\n formErrors.push({ field: 'fatcaCrsForms', message: 'A Combined Form must be uploaded' });\r\n }\r\n }\r\n\r\n if (imyTier) {\r\n if (imyAccountGuid == null && addImyLayer) {\r\n formErrors.push({ field: 'addImyOwner', message: 'Please select the appropriate Beneficial Owner account for the W-8IMY form.' });\r\n }\r\n }\r\n }\r\n\r\n if (formType != null && formType.indexOf('imy') !== -1) {\r\n if (!imyTier && whdStatementType && !whdStatement) {\r\n formErrors.push({ field: 'whdStatement', message: 'An Withholding statement must be uploaded' });\r\n } else if (!imyTier && !whdStatementType && whdStatement) {\r\n formErrors.push({ field: 'whdStatementType', message: 'A Withholding statement type is required' });\r\n }\r\n }\r\n\r\n if (wFormDate) {\r\n const parsedDate = parse(wFormDate, 'MMM dd, yyyy', new Date());\r\n if (!isValid(parsedDate)) {\r\n formErrors.push({ field: 'wFormDate', message: 'Invalid Signature Date on W Forms Tab' });\r\n }\r\n }\r\n\r\n if (crsFormDate) {\r\n const parsedDate = parse(crsFormDate, 'MMM dd, yyyy', new Date());\r\n if (!isValid(parsedDate)) {\r\n formErrors.push({ field: 'crsFormDate', message: 'Invalid Signature Date on CRS Forms Tab' });\r\n }\r\n }\r\n\r\n if (fatcaCrsFormDate) {\r\n const parsedDate = parse(fatcaCrsFormDate, 'MMM dd, yyyy', new Date());\r\n if (!isValid(parsedDate)) {\r\n formErrors.push({ field: 'fatcaCrsFormDate', message: 'Invalid Signature Date on Combined Forms Tab' });\r\n }\r\n }\r\n\r\n if (originEmail && originEmail.indexOf('@') === -1) {\r\n formErrors.push({ field: 'originEmail', message: 'The origin email entered is not a valid email address' });\r\n }\r\n\r\n if (wFormReference != null && wFormReference.length > 150) {\r\n formErrors.push({ field: 'form-reference', message: 'The w-form reference supplied is longer than 150 characters' });\r\n }\r\n\r\n if (wFormReference != null && wFormReference.match(/[^A-Za-z\\d_/.\\\\-]/)) {\r\n formErrors.push({ field: 'form-reference', message: 'No spaces or special characters allowed in the w-form reference' });\r\n }\r\n\r\n if (crsFormReference != null && crsFormReference.length > 150) {\r\n formErrors.push({ field: 'crs-form-reference', message: 'The crs-form reference supplied is longer than 150 characters' });\r\n }\r\n\r\n if (crsFormReference != null && crsFormReference.match(/[^A-Za-z\\d_/.\\\\-]/)) {\r\n formErrors.push({ field: 'crs-form-reference', message: 'No spaces or special characters allowed in the crs-form reference' });\r\n }\r\n\r\n if (fatcaCrsFormReference != null && fatcaCrsFormReference.length > 150) {\r\n formErrors.push({ field: 'combined-form-reference', message: 'The combined-form reference supplied is longer than 150 characters' });\r\n }\r\n\r\n if (fatcaCrsFormReference != null && fatcaCrsFormReference.match(/[^A-Za-z\\d_/.\\\\-]/)) {\r\n formErrors.push({ field: 'combined-form-reference', message: 'No spaces or special characters allowed in the combined-form reference' });\r\n }\r\n }\r\n\r\n if (whdStatement && benefForms && benefForms.length > 0) {\r\n let missingBeneficiaries = false;\r\n let duplicatedBeneficiaries = false;\r\n const duplicateBenef = AddFormsPopupForm.getDuplicateValues(benefForms, 'subAccountName');\r\n\r\n benefForms.forEach((value, idx) => {\r\n if (!value.subAccountName && !value.subAccountId) {\r\n formErrors.push({ field: `imyBeneficiaryAccount-${ idx }`, message: !missingBeneficiaries && 'One or more IMY beneficiary has not been selected' });\r\n missingBeneficiaries = true;\r\n } else if (duplicateBenef.length > 0 && duplicateBenef.indexOf(value.subAccountName) > -1) {\r\n formErrors.push({ field: `imyBeneficiaryAccount-${ idx }`, message: !duplicatedBeneficiaries && 'IMY Beneficiary has been added twice' });\r\n duplicatedBeneficiaries = true;\r\n }\r\n });\r\n }\r\n\r\n this.setState({\r\n formErrors\r\n });\r\n\r\n return formErrors;\r\n }\r\n\r\n clearStateForSessionResend() {\r\n const { dispatch } = this.props;\r\n dispatch(change('uploadingPdfForm', 'formType', null));\r\n dispatch(change('uploadingPdfForm', 'crsFormType', null));\r\n dispatch(change('uploadingPdfForm', 'fatcaCrsFormType', null));\r\n dispatch(change('uploadingPdfForm', 'sourceEmailAddress', null));\r\n dispatch(change('uploadingPdfForm', 'supportingDocType', null));\r\n this.setState({\r\n wFormReference: null,\r\n formType: null,\r\n wForms: [],\r\n crsFormReference: null,\r\n crsFormType: null,\r\n crsForms: [],\r\n fatcaCrsFormReference: null,\r\n fatcaCrsFormType: null,\r\n fatcaCrsForms: [],\r\n originEmail: null,\r\n supportingDocType: null,\r\n supportingDocs: [],\r\n formErrors: [],\r\n existingStatements: null,\r\n showImyOverwriteWarning: false,\r\n showImyOverwriteWarningCombined: false\r\n });\r\n\r\n this.onFormTypeChange(null, null);\r\n }\r\n\r\n render() {\r\n const {\r\n id,\r\n imyTier,\r\n isSubmitting,\r\n results,\r\n setDisableConfirm,\r\n } = this.props;\r\n const {\r\n files,\r\n formErrors,\r\n addImyLayer,\r\n clientId,\r\n customerType,\r\n usNonUs,\r\n crsFormType,\r\n fatcaCrsFormType,\r\n formType,\r\n whdStatement,\r\n activeTab,\r\n tabs,\r\n date,\r\n showBeneficiaryFileUpload,\r\n benefForms,\r\n supportingDocType,\r\n supportingDocs,\r\n showAllForms,\r\n imyAccountGuid,\r\n existingStatements,\r\n imyOwners,\r\n whsLinkAccounts,\r\n customerObject,\r\n showImyOverwriteWarning,\r\n showImyOverwriteWarningCombined\r\n } = this.state;\r\n\r\n const individual = customerType === 'individual';\r\n const entity = customerType === 'entity';\r\n const usPerson = usNonUs === 'us';\r\n const usNonUsGiven = usNonUs != null;\r\n const resultAccount = results && results.accountIds && results.accountIds.length === 1 && results.accountIds[0];\r\n\r\n const accountsPartOfAnImy = customerObject?.accounts.filter(x => x?.parentAccountId) ?? [];\r\n const accountsWhereImyTopLevel = customerObject?.accounts.filter(x => !(x?.parentAccountId) && x?.withholdingStatementId) ?? [];\r\n const displayAddFormTabs = (imyTier || !whsLinkAccounts || whsLinkAccounts.length === 0) && accountsPartOfAnImy?.length === 0;\r\n const isTopLevelImy = accountsWhereImyTopLevel.length > 0;\r\n\r\n return (\r\n
    \r\n this.onFormSubmit(values) }\r\n className=\"form-horizontal\"\r\n noValidate\r\n >\r\n { !imyTier &&
    \r\n this.setCustomerObjectCallback(data) }\r\n accountsPartOfAnImyStructure={ accountsPartOfAnImy }\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.onCustomerType(e, newVal, prevVal) }\r\n className={ this.fieldHasErrors('customerType') ? 'is-error' : '' }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.onUsNonUsChange(e, newVal, prevVal) }\r\n className={ this.fieldHasErrors('usNonUs') ? 'is-error' : '' }\r\n />\r\n
    \r\n
    \r\n
    }\r\n { imyTier &&
    \r\n
    \r\n
    \r\n this.onImyChoiceChange(true) }\r\n >\r\n Upload New W-8IMY\r\n \r\n
    \r\n
    \r\n this.onImyChoiceChange(false) }\r\n >\r\n Upload Tier Forms\r\n \r\n
    \r\n
    \r\n { addImyLayer != null && imyOwners && imyOwners.length > 0 &&
    \r\n { !(imyOwners && addImyLayer) &&
    }\r\n { imyOwners && addImyLayer && \r\n
    \r\n \r\n
    \r\n
    \r\n this.onImyAccountSelectedItem(lookupValue) }\r\n onChange={ (e, newVal) => this.onImyAccountChange(e, newVal) }\r\n >\r\n \r\n { imyOwners.map(x => ) }\r\n \r\n
    \r\n
    }\r\n
    }\r\n { addImyLayer != null && imyOwners && imyOwners.length === 0 &&
    \r\n
    \r\n
    There are no IMY tiers that need to be uploaded for this tree
    \r\n
    \r\n
    }\r\n
    }\r\n { displayAddFormTabs\r\n &&
    \r\n
    \r\n
      \r\n { tabs != null && tabs.filter(t => t.enabled).map(tab => tab != null && (\r\n \r\n this.onSelectTab(tab.index) }\r\n >{ tab.title }\r\n \r\n )) }\r\n
    \r\n
    \r\n
    \r\n { tabs != null && tabs[0] != null && tabs[0].enabled &&
    \r\n
    \r\n
    \r\n { !imyTier &&
    \r\n
    \r\n \r\n
    \r\n
    \r\n { this.onWFormDateChange(e, newVal); } }\r\n />\r\n
    \r\n
    }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.onFormReferenceChange(e) }\r\n />\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n AddFormsPopupForm.onFileUploadCancel(file) }\r\n onFileUploadSuccess={ (file, response) => this.onWFormFileUploadSuccess(file, response) }\r\n onFileUploadError={ (file, error) => AddFormsPopupForm.onFileUploadError(file, error) }\r\n onFileRemoved={ file => this.onDeleteWForm(file) }\r\n clearFiles={ formType === null }\r\n />\r\n
    \r\n
    \r\n
    \r\n { isTopLevelImy && showImyOverwriteWarning &&
    \r\n
    \r\n

    Uploading a W8/W9 form will impact the Intermediary Structure linked to the selected account{ accountsWhereImyTopLevel.length > 1 ? 's' : '' }

    \r\n
    \r\n
    }\r\n
    \r\n
    }\r\n { tabs != null && tabs[1] != null && tabs[1].enabled &&
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { this.onCrsFormDateChange(e, newVal); } }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.onCrsFormReferenceChange(e) }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { (crsFormType === 'ucrse_2019' || crsFormType === 'ucrscp_2019' || crsFormType === 'ucrsi_2023') &&
    \r\n
    \r\n

    Text reading of uploaded Universal CRS forms is not supported. Once submitted, you can refer to the uploaded form to create a digital form for validation.

    \r\n
    \r\n
    }\r\n
    \r\n
    \r\n AddFormsPopupForm.onFileUploadCancel(file) }\r\n onFileUploadSuccess={ (file, response) => this.onCrsFormFileUploadSuccess(file, response) }\r\n onFileUploadError={ (file, error) => AddFormsPopupForm.onFileUploadError(file, error) }\r\n onFileRemoved={ file => this.onDeleteCrsForm(file) }\r\n clearFiles={ crsFormType === null }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    }\r\n { tabs != null && tabs[2] != null && tabs[2].enabled &&
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { this.onFatcaCrsFormDateChange(e, newVal); } }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.onFatcaCrsFormReferenceChange(e) }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n AddFormsPopupForm.onFileUploadCancel(file) }\r\n onFileUploadSuccess={ (file, response) => this.onFatcaCrsFormFileUploadSuccess(file, response) }\r\n onFileUploadError={ (file, error) => AddFormsPopupForm.onFileUploadError(file, error) }\r\n onFileRemoved={ file => this.onDeleteFatcaCrsForm(file) }\r\n clearFiles={ fatcaCrsFormType === null }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n { isTopLevelImy && showImyOverwriteWarningCombined &&
    \r\n
    \r\n

    Uploading a Combined form will impact the Intermediary Structure linked to the selected account{ accountsWhereImyTopLevel.length > 1 ? 's' : '' }

    \r\n
    \r\n
    }\r\n
    }\r\n { tabs != null && tabs[3] != null && tabs[3].enabled &&
    \r\n { !imyTier && this.onWhdStatementTypeChange(e, newValue) }\r\n onFileUploadSuccess={ (file, response) => this.onWhdStatementFileUploadSuccess(file, response) }\r\n onFileUploadError={ (file, error) => this.onWhdStatementFileUploadError(file, error) }\r\n onFileUploadCancel={ file => AddFormsPopupForm.onFileUploadCancel(file) }\r\n onFileDeleteSuccess={ file => this.onDeleteWhdStatement(file) }\r\n disableConfirm={ e => setDisableConfirm(e) }\r\n existingStatements={ existingStatements }\r\n /> }\r\n { /* Beneficiary Form Upload --> */ }\r\n { whdStatement && whdStatement.owners && (imyTier || showBeneficiaryFileUpload) && { this.onImyBeneficiarySelected(e, value, index); } }\r\n onFileUploadSuccess={ (file, response) => { this.onBenefFormFileUploadSuccess(file, response); } }\r\n onFileDeleteSuccess={ (file, response) => { this.onDeleteBeneficiaryFormSuccess(file, response); } }\r\n /> }\r\n
    }\r\n { tabs != null && tabs[4] != null && tabs[4].enabled &&
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n value && value.trim() }\r\n validate={ isEmailAddress }\r\n onChange={ (e, newValue) => this.onOriginEmailChange(e, newValue) }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.onSupportingDocTypeChange(e, newValue) }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n AddFormsPopupForm.onFileUploadCancel(file) }\r\n onFileUploadSuccess={ (file, response) => this.onSupportingDocFileUploadSuccess(file, response) }\r\n onFileUploadError={ (file, error) => AddFormsPopupForm.onFileUploadError(file, error) }\r\n clearFiles={ supportingDocType === null }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n { supportingDocs != null && supportingDocs.map(doc => doc != null && \r\n \r\n \r\n )}\r\n \r\n
    Documents Uploaded
    { `${ doc.fileName }` }\r\n this.onDeleteSupportingDocument(doc) }\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    }\r\n { tabs != null && tabs[5] && tabs[5].enabled &&
    \r\n
    \r\n { !isSubmitting && formErrors === null && results == null &&

    \r\n The form has not been submitted. Click 'Submit' to continue.\r\n

    }\r\n { !isSubmitting && formErrors != null && formErrors.length > 0 &&
    \r\n

    Validation Errors

    \r\n
      \r\n { formErrors != null && formErrors.map(error => error != null && error.message &&
    • { error.message }
    • ) }\r\n
    \r\n
    }\r\n { isSubmitting && }\r\n { !isSubmitting && results != null &&
    \r\n

    Document upload results

    \r\n

    \r\n \r\n Overall Result: { results.success ? 'Successful' : 'Failed' }\r\n
    Please review the documents uploaded below.\r\n

    \r\n { results.error != null &&

    Error: { results.error.message }

    }\r\n { (results.customerIds || (results.files != null && results.files.filter(f => f.customer != null).length > 0)) && \r\n \r\n \r\n \r\n \r\n \r\n \r\n { results.customerIds != null && results.customerIds.map(cust => cust != null && \r\n \r\n )}\r\n \r\n
    Temporary Customer ID(s) created
    { `${ cust.value }` }
    }\r\n { results.files != null && \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { results != null && results.files != null && results.files.map(doc => doc != null && doc.file && \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
    File NameFile TypeUpload ResultView
    { `${ doc.file.fileName }` }
    { (doc.file.category === 0 || doc.file.category === 2) ? `${ doc.file.typeDescription }` : '' }\r\n { doc.success && }\r\n { !doc.success && }\r\n { doc.error && { doc.error.message } }\r\n \r\n { /* Category 0 is Form */ }\r\n { doc.success && doc.file.category === 0 && this.onTakeForm(doc.file.processedId, resultAccount) }\r\n type=\"button\"\r\n title=\"Open\"\r\n >\r\n \r\n }\r\n
    }\r\n
    }\r\n
    \r\n
    }\r\n
    \r\n
    }\r\n this.onFormSubmit(e) }\r\n >Add\r\n { whsLinkAccounts && whsLinkAccounts.length > 0 &&
    \r\n this.onActiveWhsLinkMonitorsChange(accounts) }\r\n />\r\n
    }\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst UploadPdfReduxForm = reduxForm({\r\n form: 'uploadingPdfForm',\r\n})(AddFormsPopupForm);\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nconst mapStateToProps = state => ({\r\n initialValues: {\r\n clientId: state.settings && state.settings.clients && state.settings.clients.length === 1 ? state.settings.clients[0].id : '',\r\n },\r\n formTypes: state.auth && state.auth.settings ? state.auth.settings.formtypes : []\r\n});\r\n\r\nexport const UploadPdfForm = connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(UploadPdfReduxForm);\r\n\r\nexport default UploadPdfForm;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport { UploadPdfForm } from './UploadPdfForm';\r\n\r\nclass AddFormModal extends Component {\r\n static propTypes = {\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n isShown: PropTypes.bool.isRequired,\r\n imyTier: PropTypes.shape(),\r\n addImyLayer: PropTypes.bool,\r\n isAddingForm: PropTypes.bool,\r\n onConfirmUpload: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n addingFormResults: PropTypes.shape({\r\n error: PropTypes.shape({\r\n code: PropTypes.number,\r\n message: PropTypes.string,\r\n }),\r\n success: PropTypes.bool,\r\n files: PropTypes.arrayOf(PropTypes.shape({}))\r\n })\r\n };\r\n\r\n static defaultProps = {\r\n permissions: null,\r\n imyTier: null,\r\n addImyLayer: null,\r\n isAddingForm: false,\r\n addingFormResults: null\r\n };\r\n\r\n constructor() {\r\n super();\r\n this.state = { disableConfirmButton: true, modalSize: 'modal-allow-overflow' };\r\n this.setDisableConfirm = this.setDisableConfirm.bind(this);\r\n this.disableConfirm = this.disableConfirm.bind(this);\r\n }\r\n\r\n onCloseModal(e) {\r\n const { onCancel } = this.props;\r\n\r\n if (onCancel) {\r\n onCancel(e);\r\n }\r\n }\r\n\r\n getParentCustomerName() {\r\n const { imyTier } = this.props;\r\n const na = 'N/A';\r\n\r\n if (imyTier?.customerName && imyTier.customerName !== na) {\r\n return imyTier.customerName;\r\n }\r\n\r\n return imyTier?.accountName || na;\r\n }\r\n\r\n setDisableConfirm(val) {\r\n this.setState({ disableConfirmButton: val });\r\n }\r\n\r\n setModalSize(val) {\r\n this.setState({ modalSize: val });\r\n }\r\n\r\n disableConfirm() {\r\n if (this.state) {\r\n const { disableConfirmButton } = this.state;\r\n return disableConfirmButton;\r\n }\r\n return true;\r\n }\r\n\r\n render() {\r\n const {\r\n isShown,\r\n isAddingForm,\r\n imyTier,\r\n addImyLayer,\r\n onConfirmUpload,\r\n addingFormResults,\r\n permissions\r\n } = this.props;\r\n const {\r\n modalSize\r\n } = this.state;\r\n return (\r\n this.onCloseModal(e) }\r\n disableConfirm={ this.disableConfirm }\r\n modalSize={ modalSize }\r\n formId=\"uploadingPdfForm\"\r\n >\r\n this.setModalSize(val) }\r\n permissions={ permissions }\r\n imyTier={ imyTier }\r\n addImyLayer={ addImyLayer }\r\n results={ addingFormResults }\r\n isSubmitting={ isAddingForm }\r\n setDisableConfirm={ val => this.setDisableConfirm(val) }\r\n />\r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n const {\r\n auth: {\r\n permissions\r\n },\r\n forms: {\r\n isAddingForm,\r\n imyTier,\r\n addImyLayer,\r\n addingFormResults\r\n }\r\n } = state;\r\n return {\r\n imyTier,\r\n permissions,\r\n addImyLayer,\r\n isAddingForm,\r\n addingFormResults\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps\r\n)(AddFormModal);\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { reduxForm, Field } from 'redux-form';\r\n\r\nimport {\r\n FileInput,\r\n MultiFileInput,\r\n CheckboxInput,\r\n SelectInput\r\n} from 'components/Common/Inputs';\r\n\r\nconst UploadPdfFormW8Imy = ({\r\n handleSubmit,\r\n handleImyChange,\r\n addImyToExistingLayer,\r\n id,\r\n initialValues }) => (\r\n handleSubmit(values) }\r\n className=\"form-horizontal\"\r\n >\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {\r\n handleImyChange(newVal);\r\n } }\r\n />\r\n
    \r\n
    \r\n { addImyToExistingLayer &&
    \r\n
    \r\n !value || !value.trim() }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    }\r\n
    \r\n
    \r\n Beneficiary Forms\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Add\r\n \r\n);\r\n\r\nUploadPdfFormW8Imy.propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n handleImyChange: PropTypes.func.isRequired,\r\n addImyToExistingLayer: PropTypes.bool.isRequired,\r\n id: PropTypes.string.isRequired,\r\n initialValues: PropTypes.shape({\r\n addImyToLayer: PropTypes.string,\r\n isFFI: PropTypes.string\r\n }).isRequired\r\n};\r\n\r\nexport default reduxForm({\r\n form: 'uploadPdf-form-w8imy',\r\n initialValues: {\r\n addImyToLayer: '',\r\n isFFI: 'false'\r\n }\r\n})(UploadPdfFormW8Imy);\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { hideAddBeneFormError } from 'actions';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport UploadPdfFormW8imy from './UploadPdfForm';\r\n\r\nclass AddFormModalW8Imy extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n isShown: PropTypes.bool.isRequired,\r\n addImyToExistingLayer: PropTypes.bool,\r\n isAddingBeneForm: PropTypes.bool,\r\n onConfirmUpload: PropTypes.func.isRequired,\r\n onImyChange: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n addingBeneFormError: PropTypes.shape({\r\n code: PropTypes.number,\r\n message: PropTypes.string\r\n }),\r\n parentW8ImyForm: PropTypes.shape()\r\n };\r\n\r\n static defaultProps = {\r\n isAddingBeneForm: false,\r\n addingBeneFormError: null,\r\n addImyToExistingLayer: false,\r\n parentW8ImyForm: null\r\n };\r\n\r\n hideError() {\r\n const { dispatch } = this.props;\r\n dispatch(hideAddBeneFormError());\r\n }\r\n\r\n render() {\r\n const {\r\n isShown,\r\n isAddingBeneForm,\r\n addImyToExistingLayer,\r\n onConfirmUpload,\r\n onImyChange,\r\n onCancel,\r\n addingBeneFormError,\r\n parentW8ImyForm\r\n } = this.props;\r\n\r\n return (\r\n
    \r\n \r\n { addImyToExistingLayer &&

    Please provide a W-8IMY and one or more beneficiary forms.

    }\r\n { !addImyToExistingLayer &&

    Please provide one or more beneficiary forms.

    }\r\n \r\n\r\n { addingBeneFormError\r\n && addingBeneFormError.code !== 0\r\n &&
    \r\n
    }\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n const {\r\n forms: {\r\n isAddingBeneForm,\r\n addingBeneFormError,\r\n parentW8ImyForm\r\n }\r\n } = state;\r\n\r\n return {\r\n isAddingBeneForm,\r\n addingBeneFormError,\r\n parentW8ImyForm\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(AddFormModalW8Imy);\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\n\r\nconst DeleteFormModal = ({\r\n isShown,\r\n isDeletingForm,\r\n onConfirmDelete,\r\n onCancel,\r\n deleteFormError,\r\n items\r\n}) => (\r\n \r\n

    \r\n Are you sure you want to delete { items && items.length > 1 ? 'these forms' : 'this form' }?\r\n

    \r\n {\r\n deleteFormError\r\n &&
    \r\n { deleteFormError }\r\n
    \r\n }\r\n \r\n);\r\n\r\nDeleteFormModal.propTypes = {\r\n isShown: PropTypes.bool,\r\n isDeletingForm: PropTypes.bool,\r\n onConfirmDelete: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n deleteFormError: PropTypes.string,\r\n items: PropTypes.arrayOf(PropTypes.shape({}))\r\n};\r\n\r\nDeleteFormModal.defaultProps = {\r\n isShown: false,\r\n isDeletingForm: false,\r\n deleteFormError: null,\r\n items: []\r\n};\r\n\r\nexport default DeleteFormModal;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\n\r\nconst ChangeOwnershipModal = ({\r\n isShown,\r\n onAssign,\r\n onContinueWithoutAssign,\r\n onCancel,\r\n workflowRecord,\r\n btnCancelClass,\r\n btnCancelTitle,\r\n btnAssignToMeClass,\r\n btnAssignToMeTitle,\r\n btnContinueWithoutAssignClass,\r\n btnContinueWithoutAssignTitle,\r\n\r\n}) => (\r\n \r\n

    \r\n { workflowRecord != null && workflowRecord.currentUserFullName && This item is currently worked on by { workflowRecord.currentUserFullName }.
    }\r\n Do you want to take ownership?
    \r\n Click "Assign to me" to move this to your workflow.\r\n

    \r\n
    \r\n onCancel() }\r\n >{ btnCancelTitle }\r\n onContinueWithoutAssign() }\r\n >{ btnContinueWithoutAssignTitle }\r\n onAssign() }\r\n > {btnAssignToMeTitle} \r\n
    \r\n \r\n);\r\n\r\nChangeOwnershipModal.propTypes = {\r\n isShown: PropTypes.bool,\r\n onAssign: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onContinueWithoutAssign: PropTypes.func.isRequired,\r\n workflowRecord: PropTypes.shape().isRequired,\r\n btnCancelTitle: PropTypes.string,\r\n btnCancelClass: PropTypes.string,\r\n btnAssignToMeClass: PropTypes.string,\r\n btnAssignToMeTitle: PropTypes.string,\r\n btnContinueWithoutAssignClass: PropTypes.string,\r\n btnContinueWithoutAssignTitle: PropTypes.string,\r\n\r\n};\r\n\r\nChangeOwnershipModal.defaultProps = {\r\n isShown: false,\r\n btnCancelTitle: 'Cancel',\r\n btnCancelClass: 'float-left',\r\n btnAssignToMeClass: 'btn-danger',\r\n btnAssignToMeTitle: 'Assign to Me',\r\n btnContinueWithoutAssignClass: '',\r\n btnContinueWithoutAssignTitle: 'Continue without Assigning',\r\n};\r\n\r\nexport default ChangeOwnershipModal;\r\n","const DualFormRequirement = {\r\n QDD: 1,\r\n DisregardedEntity: 2,\r\n HybridEntities: 4\r\n};\r\n\r\nexport default DualFormRequirement;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport DualFormRequirement from 'common/Accounts/DualFormRequirement';\r\n\r\nclass WithholdingTable extends Component {\r\n static propTypes = {\r\n accountWithholding: PropTypes.shape({\r\n rates: PropTypes.arrayOf(PropTypes.shape({})),\r\n isDualFormSatisfied: PropTypes.bool,\r\n dualFormRequirement: PropTypes.number,\r\n hasQddElection: PropTypes.bool,\r\n hasWithholdingStatement: PropTypes.bool,\r\n hasFatcaExemptions: PropTypes.bool,\r\n hasExemptPayeeCodes: PropTypes.bool\r\n })\r\n };\r\n\r\n static defaultProps = {\r\n accountWithholding: null\r\n };\r\n\r\n render() {\r\n const { accountWithholding } = this.props;\r\n\r\n function hasRates(item, type) {\r\n if (item == null || item.rates == null || item.rates.length === 0) {\r\n return false;\r\n }\r\n\r\n return item.rates.some(rate => rate && rate.whdCategory === type);\r\n }\r\n\r\n function getRate(rate) {\r\n return `${ parseFloat(rate * 100).toFixed(2) }%`;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n { accountWithholding != null && accountWithholding.isDualFormSatisfied && accountWithholding.dualFormRequirement === DualFormRequirement.QDD\r\n &&
    The rates below are based upon the Form BEN-E provided by the QDD.
    }\r\n { accountWithholding != null && accountWithholding.hasQddElection\r\n &&
    \r\n

    You must rely on the qualified derivatives dealers statement to identify appropriate withholding.

    \r\n

    The below rate for 871m payments is based on the fact that the QDD is acting as a Principal.

    \r\n

    If this account extends to other Qualified Intermediary activities and new forms provided, this 871m rate may no longer apply.

    \r\n
    }\r\n { accountWithholding != null && accountWithholding.hasWithholdingStatement\r\n &&
    This Form W-8IMY is part of a structure. Navigate to the tree structure in order to view withholding rates.
    }\r\n { accountWithholding != null && !accountWithholding.hasWithholdingStatement && hasRates(accountWithholding, 'Applied')\r\n && \r\n \r\n \r\n \r\n \r\n \r\n \r\n { accountWithholding.hasFatcaExemptions && \r\n \r\n \r\n }\r\n { accountWithholding.hasExemptPayeeCodes && }\r\n \r\n \r\n \r\n { accountWithholding.rates.map(rate => (rate\r\n && rate.whdCategory === 'Applied' && \r\n \r\n \r\n \r\n \r\n { accountWithholding.hasFatcaExemptions && \r\n \r\n \r\n }\r\n { accountWithholding.hasExemptPayeeCodes && }\r\n \r\n )) }\r\n \r\n
    Payment TypeWithholding TypeWithholding RateReporting TypeCh.3 ExemptionCh.4 ExemptionExempt Payee Code
    { rate.paymentTypeDescription }{ rate.whdTypeDescription }{ getRate(rate.appliedRate) }{ rate.reportingTypeDescription }{ rate.chapter3Exemption != null ? `${ rate.ch3ExemptionCode } - ${ rate.ch3ExemptionDescription }` : 'N/A' }{ rate.chapter4Exemption != null ? `${ rate.ch4ExemptionCode } - ${ rate.ch4ExemptionDescription }` : 'N/A' }{ rate.exemptPayeeCodeString ?? 'N/A' }
    }\r\n { accountWithholding != null && !accountWithholding.hasQddElection && !accountWithholding.hasWithholdingStatement && !hasRates(accountWithholding, 'Applied') &&
    \r\n

    Insufficient information to calculate rates

    \r\n
    }\r\n { accountWithholding != null && !accountWithholding.hasQddElection && !accountWithholding.hasWithholdingStatement && \r\n
    \r\n \r\n
    \r\n { hasRates(accountWithholding, 'State') && \r\n \r\n \r\n \r\n \r\n \r\n \r\n { accountWithholding.hasExemptPayeeCodes && }\r\n \r\n \r\n \r\n { accountWithholding.rates.map(rate => (rate\r\n && rate.whdCategory === 'State' && \r\n \r\n \r\n \r\n \r\n { accountWithholding.hasExemptPayeeCodes && }\r\n \r\n )) }\r\n \r\n
    Payment TypeWithholding TypeWithholding RateStateExempt Payee Code
    { rate.paymentTypeDescription }{ rate.whdTypeDescription }{ getRate(rate.appliedRate) }{ rate.stateDescription }{ rate.exemptPayeeCodeString ?? 'N/A' }
    }\r\n { accountWithholding != null && !hasRates(accountWithholding, 'State') &&
    \r\n

    State rates are not available

    \r\n
    }\r\n
    }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default WithholdingTable;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport moment from 'moment';\r\n\r\nimport { switchAccountForWithholding } from 'actions';\r\n\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\nimport WithholdingTable from 'components/WithholdingTable';\r\nimport ModalWrapper from '../ModalWrapper';\r\n\r\nclass WithholdingRatesModal extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n isShown: PropTypes.bool.isRequired,\r\n isGettingAccountWithholding: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n accountWithholding: PropTypes.arrayOf(PropTypes.shape({}))\r\n };\r\n\r\n static defaultProps = {\r\n isGettingAccountWithholding: false,\r\n accountWithholding: null\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n accountList: null,\r\n selectedAccount: null\r\n };\r\n }\r\n\r\n componentDidUpdate() {\r\n const { accountList } = this.state;\r\n const { accountWithholding } = this.props;\r\n\r\n if (accountList == null && accountWithholding !== null) {\r\n this.setAccountList();\r\n }\r\n }\r\n\r\n onAccountValueChanged(e) {\r\n const { dispatch } = this.props;\r\n this.setState({ selectedAccount: e.target.value });\r\n dispatch(switchAccountForWithholding(e.target.value));\r\n }\r\n\r\n setAccountList() {\r\n const { accountList, selectedAccount } = this.state;\r\n const { accountWithholding } = this.props;\r\n\r\n if (accountList == null) {\r\n this.setState({ accountList: accountWithholding });\r\n }\r\n\r\n if (selectedAccount !== null) {\r\n this.setState({ selectedAccount: null });\r\n }\r\n }\r\n\r\n closeModal() {\r\n const { onClose } = this.props;\r\n this.setState({ accountList: null });\r\n this.setState({ selectedAccount: null });\r\n onClose();\r\n }\r\n\r\n render() {\r\n const {\r\n isShown,\r\n isGettingAccountWithholding,\r\n accountWithholding\r\n } = this.props;\r\n const { accountList, selectedAccount } = this.state;\r\n const withholdingContainer = accountWithholding && accountWithholding.length > 0 && accountWithholding[0];\r\n\r\n function dateFormatter(value, format) {\r\n return moment(value).format(format);\r\n }\r\n\r\n function getDateCalculated(withholding) {\r\n if (withholding && withholding[0] !== null && withholding[0].rates) {\r\n if (withholding[0].dateCalculated !== null) {\r\n return `${ dateFormatter(withholding[0].dateCalculated, 'MMM DD, YYYY') }`;\r\n }\r\n }\r\n return 'N/A';\r\n }\r\n\r\n return (\r\n this.closeModal() }\r\n showFooter={ false }\r\n modalSize=\"modal-lg whd-rates-modal\"\r\n >\r\n { isGettingAccountWithholding && }\r\n { !isGettingAccountWithholding && accountWithholding &&
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.onAccountValueChanged(e) }\r\n >\r\n { accountList != null && accountList.map((option, i) => (\r\n \r\n )) }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { getDateCalculated(accountWithholding) }\r\n
    \r\n
    \r\n \r\n
    }\r\n \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const { forms: {\r\n isGettingAccountWithholding,\r\n accountWithholding\r\n } } = state;\r\n\r\n return {\r\n isGettingAccountWithholding,\r\n accountWithholding\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(WithholdingRatesModal);\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { push } from 'connected-react-router';\r\nimport moment from 'moment';\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\n\r\nclass ImyFormTable extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n ImyForms: PropTypes.shape(),\r\n isGettingImyForms: PropTypes.bool,\r\n };\r\n\r\n static defaultProps = {\r\n ImyForms: null,\r\n isGettingImyForms: false,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n navigateToImyStructure(form) {\r\n const { dispatch } = this.props;\r\n dispatch(push(`/w8imystructure/${ form.topLevelAccountId }`));\r\n }\r\n\r\n render() {\r\n const {\r\n isGettingImyForms,\r\n ImyForms\r\n } = this.props;\r\n\r\n function dateFormatter(value, format) {\r\n return moment(value).format(format);\r\n }\r\n\r\n function getEffectiveDate(form) {\r\n if (form.uploadedDate !== null) {\r\n return `${ dateFormatter(form.lastUpdatedDate, 'MMM DD, YYYY HH:mm:ss') }`;\r\n }\r\n return 'N/A';\r\n }\r\n\r\n return (\r\n
    \r\n { isGettingImyForms && }\r\n { ImyForms &&
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { ImyForms && ImyForms.imyforms\r\n && ImyForms.imyforms.length > 0 && ImyForms.imyforms.map(form => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n { ImyForms.imyforms.length <= 0 && }\r\n \r\n
    Top Level IMY CustomerTop Level IMY AccountLast UpdatedView
    { form.topLevelCustomer }{ form.topLevelAccount }{ getEffectiveDate(form) }\r\n { form.hasAllocationStatement && this.navigateToImyStructure(form) }\r\n >\r\n \r\n }\r\n

    No Data to Show

    \r\n
    \r\n
    }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ImyFormTable;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { push } from 'connected-react-router';\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\nimport ImyFormTable from 'components/ImyFormTable';\r\nimport ModalWrapper from '../ModalWrapper';\r\n\r\nclass CustomerImyFormsModal extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n isShown: PropTypes.bool.isRequired,\r\n isGettingParentImyForms: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n parentImyForms: PropTypes.shape()\r\n };\r\n\r\n static defaultProps = {\r\n isGettingParentImyForms: false,\r\n parentImyForms: null\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n shouldComponentUpdate(nextProps) {\r\n if (nextProps.isShown && nextProps.parentImyForms?.imyforms?.length === 1) {\r\n this.navigateToImyStructure(nextProps?.parentImyForms.imyforms[0]);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n navigateToImyStructure(form) {\r\n const { dispatch } = this.props;\r\n\r\n dispatch(push(`/w8imystructure/${ form.topLevelAccountId }`));\r\n this.closeModal();\r\n }\r\n\r\n closeModal() {\r\n const { onClose } = this.props;\r\n onClose();\r\n }\r\n\r\n render() {\r\n const {\r\n isShown,\r\n isGettingParentImyForms,\r\n parentImyForms,\r\n dispatch\r\n } = this.props;\r\n\r\n return (\r\n this.closeModal() }\r\n showFooter={ false }\r\n modalSize=\"modal-lg whd-rates-modal\"\r\n >\r\n { isGettingParentImyForms && }\r\n { !isGettingParentImyForms && parentImyForms &&
    \r\n \r\n
    }\r\n \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const { forms: {\r\n isGettingParentImyForms,\r\n parentImyForms\r\n } } = state;\r\n\r\n return {\r\n isGettingParentImyForms,\r\n parentImyForms\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(CustomerImyFormsModal);\r\n","/* eslint-disable react/jsx-boolean-value */\r\nimport React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { reduxForm } from 'redux-form';\r\nimport { connect } from 'react-redux';\r\nimport { toastr } from 'react-redux-toastr';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport AutoCompleteInput from 'components/Common/Inputs/AutoCompleteInput';\r\n\r\nclass AssignToUserModalForm extends Component {\r\n static propTypes = {\r\n isShown: PropTypes.bool.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onConfirmAssign: PropTypes.func.isRequired,\r\n getItemsList: PropTypes.func.isRequired,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n assignToUser: null,\r\n };\r\n\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n }\r\n\r\n handleSubmit(event) {\r\n const {\r\n onConfirmAssign,\r\n getItemsList,\r\n } = this.props;\r\n\r\n const {\r\n assignToUser\r\n } = this.state;\r\n\r\n event.preventDefault();\r\n\r\n const itemsList = getItemsList();\r\n if (!itemsList || itemsList.length === 0) {\r\n toastr.error('', 'Please close the window and try again');\r\n return;\r\n }\r\n\r\n onConfirmAssign(itemsList, assignToUser);\r\n this.setState({ assignToUser: null });\r\n }\r\n\r\n onAssignToUserSelectedItem = (lookupValue) => {\r\n this.setState({ assignToUser: lookupValue });\r\n };\r\n\r\n onAssignToUserChange = (e, value) => {\r\n const { assignToUser } = this.state;\r\n\r\n if (value === '') {\r\n this.setState({ assignToUser: null });\r\n }\r\n\r\n if (assignToUser && assignToUser.value !== value) {\r\n this.setState({ assignToUser: null });\r\n }\r\n };\r\n\r\n cancelAssign() {\r\n const { onCancel } = this.props;\r\n\r\n if (onCancel !== null) {\r\n this.setState({ assignToUser: null });\r\n onCancel();\r\n }\r\n }\r\n\r\n render() {\r\n const { isShown } = this.props;\r\n const { assignToUser } = this.state;\r\n\r\n return (\r\n this.cancelAssign() }\r\n formId=\"assignToUserForm\"\r\n modalSize=\"assign-to-user-modal\"\r\n useDummySubmit={ true }\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n User Account\r\n \r\n
    \r\n
    \r\n this.onAssignToUserSelectedItem(lookupValue) }\r\n onChange={ (e, value) => this.onAssignToUserChange(e, value) }\r\n />\r\n
    \r\n
    \r\n Confirm\r\n \r\n \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nconst AssignToUserModalReduxForm = reduxForm({\r\n form: 'AssignToUserModalForm'\r\n})(AssignToUserModalForm);\r\n\r\nexport const AssignToUserModal = connect(\r\n mapDispatchToProps,\r\n)(AssignToUserModalReduxForm);\r\n\r\nexport default AssignToUserModal;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\n\r\nconst UnassignToUserModal = ({\r\n isShown,\r\n onCancel,\r\n onConfirmUnassign,\r\n form,\r\n}) => (\r\n onConfirmUnassign(form) }\r\n onCancel={ onCancel }\r\n >\r\n

    \r\n Are you sure you want to unassign this form?\r\n

    \r\n \r\n);\r\n\r\nUnassignToUserModal.propTypes = {\r\n isShown: PropTypes.bool,\r\n onConfirmUnassign: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n form: PropTypes.arrayOf(PropTypes.shape({}))\r\n};\r\n\r\nUnassignToUserModal.defaultProps = {\r\n isShown: false,\r\n form: []\r\n};\r\n\r\nexport default UnassignToUserModal;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { reduxForm, Field } from 'redux-form';\r\nimport { connect } from 'react-redux';\r\nimport { toastr } from 'react-redux-toastr';\r\n\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport { TextInput } from 'components/Common/Inputs/TextInput';\r\n\r\nclass EditFormReferenceModalForm extends Component {\r\n static defaultProps = {\r\n currentForm: [],\r\n isGettingFormReference: false\r\n };\r\n\r\n static propTypes = {\r\n isShown: PropTypes.bool.isRequired,\r\n onConfirmFormReferenceChange: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n isGettingFormReference: PropTypes.bool,\r\n currentForm: PropTypes.arrayOf(PropTypes.shape())\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n newFormRef: ''\r\n };\r\n\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n }\r\n\r\n handleSubmit(event) {\r\n const { onConfirmFormReferenceChange, currentForm } = this.props;\r\n const { newFormRef } = this.state;\r\n\r\n event.preventDefault();\r\n\r\n if (!newFormRef || newFormRef === null) {\r\n toastr.error('', 'Please, enter a new form reference or cancel the modal');\r\n return;\r\n }\r\n\r\n if (newFormRef.match(/[^A-Za-z\\d_/.\\\\-]/)) {\r\n toastr.error('', 'No spaces or special characters allowed, please correct the form reference');\r\n return;\r\n }\r\n\r\n if (newFormRef && newFormRef.length > 150) {\r\n toastr.error('', 'Please, limit form reference to less than 150 characters');\r\n return;\r\n }\r\n\r\n onConfirmFormReferenceChange(currentForm[0].id, newFormRef);\r\n this.setState({ newFormRef: '' });\r\n }\r\n\r\n onFormReferenceChange = (e) => {\r\n this.setState({ newFormRef: e.target.value });\r\n };\r\n\r\n render() {\r\n const { isShown, onCancel, currentForm, isGettingFormReference } = this.props;\r\n\r\n return (\r\n !currentForm || currentForm.length > 1 }\r\n >\r\n
    \r\n \r\n { currentForm && currentForm.length > 1 &&
    \r\n
    \r\n

    \r\n Please select a single form to be able to edit the form reference.\r\n

    \r\n
    \r\n
    }\r\n { currentForm && currentForm.length === 1 &&
    \r\n { isGettingFormReference && }\r\n { !isGettingFormReference &&
    \r\n
    \r\n
    \r\n

    \r\n Edit Form Reference\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Form Reference\r\n \r\n
    \r\n
    \r\n this.onFormReferenceChange(e) }\r\n />\r\n
    \r\n
    \r\n
    }\r\n
    }\r\n Confirm\r\n \r\n \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst EditFormReferenceModalReduxForm = reduxForm({\r\n form: 'formReferenceEditForm'\r\n})(EditFormReferenceModalForm);\r\n\r\nfunction mapStateToProps(state) {\r\n const { forms: {\r\n isGettingFormReference,\r\n currentForm,\r\n formData\r\n } } = state;\r\n\r\n return {\r\n isGettingFormReference,\r\n currentForm,\r\n initialValues: !isGettingFormReference ? formData : null\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport const EditFormReferenceModal = connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(EditFormReferenceModalReduxForm);\r\n\r\nexport default EditFormReferenceModal;\r\n","import React from 'react';\r\n\r\nconst ErrorGraphic = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\nexport default ErrorGraphic;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Link, withRouter } from 'react-router-dom';\r\n\r\nimport ErrorGraphic from '../ErrorGraphic';\r\n\r\nconst UnexpectedErrorPage = ({ history, caption }) => (\r\n
    \r\n \r\n
    \r\n

    { caption }

    \r\n
    \r\n
    \r\n { history.goBack(); } }\r\n title=\"Go back\"\r\n >\r\n Go Back\r\n \r\n Go to home page\r\n
    \r\n
    \r\n
    \r\n
    \r\n);\r\n\r\nUnexpectedErrorPage.propTypes = {\r\n caption: PropTypes.string,\r\n history: PropTypes.shape().isRequired\r\n};\r\n\r\nUnexpectedErrorPage.defaultProps = {\r\n caption: \"Something's not quite right. Please try again or speak to your system administrator.\"\r\n};\r\n\r\nexport default withRouter(UnexpectedErrorPage);\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport UnexpectedErrorPage from 'components/Errors/UnexpectedErrorPage';\r\nimport Logger from 'logger';\r\n\r\nconst EXCEPTION_TYPE = {\r\n UNCAUGHT: 'UNCAUGHT',\r\n API_REQUEST: 'API_REQUEST',\r\n NETWORK: 'NETWORK'\r\n};\r\n\r\nclass ContainerErrorBoundary extends Component {\r\n static propTypes = {\r\n children: PropTypes.node,\r\n origin: PropTypes.string\r\n };\r\n\r\n static defaultProps = {\r\n children: null,\r\n origin: null\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { hasError: false };\r\n this.logError = this.logError.bind(this);\r\n }\r\n\r\n static getDerivedStateFromError(error) {\r\n return { hasError: true };\r\n }\r\n\r\n componentDidCatch(error, info) {\r\n this.logError(error, info);\r\n this.setState({ hasError: true });\r\n }\r\n\r\n logError = (error, info) => {\r\n const { origin } = this.props;\r\n Logger.error({\r\n message: error?.message,\r\n stack: error?.stack,\r\n componentStack: info?.componentStack,\r\n filename: origin,\r\n type: EXCEPTION_TYPE.UNCAUGHT\r\n });\r\n };\r\n\r\n render() {\r\n const { children } = this.props;\r\n const { hasError } = this.state;\r\n\r\n if (hasError) {\r\n return ;\r\n }\r\n\r\n return children;\r\n }\r\n}\r\n\r\nexport default ContainerErrorBoundary;\r\n","import React from 'react';\r\nimport ContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary';\r\n\r\nconst withContainerErrorBoundary = (WrappedComponent, key) => {\r\n const containerErrorBoundaryHigherOrderComponent = props => (\r\n \r\n \r\n \r\n );\r\n return containerErrorBoundaryHigherOrderComponent;\r\n};\r\n\r\nexport default withContainerErrorBoundary;\r\n","import React from 'react';\r\n\r\nfunction getCertifictionStatus(certificationStatus) {\r\n if (certificationStatus !== null) {\r\n if (certificationStatus === 0) {\r\n return 'Uncertified';\r\n }\r\n\r\n const statuses = [];\r\n const expiredStatuses = [];\r\n /* eslint-disable no-bitwise */\r\n const isFatca = (certificationStatus & 1) === 1;\r\n const isChapter61 = (certificationStatus & 2) === 2;\r\n const isNra = isFatca && (certificationStatus & 4) === 4;\r\n const isCrs = (certificationStatus & 8) === 8;\r\n\r\n const isFatcaExpired = (certificationStatus & 0x1000) === 0x1000;\r\n const isNraExpired = isFatcaExpired || (certificationStatus & 0x4000) === 0x4000;\r\n const isCrsExpired = (certificationStatus & 0x8000) === 0x8000;\r\n /* eslint-enable no-bitwise */\r\n\r\n if (isNra) { (isNraExpired ? expiredStatuses : statuses).push('NRA'); }\r\n if (isFatca) { (isFatcaExpired ? expiredStatuses : statuses).push('FATCA'); }\r\n if (isChapter61) { (isFatcaExpired ? expiredStatuses : statuses).push('Chapter\\u00a061'); }\r\n if (isCrs) { (isCrsExpired ? expiredStatuses : statuses).push('CRS'); }\r\n\r\n const activeStatus = statuses.length > 0 ? `Certified: ${ statuses.reduce((prev, curr) => `${ prev }, ${ curr }`) }` : '';\r\n const expiredStatus = expiredStatuses.length > 0 ? `Expired: ${ expiredStatuses.reduce((prev, curr) => `${ prev }, ${ curr }`) }` : '';\r\n return { activeStatus }{ activeStatus && expiredStatus &&
    }{ expiredStatus }
    ;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport default getCertifictionStatus;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { push } from 'connected-react-router';\r\nimport moment from 'moment';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport {\r\n getFormsByObject, getCustomersByObject, getAccountsByObject, getLegalEntitiesByObject, getWorkflowQueueByObject, getUserQueueByObject,\r\n showAddFormModal, addForm, hideAddFormModal, showDeleteFormModal, hideDeleteFormModal,\r\n showAccountWithholdingModal, hideAccountWithholdingModal,\r\n showAssignToUserModal, hideAssignToUserModal, addBeneficiaryForm, changeImyBeneficiaryFormModal, hideAddBeneficiaryFormModal, takeQueueItem, hideOwnershipModal,\r\n assignFormsToUserWithCallback, deleteForms, getFormDetails, getCustomerDetails, clearFormDetails, clearCustomerDetails, getCustomerExportFile,\r\n showEditFormReferenceModal, hideEditFormReferenceModal, editFormReference, saveCriteria, showUnassignFormModal, hideUnassignFormModal, unassignFormsToUserWithCallback, showParentImyFormsModal, hideParentImyFormsModal\r\n} from 'actions';\r\n\r\nimport FormWorkflowStages from 'common/Workflows/FormWorkflowStages';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AccessControl from 'components/AccessControl';\r\n\r\nimport ReactTable from 'components/ReactTable';\r\n\r\nimport SearchPanel from 'components/HomePage/SearchPanel';\r\nimport ActionSelect from 'components/HomePage/ActionSelect';\r\nimport formColumnDefs from 'components/HomePage/GridColumnDefinitions/formColumnDefs';\r\nimport accountColumnDefs from 'components/HomePage/GridColumnDefinitions/accountColumnDefs';\r\nimport customerColumnDefs from 'components/HomePage/GridColumnDefinitions/customerColumnDefs';\r\nimport legalEntityColumnDefs from 'components/HomePage/GridColumnDefinitions/legalEntityColumnDefs';\r\nimport workflowColumnDefs from 'components/HomePage/GridColumnDefinitions/workflowColumnDefs';\r\nimport FormsActions from 'components/HomePage/GridActions/FormsActions';\r\nimport WorkflowActions from 'components/HomePage/GridActions/WorkflowActions';\r\nimport AccountsActions from 'components/HomePage/GridActions/AccountsActions';\r\nimport CustomersActions from 'components/HomePage/GridActions/CustomersActions';\r\n\r\nimport AddFormModal from 'components/Modals/AddFormModal';\r\nimport AddBeneficiaryFormModal from 'components/Modals/AddBeneficiaryFormModal';\r\nimport DeleteFormModal from 'components/Modals/DeleteFormModal';\r\nimport ChangeOwnershipModal from 'components/Modals/ChangeOwnershipModal';\r\nimport WithholdingRatesModal from 'components/Modals/WithholdingRatesModal';\r\nimport CustomerImyFormsModal from 'components/Modals/CustomerImyFormsModal';\r\nimport AssignToUserModal from 'components/Modals/AssignToUserModal';\r\nimport UnassignToUserModal from 'components/Modals/UnassignToUserModal';\r\nimport EditFormReferenceModal from 'components/Modals/EditFormReferenceModalForm';\r\nimport withContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary';\r\nimport getCertifictionStatus from 'common/Forms/CertificationStatus';\r\n\r\nconst WAIT_INTERVAL = 500;\r\n\r\nclass Home extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n settings: PropTypes.shape().isRequired,\r\n formsCount: PropTypes.number.isRequired,\r\n gridTotalLimit: PropTypes.number.isRequired,\r\n isAddFormModalShown: PropTypes.bool.isRequired,\r\n isAssignToUserModalShown: PropTypes.bool.isRequired,\r\n isUnassignModalShown: PropTypes.bool.isRequired,\r\n isEditFormReferenceModalShown: PropTypes.bool,\r\n isDeleteFormModalShown: PropTypes.bool,\r\n isDeletingForm: PropTypes.bool,\r\n deleteFormError: PropTypes.string,\r\n isAccountWithholdingShown: PropTypes.bool.isRequired,\r\n isParentImyFormsShown: PropTypes.bool.isRequired,\r\n isAddBeneficiarFormModalShown: PropTypes.bool.isRequired,\r\n parentW8ImyForm: PropTypes.shape(),\r\n customers: PropTypes.arrayOf(PropTypes.shape()).isRequired,\r\n customersCount: PropTypes.number.isRequired,\r\n accounts: PropTypes.arrayOf(PropTypes.shape()).isRequired,\r\n accountsCount: PropTypes.number.isRequired,\r\n legalEntities: PropTypes.arrayOf(PropTypes.shape()).isRequired,\r\n legalEntitiesCount: PropTypes.number.isRequired,\r\n isFetchingQueues: PropTypes.bool,\r\n isGettingAccounts: PropTypes.bool,\r\n isGettingCustomers: PropTypes.bool,\r\n isGettingForms: PropTypes.bool,\r\n isAddingImyToExistingLayer: PropTypes.bool,\r\n isOwnershipModalShown: PropTypes.bool,\r\n changeOwnershipItem: PropTypes.shape(),\r\n forms: PropTypes.arrayOf(PropTypes.shape()),\r\n userQueue: PropTypes.arrayOf(PropTypes.shape()),\r\n userCount: PropTypes.number,\r\n initialReviewQueue: PropTypes.arrayOf(PropTypes.shape()),\r\n initialReviewCount: PropTypes.number,\r\n secondaryReviewQueue: PropTypes.arrayOf(PropTypes.shape()),\r\n secondaryReviewCount: PropTypes.number,\r\n expertReviewQueue: PropTypes.arrayOf(PropTypes.shape()),\r\n expertReviewCount: PropTypes.number,\r\n completeQueue: PropTypes.arrayOf(PropTypes.shape()),\r\n completeCount: PropTypes.number,\r\n initSearchCriteria: PropTypes.shape(),\r\n initGridCriteria: PropTypes.shape(),\r\n formsList: PropTypes.arrayOf(PropTypes.number),\r\n isExportingToExcel: PropTypes.bool.isRequired,\r\n };\r\n\r\n static defaultProps = {\r\n permissions: null,\r\n isDeleteFormModalShown: false,\r\n isDeletingForm: false,\r\n deleteFormError: null,\r\n isEditFormReferenceModalShown: false,\r\n parentW8ImyForm: null,\r\n isFetchingQueues: false,\r\n isGettingAccounts: false,\r\n isGettingCustomers: false,\r\n isGettingForms: false,\r\n isAddingImyToExistingLayer: false,\r\n isOwnershipModalShown: false,\r\n changeOwnershipItem: null,\r\n forms: [],\r\n userQueue: [],\r\n userCount: 0,\r\n initialReviewQueue: [],\r\n initialReviewCount: 0,\r\n secondaryReviewQueue: [],\r\n secondaryReviewCount: 0,\r\n expertReviewQueue: [],\r\n expertReviewCount: 0,\r\n completeQueue: [],\r\n completeCount: 0,\r\n initSearchCriteria: null,\r\n initGridCriteria: null,\r\n formsList: []\r\n };\r\n\r\n static getClassNameInitialReview(workflowType) {\r\n return workflowType === 'initialreview' ? 'col-20p' : 'col-15p';\r\n }\r\n\r\n static getClassNameWorkflow(workflowType) {\r\n return workflowType === 'mywork' ? 'col-15p' : 'col-15p';\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const { initGridCriteria, initSearchCriteria, permissions, gridTotalLimit } = props;\r\n const searchCriteria = initSearchCriteria || {\r\n searchQuery: '',\r\n legalEntity: '',\r\n legalEntitySelected: false,\r\n accountNumber: '',\r\n accountNumberSelected: false,\r\n customer: '',\r\n customerSelected: false,\r\n formType: '',\r\n gridType: 'forms',\r\n workflowType: 'mywork'\r\n };\r\n const classNameInitialReview = Home.getClassNameInitialReview(searchCriteria.workflowType);\r\n const classNameWorkflow = Home.getClassNameWorkflow(searchCriteria.workflowType);\r\n const gridCriteria = initGridCriteria || {\r\n columnDefs: workflowColumnDefs(permissions, classNameInitialReview, classNameWorkflow).concat([]),\r\n pageIndex: 0,\r\n sortBy: [],\r\n filters: [],\r\n pageCount: 0,\r\n pageSize: 50,\r\n itemCount: 0,\r\n totalLimit: gridTotalLimit,\r\n selectedItems: [],\r\n selectedItem: null\r\n };\r\n\r\n this.state = {\r\n data: [],\r\n showWorkflowButtons: searchCriteria.gridType === 'forms',\r\n loading: true,\r\n loadingTime: 500,\r\n initialLoaded: false,\r\n searchCriteria,\r\n gridCriteria\r\n };\r\n }\r\n\r\n /* eslint-disable-next-line camelcase */\r\n UNSAFE_componentWillMount() {\r\n this.updateGridCriteriaState();\r\n }\r\n\r\n componentDidMount() {\r\n this.sendDataRequest();\r\n }\r\n\r\n /* eslint-disable react/no-did-update-set-state */\r\n componentDidUpdate(prevProps) {\r\n const { searchCriteria: { gridType, workflowType }, initialLoaded } = this.state;\r\n const { forms, formsCount,\r\n userQueue, userCount,\r\n initialReviewQueue, initialReviewCount,\r\n secondaryReviewQueue, secondaryReviewCount,\r\n expertReviewQueue, expertReviewCount,\r\n completeQueue, completeCount,\r\n customers, customersCount, accounts, accountsCount, legalEntities, legalEntitiesCount } = this.props;\r\n switch (gridType) {\r\n case 'forms':\r\n switch (workflowType) {\r\n case 'mywork':\r\n if (userQueue !== prevProps.userQueue) {\r\n this.processData(userQueue, userCount);\r\n this.hideLoadingAnimation();\r\n if (!initialLoaded) {\r\n this.setState({ initialLoaded: true });\r\n }\r\n }\r\n break;\r\n case 'initialreview':\r\n if (initialReviewQueue !== prevProps.initialReviewQueue) {\r\n this.processData(initialReviewQueue, initialReviewCount);\r\n this.hideLoadingAnimation();\r\n if (!initialLoaded) {\r\n this.setState({ initialLoaded: true });\r\n }\r\n }\r\n break;\r\n case 'secondaryreview':\r\n if (secondaryReviewQueue !== prevProps.secondaryReviewQueue) {\r\n this.processData(secondaryReviewQueue, secondaryReviewCount);\r\n this.hideLoadingAnimation();\r\n if (!initialLoaded) {\r\n this.setState({ initialLoaded: true });\r\n }\r\n }\r\n break;\r\n case 'managerreview':\r\n if (expertReviewQueue !== prevProps.expertReviewQueue) {\r\n this.processData(expertReviewQueue, expertReviewCount);\r\n this.hideLoadingAnimation();\r\n if (!initialLoaded) {\r\n this.setState({ initialLoaded: true });\r\n }\r\n }\r\n break;\r\n case 'complete':\r\n if (completeQueue !== prevProps.completeQueue) {\r\n this.processData(completeQueue, completeCount);\r\n this.hideLoadingAnimation();\r\n if (!initialLoaded) {\r\n this.setState({ initialLoaded: true });\r\n }\r\n }\r\n break;\r\n case 'allforms':\r\n if (forms !== prevProps.forms) {\r\n this.processData(forms, formsCount);\r\n this.hideLoadingAnimation();\r\n if (!initialLoaded) {\r\n this.setState({ initialLoaded: true });\r\n }\r\n }\r\n break;\r\n default:\r\n console.error(`Default workflow: ${ workflowType }`);\r\n }\r\n break;\r\n case 'customers':\r\n if (customers !== prevProps.customers) {\r\n this.processData(customers, customersCount);\r\n this.hideLoadingAnimation();\r\n if (!initialLoaded) {\r\n this.setState({ initialLoaded: true });\r\n }\r\n }\r\n break;\r\n case 'accounts':\r\n if (accounts !== prevProps.accounts) {\r\n this.processData(accounts, accountsCount);\r\n this.hideLoadingAnimation();\r\n if (!initialLoaded) {\r\n this.setState({ initialLoaded: true });\r\n }\r\n }\r\n break;\r\n case 'legalEntities':\r\n if (legalEntities !== prevProps.legalEntities) {\r\n this.processData(legalEntities, legalEntitiesCount);\r\n this.hideLoadingAnimation();\r\n if (!initialLoaded) {\r\n this.setState({ initialLoaded: true });\r\n }\r\n }\r\n break;\r\n default:\r\n console.error(`Default grid: ${ gridType }`);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { dispatch } = this.props;\r\n const { gridCriteria, searchCriteria } = this.state;\r\n dispatch(saveCriteria(searchCriteria, gridCriteria));\r\n }\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n isSearchCriteriaValid = (searchCriteria) => {\r\n const isEmpty = searchCriteria\r\n && searchCriteria.searchQuery?.length === 0\r\n && !searchCriteria.customer\r\n && !searchCriteria.legalEntity\r\n && !searchCriteria.accountNumber;\r\n\r\n return (searchCriteria\r\n && (isEmpty || searchCriteria.searchQuery?.length >= 3\r\n || searchCriteria.customerSelected || searchCriteria.legalEntitySelected || searchCriteria.accountNumberSelected\r\n || searchCriteria.customer?.length >= 3 || searchCriteria.legalEntity?.length >= 3 || searchCriteria.accountNumber?.length >= 3));\r\n };\r\n\r\n hideLoadingAnimation = () => {\r\n const { loadingTime } = this.state;\r\n const { isGettingForms, isGettingAccounts, isGettingCustomers, isFetchingQueues } = this.props;\r\n const loadingInterval = setInterval(() => {\r\n if (!isGettingForms && !isGettingAccounts && !isGettingCustomers && !isFetchingQueues) {\r\n this.setState({ loading: false });\r\n clearInterval(loadingInterval);\r\n }\r\n }, loadingTime);\r\n };\r\n\r\n updateGridCriteriaState = () => {\r\n const { searchCriteria: { gridType, workflowType }, gridCriteria } = this.state;\r\n const { permissions } = this.props;\r\n let colDefs = [];\r\n switch (gridType) {\r\n case 'forms':\r\n switch (workflowType) {\r\n case 'mywork':\r\n case 'initialreview':\r\n case 'secondaryreview':\r\n case 'managerreview':\r\n case 'complete':\r\n colDefs = this.getWorkflowColumns(workflowType);\r\n this.setState({ gridCriteria: { ...gridCriteria, columnDefs: colDefs } });\r\n break;\r\n case 'allforms':\r\n colDefs = formColumnDefs(permissions);\r\n this.setState({ gridCriteria: { ...gridCriteria, columnDefs: colDefs } });\r\n break;\r\n default:\r\n break;\r\n }\r\n break;\r\n case 'customers':\r\n colDefs = customerColumnDefs(permissions);\r\n this.setState({ gridCriteria: { ...gridCriteria, columnDefs: colDefs } });\r\n break;\r\n case 'accounts':\r\n colDefs = accountColumnDefs(permissions);\r\n this.setState({ gridCriteria: { ...gridCriteria, columnDefs: colDefs } });\r\n break;\r\n case 'legalEntities':\r\n colDefs = legalEntityColumnDefs(permissions);\r\n this.setState({ gridCriteria: { ...gridCriteria, columnDefs: colDefs } });\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n processData = (items, itemCount) => {\r\n const { gridCriteria } = this.state;\r\n const { gridTotalLimit } = this.props;\r\n const data = [];\r\n if (items != null) {\r\n items.forEach((item) => {\r\n let isActive = 'N/A';\r\n if (item.isActive != null) {\r\n isActive = item.isActive ? 'Active' : 'Inactive';\r\n }\r\n let isFinancialAccount = 'N/A';\r\n if (item.isFinancialAccount != null) {\r\n isFinancialAccount = item.isFinancialAccount ? 'Yes' : 'No';\r\n }\r\n let isDirect = 'N/A';\r\n if (item.isDirect != null) {\r\n isDirect = item.isDirect ? 'Yes' : 'No';\r\n }\r\n let isValid = 'N/A';\r\n if (item.isValid != null) {\r\n isValid = item.isValid ? 'Valid' : 'Invalid';\r\n }\r\n let formType = (item?.formType == null || item?.formType === '') ? 'N/A' : item?.formType;\r\n if (item.formTypeString != null) {\r\n formType = item?.formTypeString;\r\n }\r\n let legalEntityIsActive = 'N/A';\r\n if (item.legalEntityIsActive != null) {\r\n legalEntityIsActive = item.legalEntityIsActive ? 'Active' : 'Inactive';\r\n }\r\n let accountIsActive = 'N/A';\r\n if (item.accountIsActive != null) {\r\n accountIsActive = item.accountIsActive ? 'Active' : 'Inactive';\r\n }\r\n let customerIsActive = 'N/A';\r\n if (item.customerIsActive != null) {\r\n customerIsActive = item.customerIsActive ? 'Active' : 'Inactive';\r\n }\r\n\r\n let certificationStatus = 'N/A';\r\n if (item.certificationStatus != null) {\r\n certificationStatus = getCertifictionStatus(item.certificationStatus);\r\n }\r\n\r\n const datum = {\r\n itemId: item?.id,\r\n accountId: item?.accountId,\r\n customerDbId: item?.customerDbId,\r\n // accounts\r\n accountName: (item?.accountName == null || item?.accountName === '') ? 'N/A' : item?.accountName,\r\n accountNumber: (item?.accountNumber == null || item?.accountNumber === '') ? 'N/A' : item?.accountNumber,\r\n legalEntityName: (item?.legalEntityName == null || item?.legalEntityName === '') ? 'N/A' : item?.legalEntityName,\r\n parentAccountName: (item?.parentAccountName == null || item?.parentAccountName === '') ? 'N/A' : item?.parentAccountName,\r\n isFinancialAccount,\r\n isActive,\r\n // customers\r\n customerName: (item?.customerName == null || item?.customerName === '') ? 'N/A' : item?.customerName,\r\n customerId: (item?.customerId == null || item?.customerId === '') ? 'N/A' : item?.customerId,\r\n chapter3StatusDescription: (item?.chapter3StatusDescription == null || item?.chapter3StatusDescription === '') ? 'N/A' : item?.chapter3StatusDescription,\r\n chapter4StatusDescription: (item?.chapter4StatusDescription == null || item?.chapter4StatusDescription === '') ? 'N/A' : item?.chapter4StatusDescription,\r\n crsClassificationDescription: (item?.crsClassificationDescription == null || item?.crsClassificationDescription === '') ? 'N/A' : item?.crsClassificationDescription,\r\n openDate: (item?.openDate == null || item?.openDate === '') ? 'N/A' : moment(item.openDate).format('MMM DD, YYYY HH:mm:ss'),\r\n certificationStatus,\r\n // legal entities\r\n legalEntityClientIdentifier: (item?.legalEntityClientIdentifier == null || item?.legalEntityClientIdentifier === '') ? '' : item?.legalEntityClientIdentifier,\r\n legalEntityIsActive,\r\n accountIsActive,\r\n customerIsActive,\r\n // forms\r\n formTypeDescription: item?.formTypeDescription ?? 'N/A',\r\n formType,\r\n formTypeString: item?.formTypeString,\r\n workflowStage: item?.workflowStage,\r\n workflowPreviousUsername: (item?.workflowPreviousUsername === null || item?.workflowPreviousUsername === '') ? 'N/A' : item.workflowPreviousUsername,\r\n formSourceDescription: (item?.formSourceDescription == null || item?.formSourceDescription === '') ? 'N/A' : item?.formSourceDescription,\r\n workflowStageDescription: (item?.workflowStageDescription == null || item?.workflowStageDescription === '') ? 'N/A' : item?.workflowStageDescription,\r\n workflowUsername: (item?.workflowUsername == null || item?.workflowUsername === '') ? 'N/A' : item?.workflowUsername,\r\n workflowStatus: (item?.workflowStatus == null || item?.workflowStatus === '') ? 'N/A' : item?.workflowStatus,\r\n lastActionDate: (item?.lastActionDate == null || item?.lastActionDate === '') ? 'N/A' : moment(item.lastActionDate).format('MMM DD, YYYY HH:mm:ss'),\r\n isValid,\r\n validationDate: (item?.validationDate == null || item?.validationDate === '') ? 'N/A' : moment(item.validationDate).format('MMM DD, YYYY HH:mm:ss'),\r\n uploadedBy: (item?.uploadedBy == null || item?.uploadedBy === '') && (!item.formCreatedByUsername || item.formCreatedByUsername === '') ? 'N/A' : item?.uploadedBy || item?.formCreatedByUsername,\r\n validityDescription: (item?.validityDescription == null || item?.validityDescription === '') ? 'N/A' : item?.validityDescription,\r\n // all\r\n isOnlineForm: (item?.isOnlineForm == null || item?.isOnlineForm === '') ? 'N/A' : item?.isOnlineForm,\r\n allocationStmtType: (item?.allocationStmtType == null || item?.allocationStmtType === '') ? 'N/A' : item?.allocationStmtType,\r\n allocationStmtName: (item?.allocationStmtName == null || item?.allocationStmtName === '') ? 'N/A' : item?.allocationStmtName,\r\n hasAllocationStmt: (item?.hasAllocationStmt == null || item?.hasAllocationStmt === '') ? 'N/A' : item?.hasAllocationStmt,\r\n hasParentAccount: (item?.hasParentAccount == null || item?.hasParentAccount === '') ? 'N/A' : item?.hasParentAccount,\r\n hasImyStructure: (item?.hasImyStructure == null) ? false : item?.hasImyStructure,\r\n isDirect,\r\n additionalData: item.additionalData ?? null,\r\n isLoadingDetails: item?.isLoadingDetails,\r\n emailAddress: (item?.emailAddress == null || item?.emailAddress === '') ? 'N/A' : item?.emailAddress,\r\n imyTier: null\r\n };\r\n\r\n if (datum.hasImyStructure || datum.hasAllocationStmt || datum.hasParentAccount) {\r\n datum.imyTier = {\r\n accountId: datum.accountId,\r\n accountName: datum.accountName,\r\n accountNumber: datum.accountNumber,\r\n customerDbId: datum.customerDbId,\r\n customerId: datum.customerId,\r\n customerName: datum.customerName\r\n };\r\n }\r\n\r\n data.push(datum);\r\n });\r\n const pageCount = Math.ceil(itemCount / gridCriteria.pageSize);\r\n\r\n this.setState({ data, gridCriteria: { ...gridCriteria, itemCount, pageCount, totalLimit: gridTotalLimit } });\r\n }\r\n };\r\n\r\n generateRequest = () => {\r\n const { searchCriteria, gridCriteria } = this.state;\r\n const formTypeArray = (searchCriteria.formType === '' || searchCriteria.formType == null) ? null : [searchCriteria.formType];\r\n let sortDirection;\r\n if (gridCriteria.sortBy != null && gridCriteria.sortBy[0]) {\r\n if (gridCriteria.sortBy[0]?.desc != null) {\r\n sortDirection = gridCriteria.sortBy[0]?.desc ? 'desc' : 'asc';\r\n }\r\n } else {\r\n sortDirection = null;\r\n }\r\n return ({\r\n pageNumber: gridCriteria.pageIndex + 1,\r\n pageSize: gridCriteria.pageSize,\r\n totalLimit: gridCriteria.totalLimit,\r\n sortByField: gridCriteria.sortBy != null ? gridCriteria.sortBy[0]?.id : null,\r\n sortDirection,\r\n filterList: gridCriteria.filters,\r\n searchQuery: searchCriteria.searchQuery === '' ? null : searchCriteria.searchQuery?.trim(),\r\n legalEntity: !searchCriteria.legalEntity ? null : (searchCriteria.legalEntity?.id || searchCriteria.legalEntity),\r\n legalEntitySelected: searchCriteria.legalEntitySelected,\r\n accountNumber: !searchCriteria.accountNumber ? null : (searchCriteria.accountNumber?.id || searchCriteria.accountNumber),\r\n accountNumberSelected: searchCriteria.accountNumberSelected,\r\n customer: !searchCriteria.customer ? null : (searchCriteria.customer?.id || searchCriteria.customer),\r\n customerSelected: searchCriteria.customerSelected,\r\n formTypes: formTypeArray\r\n });\r\n };\r\n\r\n getWorkflowColumns = (workflowType) => {\r\n const { permissions } = this.props;\r\n const colDefs = [];\r\n const classNameInitialReview = Home.getClassNameInitialReview(workflowType);\r\n const classNameWorkflow = Home.getClassNameWorkflow(workflowType);\r\n const workflowColumns = workflowColumnDefs(permissions, classNameInitialReview, classNameWorkflow);\r\n for (let i = 0, len = workflowColumns.length; i < len; i += 1) {\r\n colDefs.push({ ...workflowColumns[i] });\r\n }\r\n\r\n colDefs[3].isVisible = workflowType === 'mywork';\r\n colDefs[6].Header = workflowType === 'managerreview' ? 'Referred By' : colDefs[6].Header;\r\n colDefs[6].isVisible = (workflowType === 'secondaryreview' || workflowType === 'managerreview');\r\n colDefs[7].Header = workflowType === 'complete' ? 'Completed By' : colDefs[7].Header;\r\n colDefs[7].isVisible = (workflowType === 'complete');\r\n return colDefs;\r\n };\r\n\r\n onWorkflowTypeChanged = (workflowType) => {\r\n const { gridCriteria, searchCriteria } = this.state;\r\n const { permissions } = this.props;\r\n\r\n if (workflowType === searchCriteria.workflowType) {\r\n return;\r\n }\r\n\r\n if (workflowType === 'allforms') {\r\n const colDefs = formColumnDefs(permissions);\r\n this.setState({ loading: true, searchCriteria: { ...searchCriteria, workflowType }, gridCriteria: { ...gridCriteria, columnDefs: colDefs, pageIndex: 0, filters: [], sortBy: [] } }, () => this.sendDataRequest());\r\n } else {\r\n const colDefs = this.getWorkflowColumns(workflowType);\r\n this.setState({ loading: true, searchCriteria: { ...searchCriteria, workflowType }, gridCriteria: { ...gridCriteria, columnDefs: colDefs, pageIndex: 0, filters: [], sortBy: [] } }, () => this.sendDataRequest());\r\n }\r\n };\r\n\r\n onSearchCriteriaChanged = (newSearchCriteria) => {\r\n const { gridCriteria } = this.state;\r\n let { searchCriteria } = this.state;\r\n const { permissions } = this.props;\r\n\r\n let gridChanged = false;\r\n const showWorkflowButtons = newSearchCriteria.gridType === 'forms';\r\n\r\n if (newSearchCriteria.gridType !== searchCriteria.gridType) {\r\n searchCriteria = newSearchCriteria;\r\n gridCriteria.selectedItem = null;\r\n gridCriteria.selectedItems = [];\r\n gridCriteria.filters = [];\r\n gridCriteria.sortBy = [];\r\n gridCriteria.pageIndex = 0;\r\n gridChanged = true;\r\n }\r\n if (this.isSearchCriteriaValid(newSearchCriteria)) {\r\n gridCriteria.pageIndex = 0;\r\n }\r\n\r\n const criteria = { ...gridCriteria };\r\n if (gridChanged) {\r\n let columnDefs = formColumnDefs(permissions);\r\n if (searchCriteria.gridType === 'forms' && searchCriteria.workflowType !== 'allforms') {\r\n columnDefs = this.getWorkflowColumns(searchCriteria.workflowType);\r\n } else if (searchCriteria.gridType === 'customers') {\r\n columnDefs = customerColumnDefs(permissions);\r\n } else if (searchCriteria.gridType === 'accounts') {\r\n columnDefs = accountColumnDefs(permissions);\r\n } else if (searchCriteria.gridType === 'legalEntities') {\r\n columnDefs = legalEntityColumnDefs(permissions);\r\n }\r\n criteria.columnDefs = columnDefs;\r\n }\r\n\r\n this.setState({ loading: gridChanged, searchCriteria: { ...searchCriteria, ...newSearchCriteria }, showWorkflowButtons, gridCriteria: criteria }, (() => {\r\n if (gridChanged) {\r\n this.sendDataRequest();\r\n } else {\r\n this.fetchData();\r\n }\r\n }));\r\n };\r\n\r\n onGridCriteriaChanged = (newGridCriteria) => {\r\n this.setState({ gridCriteria: { ...newGridCriteria } }, () => this.fetchData());\r\n };\r\n\r\n onRowSelectionChanged = (rowSelections) => {\r\n const { gridCriteria } = this.state;\r\n this.setState({ gridCriteria: { ...gridCriteria, ...rowSelections } });\r\n };\r\n\r\n onRowExpandedStateChanged = (row, expand) => {\r\n const { dispatch } = this.props;\r\n const { searchCriteria: { gridType } } = this.state;\r\n\r\n if (expand) {\r\n if (gridType === 'forms') {\r\n dispatch(getFormDetails(row.original.itemId, parseInt(row.id, 10)));\r\n }\r\n if (gridType === 'customers') {\r\n dispatch(getCustomerDetails(row.original.itemId, row.original.accountId, parseInt(row.id, 10)));\r\n }\r\n } else {\r\n if (gridType === 'forms') {\r\n dispatch(clearFormDetails(row.original.itemId, parseInt(row.id, 10)));\r\n }\r\n if (gridType === 'customers') {\r\n dispatch(clearCustomerDetails(row.original.itemId, parseInt(row.id, 10)));\r\n }\r\n }\r\n };\r\n\r\n addFormAction = (imyTier, values, onlineForm) => {\r\n const { dispatch } = this.props;\r\n dispatch(addForm(imyTier, values, onlineForm));\r\n };\r\n\r\n closeAddFormModal = () => {\r\n const { dispatch } = this.props;\r\n dispatch(hideAddFormModal());\r\n };\r\n\r\n openAssignToUserModal = (multipleItems) => {\r\n const { dispatch } = this.props;\r\n const selectedItemIds = Array.from(multipleItems, x => x.itemId);\r\n dispatch(showAssignToUserModal(selectedItemIds));\r\n };\r\n\r\n closeAssignToUserModal = () => {\r\n const { dispatch } = this.props;\r\n dispatch(hideAssignToUserModal());\r\n };\r\n\r\n processAssignToUsers = (_, user) => {\r\n const { dispatch } = this.props;\r\n const { gridCriteria } = this.state;\r\n const selectedItemIds = Array.from(gridCriteria.selectedItems, x => x.itemId);\r\n dispatch(assignFormsToUserWithCallback(selectedItemIds, user, () => this.fetchData()));\r\n };\r\n\r\n getItemsList = () => {\r\n const { formsList } = this.props;\r\n return formsList;\r\n };\r\n\r\n openDeleteFormModal = (item) => {\r\n const { dispatch } = this.props;\r\n const { gridCriteria } = this.state;\r\n const selectedObjects = [];\r\n if (!item) {\r\n for (let i = 0; i < gridCriteria.selectedItems.length; i += 1) {\r\n const listItem = gridCriteria.selectedItems.filter(x => x.itemId === gridCriteria.selectedItems[i].itemId)[0];\r\n selectedObjects.push({ customerDbId: listItem.customerDbId, customerName: listItem.customerName, customerId: listItem.customerId });\r\n }\r\n } else {\r\n this.setState({ gridCriteria: { ...gridCriteria, selectedItem: item } });\r\n selectedObjects.push({ customerDbId: item.customerDbId, customerName: item.customerName, customerId: item.customerId });\r\n }\r\n dispatch(showDeleteFormModal(selectedObjects));\r\n };\r\n\r\n closeDeleteFormModal = () => {\r\n const { dispatch } = this.props;\r\n dispatch(hideDeleteFormModal());\r\n };\r\n\r\n processDeleteForms = () => {\r\n const { dispatch } = this.props;\r\n const { gridCriteria } = this.state;\r\n if (gridCriteria.selectedItem != null) {\r\n // if selectedItem exists, then delete that item (this is the item for the row with the delete icon that was pressed)\r\n dispatch(deleteForms([gridCriteria.selectedItem.itemId], () => {\r\n this.setState({ gridCriteria: { ...gridCriteria, selectedItem: null } }, () => this.fetchData());\r\n }));\r\n } else {\r\n // otherwise, delete all the selectedItems\r\n const selectedItemIds = Array.from(gridCriteria.selectedItems, x => x.itemId);\r\n dispatch(deleteForms(selectedItemIds, () => {\r\n this.setState({ gridCriteria: { ...gridCriteria, selectedItems: [] } }, () => this.fetchData());\r\n }));\r\n }\r\n this.closeDeleteFormModal();\r\n };\r\n\r\n openAccountWithholdingModal = (item, tableType) => {\r\n const { dispatch } = this.props;\r\n\r\n if (tableType === 'forms') {\r\n dispatch(showAccountWithholdingModal(item.itemId, null, null));\r\n }\r\n\r\n if (tableType === 'customers') {\r\n dispatch(showAccountWithholdingModal(null, item.itemId, null));\r\n }\r\n\r\n if (tableType === 'accounts') {\r\n dispatch(showAccountWithholdingModal(null, null, item.itemId));\r\n }\r\n };\r\n\r\n closeAccountWithholdingModal = () => {\r\n const { dispatch } = this.props;\r\n dispatch(hideAccountWithholdingModal());\r\n };\r\n\r\n openCustomerImyFormsModal = (item) => {\r\n const { dispatch } = this.props;\r\n dispatch(showParentImyFormsModal(item.itemId, null));\r\n };\r\n\r\n openAccountImyFormsModal = (item) => {\r\n const { dispatch } = this.props;\r\n dispatch(showParentImyFormsModal(null, item.itemId));\r\n };\r\n\r\n closeParentImyFormsModal = () => {\r\n const { dispatch } = this.props;\r\n dispatch(hideParentImyFormsModal());\r\n };\r\n\r\n openAddFormModal = (imyTier) => {\r\n const { dispatch } = this.props;\r\n dispatch(showAddFormModal(imyTier, imyTier !== null));\r\n };\r\n\r\n openEditFormReferenceModal = () => {\r\n const { dispatch, forms } = this.props;\r\n const { gridCriteria } = this.state;\r\n const selectedObjects = [];\r\n\r\n if (!gridCriteria.selectedItems || gridCriteria.selectedItems.length <= 0) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < gridCriteria.selectedItems.length; i += 1) {\r\n const item = forms.filter(x => x.id === gridCriteria.selectedItems[i].itemId)[0];\r\n selectedObjects.push(item);\r\n }\r\n\r\n if (selectedObjects.length > 0) {\r\n dispatch(showEditFormReferenceModal(selectedObjects));\r\n }\r\n };\r\n\r\n openUnassignToUserModal = (item) => {\r\n const { dispatch } = this.props;\r\n const { gridCriteria } = this.state;\r\n\r\n const selectedObjects = [];\r\n this.setState({ gridCriteria: { ...gridCriteria, selectedItem: item } });\r\n selectedObjects.push({ customerDbId: item.customerDbId, customerName: item.customerName, customerId: item.customerId });\r\n dispatch(showUnassignFormModal(item.itemId));\r\n };\r\n\r\n closeUnassignFormModal = () => {\r\n const { dispatch } = this.props;\r\n dispatch(hideUnassignFormModal());\r\n };\r\n\r\n processUnassignToUsers = () => {\r\n const { dispatch } = this.props;\r\n const { gridCriteria } = this.state;\r\n\r\n if (gridCriteria.selectedItem != null) {\r\n // if selectedItem exists, then delete that item (this is the item for the row with the delete icon that was pressed)\r\n dispatch(unassignFormsToUserWithCallback([gridCriteria.selectedItem.itemId], () => {\r\n this.setState({ gridCriteria: { ...gridCriteria, selectedItem: null } }, () => this.fetchData());\r\n }));\r\n }\r\n };\r\n\r\n closeEditFormReferenceModal = () => {\r\n const { dispatch } = this.props;\r\n dispatch(hideEditFormReferenceModal());\r\n };\r\n\r\n processEditFormReference = (formId, newFormRef) => {\r\n const { dispatch } = this.props;\r\n dispatch(editFormReference(formId, newFormRef));\r\n };\r\n\r\n addBeneficiaryForms = (values) => {\r\n const { dispatch, parentW8ImyForm } = this.props;\r\n dispatch(addBeneficiaryForm(values, parentW8ImyForm));\r\n };\r\n\r\n imyChange = (value) => {\r\n const { dispatch } = this.props;\r\n dispatch(changeImyBeneficiaryFormModal(value === true));\r\n };\r\n\r\n closeAddBeneficiaryFormModal = (item) => {\r\n const { dispatch } = this.props;\r\n dispatch(hideAddBeneficiaryFormModal(item));\r\n };\r\n\r\n closeFromOwnershipModal = (item) => {\r\n const { dispatch } = this.props;\r\n dispatch(hideOwnershipModal(item));\r\n };\r\n\r\n reAssignItem = () => {\r\n const { dispatch, changeOwnershipItem } = this.props;\r\n if (changeOwnershipItem != null && changeOwnershipItem.id != null) {\r\n dispatch(takeQueueItem('form', changeOwnershipItem.id, changeOwnershipItem.accountId));\r\n dispatch(hideOwnershipModal());\r\n }\r\n };\r\n\r\n continueFromOwnershipModal = () => {\r\n const { dispatch, changeOwnershipItem } = this.props;\r\n dispatch(hideOwnershipModal());\r\n let redirectUrl = `/forms/${ changeOwnershipItem.formType.toLowerCase() }/${ changeOwnershipItem.id }`;\r\n if (changeOwnershipItem.accountId) {\r\n redirectUrl = `${ redirectUrl }?account=${ changeOwnershipItem.accountId }`;\r\n }\r\n dispatch(push(redirectUrl));\r\n };\r\n\r\n onTakeQueueItem = (item) => {\r\n const { dispatch } = this.props;\r\n const { searchCriteria: { workflowType } } = this.state;\r\n const { formTypeString, workflowStage } = item;\r\n const id = item.itemId;\r\n const isPendingStage = workflowStage === FormWorkflowStages.PendingReview || workflowStage === FormWorkflowStages.PendingSecondaryReview || workflowStage === FormWorkflowStages.PendingExpertReview;\r\n\r\n if ((workflowType !== 'mywork' || isPendingStage) && id) {\r\n dispatch(takeQueueItem('form', id));\r\n } else if (workflowType === 'mywork' && id) {\r\n dispatch(push(`/forms/${ formTypeString }/${ id }`));\r\n }\r\n };\r\n\r\n sendDataRequest = () => {\r\n const { dispatch } = this.props;\r\n const { searchCriteria, gridCriteria } = this.state;\r\n\r\n const request = this.generateRequest();\r\n switch (searchCriteria.gridType) {\r\n case 'forms':\r\n if (searchCriteria.workflowType === 'allforms') {\r\n dispatch(getFormsByObject(request));\r\n } else {\r\n let sortDirection;\r\n if (gridCriteria.sortBy != null && gridCriteria.sortBy[0]) {\r\n if (gridCriteria.sortBy[0]?.desc != null) {\r\n sortDirection = gridCriteria.sortBy[0]?.desc ? 'desc' : 'asc';\r\n }\r\n } else {\r\n sortDirection = null;\r\n }\r\n\r\n const formTypeArray = (searchCriteria.formType === '' || searchCriteria.formType == null) ? null : [searchCriteria.formType];\r\n const workflowRequest = {\r\n workflow: 'form',\r\n pageNumber: request.pageNumber,\r\n pageSize: gridCriteria.pageSize,\r\n totalLimit: gridCriteria.totalLimit,\r\n sortByField: gridCriteria.sortBy != null ? gridCriteria.sortBy[0]?.id : null,\r\n sortDirection,\r\n stage: searchCriteria.workflowType,\r\n searchQuery: searchCriteria.searchQuery,\r\n legalEntity: !searchCriteria.legalEntity ? null : (searchCriteria.legalEntity?.id || searchCriteria.legalEntity),\r\n legalEntitySelected: searchCriteria.legalEntitySelected,\r\n accountNumber: !searchCriteria.accountNumber ? null : (searchCriteria.accountNumber?.id || searchCriteria.accountNumber),\r\n accountNumberSelected: searchCriteria.accountNumberSelected,\r\n customer: !searchCriteria.customer ? null : (searchCriteria.customer?.id || searchCriteria.customer),\r\n customerSelected: searchCriteria.customerSelected,\r\n formTypes: formTypeArray,\r\n filterList: gridCriteria.filters\r\n };\r\n\r\n switch (searchCriteria.workflowType) {\r\n case 'mywork':\r\n dispatch(getUserQueueByObject(workflowRequest));\r\n break;\r\n case 'initialreview':\r\n workflowRequest.stage = 'pendingreview';\r\n dispatch(getWorkflowQueueByObject(workflowRequest));\r\n break;\r\n case 'secondaryreview':\r\n workflowRequest.stage = 'pendingsecondaryreview';\r\n dispatch(getWorkflowQueueByObject(workflowRequest));\r\n break;\r\n case 'managerreview':\r\n workflowRequest.stage = 'pendingexpertreview';\r\n dispatch(getWorkflowQueueByObject(workflowRequest));\r\n break;\r\n case 'complete':\r\n workflowRequest.stage = 'complete';\r\n dispatch(getWorkflowQueueByObject(workflowRequest));\r\n break;\r\n default:\r\n console.error(`Default case hit: ${ searchCriteria.workflowType }`);\r\n }\r\n }\r\n break;\r\n case 'customers':\r\n dispatch(getCustomersByObject(request));\r\n break;\r\n case 'accounts':\r\n dispatch(getAccountsByObject(request));\r\n break;\r\n case 'legalEntities':\r\n dispatch(getLegalEntitiesByObject(request));\r\n break;\r\n default:\r\n console.error(`Default case hit: ${ searchCriteria.gridType }`);\r\n }\r\n };\r\n\r\n fetchData = () => {\r\n const { searchCriteria, gridCriteria, loading } = this.state;\r\n\r\n if (loading) {\r\n return;\r\n }\r\n clearTimeout(this.timer);\r\n\r\n if (this.isSearchCriteriaValid(searchCriteria)) {\r\n this.setState({ loading: true, gridCriteria: { ...gridCriteria, selectedItems: [] } }, () => {\r\n this.timer = setTimeout(() => {\r\n this.sendDataRequest();\r\n }, WAIT_INTERVAL);\r\n });\r\n }\r\n };\r\n\r\n getActions = () => {\r\n const { searchCriteria: { gridType, workflowType } } = this.state;\r\n const { permissions, settings } = this.props;\r\n\r\n switch (gridType) {\r\n case 'forms':\r\n if (workflowType === 'allforms') {\r\n return FormsActions({\r\n permissions,\r\n settings,\r\n openAddFormModal: this.openAddFormModal,\r\n openAccountWithholdingModal: this.openAccountWithholdingModal,\r\n openDeleteFormModal: this.openDeleteFormModal,\r\n navigateToImyStructure: this.navigateToImyStructure,\r\n navigateToWithholdingStatement: this.navigateToWithholdingStatement\r\n });\r\n }\r\n return WorkflowActions({\r\n permissions,\r\n settings,\r\n workflowType,\r\n openAccountWithholdingModal: this.openAccountWithholdingModal,\r\n onTakeQueueItem: this.onTakeQueueItem,\r\n openUnassignFormModal: this.openUnassignToUserModal,\r\n });\r\n case 'customers':\r\n return CustomersActions({\r\n permissions,\r\n settings,\r\n openAccountWithholdingModal: this.openAccountWithholdingModal,\r\n openCustomerImyFormsModal: this.openCustomerImyFormsModal\r\n });\r\n case 'accounts':\r\n return AccountsActions({\r\n permissions,\r\n settings,\r\n openAccountWithholdingModal: this.openAccountWithholdingModal,\r\n openAccountImyFormsModal: this.openAccountImyFormsModal\r\n });\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n getIsSelectionEnabled = () => {\r\n const { permissions } = this.props;\r\n const { searchCriteria: { gridType, workflowType } } = this.state;\r\n return (\r\n AccessControl.hasPermission(\r\n permissions,\r\n [\r\n ActivityPerms.scannedDeleteCompleteForms,\r\n ActivityPerms.electronicDeleteCompleteForms,\r\n ActivityPerms.scannedDeleteInReviewForms,\r\n ActivityPerms.electronicDeleteInReviewForms,\r\n ActivityPerms.scannedUpload,\r\n ActivityPerms.scannedValidate,\r\n ActivityPerms.scannedEdit,\r\n ActivityPerms.fwfReassignToUser\r\n ]\r\n )\r\n ) && gridType === 'forms' && workflowType === 'allforms';\r\n };\r\n\r\n getIsExpandCollapseEnabled = () => {\r\n const { searchCriteria: { gridType, workflowType } } = this.state;\r\n return (gridType === 'forms' && workflowType === 'allforms') || gridType === 'customers';\r\n };\r\n\r\n getChildRowLayout = (childData) => {\r\n const { searchCriteria: { gridType } } = this.state;\r\n\r\n if (gridType === 'forms') {\r\n return \r\n { childData.legalEntities != null &&
    \r\n \r\n { childData.legalEntities.map(l => { l }
    ) }
    }\r\n { (!childData.legalEntities || childData.legalEntities.length === 0) &&
    \r\n \r\n N/A
    }\r\n
    { childData.uploadDate ? moment(childData.uploadDate).format('MMM DD, YYYY, HH:mm:ss') : 'N/A' }
    \r\n
    { childData.reference ?? 'N/A' }
    \r\n
    { childData.isKycReviewed ? 'Yes' : 'No' }
    \r\n
    \r\n \r\n { !childData.validUntil && 'N/A' }\r\n { childData.validUntil && childData.validUntil.includes('9999') && 'Evergreen' }\r\n { childData.validUntil && !childData.validUntil.includes('9999') && moment(childData.validUntil).format('MMM DD, YYYY') }\r\n { childData.expiryReason ? ` (${ childData.expiryReasonDescription })` : '' }\r\n \r\n
    \r\n
    ;\r\n }\r\n if (gridType === 'customers') {\r\n return \r\n { childData.legalEntities != null &&
    \r\n \r\n { childData.legalEntities.map(l => { l }
    ) }
    }\r\n { (!childData.legalEntities || childData.legalEntities.length === 0) &&
    \r\n \r\n N/A
    }\r\n
    { childData.permAddressLine1 ? childData.permAddressLine1 : 'N/A' }
    \r\n
    { childData.permAddressLine2 ? childData.permAddressLine2 : 'N/A' }
    \r\n
    { childData.permAddrPostalCode ? childData.permAddrPostalCode : 'N/A' }
    \r\n
    { childData.permAddrCountry ? childData.permAddrCountry : 'N/A' }
    \r\n
    { childData.treatyCountry ? childData.treatyCountry : 'N/A' }
    \r\n
    { childData.dob ? moment(childData.dob).format('MMM DD, YYYY') : 'N/A' }
    \r\n
    ;\r\n }\r\n return null;\r\n };\r\n\r\n navigateToImyStructure = (formData) => {\r\n const { dispatch } = this.props;\r\n dispatch(push(`/w8imystructure/${ formData.accountId }`));\r\n };\r\n\r\n navigateToWithholdingStatement = (accountId) => {\r\n const { dispatch } = this.props;\r\n dispatch(push(`/whd-statement/${ accountId }`));\r\n };\r\n\r\n downloadCustomerExport = () => {\r\n const { dispatch } = this.props;\r\n const request = this.generateRequest();\r\n dispatch(getCustomerExportFile(request));\r\n };\r\n\r\n render() {\r\n const {\r\n data,\r\n searchCriteria,\r\n gridCriteria,\r\n loading,\r\n showWorkflowButtons,\r\n initialLoaded\r\n } = this.state;\r\n const {\r\n dispatch,\r\n settings,\r\n isAddFormModalShown,\r\n isDeleteFormModalShown,\r\n isDeletingForm,\r\n isAccountWithholdingShown,\r\n isParentImyFormsShown,\r\n isAddBeneficiarFormModalShown,\r\n isAddingImyToExistingLayer,\r\n isOwnershipModalShown,\r\n isAssignToUserModalShown,\r\n isUnassignModalShown,\r\n isEditFormReferenceModalShown,\r\n changeOwnershipItem,\r\n deleteFormError,\r\n permissions,\r\n isExportingToExcel\r\n } = this.props;\r\n\r\n const selectionEnabled = this.getIsSelectionEnabled();\r\n return (\r\n
    \r\n \r\n Search\r\n { (settings && settings.showScannedForms) && \r\n {!settings.selectedClient.isPiiProtectionEnabled && dispatch(showAddFormModal(null, null)) }\r\n >\r\n ADD FORM\r\n }\r\n }\r\n { (searchCriteria.gridType === 'accounts' || searchCriteria.gridType === 'customers') && \r\n \r\n \r\n \r\n }\r\n \r\n }\r\n searchCriteria={ searchCriteria }\r\n onSearchCriteriaChanged={ this.onSearchCriteriaChanged }\r\n onSearchClicked={ this.fetchData }\r\n permissions={ permissions }\r\n actionButton={\r\n searchCriteria.gridType === 'customers' && \r\n this.downloadCustomerExport() }\r\n disabled={ isExportingToExcel }\r\n >\r\n \r\n Generate report\r\n \r\n \r\n }\r\n />\r\n
    \r\n
    \r\n { showWorkflowButtons ?
    \r\n this.onWorkflowTypeChanged('mywork') }\r\n >My Work\r\n \r\n this.onWorkflowTypeChanged('initialreview') }\r\n >Pending Initial Review\r\n \r\n \r\n this.onWorkflowTypeChanged('secondaryreview') }\r\n >Pending Secondary Review\r\n \r\n \r\n this.onWorkflowTypeChanged('managerreview') }\r\n >Pending Expert Review\r\n \r\n this.onWorkflowTypeChanged('complete') }\r\n >Complete\r\n \r\n this.onWorkflowTypeChanged('allforms') }\r\n >All Forms\r\n \r\n { selectionEnabled && searchCriteria.workflowType === 'allforms' && }\r\n
    :
    }\r\n this.getChildRowLayout(childData) }\r\n actions={ this.getActions() }\r\n enableExpandCollapse={ this.getIsExpandCollapseEnabled() }\r\n enableSelection={ selectionEnabled }\r\n loading={ loading }\r\n initialLoaded={ initialLoaded }\r\n className={ selectionEnabled ? 'workflow' : '' }\r\n />\r\n
    \r\n
    \r\n {!settings.selectedClient.isPiiProtectionEnabled && this.addFormAction(imyTier, values, false) }\r\n onCancel={ () => this.closeAddFormModal() }\r\n />}\r\n this.processDeleteForms() }\r\n onCancel={ () => this.closeDeleteFormModal() }\r\n deleteFormError={ deleteFormError }\r\n />\r\n this.closeAccountWithholdingModal() }\r\n />\r\n this.closeParentImyFormsModal() }\r\n />\r\n this.addBeneficiaryForms(values) }\r\n onImyChange={ value => this.imyChange(value) }\r\n onCancel={ () => this.closeAddBeneficiaryFormModal() }\r\n />\r\n { changeOwnershipItem != null && this.reAssignItem() }\r\n onContinueWithoutAssign={ () => this.continueFromOwnershipModal() }\r\n onCancel={ () => this.closeFromOwnershipModal() }\r\n workflowRecord={ changeOwnershipItem }\r\n /> }\r\n { isEditFormReferenceModalShown && this.closeEditFormReferenceModal() }\r\n onConfirmFormReferenceChange={ (formId, newFormRef) => this.processEditFormReference(formId, newFormRef) }\r\n /> }\r\n this.closeAssignToUserModal() }\r\n onConfirmAssign={ (formsList, user) => this.processAssignToUsers(formsList, user) }\r\n getItemsList={ () => this.getItemsList() }\r\n />\r\n this.closeUnassignFormModal() }\r\n onConfirmUnassign={ () => this.processUnassignToUsers() }\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n permissions,\r\n settings\r\n },\r\n home: {\r\n searchCriteria,\r\n gridCriteria\r\n },\r\n forms: {\r\n forms,\r\n formsCount,\r\n gridTotalLimit,\r\n isAddFormModalShown,\r\n isAssignToUserModalShown,\r\n isDeleteFormModalShown,\r\n isDeletingForm,\r\n deleteFormError,\r\n isAccountWithholdingShown,\r\n isAddBeneficiarFormModalShown,\r\n isEditFormReferenceModalShown,\r\n parentW8ImyForm,\r\n isUnassignModalShown,\r\n isParentImyFormsShown,\r\n formsList,\r\n isExportingToExcel\r\n },\r\n customer: {\r\n customers,\r\n customersCount\r\n },\r\n account: {\r\n accounts,\r\n accountsCount\r\n },\r\n legalEntities: {\r\n legalEntities,\r\n legalEntitiesCount\r\n },\r\n workflow: {\r\n isFetchingQueues,\r\n isGettingAccounts,\r\n isGettingCustomers,\r\n isGettingForms,\r\n isOwnershipModalShown,\r\n changeOwnershipItem\r\n },\r\n workflow\r\n } = state;\r\n return {\r\n permissions,\r\n settings,\r\n forms,\r\n formsCount,\r\n gridTotalLimit,\r\n isAddFormModalShown,\r\n isAssignToUserModalShown,\r\n isDeleteFormModalShown,\r\n isDeletingForm,\r\n deleteFormError,\r\n isAccountWithholdingShown,\r\n isParentImyFormsShown,\r\n isAddBeneficiarFormModalShown,\r\n isEditFormReferenceModalShown,\r\n parentW8ImyForm,\r\n formsList,\r\n customers,\r\n customersCount,\r\n accounts,\r\n accountsCount,\r\n legalEntities,\r\n legalEntitiesCount,\r\n isFetchingQueues,\r\n isGettingAccounts,\r\n isGettingCustomers,\r\n isGettingForms,\r\n isOwnershipModalShown,\r\n changeOwnershipItem,\r\n isUnassignModalShown,\r\n userQueue: workflow.userQueue?.items,\r\n userCount: workflow.userQueue?.totalCount,\r\n initialReviewQueue: workflow.initialReviewQueue?.items,\r\n initialReviewCount: workflow.initialReviewQueue?.totalCount,\r\n secondaryReviewQueue: workflow.secondaryReviewQueue?.items,\r\n secondaryReviewCount: workflow.secondaryReviewQueue?.totalCount,\r\n expertReviewQueue: workflow.expertReviewQueue?.items,\r\n expertReviewCount: workflow.expertReviewQueue?.totalCount,\r\n completeQueue: workflow.completeQueue?.items,\r\n completeCount: workflow.completeQueue?.totalCount,\r\n initSearchCriteria: searchCriteria,\r\n initGridCriteria: gridCriteria,\r\n isExportingToExcel\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withContainerErrorBoundary(Home, 'Home'));\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport { ApiService } from 'services';\r\n\r\nimport ErrorGraphic from '../ErrorGraphic';\r\n\r\nconst NoInternetPage = ({ title, caption, buttonText }) => {\r\n const processRetries = () => {\r\n ApiService.processQueuedPromises();\r\n };\r\n\r\n return (
    \r\n \r\n
    \r\n

    { title }

    \r\n

    { caption }

    \r\n
    \r\n
    \r\n \r\n Go to home page\r\n
    \r\n
    \r\n
    \r\n
    );\r\n};\r\n\r\nNoInternetPage.propTypes = {\r\n title: PropTypes.string,\r\n caption: PropTypes.string,\r\n buttonText: PropTypes.string\r\n};\r\n\r\nNoInternetPage.defaultProps = {\r\n title: 'Internet Connection Lost',\r\n caption: 'Please check your internet connection and use the button below to try again.',\r\n buttonText: 'Try Again'\r\n};\r\n\r\nexport default NoInternetPage;\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { PropTypes } from 'prop-types';\r\nimport { ApiService } from 'services';\r\nimport NoInternetPage from 'components/Errors/NoInternetPage';\r\nimport { updateConnectionStatus } from 'actions/common';\r\n\r\nclass ConnectionStatus extends Component {\r\n static propTypes = {\r\n // basicCheckUrl: PropTypes.string,\r\n dispatch: PropTypes.func.isRequired,\r\n onConnectionChanged: PropTypes.func,\r\n children: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node\r\n ]).isRequired,\r\n retries: PropTypes.number,\r\n showFullScreen: PropTypes.bool,\r\n connectionInfo: PropTypes.shape({\r\n rtt: PropTypes.number,\r\n downlink: PropTypes.number\r\n }),\r\n isOnline: PropTypes.bool,\r\n fullScreenOnly: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n // basicCheckUrl: 'https://www.taina.tech/generate_204',\r\n onConnectionChanged: (event) => {},\r\n retries: 0,\r\n showFullScreen: false,\r\n connectionInfo: null,\r\n isOnline: true,\r\n fullScreenOnly: false\r\n };\r\n\r\n static CONNECTION_STATE_CHANGED = 'connection-state';\r\n\r\n static eventListenersLock = 0;\r\n\r\n static eventListenersSet = 0;\r\n\r\n static createConnectionStateEvent(isOnline) {\r\n const event = document.createEvent('CustomEvent');\r\n event.initCustomEvent(this.CONNECTION_STATE_CHANGED, true, true, { isOnline, state: isOnline ? 'Online' : 'Offline', date: new Date() });\r\n return event;\r\n }\r\n\r\n static handleOnlineOfflineEvent(event) {\r\n if (event && event.type && (event.type === 'online' || event.type === 'offline')) {\r\n const newState = event.type === 'online';\r\n window.dispatchEvent(ConnectionStatus.createConnectionStateEvent(newState));\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.setEventListeners();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.removeEventListeners();\r\n }\r\n\r\n handleConnectionStateChanged(event) {\r\n const { dispatch, onConnectionChanged, retries } = this.props;\r\n if (ApiService.globalRetryCount > 0 && event.detail.isOnline) {\r\n ApiService.globalRetryCount = 0;\r\n ApiService.processQueuedPromises(true);\r\n }\r\n\r\n dispatch(updateConnectionStatus(event.detail.isOnline, retries));\r\n if (onConnectionChanged) {\r\n onConnectionChanged(event);\r\n }\r\n }\r\n\r\n handleConnectionChanged(event) {\r\n const { isOnline } = this.props;\r\n const networkInfo = event.target;\r\n if (!isOnline && (networkInfo.rtt > 0 && networkInfo.downlink > 0)) {\r\n window.dispatchEvent(ConnectionStatus.createConnectionStateEvent(true));\r\n } else if (isOnline && (networkInfo.rtt === 0 || networkInfo.downlink === 0)) {\r\n window.dispatchEvent(ConnectionStatus.createConnectionStateEvent(false));\r\n }\r\n }\r\n\r\n /* eslint-disable no-dupe-class-members */\r\n handleConnectionChanged = this.handleConnectionChanged.bind(this);\r\n\r\n /* eslint-disable no-dupe-class-members */\r\n handleConnectionStateChanged = this.handleConnectionStateChanged.bind(this);\r\n\r\n setEventListeners() {\r\n const connection = null;\r\n const lockKey = Math.random() * (2 ** 32);\r\n // console.log(`Connection: ${ JSON.stringify(connection) }`);\r\n if (ConnectionStatus.eventListenersLock === 0) {\r\n ConnectionStatus.eventListenersLock = lockKey;\r\n }\r\n\r\n if (ConnectionStatus.eventListenersLock !== lockKey) {\r\n return;\r\n }\r\n\r\n if (ConnectionStatus.eventListenersSet === 0) {\r\n if (connection && connection.downlink >= 0 && connection.rtt >= 0) {\r\n connection.addEventListener('change', this.handleConnectionChanged);\r\n } else {\r\n window.addEventListener('online', ConnectionStatus.handleOnlineOfflineEvent);\r\n window.addEventListener('offline', ConnectionStatus.handleOnlineOfflineEvent);\r\n }\r\n\r\n window.addEventListener(ConnectionStatus.CONNECTION_STATE_CHANGED, this.handleConnectionStateChanged);\r\n }\r\n\r\n ConnectionStatus.eventListenersSet += 1;\r\n ConnectionStatus.eventListenersLock = 0;\r\n }\r\n\r\n getCssClass() {\r\n const { isOnline, showFullScreen } = this.props;\r\n if (isOnline) {\r\n return 'connected';\r\n }\r\n\r\n if (showFullScreen) {\r\n return 'full-screen';\r\n }\r\n\r\n return 'disconnected';\r\n }\r\n\r\n removeEventListeners() {\r\n if (ConnectionStatus.eventListenersSet === 1) {\r\n if (window.navigator) {\r\n const connection = null;\r\n if (connection) {\r\n connection.removeEventListener('change', this.handleConnectionChanged);\r\n }\r\n }\r\n window.removeEventListener('online', ConnectionStatus.handleOnlineOfflineEvent);\r\n window.removeEventListener('offline', ConnectionStatus.handleOnlineOfflineEvent);\r\n window.removeEventListener(ConnectionStatus.CONNECTION_STATE_CHANGED, this.handleConnectionStateChanged);\r\n }\r\n\r\n ConnectionStatus.eventListenersSet -= 1;\r\n }\r\n\r\n render() {\r\n const { children, showFullScreen, fullScreenOnly, isOnline } = this.props;\r\n\r\n return \r\n { !isOnline && showFullScreen &&
    }\r\n { (!fullScreenOnly || !isOnline) &&
    \r\n { !isOnline && !showFullScreen && children != null && children }\r\n { !isOnline && showFullScreen && }\r\n { isOnline && Your connection has been restored.
    Thank you for your patience.
    }\r\n
    }\r\n ;\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n common: {\r\n isOnline,\r\n connectionInfo,\r\n }\r\n } = state;\r\n\r\n return {\r\n isOnline,\r\n retries: ApiService.globalRetryCount,\r\n connectionInfo: connectionInfo || null,\r\n showFullScreen: ApiService.globalRetryCount > 1\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ConnectionStatus);\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport moment from 'moment';\r\n\r\nconst checkedWithinLast48Hours = lastChecked => (lastChecked == null ? null : moment().diff(lastChecked, 'hours', true) <= 48);\r\nconst checkedWithinLast12Months = lastChecked => (lastChecked == null ? null : moment().diff(lastChecked, 'months', true) <= 12);\r\n\r\nfunction getValidationStatusText(tinCheckDetails) {\r\n if (!tinCheckDetails) {\r\n return null;\r\n }\r\n\r\n const checkedWithin48Hours = checkedWithinLast48Hours(tinCheckDetails.lastChecked);\r\n const checkedWithin12Months = checkedWithinLast12Months(tinCheckDetails.lastChecked);\r\n\r\n if (tinCheckDetails.tinMatched === null && (tinCheckDetails.lastChecked === null || !tinCheckDetails.lastChecked)) {\r\n return 'Validation check not made yet';\r\n }\r\n if (tinCheckDetails.responseCode === 100) {\r\n return 'IRS Service Unavailable. Retry in 24hrs';\r\n }\r\n if (tinCheckDetails.tinMatched === null && checkedWithin48Hours === false) {\r\n return `Attempted ${ moment(tinCheckDetails.lastChecked).format('MMM DD, YYYY') }`;\r\n }\r\n if (tinCheckDetails.tinMatched === null && checkedWithin48Hours) {\r\n return 'Attempted recently. Can try again in 48hrs';\r\n }\r\n if (tinCheckDetails.tinMatched !== null && tinCheckDetails.lastChecked && tinCheckDetails.lastChecked !== null) {\r\n if (checkedWithin12Months === true) {\r\n return `Checked ${ moment(tinCheckDetails.lastChecked).format('MMM DD, YYYY') }`;\r\n }\r\n return `Checked ${ moment(tinCheckDetails.lastChecked).format('MMM DD, YYYY') }. Suggest Re-check`;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction tinCheckSentRecently(tinCheckDetails) {\r\n if (!tinCheckDetails) {\r\n return null;\r\n }\r\n\r\n const checkedWithin48Hours = checkedWithinLast48Hours(tinCheckDetails.lastChecked);\r\n const checkedWithin12Months = checkedWithinLast12Months(tinCheckDetails.lastChecked);\r\n\r\n if (tinCheckDetails.tinMatched === null && checkedWithin48Hours === true) {\r\n return true;\r\n }\r\n if (tinCheckDetails.tinMatched === null && checkedWithin48Hours === false) {\r\n return false;\r\n }\r\n if (tinCheckDetails.tinMatched !== null && checkedWithin12Months === true) {\r\n return true;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction getTinCheckDetails(tinMatchResult) {\r\n const tinCheckDetails = {\r\n tinMatched: null,\r\n lastChecked: null,\r\n responseCode: null\r\n };\r\n\r\n if (!tinMatchResult || tinMatchResult === null) {\r\n return tinCheckDetails;\r\n }\r\n\r\n tinCheckDetails.lastChecked = tinMatchResult.requestTime;\r\n\r\n switch (tinMatchResult.responseCode) {\r\n case 0: // Match\r\n case 6: // UnknownTypeMatchOnlyOnSsn\r\n case 7: // UnknownTypeMatchOnlyOnEin\r\n case 8: // UnknownTypeMatchSsnAndEin\r\n tinCheckDetails.tinMatched = true;\r\n return tinCheckDetails;\r\n case 2: // TinNotIssued\r\n case 3: // NotMatched\r\n tinCheckDetails.tinMatched = false;\r\n return tinCheckDetails;\r\n case 100: // Error\r\n tinCheckDetails.responseCode = 100;\r\n return tinCheckDetails;\r\n default: // 1: TinMissing; 4: InvalidRequest; 5: DuplicateRequest\r\n return tinCheckDetails;\r\n }\r\n}\r\n\r\nfunction CheckNameOrTinChangedOnForm(tinMatchResultById, tinMatchFormProps) {\r\n if (!tinMatchResultById || !tinMatchFormProps) {\r\n return false;\r\n }\r\n\r\n const nameChanged = tinMatchResultById.name?.toLowerCase() !== tinMatchFormProps.name?.toLowerCase();\r\n\r\n const tinChanged = ((tinMatchResultById.tinType === 1 && tinMatchResultById.tin !== tinMatchFormProps.tin?.ssn)\r\n || (tinMatchResultById.tinType === 2 && tinMatchResultById.tin !== tinMatchFormProps.tin?.ein));\r\n\r\n return (nameChanged || tinChanged);\r\n}\r\n\r\nconst TinValidationStatusChip = ({ tinMatched, lastChecked, nameOrTinChanged, responseCode }) => (\r\n
    \r\n { !nameOrTinChanged && tinMatched === true && lastChecked !== null &&
    Valid
    }\r\n { !nameOrTinChanged && tinMatched === false && lastChecked !== null &&
    Invalid
    }\r\n {(nameOrTinChanged || (tinMatched === null && lastChecked === null && responseCode !== 100)) &&
    Unknown
    }\r\n { ((!nameOrTinChanged && tinMatched === null && (lastChecked !== null || responseCode === 100))) &&
    Error
    }\r\n
    \r\n);\r\nTinValidationStatusChip.propTypes = {\r\n tinMatched: PropTypes.bool,\r\n lastChecked: PropTypes.string,\r\n nameOrTinChanged: PropTypes.bool,\r\n responseCode: PropTypes.number\r\n};\r\nTinValidationStatusChip.defaultProps = {\r\n tinMatched: null,\r\n lastChecked: null,\r\n nameOrTinChanged: false,\r\n responseCode: 0\r\n};\r\n\r\nconst TinCheckStatus = ({ onCheckTin, formId, tinMatchResult, workflowStage, hasValidation, isIndividualValidation, isImyChildResult,\r\n tinMatchFormProps, isFormDirty }) => {\r\n const tinMatchResultById = tinMatchResult?.find(result => result.formId === formId);\r\n\r\n const tinCheckDetails = getTinCheckDetails(tinMatchResultById);\r\n const irsRequestSucess = tinCheckDetails?.responseCode !== 100;\r\n const nameOrTinChanged = CheckNameOrTinChangedOnForm(tinMatchResultById, tinMatchFormProps);\r\n\r\n if ((tinMatchResultById?.checkMade === false && irsRequestSucess) || (nameOrTinChanged && tinCheckDetails)) {\r\n tinCheckDetails.tinMatched = null;\r\n tinCheckDetails.lastChecked = null;\r\n }\r\n\r\n const isTinMatchedNull = tinCheckDetails?.tinMatched === null;\r\n const isTinMatched = tinCheckDetails?.tinMatched === true;\r\n const matchedOver12MonthsAgo = isTinMatched && checkedWithinLast12Months(tinCheckDetails.lastChecked) === false;\r\n const formUnderReview = workflowStage > 4;\r\n const formComplete = workflowStage >= 100;\r\n\r\n const showCheckTinButton = ((formUnderReview || isIndividualValidation)\r\n && !formComplete) && hasValidation && !isImyChildResult\r\n && (isTinMatchedNull || matchedOver12MonthsAgo)\r\n && !isFormDirty;\r\n\r\n return (
    \r\n \r\n
    \r\n
    \r\n {tinCheckDetails && }\r\n {tinCheckDetails &&
    {getValidationStatusText(tinCheckDetails)}
    }\r\n
    \r\n
    \r\n {showCheckTinButton && !nameOrTinChanged && tinCheckDetails && tinCheckDetails.responseCode !== 100 && tinCheckSentRecently(tinCheckDetails) &&
    Sent
    }\r\n {showCheckTinButton && (nameOrTinChanged || (!tinCheckSentRecently(tinCheckDetails) || (tinCheckDetails && tinCheckDetails.responseCode === 100)))\r\n && onCheckTin(formId, matchedOver12MonthsAgo || !irsRequestSucess) }\r\n >Check}\r\n
    \r\n
    \r\n
    );\r\n};\r\nTinCheckStatus.propTypes = {\r\n onCheckTin: PropTypes.func.isRequired,\r\n formId: PropTypes.number.isRequired,\r\n tinMatchResult: PropTypes.arrayOf(PropTypes.shape()),\r\n workflowStage: PropTypes.number,\r\n hasValidation: PropTypes.bool,\r\n isIndividualValidation: PropTypes.bool,\r\n isImyChildResult: PropTypes.bool,\r\n tinMatchFormProps: PropTypes.shape(),\r\n isFormDirty: PropTypes.bool\r\n};\r\nTinCheckStatus.defaultProps = {\r\n tinMatchResult: null,\r\n hasValidation: true,\r\n isIndividualValidation: false,\r\n isImyChildResult: false,\r\n workflowStage: 0,\r\n tinMatchFormProps: null,\r\n isFormDirty: false\r\n};\r\n\r\nexport default TinCheckStatus;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport HintButton from 'components/Common/Buttons/HintButton';\r\n\r\nconst SupportingDocumentCuresComponent = ({\r\n modalId,\r\n supportingDocuments,\r\n onModalOpen,\r\n onModalClose,\r\n activeModal\r\n}) => {\r\n const [showModal, setShowModal] = useState(false);\r\n const buttonBackground = '#9e9e9e';\r\n const buttonBackgroundPressed = '#893c80';\r\n const buttonBackgroundHovered = '#616161';\r\n const iconColour = '#fff';\r\n\r\n const onToggle = () => {\r\n setShowModal(!showModal);\r\n onModalOpen(modalId);\r\n };\r\n\r\n const onClose = () => {\r\n setShowModal(false);\r\n onModalClose();\r\n };\r\n\r\n useEffect(() => {\r\n if (activeModal !== modalId) {\r\n setShowModal(false);\r\n }\r\n }, [activeModal]);\r\n\r\n const modalVisible = (activeModal === modalId) && showModal;\r\n\r\n const sortedSupportingDocuments = [...supportingDocuments].sort((a, b) => {\r\n if (a === 'Other document type not listed above') return 1;\r\n if (b === 'Other document type not listed above') return -1;\r\n\r\n return a.localeCompare(b);\r\n });\r\n\r\n return (\r\n
    \r\n { onToggle(); }\r\n }\r\n />\r\n { modalVisible &&
    \r\n
    }\r\n
    \r\n );\r\n};\r\n\r\nSupportingDocumentCuresComponent.propTypes = {\r\n modalId: PropTypes.string.isRequired,\r\n supportingDocuments: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n onModalOpen: PropTypes.func,\r\n onModalClose: PropTypes.func,\r\n activeModal: PropTypes.string\r\n};\r\n\r\nSupportingDocumentCuresComponent.defaultProps = {\r\n onModalOpen: null,\r\n onModalClose: null,\r\n activeModal: null\r\n};\r\n\r\nexport default SupportingDocumentCuresComponent;\r\n","import React, { useState } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { PropTypes } from 'prop-types';\r\nimport moment from 'moment';\r\nimport FormTypes from 'common/Forms/FormTypes';\r\n\r\nimport FormWorkflowStages from 'common/Workflows/FormWorkflowStages';\r\nimport TinCheckStatus from 'components/TinCheckStatus';\r\nimport SupportingDocumentCures from 'components/Common/SupportingDocumentsCures';\r\n\r\nexport function buildDescription({ codeDescription, context }) {\r\n // check description for dynamic parts like ${...}\r\n const interpolationParts = codeDescription.match(/\\${[^}\\r\\n]*}/g);\r\n if (interpolationParts && interpolationParts.length) {\r\n let result = codeDescription;\r\n interpolationParts.forEach((template) => {\r\n if (template != null) {\r\n const matches = template.match(/\\${([^}]*)}/);\r\n const contextField = matches != null && matches[1] != null;\r\n if (contextField != null) {\r\n result = result.split(template).join(context[contextField]);\r\n }\r\n }\r\n });\r\n return result;\r\n }\r\n return codeDescription;\r\n}\r\n\r\nfunction isOverridden(overrides, code) {\r\n return overrides != null && overrides.current != null && overrides.current.rejections != null && overrides.current.rejections.filter(r => r.code === code).length > 0;\r\n}\r\n\r\nfunction isValid(calculateValidity, rejections, overrides, valid) {\r\n if (calculateValidity\r\n && overrides != null\r\n && overrides.current != null) {\r\n if (overrides.current.formOverride != null && overrides.current.formOverride.override) {\r\n return overrides.current.formOverride.valid;\r\n }\r\n\r\n if (overrides.current.rejections != null && overrides.current.rejections.length > 0) {\r\n const overrideCodes = overrides.current.rejections.map(a => a != null && a.code);\r\n return rejections.filter(item => item != null && item.code !== 'REJ500000' && overrideCodes.indexOf(item.code) === -1).length === 0;\r\n }\r\n }\r\n return valid;\r\n}\r\n\r\nfunction hasOverriddenRejection(code, rejections, overrides) {\r\n if (rejections != null && overrides != null && overrides.current != null && overrides.current.rejections != null) {\r\n const numericCode = code.replace('REC', '').replace('WRN', '');\r\n const isInRejections = rejections.filter(item => item.code.replace('REJ', '') === numericCode).length !== 0;\r\n const isInOverrides = overrides.current.rejections.filter(item => item.code.replace('REJ', '') === numericCode).length !== 0;\r\n\r\n return isInRejections && isInOverrides;\r\n }\r\n return false;\r\n}\r\n\r\nfunction overriddenToInvalid(calculateValidity, overrides) {\r\n return overrides != null\r\n && overrides.current != null\r\n && overrides.current.formOverride != null\r\n && overrides.current.formOverride.override\r\n && ((!calculateValidity && !overrides.current.formOverride.isDraft) || (calculateValidity && overrides.current.formOverride.isDraft))\r\n && !overrides.current.formOverride.valid;\r\n}\r\n\r\nfunction overriddenToInvalidText(overrides) {\r\n return (overrides\r\n && overrides.current != null\r\n && overrides.current.formOverride != null\r\n && overrides.current.formOverride.override)\r\n ? overrides.current.formOverride.comments\r\n : '';\r\n}\r\n\r\nfunction validityDisplayText(valid, treaty, locked, workflowStage, formFamily) {\r\n let statusText = `${ formFamily }: `;\r\n statusText += valid ? 'Valid' : 'Invalid';\r\n statusText += valid && treaty ? ' with Treaty' : '';\r\n statusText += valid && workflowStage === FormWorkflowStages.Complete ? ' (Not Expired)' : '';\r\n statusText += locked ? ' & Locked' : '';\r\n\r\n return statusText;\r\n}\r\n\r\nfunction isExpired(expiryDate) {\r\n if (!expiryDate) return false;\r\n\r\n const formatedDate = moment(expiryDate).format('YYYY MM DD');\r\n const m = moment();\r\n m.set({ hour: 0, minute: 0, second: 0, millisecond: 0 });\r\n return m.diff(formatedDate) > 0;\r\n}\r\n\r\nfunction expiryDisplayText(expiryDate, expiryReason, formFamily) {\r\n return
    \r\n

    \r\n { formFamily }: Expired on { moment(expiryDate).format('ll') }\r\n

    Expiration due to { expiryReason }

    \r\n

    \r\n
    ;\r\n}\r\n\r\nfunction getDisplayTextForName(formType) {\r\n if (formType.indexOf('CRSCP') === -1) {\r\n return '| Name:';\r\n }\r\n return '| Controlling Person Name:';\r\n}\r\n\r\nfunction isPiiValidationCode(formType, piiValidationCodes, validationCode) {\r\n const formTypeFamily = formType && FormTypes[formType.toLowerCase()];\r\n const family = formTypeFamily && formTypeFamily.family && formTypeFamily.family.toUpperCase();\r\n\r\n const result = family && piiValidationCodes && piiValidationCodes[family]\r\n && piiValidationCodes[family].filter(code => code === validationCode).length !== 0;\r\n return result;\r\n}\r\n\r\nfunction isPiiInstruction(formType, piiValidationCodes, instruction, warnings, rejections) {\r\n if (instruction.indexOf('REC') === -1) {\r\n return false;\r\n }\r\n\r\n warnings = warnings.filter(w => w.code.indexOf('REC') === -1);\r\n\r\n const numericCode = instruction.replace('REC', '');\r\n const validationCodes = [...warnings, ...rejections].filter(v => v.code.indexOf(numericCode) !== -1);\r\n\r\n const result = validationCodes\r\n && validationCodes.filter(validationCode => isPiiValidationCode(formType, piiValidationCodes, validationCode && validationCode.code) === true).length !== 0;\r\n return result;\r\n}\r\n\r\nconst PiiValidationResults = ({\r\n isOverriddenToInvalid,\r\n overrides,\r\n validationCodes,\r\n headerName,\r\n formType,\r\n piiValidationCodes,\r\n}) => {\r\n const [isVisible, setIsVisible] = useState(false);\r\n const className = headerName === 'Rejections' ? 'reasons-for-rejection-list' : 'red-flags-and-recs-list';\r\n\r\n return (\r\n
    \r\n {(validationCodes && validationCodes.length !== 0)\r\n && validationCodes.some(validationCode => isPiiValidationCode(formType, piiValidationCodes, validationCode.code))\r\n && }\r\n { isVisible &&
    \r\n { headerName === 'Rejections' &&
      \r\n { isOverriddenToInvalid === true &&
    • \r\n Client specific treatment, specified below.\r\n  (REJ999999)\r\n
    • }\r\n { validationCodes.map(rejection => rejection != null && isPiiValidationCode(formType, piiValidationCodes, rejection.code) && (\r\n
    • \r\n { buildDescription(rejection) }\r\n  ({ rejection.code })\r\n
    • \r\n )) }\r\n
    }\r\n { headerName === 'Warnings' &&
      \r\n { isOverriddenToInvalid &&
    • \r\n { overriddenToInvalidText(overrides) }\r\n  (WRN999999)\r\n
    • }\r\n {validationCodes.map(warning => warning != null && isPiiValidationCode(formType, piiValidationCodes, warning.code) && (\r\n \r\n { buildDescription(warning) }\r\n  ({ warning.code })\r\n \r\n )) }\r\n
    }\r\n
    }\r\n
    );\r\n};\r\n\r\nPiiValidationResults.propTypes = {\r\n validationCodes: PropTypes.arrayOf(PropTypes.shape({\r\n code: PropTypes.string,\r\n codeDescription: PropTypes.string\r\n })).isRequired,\r\n overrides: PropTypes.shape({\r\n current: PropTypes.shape({}),\r\n draft: PropTypes.shape({})\r\n }),\r\n headerName: PropTypes.string.isRequired,\r\n isOverriddenToInvalid: PropTypes.bool,\r\n formType: PropTypes.string.isRequired,\r\n piiValidationCodes: PropTypes.shape({\r\n formType: PropTypes.string,\r\n validationCodes: PropTypes.arrayOf(PropTypes.string)\r\n })\r\n};\r\n\r\nPiiValidationResults.defaultProps = {\r\n overrides: null,\r\n isOverriddenToInvalid: false,\r\n piiValidationCodes: null\r\n};\r\n\r\nconst IndividualValidationResult = ({\r\n calculateValidity,\r\n showValidity,\r\n valid,\r\n rejections,\r\n warnings,\r\n overrides,\r\n formType,\r\n formId,\r\n customerId,\r\n customerName,\r\n isOnlineForm,\r\n isWithTreaty,\r\n isLocked,\r\n workflowStage,\r\n expiryDate,\r\n expiryReasonDesc,\r\n piiValidationCodes,\r\n isPiiProtectionEnabled,\r\n tinMatchResult,\r\n onCheckTin,\r\n showTinMatching,\r\n isImyChildResult,\r\n tinMatchFormProps,\r\n isFormDirty\r\n}) => {\r\n const [activeSupportingDocsModal, setActiveSupportingDocsModal] = useState(null);\r\n\r\n const handleSupportingDocsModalOpen = (modalId) => {\r\n setActiveSupportingDocsModal(modalId);\r\n };\r\n\r\n const handleSupportingDocsModalClose = () => {\r\n setActiveSupportingDocsModal(null);\r\n };\r\n\r\n const instructions = isPiiProtectionEnabled === false ? warnings.filter(warning => (warning.code.indexOf('WRN') === -1))\r\n : warnings.filter(warning => (warning.code.indexOf('WRN') === -1) && !isPiiInstruction(formType, piiValidationCodes, warning.code, warnings, rejections));\r\n\r\n const showTinCheckStatus = () => {\r\n if (!tinMatchFormProps || !tinMatchFormProps.tin || !tinMatchFormProps.name) {\r\n return false;\r\n }\r\n const tinIsAppliedForOrEmpty = tinMatchFormProps.tin.appliedForTin || ((!tinMatchFormProps.tin.ssn && !tinMatchFormProps.tin.ein));\r\n\r\n const tinIsComplete = tinMatchFormProps.tin.ssn?.length === 9 || tinMatchFormProps.tin.ein?.length === 9;\r\n\r\n return formType.toLowerCase().startsWith('w9') && !isPiiProtectionEnabled && showTinMatching && !tinIsAppliedForOrEmpty && tinIsComplete;\r\n };\r\n const formFamily = formType && FormTypes[formType.toLowerCase()] && FormTypes[formType.toLowerCase()].getFamilyName();\r\n return (\r\n /* eslint-disable max-len, react/no-array-index-key */\r\n
    \r\n
    \r\n \r\n { (customerId != null && customerId.length > 0) ? `Customer ID: ${ customerId }` : '' }\r\n { (customerName != null && customerName.length > 0) ? ` ${ getDisplayTextForName(formType) } ${ customerName }` : '' }\r\n \r\n
    \r\n {showValidity && isExpired(expiryDate) && isValid(calculateValidity, rejections, overrides, valid) && expiryDisplayText(expiryDate, expiryReasonDesc, formFamily) }\r\n {showValidity && !isExpired(expiryDate) && isValid(calculateValidity, rejections, overrides, valid) &&

    {validityDisplayText(true, isWithTreaty, isLocked, workflowStage, formFamily) }

    }\r\n {showValidity && !isValid(calculateValidity, rejections, overrides, valid) &&

    {validityDisplayText(false, isWithTreaty, isLocked, workflowStage, formFamily) }

    }\r\n { !isExpired(expiryDate) && isValid(calculateValidity, rejections, overrides, valid) &&
    \r\n { !overriddenToInvalid(calculateValidity, overrides) && The form is valid }\r\n { isOnlineForm && (!warnings || warnings.length === 0) && and does not have any warnings or rejections. }\r\n { warnings && warnings.length !== 0 && !overriddenToInvalid(calculateValidity, overrides) && , but it has some warnings / instructions. }\r\n { warnings && warnings.length === 0 && !overriddenToInvalid(calculateValidity, overrides) && '.' }\r\n
    }\r\n { showTinCheckStatus() && }\r\n { ((rejections && rejections.length !== 0) || (rejections.length === 0 && overriddenToInvalid(calculateValidity, overrides))) &&
    \r\n\r\n { formType.indexOf('IMY') === -1\r\n && \r\n
    Rejections:
    \r\n
    \r\n
      \r\n { overriddenToInvalid(calculateValidity, overrides) &&
    • \r\n Client specific treatment, specified below.\r\n  (REJ999999)\r\n
    • }\r\n { rejections.map(rejection => rejection != null && (isPiiProtectionEnabled === false\r\n || (isPiiProtectionEnabled === true && !isPiiValidationCode(formType, piiValidationCodes, rejection.code))) && (\r\n
    • \r\n { buildDescription(rejection) }\r\n  ({ rejection.code })\r\n { rejection.clearingDocuments?.length > 0 && }\r\n
    • \r\n )) }\r\n
    \r\n
    \r\n { isPiiProtectionEnabled === true && }\r\n
    }\r\n { formType.indexOf('IMY') > -1 && \r\n { rejections.some(rejection => rejection.code.substring(3) < 500000 && rejection.code.substring(3) !== 999999)\r\n && \r\n
    Form Rejections:
    \r\n
    \r\n
      \r\n { overriddenToInvalid(calculateValidity, overrides) &&
    • \r\n Client specific treatment, specified below.\r\n  (REJ999999)\r\n
    • }\r\n {rejections.map(rejection => rejection != null && rejection.code.substring(3) < 500000 && (isPiiProtectionEnabled === false\r\n || (isPiiProtectionEnabled === true && !isPiiValidationCode(formType, piiValidationCodes, rejection.code))) && (\r\n
    • \r\n { buildDescription(rejection) }\r\n  ({ rejection.code })\r\n { rejection.clearingDocuments?.length > 0 && }\r\n
    • \r\n )) }\r\n
    \r\n {isPiiProtectionEnabled === true && }\r\n
    \r\n
    }\r\n { rejections.some(rejection => rejection.code.substring(3) >= 500000 && rejection.code.substring(3) < 999999)\r\n && \r\n
    \r\n
    IMY Structure Rejections:
    \r\n
    \r\n
      \r\n {rejections.map(rejection => rejection != null && rejection.code.substring(3) >= 500000 && rejection.code.substring(3) < 999999\r\n && (isPiiProtectionEnabled === false || (isPiiProtectionEnabled === true && !isPiiValidationCode(formType, piiValidationCodes, rejection.code)))\r\n && (
    • \r\n { buildDescription(rejection) }\r\n  ({ rejection.code })\r\n { rejection.clearingDocuments?.length > 0 && }\r\n
    • \r\n )) }\r\n
    \r\n {isPiiProtectionEnabled === true && }\r\n
    \r\n
    }\r\n
    }\r\n
    }\r\n { ((warnings && warnings.length !== 0) || (warnings.length === 0 && overriddenToInvalid(calculateValidity, overrides))) &&
    \r\n { isOnlineForm && warnings.filter(w => w.code.indexOf('WRN') > -1).length > 0 &&
    Warnings:
    }\r\n { !isOnlineForm && warnings.filter(w => w.code.indexOf('WRN') > -1).length > 0 &&
    Warnings:
    }\r\n
    \r\n
      \r\n { overriddenToInvalid(calculateValidity, overrides) &&
    • \r\n { overriddenToInvalidText(overrides) }\r\n  (WRN999999)\r\n
    • }\r\n { warnings.filter(w => w.code.indexOf('WRN') > -1).map(warning => warning != null && (isPiiProtectionEnabled === false\r\n || (isPiiProtectionEnabled === true && !isPiiValidationCode(formType, piiValidationCodes, warning.code))) && (\r\n \r\n { buildDescription(warning) }\r\n  ({ warning.code })\r\n { warning.clearingDocuments?.length > 0 && }\r\n \r\n )) }\r\n
    \r\n { isPiiProtectionEnabled === true && w.code.indexOf('WRN') > -1) }\r\n headerName=\"Warnings\"\r\n formType={ formType }\r\n piiValidationCodes={ piiValidationCodes }\r\n /> }\r\n
    \r\n
    }\r\n\r\n {((isPiiProtectionEnabled === false\r\n || (isPiiProtectionEnabled === true && (instructions && instructions.length > 0)))\r\n && ((warnings && warnings.length !== 0) || (warnings.length === 0 && overriddenToInvalid(calculateValidity, overrides)))) &&
    \r\n { isOnlineForm &&
    Instructions:
    }\r\n { !isOnlineForm &&
    Instructions:
    }\r\n
    \r\n
      \r\n {instructions.map(instruction => instruction != null\r\n && (\r\n \r\n {buildDescription(instruction) }\r\n  ({instruction.code })\r\n \r\n )) }\r\n
    \r\n
    \r\n
    }\r\n
    \r\n /* eslint-enable max-len, react/no-array-index-key */\r\n );\r\n};\r\n\r\nIndividualValidationResult.propTypes = {\r\n valid: PropTypes.bool.isRequired,\r\n rejections: PropTypes.arrayOf(PropTypes.shape({\r\n code: PropTypes.string,\r\n codeDescription: PropTypes.string\r\n })).isRequired,\r\n warnings: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n overrides: PropTypes.shape({\r\n current: PropTypes.shape({}),\r\n draft: PropTypes.shape({})\r\n }),\r\n formType: PropTypes.string.isRequired,\r\n formId: PropTypes.number.isRequired,\r\n customerId: PropTypes.string,\r\n customerName: PropTypes.string,\r\n isOnlineForm: PropTypes.bool.isRequired,\r\n calculateValidity: PropTypes.bool,\r\n showValidity: PropTypes.bool,\r\n isWithTreaty: PropTypes.bool,\r\n isLocked: PropTypes.bool,\r\n workflowStage: PropTypes.number,\r\n expiryDate: PropTypes.string,\r\n expiryReasonDesc: PropTypes.string,\r\n piiValidationCodes: PropTypes.shape({\r\n formType: PropTypes.string,\r\n validationCodes: PropTypes.arrayOf(PropTypes.string)\r\n }),\r\n isPiiProtectionEnabled: PropTypes.bool,\r\n tinMatchResult: PropTypes.arrayOf(PropTypes.shape()),\r\n onCheckTin: PropTypes.func,\r\n showTinMatching: PropTypes.bool,\r\n isImyChildResult: PropTypes.bool,\r\n tinMatchFormProps: PropTypes.shape(),\r\n isFormDirty: PropTypes.bool\r\n};\r\n\r\nIndividualValidationResult.defaultProps = {\r\n customerId: '',\r\n customerName: '',\r\n overrides: null,\r\n calculateValidity: false,\r\n showValidity: true,\r\n isWithTreaty: false,\r\n isLocked: false,\r\n workflowStage: 0,\r\n expiryDate: null,\r\n expiryReasonDesc: '',\r\n piiValidationCodes: null,\r\n isPiiProtectionEnabled: false,\r\n tinMatchResult: null,\r\n onCheckTin: null,\r\n showTinMatching: false,\r\n isImyChildResult: false,\r\n tinMatchFormProps: null,\r\n isFormDirty: false\r\n};\r\n\r\nexport default IndividualValidationResult;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { buildDescription } from 'components/IndividualValidationResult';\r\nimport FormTypes from 'common/Forms/FormTypes';\r\n\r\nconst ValidationResultCell = ({ dataKey, data, className, isPiiProtectionEnabled, piiValidationCodes, formType }) => {\r\n const getItemClass = (item) => {\r\n if (item.code) {\r\n if (item.code.indexOf('WRN') !== -1) {\r\n return 'red-flag';\r\n }\r\n if (item.code.indexOf('REC') !== -1) {\r\n return 'recommendation';\r\n }\r\n }\r\n return '';\r\n };\r\n\r\n const isPiiValidationCode = (validationCode) => {\r\n const formTypeFamily = formType ? FormTypes[formType.toLowerCase()] : formType && FormTypes[formType.toLowerCase()];\r\n const family = (formTypeFamily && formTypeFamily.family) ? formTypeFamily.family.toUpperCase() : false;\r\n\r\n let result;\r\n\r\n if (validationCode && validationCode.indexOf('REC') !== -1) {\r\n const numericCode = validationCode.replace('REC', '');\r\n\r\n const rejectionsAndWarnings = [...data.warnings, ...data.rejections].filter(v => v.code.indexOf('REC') === -1 && v.code.indexOf(numericCode) !== -1);\r\n\r\n result = rejectionsAndWarnings\r\n && rejectionsAndWarnings.filter(v => isPiiValidationCode(v && v.code) === true).length !== 0;\r\n return result;\r\n }\r\n\r\n result = family && piiValidationCodes && piiValidationCodes[family]\r\n && piiValidationCodes[family].filter(code => code === validationCode).length !== 0;\r\n return result;\r\n };\r\n\r\n return (
    \r\n { data != null && data[dataKey] != null && data[dataKey].length === 0 && N/A }\r\n { data[dataKey] != null && data[dataKey].length !== 0 &&
      \r\n { data[dataKey].sort(({ code: a }, { code: b }) => {\r\n if (a.indexOf('WRN') === 0 && b.indexOf('REC') === 0) {\r\n return -1;\r\n }\r\n if (b.indexOf('WRN') === 0 && a.indexOf('REC') === 0) {\r\n return 1;\r\n }\r\n return 0;\r\n }).map(item => (item != null && !isPiiValidationCode(item.code)\r\n && \r\n { buildDescription(item) }\r\n  ({ item.code })\r\n ))}\r\n {(isPiiProtectionEnabled === true && data[dataKey].filter(item => item.code.indexOf('REC') === -1 && isPiiValidationCode(item.code)).length > 0)\r\n &&

      Personally Identifiable Information (PII) {dataKey === 'rejections' ? 'Rejections' : 'Warnings' }:

      }\r\n {isPiiProtectionEnabled === true\r\n && data[dataKey].sort(({ code: a }, { code: b }) => {\r\n if (a.indexOf('WRN') === 0 && b.indexOf('REC') === 0) {\r\n return -1;\r\n }\r\n if (b.indexOf('WRN') === 0 && a.indexOf('REC') === 0) {\r\n return 1;\r\n }\r\n return 0;\r\n }).map(item => (item != null && (isPiiValidationCode(item.code) && item.code.indexOf('REC') === -1)\r\n && \r\n {buildDescription(item)}\r\n  ({item.code})\r\n ))}\r\n
    }\r\n
    );\r\n};\r\n\r\nValidationResultCell.propTypes = {\r\n dataKey: PropTypes.string,\r\n data: PropTypes.shape(),\r\n className: PropTypes.string,\r\n isPiiProtectionEnabled: PropTypes.bool,\r\n piiValidationCodes: PropTypes.shape(),\r\n formType: PropTypes.string\r\n};\r\n\r\nValidationResultCell.defaultProps = {\r\n dataKey: null,\r\n data: null,\r\n className: null,\r\n isPiiProtectionEnabled: false,\r\n piiValidationCodes: null,\r\n formType: null\r\n};\r\n\r\nexport default ValidationResultCell;\r\n","import React from 'react';\r\n\r\nimport MultiSelectFilter from 'components/ReactTable/Filters/MultiSelectFilter';\r\nimport WorkflowStageFilter from 'components/ReactTable/Filters/WorkflowStageFilter';\r\nimport CustomerLinkCell from 'components/ReactTable/CellRenderers/CustomerLinkCell';\r\nimport AccountLinkCell from 'components/ReactTable/CellRenderers/AccountLinkCell';\r\nimport ValidationResultCell from 'components/ReactTable/CellRenderers/ValidationResultCell';\r\n\r\n// note: for the sorting to work, the 'accessor' properties below must have the same name as the backend property to be sorted by\r\nconst rejectedFormColumnDefs = (permissions, isPiiProtectionEnabled, piiValidationCodes) => [\r\n {\r\n Header: 'Customer Id',\r\n accessor: 'customer',\r\n Cell: (cellInfo) => {\r\n const { row: { original } } = cellInfo;\r\n return ();\r\n },\r\n className: 'col-15p'\r\n },\r\n {\r\n Header: 'Form Type',\r\n accessor: 'formTypeDescription',\r\n Filter: MultiSelectFilter\r\n },\r\n {\r\n Header: 'Workflow',\r\n accessor: 'workflowStatus',\r\n Filter: WorkflowStageFilter,\r\n Cell: (cellInfo) => {\r\n const { row: { original: { workflowStatus } } } = cellInfo;\r\n return workflowStatus || 'N/A';\r\n }\r\n },\r\n {\r\n Header: 'Account',\r\n accessor: 'account',\r\n Cell: (cellInfo) => {\r\n const { row: { original } } = cellInfo;\r\n return ();\r\n },\r\n className: 'col-15p'\r\n },\r\n {\r\n Header: 'Reasons For Rejection',\r\n id: 'rejections',\r\n Cell: (cellInfo) => {\r\n const { row: { original: { validationData, formType } } } = cellInfo;\r\n return ();\r\n },\r\n disableFilters: true,\r\n className: 'col-20p rejections-list'\r\n },\r\n {\r\n Header: 'Warnings / Instructions',\r\n id: 'warnings',\r\n Cell: (cellInfo) => {\r\n const { row: { original: { validationData, formType } } } = cellInfo;\r\n return ();\r\n },\r\n disableFilters: true,\r\n className: 'col-20p warnings-list'\r\n },\r\n {\r\n Header: 'Sign Date',\r\n accessor: 'signDate',\r\n disableFilters: true,\r\n className: 'col-12p5'\r\n }\r\n];\r\n\r\nexport default rejectedFormColumnDefs;\r\n","import moment from 'moment';\r\n\r\n// const cellPadding = 7.5 * 2;\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport class GridHelper {\r\n static defaultGridOptions = {\r\n defaultColDef: {},\r\n headerHeight: 45,\r\n icons: {\r\n menu: '',\r\n filter: '',\r\n sortAscending: '',\r\n sortDescending: ''\r\n },\r\n overlayLoadingTemplate: `\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n `,\r\n rowHeight: 32,\r\n suppressCellFocus: true,\r\n suppressMovableColumns: true,\r\n suppressTouch: true,\r\n cacheQuickFilter: true,\r\n pagination: true,\r\n paginationPageSize: 50\r\n };\r\n\r\n static pageNavigationSteps = { first: 'first', last: 'last', next: 'next', previous: 'previous' };\r\n\r\n static buildGridOptions(gridOptions = {}) {\r\n return {\r\n ...GridHelper.defaultGridOptions,\r\n ...gridOptions\r\n };\r\n }\r\n\r\n static dateFormatter(value, format) {\r\n if (!value) {\r\n return 'NA';\r\n }\r\n return moment(value).format(format);\r\n }\r\n\r\n static sizeColumnsToFit(gridApi) {\r\n if (!gridApi) {\r\n return console.error('GridHelper -> setSizeToFit: gridApi is not initialized');\r\n }\r\n return setImmediate(() => gridApi.sizeColumnsToFit(), 0);\r\n }\r\n\r\n static resetRowHeights(gridApi) {\r\n if (!gridApi) {\r\n return console.error('GridHelper -> resetRowHeights: gridApi is not initialized');\r\n }\r\n return setImmediate(() => gridApi.resetRowHeights(), 0);\r\n }\r\n\r\n static calculateRowHeight({ id: rowIndex }) {\r\n const rowNodeSelector = `.ag-body-viewport .ag-row[row-id=\"${ rowIndex }\"] div.ag-cell`;\r\n const cells = document.querySelectorAll(rowNodeSelector);\r\n if (cells != null) {\r\n let max = GridHelper.defaultGridOptions.rowHeight;\r\n Array.from(cells).forEach((cell) => {\r\n if (cell != null) {\r\n // const cont = cell.querySelector('.ag-cell.ag-cell-value');\r\n // if (cont != null) {\r\n max = Math.max(max, cell.clientHeight);\r\n // }\r\n }\r\n });\r\n return max;\r\n }\r\n return GridHelper.defaultGridOptions.rowHeight;\r\n }\r\n}\r\n","import React from 'react';\r\n\r\nimport { GridHelper } from 'components/Grids/GridHelper';\r\nimport MultiSelectFilter from 'components/ReactTable/Filters/MultiSelectFilter';\r\nimport WorkflowStageFilter from 'components/ReactTable/Filters/WorkflowStageFilter';\r\nimport DateRangeFilter from 'components/ReactTable/Filters/DateRangeFilter';\r\nimport CustomerLinkCell from 'components/ReactTable/CellRenderers/CustomerLinkCell';\r\nimport AccountLinkCell from 'components/ReactTable/CellRenderers/AccountLinkCell';\r\nimport ValidationResultCell from 'components/ReactTable/CellRenderers/ValidationResultCell';\r\nimport Chapter3Status from 'common/Customers/Chapter3Status';\r\nimport Chapter4Status from 'common/Customers/Chapter4Status';\r\nimport CRSClassificationStatus from 'common/Customers/CRSClassificationStatus';\r\n\r\n// note: for the sorting to work, the 'accessor' properties below must have the same name as the backend property to be sorted by\r\nconst validFormColumnDefs = (permissions, isPiiProtectionEnabled, piiValidationCodes) => [\r\n {\r\n Header: 'Customer Id',\r\n accessor: 'customer',\r\n Cell: (cellInfo) => {\r\n const { row: { original } } = cellInfo;\r\n return ();\r\n },\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Form Type',\r\n accessor: 'formTypeDescription',\r\n Filter: MultiSelectFilter\r\n },\r\n {\r\n Header: 'Workflow',\r\n accessor: 'workflowStatus',\r\n Filter: WorkflowStageFilter,\r\n Cell: (cellInfo) => {\r\n const { row: { original: { workflowStatus } } } = cellInfo;\r\n return workflowStatus || 'N/A';\r\n }\r\n },\r\n {\r\n Header: 'Account',\r\n accessor: 'account',\r\n Cell: (cellInfo) => {\r\n const { row: { original } } = cellInfo;\r\n return ();\r\n },\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Warnings / Instructions',\r\n id: 'warnings',\r\n Cell: (cellInfo) => {\r\n const { row: { original: { validationData, formType } } } = cellInfo;\r\n return ();\r\n },\r\n disableFilters: true,\r\n className: 'col-15p warnings-list'\r\n },\r\n {\r\n Header: 'Ch. 3 Status',\r\n accessor: 'chapter3Status',\r\n Filter: MultiSelectFilter,\r\n options: Chapter3Status.map(item => ({ value: item.name, title: item.description })).sort((a, b) => (a.title > b.title ? 1 : -1)),\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Ch. 4 Status',\r\n accessor: 'chapter4Status',\r\n Filter: MultiSelectFilter,\r\n options: Chapter4Status.map(item => ({ value: item.name, title: item.description })).sort((a, b) => (a.title > b.title ? 1 : -1)),\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'CRS Status',\r\n accessor: 'crsStatus',\r\n Filter: MultiSelectFilter,\r\n options: CRSClassificationStatus.map(item => ({ value: item.name, title: item.description })).sort((a, b) => (a.title > b.title ? 1 : -1)),\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Sign Date',\r\n accessor: 'signDate',\r\n disableFilters: true\r\n },\r\n {\r\n Header: 'Expiration Date',\r\n accessor: 'validUntil',\r\n Cell: (cellInfo) => {\r\n let tmp;\r\n const expiryReason = cellInfo.row.original.expiryReasonDescription !== null ? `(${ cellInfo.row.original.expiryReasonDescription })` : '';\r\n if (cellInfo.row.original.validUntil === 1000) {\r\n tmp = `Evergreen ${ expiryReason }`;\r\n } else {\r\n tmp = `${ GridHelper.dateFormatter(cellInfo.row.original.validUntil, 'MMM DD, YYYY') } ${ expiryReason }`;\r\n }\r\n return tmp;\r\n },\r\n Filter: DateRangeFilter\r\n },\r\n {\r\n Header: 'Treaty Country',\r\n accessor: 'treatyCountry',\r\n className: 'col-7p5'\r\n },\r\n];\r\n\r\nexport default validFormColumnDefs;\r\n","import React from 'react';\r\n\r\nimport { GridHelper } from 'components/Grids/GridHelper';\r\nimport MultiSelectFilter from 'components/ReactTable/Filters/MultiSelectFilter';\r\nimport WorkflowStageFilter from 'components/ReactTable/Filters/WorkflowStageFilter';\r\nimport DateRangeFilter from 'components/ReactTable/Filters/DateRangeFilter';\r\nimport CustomerLinkCell from 'components/ReactTable/CellRenderers/CustomerLinkCell';\r\nimport AccountLinkCell from 'components/ReactTable/CellRenderers/AccountLinkCell';\r\nimport ValidationResultCell from 'components/ReactTable/CellRenderers/ValidationResultCell';\r\nimport Chapter3Status from 'common/Customers/Chapter3Status';\r\nimport Chapter4Status from 'common/Customers/Chapter4Status';\r\nimport CRSClassificationStatus from 'common/Customers/CRSClassificationStatus';\r\n\r\n// note: for the sorting to work, the 'accessor' properties below must have the same name as the backend property to be sorted by\r\nconst expiredFormColDefs = (permissions, isPiiProtectionEnabled, piiValidationCodes) => [\r\n {\r\n Header: 'Customer Id',\r\n accessor: 'customer',\r\n Cell: (cellInfo) => {\r\n const { row: { original } } = cellInfo;\r\n return ();\r\n },\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Form Type',\r\n accessor: 'formTypeDescription',\r\n Filter: MultiSelectFilter\r\n },\r\n {\r\n Header: 'Workflow',\r\n accessor: 'workflowStatus',\r\n Filter: WorkflowStageFilter,\r\n Cell: (cellInfo) => {\r\n const { row: { original: { workflowStatus } } } = cellInfo;\r\n return workflowStatus || 'N/A';\r\n }\r\n },\r\n {\r\n Header: 'Account',\r\n accessor: 'account',\r\n Cell: (cellInfo) => {\r\n const { row: { original } } = cellInfo;\r\n return ();\r\n },\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Expiration Date Identified On',\r\n accessor: 'expiryIdentifiedDate',\r\n disableFilters: true\r\n },\r\n {\r\n Header: 'Warnings / Instructions',\r\n id: 'warnings',\r\n Cell: (cellInfo) => {\r\n const { row: { original: { validationData, formType } } } = cellInfo;\r\n return ();\r\n },\r\n disableFilters: true,\r\n className: 'col-15p warnings-list'\r\n },\r\n {\r\n Header: 'Ch. 3 Status',\r\n accessor: 'chapter3Status',\r\n Filter: MultiSelectFilter,\r\n options: Chapter3Status.map(item => ({ value: item.name, title: item.description })).sort((a, b) => (a.title > b.title ? 1 : -1)),\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Ch. 4 Status',\r\n accessor: 'chapter4Status',\r\n Filter: MultiSelectFilter,\r\n options: Chapter4Status.map(item => ({ value: item.name, title: item.description })).sort((a, b) => (a.title > b.title ? 1 : -1)),\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'CRS Status',\r\n accessor: 'crsStatus',\r\n Filter: MultiSelectFilter,\r\n options: CRSClassificationStatus.map(item => ({ value: item.name, title: item.description })).sort((a, b) => (a.title > b.title ? 1 : -1)),\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Sign Date',\r\n accessor: 'signDate',\r\n disableFilters: true\r\n },\r\n {\r\n Header: 'Expiration Date',\r\n accessor: 'validUntil',\r\n Cell: (cellInfo) => {\r\n let tmp;\r\n const expiryReason = cellInfo.row.original.expiryReasonDescription !== null ? `(${ cellInfo.row.original.expiryReasonDescription })` : '';\r\n if (cellInfo.row.original.validUntil === 1000) {\r\n tmp = `Evergreen ${ expiryReason }`;\r\n } else {\r\n tmp = `${ GridHelper.dateFormatter(cellInfo.row.original.validUntil, 'MMM DD, YYYY') } ${ expiryReason }`;\r\n }\r\n return tmp;\r\n },\r\n Filter: DateRangeFilter,\r\n },\r\n];\r\n\r\nexport default expiredFormColDefs;\r\n","import React from 'react';\r\n\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AccessControl from 'components/AccessControl';\r\nimport FormViewButton from 'components/Common/Buttons/FormViewButton';\r\n\r\n/* eslint-disable react/prop-types, react/no-unstable-nested-components */\r\nconst FormsActions = ({ permissions, settings, getOriginalPdfFileCallback, getAllocationStatementFileCallback }) => ({\r\n id: 'action-column',\r\n Header: View,\r\n Cell: ({ row }) => (\r\n
    \r\n
    \r\n { (window.navigator && typeof (window.navigator.msSaveOrOpenBlob) !== 'undefined')\r\n ? AccessControl.hasPermission(permissions, [ActivityPerms.scannedView])\r\n && getOriginalPdfFileCallback(row.original.formId) }\r\n disabled={ row.original.hasPdfFile !== true }\r\n >\r\n \r\n \r\n : AccessControl.hasPermission(permissions, [ActivityPerms.scannedView])\r\n && row.original.formType\r\n && \r\n \r\n }\r\n { row.original.hasAllocationStmnts === true && row.original.hasOriginalStmnt === true && AccessControl.hasPermission(permissions, [ActivityPerms.multiTierMgrDownloadWhs])\r\n && getAllocationStatementFileCallback(row.original.formId) }\r\n disabled={ row.original.hasAllocationStmnts !== true && row.original.hasOriginalStmnt !== true }\r\n title=\"View witholding statement\"\r\n >\r\n \r\n }\r\n { ((row.original.isOnlineForm && AccessControl.hasPermission(permissions, [ActivityPerms.electronicView, ActivityPerms.electronicValidate]))\r\n || (!row.original.isOnlineForm && AccessControl.hasPermission(permissions, [ActivityPerms.scannedView, ActivityPerms.scannedEdit, ActivityPerms.scannedValidate])))\r\n && }\r\n className=\"btn btn-sm btn-action\"\r\n title=\"View digitised version\"\r\n /> }\r\n
    \r\n { (row.original.beneficiaryForms != null && [...row.original.beneficiaryForms].length > 0)\r\n && AccessControl.hasPermission(permissions, [ActivityPerms.scannedView, ActivityPerms.scannedEdit, ActivityPerms.scannedValidate,\r\n ActivityPerms.electronicView, ActivityPerms.electronicValidate])\r\n &&
    \r\n
    Attached Beneficiary Forms
    \r\n { [...row.original.beneficiaryForms].map((item, key) => item != null && (\r\n (window.navigator && typeof (window.navigator.msSaveOrOpenBlob) !== 'undefined')\r\n ?
    \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.scannedView])\r\n && getOriginalPdfFileCallback(item.formId) }\r\n disabled={ row.original.hasPdfFile !== true }\r\n >\r\n \r\n }\r\n { AccessControl.hasPermission(permissions, [ActivityPerms.scannedView, ActivityPerms.scannedEdit,\r\n ActivityPerms.scannedValidate, ActivityPerms.electronicView, ActivityPerms.electronicValidate])\r\n && }\r\n className=\"btn btn-sm btn-action\"\r\n title=\"View digitised version\"\r\n /> }\r\n
    :
    \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.scannedView]) && \r\n \r\n }\r\n { AccessControl.hasPermission(permissions, [ActivityPerms.scannedView, ActivityPerms.scannedEdit,\r\n ActivityPerms.scannedValidate, ActivityPerms.electronicView, ActivityPerms.electronicValidate])\r\n && }\r\n className=\"btn btn-sm btn-action\"\r\n title={ `${ item.originalFilename }` }\r\n /> }\r\n
    \r\n )) }\r\n
    }\r\n { row.original.hasAllocationStmnts\r\n && AccessControl.hasPermission(permissions, [ActivityPerms.scannedView, ActivityPerms.scannedViewTree], true)\r\n && row.original.accountId\r\n &&
    \r\n \r\n \r\n \r\n
    }\r\n
    \r\n ),\r\n className: 'col-7p5'\r\n});\r\n/* eslint-enable react/prop-types, react/no-unstable-nested-components */\r\n\r\nexport default FormsActions;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport DatePicker from 'react-datepicker';\r\n\r\nimport {\r\n getValidationResults,\r\n searchValidationResults,\r\n exportToExcel,\r\n getFormPdf,\r\n getAllocationStatementFile,\r\n hideOwnershipModal,\r\n takeQueueItem\r\n} from 'actions';\r\n\r\nimport { history } from 'containers/App';\r\nimport withContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\n\r\nimport ReactTable from 'components/ReactTable';\r\nimport RejectedFormsColDefs from 'components/ValidationResults/GridColumnDefinitions/rejectedFormColumnDefs';\r\nimport ValidFormsColDefs from 'components/ValidationResults/GridColumnDefinitions/validFormColumnDefs';\r\nimport ExpiredFormsColDefs from 'components/ValidationResults/GridColumnDefinitions/expiredFormColumnDefs';\r\nimport FormsActions from 'components/ValidationResults/GridActions/FormActions';\r\nimport ChangeOwnershipModal from 'components/Modals/ChangeOwnershipModal';\r\n\r\nconst WAIT_INTERVAL = 1000;\r\nconst ENTER_KEY = 13;\r\n\r\nclass ValidationResults extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n settings: PropTypes.shape(),\r\n gridTotalLimit: PropTypes.number.isRequired,\r\n // isGettingReporting: PropTypes.bool.isRequired,\r\n reportingResponse: PropTypes.shape({\r\n results: PropTypes.arrayOf(PropTypes.shape()),\r\n totalCount: PropTypes.number\r\n }),\r\n isExportingToExcel: PropTypes.bool.isRequired,\r\n excelData: PropTypes.shape({}),\r\n isOwnershipModalShown: PropTypes.bool,\r\n changeOwnershipItem: PropTypes.shape(),\r\n initSearchCriteria: PropTypes.shape(),\r\n initGridCriteria: PropTypes.shape(),\r\n dateFormat: PropTypes.string,\r\n piiValidationCodes: PropTypes.shape(),\r\n };\r\n\r\n static defaultProps = {\r\n permissions: null,\r\n settings: null,\r\n reportingResponse: null,\r\n excelData: null,\r\n isOwnershipModalShown: false,\r\n changeOwnershipItem: null,\r\n initSearchCriteria: null,\r\n initGridCriteria: null,\r\n dateFormat: 'MMM dd yyyy',\r\n piiValidationCodes: null,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const { initGridCriteria, initSearchCriteria, permissions, settings, piiValidationCodes, gridTotalLimit } = props;\r\n const searchCriteria = initSearchCriteria || {\r\n searchQuery: '',\r\n dateFrom: null,\r\n dateTo: null,\r\n };\r\n const gridCriteria = initGridCriteria || {\r\n columnDefs: RejectedFormsColDefs(permissions, settings.selectedClient.isPiiProtectionEnabled, piiValidationCodes).concat([]),\r\n pageIndex: 0,\r\n sortBy: [],\r\n filters: [],\r\n pageCount: 0,\r\n pageSize: 50,\r\n itemCount: 0,\r\n totalLimit: gridTotalLimit,\r\n selectedItems: [],\r\n selectedItem: null\r\n };\r\n this.state = {\r\n activeTab: 0,\r\n tabs: [\r\n {\r\n title: 'Invalid',\r\n index: 0,\r\n field: 'invalid',\r\n actions: FormsActions({\r\n permissions,\r\n settings,\r\n getAllocationStatementFileCallback: this.fetchAllocationStatementFile,\r\n getOriginalPdfFileCallback: this.fetchOriginalPdfFile\r\n }),\r\n colDefs: RejectedFormsColDefs(permissions, settings.selectedClient.isPiiProtectionEnabled, piiValidationCodes).concat([])\r\n },\r\n {\r\n title: 'Valid (With Expiry)',\r\n index: 1,\r\n field: 'validwithexpiry',\r\n\r\n actions: FormsActions({\r\n permissions,\r\n settings,\r\n getAllocationStatementFileCallback: this.fetchAllocationStatementFile,\r\n getOriginalPdfFileCallback: this.fetchOriginalPdfFile\r\n }),\r\n colDefs: ValidFormsColDefs(permissions, settings.selectedClient.isPiiProtectionEnabled, piiValidationCodes).concat([])\r\n },\r\n {\r\n title: 'Valid (No Expiry)',\r\n index: 2,\r\n field: 'validnoexpiry',\r\n actions: FormsActions({\r\n permissions,\r\n settings,\r\n getAllocationStatementFileCallback: this.fetchAllocationStatementFile,\r\n getOriginalPdfFileCallback: this.fetchOriginalPdfFile\r\n }),\r\n colDefs: ValidFormsColDefs(permissions, settings.selectedClient.isPiiProtectionEnabled, piiValidationCodes).concat([])\r\n },\r\n {\r\n title: 'Expired',\r\n index: 3,\r\n field: 'expired',\r\n actions: FormsActions({\r\n permissions,\r\n settings,\r\n getAllocationStatementFileCallback: this.fetchAllocationStatementFile,\r\n getOriginalPdfFileCallback: this.fetchOriginalPdfFile\r\n }),\r\n colDefs: ExpiredFormsColDefs(permissions, settings.selectedClient.isPiiProtectionEnabled, piiValidationCodes).concat([])\r\n }\r\n ],\r\n searchCriteria,\r\n gridCriteria,\r\n initialLoaded: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchReporting();\r\n }\r\n\r\n /* eslint-disable react/no-did-update-set-state */\r\n componentDidUpdate(prevProps) {\r\n const { reportingResponse } = this.props;\r\n const { initialLoaded, gridCriteria, tabs, activeTab } = this.state;\r\n\r\n const itemCount = reportingResponse.totalCount;\r\n const pageCount = Math.ceil(itemCount / gridCriteria.pageSize);\r\n const nextTabs = tabs != null && tabs.map((tab) => {\r\n if (tab != null) {\r\n if (!gridCriteria.searchQuery) {\r\n return {\r\n ...tab,\r\n };\r\n }\r\n if (tab.index === activeTab) {\r\n return {\r\n ...tab,\r\n };\r\n }\r\n return {\r\n ...tab,\r\n };\r\n }\r\n return null;\r\n });\r\n\r\n if (reportingResponse !== prevProps.reportingResponse) {\r\n if (!initialLoaded) {\r\n this.setState({ initialLoaded: true, loading: false, tabs: nextTabs, gridCriteria: { ...gridCriteria, itemCount, pageCount } });\r\n } else {\r\n this.setState({ loading: false, tabs: nextTabs, gridCriteria: { ...gridCriteria, itemCount, pageCount } });\r\n }\r\n }\r\n }\r\n /* eslint-enable react/no-did-update-set-state */\r\n\r\n componentWillUnmount() {\r\n const { dispatch } = this.props;\r\n dispatch(hideOwnershipModal());\r\n }\r\n\r\n getActions = () => {\r\n const { tabs, activeTab } = this.state;\r\n return tabs[activeTab].actions;\r\n };\r\n\r\n onGridCriteriaChanged = (newGridCriteria) => {\r\n this.setState({ gridCriteria: { ...newGridCriteria } }, () => this.fetchReporting());\r\n };\r\n\r\n fetchReporting = (filters) => {\r\n const { dispatch } = this.props;\r\n const { gridCriteria, searchCriteria: { searchQuery, dateFrom, dateTo }, activeTab } = this.state;\r\n\r\n // remove _1 suffix\r\n if (filters != null) {\r\n const keys = Object.keys(filters);\r\n for (let j = 0; j < keys.length; j += 1) {\r\n if (keys[j].endsWith('_1')) {\r\n filters[keys[j].substr(0, keys[j].length - 2)] = filters[keys[j]];\r\n delete filters[keys[j]];\r\n }\r\n }\r\n }\r\n\r\n const sortBy = gridCriteria.sortBy != null ? gridCriteria.sortBy[0]?.id : null;\r\n let sortDirection;\r\n if (sortBy != null) {\r\n sortDirection = gridCriteria.sortBy[0]?.desc ? 'desc' : 'asc';\r\n } else {\r\n sortDirection = null;\r\n }\r\n\r\n this.setState({ loading: true });\r\n\r\n if (!searchQuery && !dateFrom && !dateTo) {\r\n dispatch(getValidationResults(gridCriteria.pageIndex + 1, gridCriteria.pageSize, gridCriteria.totalLimit, sortBy, sortDirection, gridCriteria.filters, activeTab));\r\n } else {\r\n dispatch(searchValidationResults(\r\n gridCriteria.pageIndex + 1,\r\n gridCriteria.pageSize,\r\n gridCriteria.totalLimit,\r\n sortBy,\r\n sortDirection,\r\n gridCriteria.filters,\r\n searchQuery,\r\n dateFrom?.toLocaleString('en-us', { month: 'short', day: 'numeric', year: 'numeric' }).replace(/[^ -~]/g, ''),\r\n dateTo?.toLocaleString('en-us', { month: 'short', day: 'numeric', year: 'numeric' }).replace(/[^ -~]/g, ''),\r\n activeTab\r\n ));\r\n }\r\n };\r\n\r\n fetchAllocationStatementFile = (formId) => {\r\n const { dispatch } = this.props;\r\n dispatch(getAllocationStatementFile(formId));\r\n };\r\n\r\n fetchOriginalPdfFile = (formId) => {\r\n const { dispatch } = this.props;\r\n dispatch(getFormPdf({ id: formId, isAdditional: false }));\r\n };\r\n\r\n downloadExcel() {\r\n const { dispatch } = this.props;\r\n dispatch(exportToExcel());\r\n }\r\n\r\n selectTab(tabIndex) {\r\n const { tabs, gridCriteria } = this.state;\r\n gridCriteria.columnDefs = tabs[tabIndex].colDefs;\r\n gridCriteria.pageIndex = 0;\r\n this.setState({ activeTab: tabIndex, gridCriteria });\r\n }\r\n\r\n searchChanged(event) {\r\n clearTimeout(this.timer);\r\n const { searchCriteria } = this.state;\r\n const searchQuery = event.target.value;\r\n\r\n this.setState({ searchCriteria: { ...searchCriteria, searchQuery } });\r\n\r\n if (searchQuery.length > 0 && searchQuery.length < 2) {\r\n return;\r\n }\r\n\r\n this.timer = setTimeout(this.fetchReporting, WAIT_INTERVAL);\r\n }\r\n\r\n dateFromInGridEvent(event) {\r\n const { searchCriteria } = this.state;\r\n this.setState(\r\n { searchCriteria: { ...searchCriteria, dateFrom: event } },\r\n () => this.fetchReporting()\r\n );\r\n }\r\n\r\n dateToInGridEvent(event) {\r\n const { searchCriteria } = this.state;\r\n this.setState(\r\n { searchCriteria: { ...searchCriteria, dateTo: event } },\r\n () => this.fetchReporting()\r\n );\r\n }\r\n\r\n searchInGridEvent(event) {\r\n clearTimeout(this.timer);\r\n const { searchCriteria } = this.state;\r\n const searchQuery = event.target.value;\r\n\r\n this.setState({ searchCriteria: { ...searchCriteria, searchQuery } });\r\n\r\n if (searchQuery.length > 0 && searchQuery.length < 2) {\r\n return;\r\n }\r\n\r\n if (event.keyCode === ENTER_KEY) {\r\n this.fetchReporting();\r\n } else {\r\n this.timer = setTimeout(this.fetchReporting, WAIT_INTERVAL);\r\n }\r\n }\r\n\r\n reAssignItem() {\r\n const { dispatch, changeOwnershipItem } = this.props;\r\n\r\n if (changeOwnershipItem != null && changeOwnershipItem.id != null) {\r\n dispatch(takeQueueItem('form', changeOwnershipItem.id, changeOwnershipItem.accountId));\r\n dispatch(hideOwnershipModal());\r\n }\r\n }\r\n\r\n continueFromOwnershipModal() {\r\n const { dispatch, changeOwnershipItem } = this.props;\r\n dispatch(hideOwnershipModal());\r\n let redirectUrl = `/forms/${ changeOwnershipItem.formType.toLowerCase() }/${ changeOwnershipItem.id }`;\r\n if (changeOwnershipItem.accountId) {\r\n redirectUrl = `${ redirectUrl }?account=${ changeOwnershipItem.accountId }`;\r\n }\r\n history.push(redirectUrl);\r\n }\r\n\r\n closeFromOwnershipModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideOwnershipModal());\r\n }\r\n\r\n render() {\r\n const {\r\n reportingResponse,\r\n isExportingToExcel,\r\n isOwnershipModalShown,\r\n changeOwnershipItem,\r\n dateFormat,\r\n } = this.props;\r\n const {\r\n gridCriteria,\r\n loading,\r\n initialLoaded,\r\n searchCriteria\r\n } = this.state;\r\n const {\r\n tabs,\r\n activeTab\r\n } = this.state;\r\n const isNoData = (!reportingResponse || !reportingResponse.results || !reportingResponse.results.length);\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n { changeOwnershipItem != null && this.reAssignItem() }\r\n onContinueWithoutAssign={ () => this.continueFromOwnershipModal() }\r\n onCancel={ () => this.closeFromOwnershipModal() }\r\n workflowRecord={ changeOwnershipItem }\r\n /> }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n permissions,\r\n settings,\r\n piiValidationCodes\r\n },\r\n forms: {\r\n isGettingReporting,\r\n reportingResponse,\r\n isExportingToExcel,\r\n gridTotalLimit\r\n },\r\n workflow: {\r\n isOwnershipModalShown,\r\n changeOwnershipItem\r\n }\r\n } = state;\r\n return {\r\n permissions,\r\n settings,\r\n gridTotalLimit,\r\n isGettingReporting,\r\n reportingResponse,\r\n isExportingToExcel,\r\n isOwnershipModalShown,\r\n changeOwnershipItem,\r\n piiValidationCodes\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withContainerErrorBoundary(ValidationResults, 'ValidationResults'));\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\n\r\nconst ConfirmModal = ({\r\n title,\r\n message,\r\n isShown,\r\n isPerformingAction,\r\n onConfirm,\r\n onCancel,\r\n confirmTitle,\r\n cancelTitle,\r\n error\r\n}) => (\r\n \r\n \r\n { message }\r\n \r\n {\r\n error\r\n &&
    \r\n { error }\r\n
    \r\n }\r\n \r\n);\r\n\r\nConfirmModal.propTypes = {\r\n title: PropTypes.string,\r\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n isShown: PropTypes.bool,\r\n isPerformingAction: PropTypes.bool,\r\n onConfirm: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n confirmTitle: PropTypes.string,\r\n cancelTitle: PropTypes.string,\r\n error: PropTypes.string\r\n};\r\n\r\nConfirmModal.defaultProps = {\r\n title: null,\r\n message: null,\r\n isShown: false,\r\n isPerformingAction: false,\r\n confirmTitle: 'Ok',\r\n cancelTitle: 'Cancel',\r\n error: null\r\n};\r\n\r\nexport default ConfirmModal;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nconst OnlineForm = ({ title, formType, handleClick, isProcessing }) => (\r\n
    \r\n
    \r\n

    {title}

    \r\n

    Click the button to start filling out the form

    \r\n
    \r\n handleClick(formType) }\r\n >Go to the form\r\n
    \r\n
    \r\n
    \r\n);\r\n\r\nOnlineForm.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n formType: PropTypes.string.isRequired,\r\n handleClick: PropTypes.func.isRequired,\r\n isProcessing: PropTypes.bool,\r\n};\r\n\r\nOnlineForm.defaultProps = {\r\n isProcessing: false\r\n};\r\n\r\nexport default OnlineForm;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { reduxForm, Field } from 'redux-form';\r\nimport { toastr } from 'react-redux-toastr';\r\n\r\nimport {\r\n addOnlineForm,\r\n getStorageSetting\r\n} from 'actions';\r\n\r\nimport CustomerAccountInput, { CustomerAccountInputLayout } from 'components/Common/Inputs/CustomerAccountInput';\r\nimport ConfirmModal from 'components/Modals/ConfirmModal';\r\nimport OnlineForm from 'components/OnlineForms/OnlineForm';\r\nimport withContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary';\r\n\r\nclass OnlineForms extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const clients = this.filterClientList() || [];\r\n const clientKey = (clients != null && clients.length === 1) ? clients[0].key : '';\r\n\r\n this.state = {\r\n clientId: clientKey,\r\n customerAccount: null,\r\n formReference: '',\r\n showImyWarning: null\r\n };\r\n }\r\n\r\n onCustomerAccountChange(data) {\r\n this.setState({ customerAccount: data });\r\n this.setState({ showImyWarning: null });\r\n }\r\n\r\n onFormReferenceChange = (e, newValue) => this.setState({ formReference: newValue });\r\n\r\n warnAboutImyStructure = formType => this.setState({ showImyWarning: formType });\r\n\r\n addOnlineForm = (formType) => {\r\n const { dispatch } = this.props;\r\n const { clientId, customerAccount, formReference } = this.state;\r\n\r\n if (!customerAccount) {\r\n toastr.error('', 'Please select a customer or create a new customer.');\r\n return;\r\n }\r\n if (!customerAccount.newCustomer && !customerAccount.customerId) {\r\n toastr.error('', 'Please provide a valid value for an existing customer or create a new one.');\r\n return;\r\n }\r\n if (!customerAccount.newAccount && (!customerAccount.accounts || customerAccount.accounts.length === 0)) {\r\n toastr.error('', 'Please provide a valid value for an existing account or create a new one.');\r\n return;\r\n }\r\n if (!customerAccount.legalEntities || customerAccount.legalEntities.length === 0) {\r\n toastr.error('', 'Please provide a valid value for an existing legal entity.');\r\n return;\r\n }\r\n const combinedAllowed = customerAccount.legalEntities.filter(le => (le.chapter4Status === 1 || le.chapter4Status === 2)).length === 0;\r\n if (formType && formType.includes('fatca_crs') && !combinedAllowed) {\r\n toastr.error('', 'Cannot enter FATCA/CRS Combined forms for legal entities which are US Withholding Agents. Please review the selected legal entities.');\r\n return;\r\n }\r\n if (!clientId) {\r\n toastr.error('', 'Please provide a valid value for an existing client.');\r\n return;\r\n }\r\n\r\n dispatch(addOnlineForm(formType, clientId, customerAccount, formReference));\r\n };\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n filterClientList = () => {\r\n const clients = getStorageSetting('clients') || [];\r\n const selectedClient = getStorageSetting('selectedClient');\r\n let filteredClientList = clients;\r\n\r\n if (selectedClient != null) {\r\n filteredClientList = [];\r\n filteredClientList.push(selectedClient);\r\n }\r\n\r\n return filteredClientList;\r\n };\r\n\r\n render() {\r\n const {\r\n clientId,\r\n formReference,\r\n customerAccount,\r\n showImyWarning\r\n } = this.state;\r\n\r\n const getParentAccountId = account => account.parentAccountId ?? account.value;\r\n const accountsPartOfAnImy = customerAccount?.accounts.filter(x => x?.parentAccountId > 0) ?? [];\r\n const accountsWhereImyTopLevel = customerAccount?.accounts.filter(x => !(x?.parentAccountId) && x?.withholdingStatementId) ?? [];\r\n\r\n return (\r\n
    \r\n this.addOnlineForm(values) }\r\n className=\"form-horizontal\"\r\n >\r\n
    \r\n
    \r\n this.onCustomerAccountChange(data) }\r\n layout={ CustomerAccountInputLayout.Horizontal }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.onFormReferenceChange(e, newValue) }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    0 ? 'disabling-overlay' : '' }` }>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { accountsPartOfAnImy?.length > 0\r\n &&
    \r\n
    \r\n
    \r\n
    Unable To Add Form To Account(s)
    \r\n
    \r\n
    \r\n
    \r\n {\r\n accountsPartOfAnImy.map(a =>

    {a.label} is linked to an IMY Structure. Any new form for this account must be uploaded from the IMY Structure page.

    )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    }\r\n \r\n

    This will add a form to the top level Intermediary Account of a IMY Structure.

    \r\n

    Uploading a W8/W9 form (other than a W-8IMY) will lead to changes on the account that will impact the IMY Structure.

    \r\n

    Are you sure you wish to continue?

    \r\n
    }\r\n confirmTitle=\"Continue\"\r\n onConfirm={ () => this.addOnlineForm(showImyWarning) }\r\n onCancel={ () => this.setState({ showImyWarning: null }) }\r\n />\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst OnlineReduxForm = reduxForm({\r\n form: 'onlineForm',\r\n})(OnlineForms);\r\n\r\nfunction mapStateToProps(state) {\r\n const { forms: {\r\n isAddingOnlineForm\r\n } } = state;\r\n return {\r\n isAddingOnlineForm\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withContainerErrorBoundary(OnlineReduxForm, 'OnlineForms'));\r\n","export function ConcatAddressLine(values, excludeBlanks = true) {\r\n if (excludeBlanks) {\r\n return values.filter(value => value && value !== '').join(', ');\r\n }\r\n\r\n return values.join(', ');\r\n}\r\n\r\nexport function GetCommonWFormWellFormedAddress(formAddress) {\r\n const wellFormedAddress = {\r\n line1: '',\r\n line2: '',\r\n line3: '',\r\n line4: '',\r\n postalCode: '',\r\n country: ''\r\n };\r\n\r\n const splitLine1 = formAddress?.street?.split(',')?.map(x => x.trim())?.reverse() ?? ['', ''];\r\n const splitLine2 = formAddress?.cityCountyStateProvince?.split(',')?.map(x => x.trim())?.reverse() ?? ['', '', ''];\r\n\r\n wellFormedAddress.country = formAddress?.country;\r\n if (splitLine1.length >= 2) {\r\n [wellFormedAddress.line2, ...wellFormedAddress.line1] = splitLine1;\r\n } else {\r\n [...wellFormedAddress.line1] = splitLine1;\r\n }\r\n\r\n if (splitLine2.length >= 3) {\r\n [wellFormedAddress.postalCode, wellFormedAddress.line4, ...wellFormedAddress.line3] = splitLine2;\r\n } else if (splitLine2.length === 2) {\r\n [wellFormedAddress.line4, ...wellFormedAddress.line3] = splitLine2;\r\n } else {\r\n [...wellFormedAddress.line3] = splitLine2;\r\n }\r\n\r\n wellFormedAddress.line1 = wellFormedAddress.line1.reverse().join(', ');\r\n wellFormedAddress.line3 = wellFormedAddress.line3.reverse().join(', ');\r\n\r\n return wellFormedAddress;\r\n}\r\n\r\nexport function CheckValidPostalCodeAndLine3And4Combination(postalCode, line3, line4) {\r\n if (!postalCode) {\r\n return true;\r\n }\r\n\r\n if ((!line3 && !line4) || !line4) {\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport function GetCommonWFormFieldPathValueMap(addressPath, wellFormedAddress) {\r\n const validPostalCodeAndLine3And4Combination = CheckValidPostalCodeAndLine3And4Combination(wellFormedAddress?.addressPostalCode, wellFormedAddress?.addressLine3, wellFormedAddress?.addressLine4);\r\n\r\n const fieldPathValueDictionary = [\r\n { key: `${ addressPath }.street`, value: ConcatAddressLine([wellFormedAddress?.addressLine1, wellFormedAddress?.addressLine2]) },\r\n { key: `${ addressPath }.cityCountyStateProvince`, value: ConcatAddressLine([wellFormedAddress?.addressLine3, wellFormedAddress?.addressLine4, wellFormedAddress?.addressPostalCode], validPostalCodeAndLine3And4Combination) },\r\n { key: `${ addressPath }.country`, value: wellFormedAddress?.addressCountry }\r\n ];\r\n\r\n return fieldPathValueDictionary;\r\n}\r\n\r\nexport function GetCommonCrsFormWellFormedAddress(formAddress) {\r\n const wellFormedAddress = {\r\n line1: '',\r\n line2: '',\r\n line3: '',\r\n line4: '',\r\n postalCode: '',\r\n country: ''\r\n };\r\n\r\n const splitLine1 = formAddress?.street?.split(',')?.map(x => x.trim())?.reverse() ?? ['', ''];\r\n const splitLine2 = formAddress?.cityCountyStateProvince?.split(',')?.map(x => x.trim())?.reverse() ?? ['', ''];\r\n\r\n if (splitLine1.length >= 2) {\r\n [wellFormedAddress.line2, ...wellFormedAddress.line1] = splitLine1;\r\n } else {\r\n [...wellFormedAddress.line1] = splitLine1;\r\n }\r\n\r\n if (splitLine2.length >= 2) {\r\n [wellFormedAddress.line4, ...wellFormedAddress.line3] = splitLine2;\r\n } else {\r\n [...wellFormedAddress.line3] = splitLine2;\r\n }\r\n\r\n wellFormedAddress.postalCode = formAddress?.postalCode;\r\n wellFormedAddress.country = formAddress?.country;\r\n\r\n wellFormedAddress.line1 = wellFormedAddress.line1.reverse().join(', ');\r\n wellFormedAddress.line3 = wellFormedAddress.line3.reverse().join(', ');\r\n\r\n return wellFormedAddress;\r\n}\r\n\r\nexport function GetCommonCrsFormFieldPathValueMap(addressPath, wellFormedAddress) {\r\n const fieldPathValueDictionary = [\r\n { key: `${ addressPath }.street`, value: ConcatAddressLine([wellFormedAddress?.addressLine1, wellFormedAddress?.addressLine2]) },\r\n { key: `${ addressPath }.cityCountyStateProvince`, value: ConcatAddressLine([wellFormedAddress?.addressLine3, wellFormedAddress?.addressLine4]) },\r\n { key: `${ addressPath }.postalCode`, value: wellFormedAddress?.addressPostalCode },\r\n { key: `${ addressPath }.country`, value: wellFormedAddress?.addressCountry }\r\n ];\r\n\r\n return fieldPathValueDictionary;\r\n}\r\n\r\nexport function GetCommonCombinedFormWellFormedAddress(formAddress) {\r\n const wellFormedAddress = {\r\n line1: '',\r\n line2: '',\r\n line3: '',\r\n line4: '',\r\n postalCode: '',\r\n country: ''\r\n };\r\n\r\n const splitLine1 = formAddress?.line1?.split(',')?.map(x => x.trim())?.reverse() ?? ['', ''];\r\n\r\n if (splitLine1.length >= 2) {\r\n [wellFormedAddress.line2, ...wellFormedAddress.line1] = splitLine1;\r\n } else {\r\n [...wellFormedAddress.line1] = splitLine1;\r\n }\r\n\r\n // The mismatch between lines here is intentional and based on the structure of addresses on combined forms\r\n wellFormedAddress.line3 = formAddress?.line2;\r\n wellFormedAddress.line4 = formAddress?.line3;\r\n wellFormedAddress.postalCode = formAddress?.postalCode;\r\n wellFormedAddress.country = formAddress?.country;\r\n\r\n wellFormedAddress.line1 = wellFormedAddress.line1.reverse().join(', ');\r\n\r\n return wellFormedAddress;\r\n}\r\n\r\nexport function GetCommonCombinedFormFieldPathValueMap(addressPath, wellFormedAddress) {\r\n const fieldPathValueDictionary = [\r\n { key: `${ addressPath }.line1`, value: ConcatAddressLine([wellFormedAddress?.addressLine1, wellFormedAddress?.addressLine2]) },\r\n { key: `${ addressPath }.line2`, value: wellFormedAddress?.addressLine3 },\r\n { key: `${ addressPath }.line3`, value: wellFormedAddress?.addressLine4 },\r\n { key: `${ addressPath }.postalCode`, value: wellFormedAddress?.addressPostalCode },\r\n { key: `${ addressPath }.country`, value: wellFormedAddress?.addressCountry }\r\n ];\r\n\r\n return fieldPathValueDictionary;\r\n}\r\n","import { ConcatAddressLine, CheckValidPostalCodeAndLine3And4Combination } from 'common/Addresses/AddressFormatters/Shared/AddressFormatHelper';\r\n\r\nfunction GetW9FieldPathValueMap(addressPath, wellFormedAddress) {\r\n const validPostalCodeAndLine3And4Combination = CheckValidPostalCodeAndLine3And4Combination(wellFormedAddress?.addressPostalCode, wellFormedAddress?.addressLine3, wellFormedAddress?.addressLine4);\r\n\r\n const fieldPathValueDictionary = [\r\n { key: `${ addressPath }.numberStreet`, value: ConcatAddressLine([wellFormedAddress?.addressLine1, wellFormedAddress?.addressLine2]) },\r\n { key: `${ addressPath }.cityStateAndZipCode`, value: ConcatAddressLine([wellFormedAddress?.addressLine3, wellFormedAddress?.addressLine4, wellFormedAddress?.addressPostalCode], validPostalCodeAndLine3And4Combination) },\r\n ];\r\n\r\n return fieldPathValueDictionary;\r\n}\r\n\r\nfunction GetW9WellFormedAddress(formAddress) {\r\n const wellFormedAddress = {\r\n line1: '',\r\n line2: '',\r\n line3: '',\r\n line4: '',\r\n postalCode: '',\r\n country: 'US'\r\n };\r\n\r\n const splitLine1 = formAddress?.numberStreet?.split(',')?.map(x => x.trim())?.reverse() ?? ['', ''];\r\n const splitLine2 = formAddress?.cityStateAndZipCode?.split(',')?.map(x => x.trim())?.reverse() ?? ['', '', ''];\r\n\r\n if (splitLine1.length >= 2) {\r\n [wellFormedAddress.line2, ...wellFormedAddress.line1] = splitLine1;\r\n } else {\r\n [...wellFormedAddress.line1] = splitLine1;\r\n }\r\n\r\n if (splitLine2.length >= 3) {\r\n [wellFormedAddress.postalCode, wellFormedAddress.line4, ...wellFormedAddress.line3] = splitLine2;\r\n } else if (splitLine2.length === 2) {\r\n [wellFormedAddress.line4, ...wellFormedAddress.line3] = splitLine2;\r\n } else {\r\n [...wellFormedAddress.line3] = splitLine2;\r\n }\r\n\r\n wellFormedAddress.line1 = wellFormedAddress.line1.reverse().join(', ');\r\n wellFormedAddress.line3 = wellFormedAddress.line3.reverse().join(', ');\r\n\r\n return wellFormedAddress;\r\n}\r\n\r\nexport function GetFieldPathValueMap(addressProps, wellFormedAddress) {\r\n return GetW9FieldPathValueMap('address', wellFormedAddress);\r\n}\r\n\r\nexport function GetWellFormedAddress(addressProps, addressValues) {\r\n return GetW9WellFormedAddress(addressValues?.address);\r\n}\r\n","import AddressTypes from 'common/Forms/AddressTypes';\r\nimport { ConcatAddressLine, GetCommonWFormWellFormedAddress, GetCommonWFormFieldPathValueMap } from 'common/Addresses/AddressFormatters/Shared/AddressFormatHelper';\r\n\r\nfunction GetSubstantialOwnerFieldPathValueMap(addressPath, wellFormedAddress) {\r\n const fieldPathValueDictionary = [\r\n {\r\n key: `${ addressPath }`,\r\n value: ConcatAddressLine(\r\n [wellFormedAddress?.addressLine1,\r\n wellFormedAddress?.addressLine2,\r\n wellFormedAddress?.addressLine3,\r\n wellFormedAddress?.addressLine4,\r\n wellFormedAddress?.addressPostalCode,\r\n wellFormedAddress?.addressCountry]\r\n )\r\n },\r\n ];\r\n\r\n return fieldPathValueDictionary;\r\n}\r\n\r\nfunction GetSubstantialOwnerWellFormedAddress(formAddress) {\r\n const wellFormedAddress = {\r\n line1: '',\r\n line2: '',\r\n line3: '',\r\n line4: '',\r\n postalCode: '',\r\n country: ''\r\n };\r\n\r\n const splitLine = formAddress?.ownerAddress?.split(',')?.map(x => x.trim()) ?? null;\r\n\r\n if (splitLine === null) { return wellFormedAddress; }\r\n\r\n [wellFormedAddress.line1, wellFormedAddress.line2, wellFormedAddress.line3, wellFormedAddress.line4, wellFormedAddress.postalCode,\r\n ...wellFormedAddress.country] = splitLine;\r\n\r\n wellFormedAddress.country = wellFormedAddress.country.join(', ');\r\n\r\n return wellFormedAddress;\r\n}\r\n\r\nexport function GetFieldPathValueMap(addressProps, wellFormedAddress) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Permanent:\r\n return GetCommonWFormFieldPathValueMap('part1.permanentAddress', wellFormedAddress);\r\n case AddressTypes.Mailing:\r\n return GetCommonWFormFieldPathValueMap('part1.mailingAddress', wellFormedAddress);\r\n case AddressTypes.SubstantialOwner:\r\n return GetSubstantialOwnerFieldPathValueMap(`part29Owners[${ addressProps?.substantialOwnerIndex }].ownerAddress`, wellFormedAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n\r\nexport function GetWellFormedAddress(addressProps, addressValues) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Permanent:\r\n return GetCommonWFormWellFormedAddress(addressValues?.part1?.permanentAddress);\r\n case AddressTypes.Mailing:\r\n return GetCommonWFormWellFormedAddress(addressValues?.part1?.mailingAddress);\r\n case AddressTypes.SubstantialOwner:\r\n return GetSubstantialOwnerWellFormedAddress(addressValues?.part29Owners && addressValues.part29Owners[addressProps?.substantialOwnerIndex]);\r\n default:\r\n break;\r\n }\r\n}\r\n","import AddressTypes from 'common/Forms/AddressTypes';\r\nimport { GetCommonWFormWellFormedAddress, GetCommonWFormFieldPathValueMap } from 'common/Addresses/AddressFormatters/Shared/AddressFormatHelper';\r\n\r\nexport function GetFieldPathValueMap(addressProps, wellFormedAddress) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Permanent:\r\n return GetCommonWFormFieldPathValueMap('part1.permanentAddress', wellFormedAddress);\r\n case AddressTypes.Mailing:\r\n return GetCommonWFormFieldPathValueMap('part1.mailingAddress', wellFormedAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n\r\nexport function GetWellFormedAddress(addressProps, addressValues) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Permanent:\r\n return GetCommonWFormWellFormedAddress(addressValues?.part1?.permanentAddress);\r\n case AddressTypes.Mailing:\r\n return GetCommonWFormWellFormedAddress(addressValues?.part1?.mailingAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n","import AddressTypes from 'common/Forms/AddressTypes';\r\nimport { GetCommonWFormWellFormedAddress, GetCommonWFormFieldPathValueMap } from 'common/Addresses/AddressFormatters/Shared/AddressFormatHelper';\r\n\r\nexport function GetFieldPathValueMap(addressProps, wellFormedAddress) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Permanent:\r\n return GetCommonWFormFieldPathValueMap('part1.permanentAddress', wellFormedAddress);\r\n case AddressTypes.Mailing:\r\n return GetCommonWFormFieldPathValueMap('part1.mailingAddress', wellFormedAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n\r\nexport function GetWellFormedAddress(addressProps, addressValues) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Permanent:\r\n return GetCommonWFormWellFormedAddress(addressValues?.part1?.permanentAddress);\r\n case AddressTypes.Mailing:\r\n return GetCommonWFormWellFormedAddress(addressValues?.part1?.mailingAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n","import AddressTypes from 'common/Forms/AddressTypes';\r\nimport { ConcatAddressLine, GetCommonWFormWellFormedAddress, GetCommonWFormFieldPathValueMap, CheckValidPostalCodeAndLine3And4Combination } from 'common/Addresses/AddressFormatters/Shared/AddressFormatHelper';\r\n\r\nfunction GetBusinessAddressFieldPathValueMap(addressPath, wellFormedAddress) {\r\n const validPostalCodeAndLine3And4Combination = CheckValidPostalCodeAndLine3And4Combination(wellFormedAddress?.addressPostalCode, wellFormedAddress?.addressLine3, wellFormedAddress?.addressLine4);\r\n\r\n const fieldPathValueDictionary = [\r\n { key: `${ addressPath }.street`, value: ConcatAddressLine([wellFormedAddress?.addressLine1, wellFormedAddress?.addressLine2]) },\r\n { key: `${ addressPath }.cityCountyStateProvince`, value: ConcatAddressLine([wellFormedAddress?.addressLine3, wellFormedAddress?.addressLine4, wellFormedAddress?.addressPostalCode], validPostalCodeAndLine3And4Combination) },\r\n ];\r\n\r\n return fieldPathValueDictionary;\r\n}\r\n\r\nfunction GetWellFormedBusinessAddress(formAddress) {\r\n const wellFormedAddress = {\r\n line1: '',\r\n line2: '',\r\n line3: '',\r\n line4: '',\r\n postalCode: '',\r\n country: 'US'\r\n };\r\n\r\n const splitLine1 = formAddress?.street?.split(',')?.map(x => x.trim())?.reverse() ?? ['', ''];\r\n const splitLine2 = formAddress?.cityCountyStateProvince?.split(',')?.map(x => x.trim())?.reverse() ?? ['', '', ''];\r\n\r\n if (splitLine1.length >= 2) {\r\n [wellFormedAddress.line2, ...wellFormedAddress.line1] = splitLine1;\r\n } else {\r\n [...wellFormedAddress.line1] = splitLine1;\r\n }\r\n\r\n if (splitLine2.length >= 3) {\r\n [wellFormedAddress.postalCode, wellFormedAddress.line4, ...wellFormedAddress.line3] = splitLine2;\r\n } else if (splitLine2.length === 2) {\r\n [wellFormedAddress.line4, ...wellFormedAddress.line3] = splitLine2;\r\n } else {\r\n [...wellFormedAddress.line3] = splitLine2;\r\n }\r\n\r\n wellFormedAddress.line1 = wellFormedAddress.line1.reverse().join(', ');\r\n wellFormedAddress.line3 = wellFormedAddress.line3.reverse().join(', ');\r\n\r\n return wellFormedAddress;\r\n}\r\n\r\nexport function GetFieldPathValueMap(addressProps, wellFormedAddress) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Permanent:\r\n return GetCommonWFormFieldPathValueMap('part1.permanentAddress', wellFormedAddress);\r\n case AddressTypes.Business:\r\n return GetBusinessAddressFieldPathValueMap('part1.businessAddress', wellFormedAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n\r\nexport function GetWellFormedAddress(addressProps, addressValues) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Permanent:\r\n return GetCommonWFormWellFormedAddress(addressValues?.part1?.permanentAddress);\r\n case AddressTypes.Business:\r\n return GetWellFormedBusinessAddress(addressValues?.part1?.businessAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n\r\nexport function GetW8Eci2014FieldPathValueMap(addressProps, wellFormedAddress) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Permanent:\r\n return GetCommonWFormFieldPathValueMap('part1.permanentAddress', wellFormedAddress);\r\n case AddressTypes.BusinessEci2014:\r\n return GetCommonWFormFieldPathValueMap('part1.businessAddress', wellFormedAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n\r\nexport function GetW8Eci2014WellFormedAddress(addressProps, addressValues) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Permanent:\r\n return GetCommonWFormWellFormedAddress(addressValues?.part1?.permanentAddress);\r\n case AddressTypes.BusinessEci2014:\r\n return GetCommonWFormWellFormedAddress(addressValues?.part1?.businessAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n","import AddressTypes from 'common/Forms/AddressTypes';\r\nimport { GetCommonWFormWellFormedAddress, GetCommonWFormFieldPathValueMap } from 'common/Addresses/AddressFormatters/Shared/AddressFormatHelper';\r\n\r\nexport function GetFieldPathValueMap(addressProps, wellFormedAddress) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Permanent:\r\n return GetCommonWFormFieldPathValueMap('part1.permanentAddress', wellFormedAddress);\r\n case AddressTypes.Mailing:\r\n return GetCommonWFormFieldPathValueMap('part1.mailingAddress', wellFormedAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n\r\nexport function GetWellFormedAddress(addressProps, addressValues) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Permanent:\r\n return GetCommonWFormWellFormedAddress(addressValues?.part1?.permanentAddress);\r\n case AddressTypes.Mailing:\r\n return GetCommonWFormWellFormedAddress(addressValues?.part1?.mailingAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n","import AddressTypes from 'common/Forms/AddressTypes';\r\nimport { GetCommonCrsFormWellFormedAddress, GetCommonCrsFormFieldPathValueMap } from 'common/Addresses/AddressFormatters/Shared/AddressFormatHelper';\r\n\r\nexport function GetFieldPathValueMap(addressProps, wellFormedAddress) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Current:\r\n return GetCommonCrsFormFieldPathValueMap('part1.currentAddress', wellFormedAddress);\r\n case AddressTypes.Mailing:\r\n return GetCommonCrsFormFieldPathValueMap('part1.mailingAddress', wellFormedAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n\r\nexport function GetWellFormedAddress(addressProps, addressValues) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Current:\r\n return GetCommonCrsFormWellFormedAddress(addressValues?.part1?.currentAddress);\r\n case AddressTypes.Mailing:\r\n return GetCommonCrsFormWellFormedAddress(addressValues?.part1?.mailingAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n","import AddressTypes from 'common/Forms/AddressTypes';\r\nimport { GetCommonCombinedFormWellFormedAddress, GetCommonCombinedFormFieldPathValueMap } from 'common/Addresses/AddressFormatters/Shared/AddressFormatHelper';\r\n\r\nexport function GetFieldPathValueMap(addressProps, wellFormedAddress) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Permanent:\r\n return GetCommonCombinedFormFieldPathValueMap('part1.permanentAddress', wellFormedAddress);\r\n case AddressTypes.Mailing:\r\n return GetCommonCombinedFormFieldPathValueMap('part1.mailingAddress', wellFormedAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n\r\nexport function GetWellFormedAddress(addressProps, addressValues) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Permanent:\r\n return GetCommonCombinedFormWellFormedAddress(addressValues?.part1?.permanentAddress);\r\n case AddressTypes.Mailing:\r\n return GetCommonCombinedFormWellFormedAddress(addressValues?.part1?.mailingAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n","import AddressTypes from 'common/Forms/AddressTypes';\r\nimport {\r\n GetFieldPathValueMap as GetFatcaCrsFieldPathValueMap,\r\n GetWellFormedAddress as GetFatcaCrsWellFormedAddress\r\n} from 'common/Addresses/AddressFormatters/CombinedFormAddressFormatter/CommonCombinedFormAddressFormatter';\r\n\r\nfunction GetControllingPersonFieldPathValueMap(addressPath, wellFormedAddress) {\r\n const fieldPathValueDictionary = [\r\n { key: `${ addressPath }.line1`, value: wellFormedAddress?.addressLine1 },\r\n { key: `${ addressPath }.line2`, value: wellFormedAddress?.addressLine2 },\r\n { key: `${ addressPath }.line3`, value: wellFormedAddress?.addressLine3 },\r\n { key: `${ addressPath }.line4`, value: wellFormedAddress?.addressLine4 },\r\n { key: `${ addressPath }.postalCode`, value: wellFormedAddress?.addressPostalCode },\r\n { key: `${ addressPath }.country`, value: wellFormedAddress?.addressCountry }\r\n ];\r\n\r\n return fieldPathValueDictionary;\r\n}\r\n\r\nfunction GetControllingPersonWellFormedAddress(formAddress) {\r\n const wellFormedAddress = {\r\n line1: formAddress?.line1 ?? '',\r\n line2: formAddress?.line2 ?? '',\r\n line3: formAddress?.line3 ?? '',\r\n line4: formAddress?.line4 ?? '',\r\n postalCode: formAddress?.postalCode ?? '',\r\n country: formAddress?.country ?? ''\r\n };\r\n\r\n return wellFormedAddress;\r\n}\r\n\r\nexport function GetFieldPathValueMap(addressProps, wellFormedAddress) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Permanent:\r\n case AddressTypes.Mailing:\r\n return GetFatcaCrsFieldPathValueMap(addressProps, wellFormedAddress);\r\n case AddressTypes.ControllingPersonPermanent:\r\n return GetControllingPersonFieldPathValueMap(`part5.controllingPersons[${ addressProps?.controllingPersonIndex }].residenceAddress`, wellFormedAddress);\r\n case AddressTypes.ControllingPersonMailing:\r\n return GetControllingPersonFieldPathValueMap(`part5.controllingPersons[${ addressProps?.controllingPersonIndex }].mailingAddress`, wellFormedAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n\r\nexport function GetWellFormedAddress(addressProps, addressValues) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Permanent:\r\n case AddressTypes.Mailing:\r\n return GetFatcaCrsWellFormedAddress(addressProps, addressValues);\r\n case AddressTypes.ControllingPersonPermanent:\r\n return GetControllingPersonWellFormedAddress(addressValues?.part5?.controllingPersons\r\n && addressValues.part5.controllingPersons[addressProps?.controllingPersonIndex]?.residenceAddress);\r\n case AddressTypes.ControllingPersonMailing:\r\n return GetControllingPersonWellFormedAddress(addressValues?.part5?.controllingPersons\r\n && addressValues.part5.controllingPersons[addressProps?.controllingPersonIndex]?.mailingAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n","import AddressTypes from 'common/Forms/AddressTypes';\r\nimport { GetCommonCrsFormWellFormedAddress, GetCommonCrsFormFieldPathValueMap } from 'common/Addresses/AddressFormatters/Shared/AddressFormatHelper';\r\n\r\nexport function GetFieldPathValueMap(addressProps, wellFormedAddress) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Current:\r\n return GetCommonCrsFormFieldPathValueMap('part1.currentResidenceAddress', wellFormedAddress);\r\n case AddressTypes.Mailing:\r\n return GetCommonCrsFormFieldPathValueMap('part1.mailingAddress', wellFormedAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n\r\nexport function GetWellFormedAddress(addressProps, addressValues) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Current:\r\n return GetCommonCrsFormWellFormedAddress(addressValues?.part1?.currentResidenceAddress);\r\n case AddressTypes.Mailing:\r\n return GetCommonCrsFormWellFormedAddress(addressValues?.part1?.mailingAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n","import AddressTypes from 'common/Forms/AddressTypes';\r\nimport { GetCommonCrsFormWellFormedAddress, GetCommonCrsFormFieldPathValueMap } from 'common/Addresses/AddressFormatters/Shared/AddressFormatHelper';\r\n\r\nexport function GetFieldPathValueMap(addressProps, wellFormedAddress) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Current:\r\n return GetCommonCrsFormFieldPathValueMap('part1.currentAddress', wellFormedAddress);\r\n case AddressTypes.Mailing:\r\n return GetCommonCrsFormFieldPathValueMap('part1.mailingAddress', wellFormedAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n\r\nexport function GetWellFormedAddress(addressProps, addressValues) {\r\n switch (addressProps?.addressType) {\r\n case AddressTypes.Current:\r\n return GetCommonCrsFormWellFormedAddress(addressValues?.part1?.currentAddress);\r\n case AddressTypes.Mailing:\r\n return GetCommonCrsFormWellFormedAddress(addressValues?.part1?.mailingAddress);\r\n default:\r\n break;\r\n }\r\n}\r\n","import React, { useState } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { change } from 'redux-form';\r\nimport AddressFormatterFactory from 'common/Addresses/AddressFormatters/AddressFormatterFactory';\r\nimport AddressTypes from 'common/Forms/AddressTypes';\r\nimport formTypes from 'common/Forms/FormTypes';\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\n\r\nconst InputId = {\r\n AddressLine1: 'addressLine1',\r\n AddressLine2: 'addressLine2',\r\n AddressLine3: 'addressLine3',\r\n AddressLine4: 'addressLine4',\r\n AddressPostalCode: 'addressPostalCode',\r\n AddressCountry: 'addressCountry'\r\n};\r\n\r\nconst EditAddressModal = ({\r\n dispatch,\r\n formName,\r\n formType,\r\n addressProps,\r\n isEditAddressModalShown,\r\n formAddressValues,\r\n onCancel\r\n}) => {\r\n const addressFormatter = AddressFormatterFactory(formType);\r\n\r\n const formAddress = addressFormatter?.GetWellFormedAddress(addressProps, formAddressValues);\r\n\r\n const [wellFormedAddress, setAddressValues] = useState({\r\n addressLine1: formAddress?.line1 ?? '',\r\n addressLine2: formAddress?.line2 ?? '',\r\n addressLine3: formAddress?.line3 ?? '',\r\n addressLine4: formAddress?.line4 ?? '',\r\n addressPostalCode: formAddress?.postalCode ?? '',\r\n addressCountry: formAddress?.country ?? ''\r\n });\r\n\r\n const [errorMessages, setErrorMessages] = useState({\r\n addressLine2: '',\r\n addressLine4: '',\r\n addressPostalCode: ''\r\n });\r\n\r\n const dispatchAddress = (value) => {\r\n addressFormatter?.GetFieldPathValueMap(addressProps, value)?.map(x => dispatch(change(formName, x.key, x.value)));\r\n };\r\n\r\n const onConfirm = (value) => {\r\n dispatchAddress(value);\r\n onCancel();\r\n };\r\n\r\n const onChangeHandler = (e) => {\r\n const { name, value } = e.target;\r\n\r\n if ([InputId.AddressLine2, InputId.AddressLine4, InputId.AddressPostalCode].includes(name)) {\r\n if (value.includes(',')) {\r\n setErrorMessages({ ...errorMessages, [name]: 'Commas not supported. Please use other delineator.' });\r\n } else {\r\n setErrorMessages({ ...errorMessages, [name]: '' });\r\n }\r\n }\r\n setAddressValues({ ...wellFormedAddress, [name]: value });\r\n };\r\n\r\n const hasErrors = () => Object.values(errorMessages).some(errorMessage => errorMessage !== '');\r\n\r\n return (\r\n onConfirm(wellFormedAddress) }\r\n onCancel={ onCancel }\r\n >\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n {errorMessages.addressLine2 && (\r\n
    {errorMessages.addressLine2}
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n {errorMessages.addressLine4 && (\r\n
    {errorMessages.addressLine4}
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {errorMessages.addressPostalCode && (\r\n
    {errorMessages.addressPostalCode}
    \r\n )}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nEditAddressModal.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n formName: PropTypes.string.isRequired,\r\n formType: PropTypes.shape().isRequired,\r\n addressProps: PropTypes.shape({\r\n addressType: PropTypes.number,\r\n substantialOwnerIndex: PropTypes.number\r\n }),\r\n formAddressValues: PropTypes.shape(),\r\n isEditAddressModalShown: PropTypes.bool,\r\n onCancel: PropTypes.func.isRequired\r\n};\r\n\r\nEditAddressModal.defaultProps = {\r\n isEditAddressModalShown: false,\r\n addressProps: null,\r\n formAddressValues: null\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nconst mapStateToProps = (state) => {\r\n const {\r\n forms: {\r\n addressProps\r\n }\r\n } = state;\r\n\r\n const match = useParams(window.location.href);\r\n const formType = formTypes.getByCode(match?.blankType);\r\n\r\n const formName = formTypes.getFormName(formType?.family);\r\n const formAddressValues = state?.form && state.form[formName]?.values;\r\n\r\n return {\r\n formAddressValues,\r\n addressProps,\r\n formName,\r\n formType\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(EditAddressModal);\r\n","import { GetFieldPathValueMap as GetW9FieldPathValueMap, GetWellFormedAddress as GetW9WellFormedAddress } from 'common/Addresses/AddressFormatters/W9AddressFormatter';\r\nimport { GetFieldPathValueMap as GetW8BenEFieldPathValueMap, GetWellFormedAddress as GetW8BenEWellFormedAddress } from 'common/Addresses/AddressFormatters/W8BenEAddressFormatter';\r\nimport { GetFieldPathValueMap as GetW8ExpFieldPathValueMap, GetWellFormedAddress as GetW8ExpWellFormedAddress } from 'common/Addresses/AddressFormatters/W8ExpAddressFormatter';\r\nimport { GetFieldPathValueMap as GetW8ImyFieldPathValueMap, GetWellFormedAddress as GetW8ImyWellFormedAddress } from 'common/Addresses/AddressFormatters/W8ImyAddressFormatter';\r\nimport { GetFieldPathValueMap as GetW8EciFieldPathValueMap,\r\n GetW8Eci2014WellFormedAddress,\r\n GetW8Eci2014FieldPathValueMap,\r\n GetWellFormedAddress as GetW8EciWellFormedAddress\r\n} from 'common/Addresses/AddressFormatters/W8EciAddressFormatter';\r\nimport { GetFieldPathValueMap as GetW8BenFieldPathValueMap, GetWellFormedAddress as GetW8BenWellFormedAddress } from 'common/Addresses/AddressFormatters/W8BenAddressFormatter';\r\nimport { GetFieldPathValueMap as GetCrsiFieldPathValueMap, GetWellFormedAddress as GetCrsiWellFormedAddress } from 'common/Addresses/AddressFormatters/CrsiAddressFormatter';\r\nimport { GetFieldPathValueMap as GetFatcaCrsiFieldPathValueMap,\r\n GetWellFormedAddress as GetFatcaCrsiWellFormedAddress } from 'common/Addresses/AddressFormatters/CombinedFormAddressFormatter/CommonCombinedFormAddressFormatter';\r\nimport {\r\n GetFieldPathValueMap as GetFatcaCrseFieldPathValueMap,\r\n GetWellFormedAddress as GetFatcaCrseWellFormedAddress\r\n} from 'common/Addresses/AddressFormatters/CombinedFormAddressFormatter/FatcaCrseAddressFormatter';\r\n\r\nimport { GetFieldPathValueMap as GetCrseFieldPathValueMap, GetWellFormedAddress as GetCrseWellFormedAddress } from 'common/Addresses/AddressFormatters/CrseAddressFormatter';\r\nimport { GetFieldPathValueMap as GetCrsCpFieldPathValueMap, GetWellFormedAddress as GetCrsCpWellFormedAddress } from 'common/Addresses/AddressFormatters/CrsCpAddressFormatter';\r\n\r\nexport default function AddressFormatterFactory(formType) {\r\n switch (formType?.family) {\r\n case 'w8bene': {\r\n return {\r\n GetFieldPathValueMap: GetW8BenEFieldPathValueMap,\r\n GetWellFormedAddress: GetW8BenEWellFormedAddress\r\n };\r\n }\r\n case 'w9': {\r\n return {\r\n GetFieldPathValueMap: GetW9FieldPathValueMap,\r\n GetWellFormedAddress: GetW9WellFormedAddress\r\n };\r\n }\r\n case 'w8exp': {\r\n return {\r\n GetFieldPathValueMap: GetW8ExpFieldPathValueMap,\r\n GetWellFormedAddress: GetW8ExpWellFormedAddress\r\n };\r\n }\r\n case 'w8imy': {\r\n return {\r\n GetFieldPathValueMap: GetW8ImyFieldPathValueMap,\r\n GetWellFormedAddress: GetW8ImyWellFormedAddress\r\n };\r\n }\r\n case 'w8eci': {\r\n if (formType?.code === 'w8eci_2014') {\r\n return {\r\n GetFieldPathValueMap: GetW8Eci2014FieldPathValueMap,\r\n GetWellFormedAddress: GetW8Eci2014WellFormedAddress\r\n };\r\n }\r\n return {\r\n GetFieldPathValueMap: GetW8EciFieldPathValueMap,\r\n GetWellFormedAddress: GetW8EciWellFormedAddress\r\n };\r\n }\r\n case 'w8ben': {\r\n return {\r\n GetFieldPathValueMap: GetW8BenFieldPathValueMap,\r\n GetWellFormedAddress: GetW8BenWellFormedAddress\r\n };\r\n }\r\n case 'crsi': {\r\n return {\r\n GetFieldPathValueMap: GetCrsiFieldPathValueMap,\r\n GetWellFormedAddress: GetCrsiWellFormedAddress\r\n };\r\n }\r\n case 'fatcacrsi': {\r\n return {\r\n GetFieldPathValueMap: GetFatcaCrsiFieldPathValueMap,\r\n GetWellFormedAddress: GetFatcaCrsiWellFormedAddress\r\n };\r\n }\r\n case 'fatcacrse': {\r\n return {\r\n GetFieldPathValueMap: GetFatcaCrseFieldPathValueMap,\r\n GetWellFormedAddress: GetFatcaCrseWellFormedAddress\r\n };\r\n }\r\n case 'crse': {\r\n return {\r\n GetFieldPathValueMap: GetCrseFieldPathValueMap,\r\n GetWellFormedAddress: GetCrseWellFormedAddress\r\n };\r\n }\r\n case 'crscp': {\r\n return {\r\n GetFieldPathValueMap: GetCrsCpFieldPathValueMap,\r\n GetWellFormedAddress: GetCrsCpWellFormedAddress\r\n };\r\n }\r\n default:\r\n return null;\r\n }\r\n}\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Route } from 'react-router-dom';\r\n\r\nconst RedirectButton = ({\r\n to,\r\n title,\r\n className,\r\n tooltip,\r\n hint,\r\n redirectBack,\r\n disabled\r\n}) => (\r\n (\r\n {\r\n if (redirectBack) {\r\n return history.goBack();\r\n }\r\n return history.push(to);\r\n } }\r\n data-tooltip={ tooltip }\r\n title={ hint }\r\n disabled={ disabled }\r\n >\r\n { title }\r\n \r\n ) }\r\n />\r\n);\r\n\r\nRedirectButton.propTypes = {\r\n to: PropTypes.string.isRequired,\r\n title: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node\r\n ]).isRequired,\r\n className: PropTypes.string,\r\n tooltip: PropTypes.string,\r\n hint: PropTypes.string,\r\n redirectBack: PropTypes.bool,\r\n disabled: PropTypes.bool\r\n};\r\n\r\nRedirectButton.defaultProps = {\r\n className: '',\r\n tooltip: null,\r\n hint: null,\r\n redirectBack: false,\r\n disabled: false\r\n};\r\n\r\nexport default RedirectButton;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport RedirectButton from 'components/Common/Buttons/RedirectButton';\r\nimport ErrorGraphic from '../ErrorGraphic';\r\n\r\nconst NotFoundPage = ({ caption }) => (\r\n
    \r\n \r\n
    \r\n

    404

    \r\n

    { caption }

    \r\n
    \r\n
    \r\n \r\n Go to home page\r\n
    \r\n
    \r\n
    \r\n
    \r\n);\r\n\r\nNotFoundPage.propTypes = {\r\n caption: PropTypes.string\r\n};\r\n\r\nNotFoundPage.defaultProps = {\r\n caption: 'The page was not found'\r\n};\r\n\r\nexport default NotFoundPage;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { pdfjs } from 'react-pdf';\r\n\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\n\r\nconst Document = React.lazy(() => import(/* webpackChunkName: \"pdf\" */ 'react-pdf').then(module => ({ default: module.Document })));\r\nconst Page = React.lazy(() => import(/* webpackChunkName: \"pdf\" */ 'react-pdf').then(module => ({ default: module.Page })));\r\n\r\nfunction Repeat(props) {\r\n const { numTimes, children } = props;\r\n\r\n if (numTimes && children) {\r\n const items = [];\r\n for (let i = 1; i <= numTimes; i += 1) {\r\n items.push(children(i));\r\n }\r\n return
    {items}
    ;\r\n }\r\n\r\n return
    ;\r\n}\r\n\r\nRepeat.propTypes = {\r\n numTimes: PropTypes.number,\r\n children: PropTypes.func.isRequired\r\n};\r\n\r\nRepeat.defaultProps = {\r\n numTimes: null\r\n};\r\n\r\nclass ScrollPdfViewer extends Component {\r\n static propTypes = {\r\n file: PropTypes.string\r\n };\r\n\r\n static defaultProps = {\r\n file: null\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n numPages: null,\r\n isLoaded: false\r\n };\r\n\r\n pdfjs.GlobalWorkerOptions.workerSrc = 'pdf.worker.js';\r\n }\r\n\r\n onDocumentLoadSuccess = ({ numPages }) => {\r\n this.setState({ numPages, isLoaded: true });\r\n };\r\n\r\n /* eslint-disable-next-line class-methods-use-this */\r\n onDocumentLoadError = ({ error }) => {\r\n console.error(error.message);\r\n };\r\n\r\n render() {\r\n const { file } = this.props;\r\n const { numPages, isLoaded } = this.state;\r\n\r\n return (\r\n
    \r\n }>\r\n }\r\n noData={

    PDF cannot be shown here

    }\r\n error={

    Sorry, there was a problem displaying the original form.
    Please 'Close original form' and try again.

    }\r\n onLoadSuccess={ this.onDocumentLoadSuccess }\r\n onLoadError={ this.onDocumentLoadError }\r\n className=\"scroll-pdf-viewer\"\r\n pageNumber={ 1 }\r\n >\r\n \r\n { index => ( }\r\n renderTextLayer={ false }\r\n renderAnnotationLayer={ false }\r\n />) }\r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ScrollPdfViewer;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { reduxForm } from 'redux-form';\r\nimport { toastr } from 'react-redux-toastr';\r\n\r\nimport { saveFormReviewState, getStorageSetting } from 'actions';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\n\r\nimport AutoCompleteInput from 'components/Common/Inputs/AutoCompleteInput';\r\nimport FormWorkflowStages from 'common/Workflows/FormWorkflowStages';\r\n\r\nclass FormReviewWorkflowSection extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n formId: PropTypes.number,\r\n formReviewState: PropTypes.shape(),\r\n workflowState: PropTypes.shape(),\r\n validReviewer: PropTypes.bool,\r\n isLocked: PropTypes.bool,\r\n isSavingFormReviewState: PropTypes.bool,\r\n hasValidationResult: PropTypes.bool,\r\n isPiiProtectionEnabled: PropTypes.bool,\r\n isFormDirty: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n permissions: null,\r\n formId: null,\r\n formReviewState: null,\r\n workflowState: null,\r\n validReviewer: true,\r\n isLocked: false,\r\n isSavingFormReviewState: false,\r\n hasValidationResult: false,\r\n isPiiProtectionEnabled: false,\r\n isFormDirty: false\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n assignToUser: null,\r\n isKycReviewed: props.formReviewState ? props.formReviewState.isKycReviewed : false,\r\n };\r\n }\r\n\r\n onAssignToUserSelectedItem = (lookupValue) => {\r\n this.setState({ assignToUser: lookupValue });\r\n };\r\n\r\n onAssignToUserChange = (e, value) => {\r\n const { assignToUser } = this.state;\r\n\r\n if (value === '') {\r\n this.setState({ assignToUser: null });\r\n }\r\n\r\n if (assignToUser && assignToUser.value !== value) {\r\n this.setState({ assignToUser: null });\r\n }\r\n };\r\n\r\n onKycChecked = (value) => {\r\n this.setState({ isKycReviewed: value });\r\n };\r\n\r\n onFormSubmit = (actionId) => {\r\n const { dispatch, formId, formReviewState, hasValidationResult, isFormDirty } = this.props;\r\n const { assignToUser, isKycReviewed } = this.state;\r\n\r\n if (!hasValidationResult) {\r\n toastr.warning('', 'Please check the form for validation results before submitting.');\r\n return;\r\n }\r\n\r\n // eslint-disable-next-line no-alert\r\n if (isFormDirty && !window.confirm('Are you sure you want to leave this page?')) {\r\n return;\r\n }\r\n\r\n dispatch(saveFormReviewState(formId, {\r\n actionId,\r\n draftComments: formReviewState.draftComments,\r\n assignToUser,\r\n isKycReviewed\r\n }));\r\n\r\n this.setState({ assignToUser: '' });\r\n };\r\n\r\n canComment() {\r\n const { permissions, formReviewState, workflowState, validReviewer, isLocked } = this.props;\r\n if (!validReviewer || isLocked) {\r\n return false;\r\n }\r\n\r\n const isUserFormOwner = workflowState != null && workflowState.assignedUser === getStorageSetting('username');\r\n const hasReviewerPermission = AccessControl.hasPermission(permissions, [ActivityPerms.fwfInitialReviewer, ActivityPerms.fwfSecondaryReviewer, ActivityPerms.fwfExpertReviewer, ActivityPerms.fwfSupplReviewer]);\r\n\r\n if (formReviewState != null && formReviewState.workflowStage != null) {\r\n if (formReviewState.workflowStage === FormWorkflowStages.BatchStaging) {\r\n // WF is Batch Staging\r\n return false;\r\n }\r\n if (formReviewState.workflowStage === FormWorkflowStages.Complete) {\r\n // WF is complete\r\n return AccessControl.hasPermission(permissions, [ActivityPerms.fwfExpertReviewer, ActivityPerms.fwfSupplReviewer]);\r\n }\r\n }\r\n return isUserFormOwner && hasReviewerPermission;\r\n }\r\n\r\n render() {\r\n const {\r\n formReviewState,\r\n isSavingFormReviewState,\r\n isPiiProtectionEnabled,\r\n workflowState\r\n } = this.props;\r\n const { assignToUser, isKycReviewed } = this.state;\r\n const isCompleted = formReviewState.workflowStage === FormWorkflowStages.Complete;\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n {!isPiiProtectionEnabled &&
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    }\r\n { this.canComment() &&
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.onAssignToUserSelectedItem(lookupValue) }\r\n onChange={ (e, value) => this.onAssignToUserChange(e, value) }\r\n />\r\n
    \r\n
    }\r\n { this.canComment() &&
    \r\n { formReviewState != null && formReviewState.availableActions != null &&
    \r\n { Object.entries(formReviewState.availableActions) != null && Object.entries(formReviewState.availableActions)\r\n .filter(([key, value]) => value != null && value !== 'Submit').map(([key, value]) => key != null &&
    \r\n this.onFormSubmit(key) }\r\n >\r\n { value }\r\n \r\n
    ) }\r\n {isPiiProtectionEnabled && workflowState.stage >= 100 &&
    \r\n \r\n
    }\r\n
    }\r\n
    \r\n
    \r\n this.onFormSubmit(null) }\r\n >\r\n Save { assignToUser && ' and Assign' }\r\n \r\n
    \r\n
    \r\n { formReviewState && formReviewState.availableActions && Object.entries(formReviewState.availableActions) != null && Object.entries(formReviewState.availableActions)\r\n .filter(([key, value]) => value != null && value === 'Submit').map(([key, value]) => key != null && this.onFormSubmit(key) }\r\n >\r\n { value }\r\n ) }\r\n {isPiiProtectionEnabled && workflowState.stage < 100 &&
    \r\n \r\n
    }\r\n
    \r\n
    \r\n
    }\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst formReviewForm = reduxForm({\r\n form: 'formReviewForm',\r\n})(FormReviewWorkflowSection);\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n permissions,\r\n settings: {\r\n selectedClient\r\n }\r\n },\r\n forms: {\r\n isSavingFormReviewState,\r\n formReviewState,\r\n workflowState\r\n }\r\n } = state;\r\n\r\n return {\r\n permissions,\r\n isPiiProtectionEnabled: selectedClient.isPiiProtectionEnabled,\r\n isSavingFormReviewState,\r\n formReviewState,\r\n workflowState\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport const FormReviewWorkflow = connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(formReviewForm);\r\n\r\nexport default FormReviewWorkflow;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nexport function buildDescription({ codeDescription, context }) {\r\n // check description for dynamic parts like ${...}\r\n const interpolationParts = codeDescription.match(/\\${[^}\\r\\n]*}/g);\r\n if (interpolationParts != null && interpolationParts.length) {\r\n let result = codeDescription;\r\n interpolationParts.forEach((template) => {\r\n if (template != null) {\r\n const matches = template.match(/\\${([^}]*)}/);\r\n const contextField = matches != null && matches[1];\r\n if (contextField != null) {\r\n result = result.split(template).join(context[contextField]);\r\n }\r\n }\r\n });\r\n return result;\r\n }\r\n return codeDescription;\r\n}\r\n\r\nconst WhdStatementLineValidationResult = ({\r\n result\r\n}) => (\r\n /* eslint-disable max-len, react/no-array-index-key */\r\n
    \r\n
    \r\n

    { result.name }

    \r\n
    \r\n { result.rejections != null && result.rejections.length !== 0 &&
    \r\n
    Reasons for rejection:
    \r\n
    \r\n
      \r\n { result.rejections.map(rejection => rejection != null && (\r\n
    • \r\n { buildDescription(rejection) }\r\n  ({ rejection.code })\r\n
    • \r\n )) }\r\n
    \r\n
    \r\n
    }\r\n { result.warnings != null && result.warnings.length !== 0 &&
    \r\n
    Warnings:
    \r\n
    \r\n
      \r\n { result.warnings.filter(w => w.code.indexOf('WRN') > -1).map(warning => warning != null && (\r\n \r\n { buildDescription(warning) }\r\n  ({ warning.code })\r\n \r\n )) }\r\n { result.warnings.filter(w => w.code.indexOf('WRN') === -1).map(warning => warning != null && (\r\n \r\n { buildDescription(warning) }\r\n  ({ warning.code })\r\n \r\n )) }\r\n
    \r\n
    \r\n
    }\r\n
    \r\n /* eslint-enable max-len, react/no-array-index-key */\r\n);\r\n\r\nWhdStatementLineValidationResult.propTypes = {\r\n result: PropTypes.shape().isRequired\r\n};\r\n\r\nexport default WhdStatementLineValidationResult;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport WhdStatementLineValidationResult from 'components/WhdStatementLineValidationResult';\r\n\r\nexport function buildDescription({ codeDescription, context }) {\r\n // check description for dynamic parts like ${...}\r\n const interpolationParts = codeDescription.match(/\\${[^}\\r\\n]*}/g);\r\n if (interpolationParts && interpolationParts.length) {\r\n let result = codeDescription;\r\n interpolationParts.forEach((template) => {\r\n if (template != null) {\r\n const matches = template.match(/\\${([^}]*)}/);\r\n const contextField = matches != null && matches[1];\r\n if (contextField != null) {\r\n result = result.split(template).join(context[contextField]);\r\n }\r\n }\r\n });\r\n return result;\r\n }\r\n return codeDescription;\r\n}\r\n\r\nconst WhdStatementValidationResult = ({\r\n result\r\n}) => (\r\n /* eslint-disable max-len, react/no-array-index-key */\r\n
    \r\n
    \r\n Withholding Statement Validation Result\r\n
    \r\n { result.valid &&

    Valid

    }\r\n { !result.valid &&

    Invalid

    }\r\n { result.valid &&
    \r\n

    The Withholding Statement validation is complete.

    \r\n

    It has been reliably associated with the Intermediary's W-8IMY Form,\r\n and provides sufficient information to allocate payments.\r\n

    \r\n
    }\r\n { ((result.rejections != null && result.rejections.length !== 0) || (result.warnings != null && result.warnings.length !== 0)) &&

    { result.name }

    }\r\n { result.rejections != null && result.rejections.length !== 0 &&
    \r\n
    Reasons for rejection:
    \r\n
    \r\n
      \r\n { result.rejections.map(rejection => rejection != null && (\r\n
    • \r\n { buildDescription(rejection) }\r\n  ({ rejection.code })\r\n
    • \r\n )) }\r\n
    \r\n
    \r\n
    }\r\n { result.warnings != null && result.warnings.length !== 0 &&
    \r\n
    Warnings:
    \r\n
    \r\n
      \r\n { result.warnings.filter(w => w.code.indexOf('WRN') > -1).map(warning => warning != null && (\r\n \r\n { buildDescription(warning) }\r\n  ({ warning.code })\r\n \r\n )) }\r\n { result.warnings.filter(w => w.code.indexOf('WRN') === -1).map(warning => warning != null && (\r\n \r\n { buildDescription(warning) }\r\n  ({ warning.code })\r\n \r\n )) }\r\n
    \r\n
    \r\n
    }\r\n { result.lines != null && [...result.lines].map((x, i) => x != null && (!result.lines[i].valid\r\n && )) }\r\n
    \r\n /* eslint-enable max-len, react/no-array-index-key */\r\n);\r\n\r\nWhdStatementValidationResult.propTypes = {\r\n result: PropTypes.shape().isRequired\r\n};\r\n\r\nexport default WhdStatementValidationResult;\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { PropTypes } from 'prop-types';\r\nimport moment from 'moment';\r\n\r\nimport IndividualValidationResult from 'components/IndividualValidationResult';\r\nimport WhdStatementValidationResult from 'components/WhdStatementValidationResult';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport FormWorkflowStages from 'common/Workflows/FormWorkflowStages';\r\nimport FormTypes from 'common/Forms/FormTypes';\r\n\r\nimport { downloadFormSummary } from 'actions';\r\n\r\nclass ValidationResultsSection extends Component {\r\n static propTypes = {\r\n validationResult: PropTypes.shape(),\r\n whdResult: PropTypes.shape(),\r\n isValidatingForm: PropTypes.bool,\r\n isValid: PropTypes.bool,\r\n isOnlineForm: PropTypes.bool,\r\n showWitholdingValidation: PropTypes.bool,\r\n piiValidationCodes: PropTypes.shape(),\r\n isPiiProtectionEnabled: PropTypes.bool,\r\n tinMatchResult: PropTypes.arrayOf(PropTypes.shape()),\r\n onCheckTin: PropTypes.func,\r\n showTinMatching: PropTypes.bool,\r\n tinMatchFormProps: PropTypes.shape(),\r\n isFormDirty: PropTypes.bool,\r\n dispatch: PropTypes.func.isRequired,\r\n isDownloadingFormSummary: PropTypes.bool,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n };\r\n\r\n static defaultProps = {\r\n validationResult: null,\r\n whdResult: null,\r\n isValidatingForm: false,\r\n isValid: false,\r\n isOnlineForm: false,\r\n showWitholdingValidation: false,\r\n piiValidationCodes: null,\r\n isPiiProtectionEnabled: false,\r\n tinMatchResult: null,\r\n onCheckTin: null,\r\n showTinMatching: false,\r\n tinMatchFormProps: null,\r\n isFormDirty: false,\r\n isDownloadingFormSummary: false,\r\n permissions: null,\r\n };\r\n\r\n onDownloadResultsClick = () => {\r\n const { dispatch, validationResult, isDownloadingFormSummary } = this.props;\r\n if (validationResult && !isDownloadingFormSummary) {\r\n dispatch(downloadFormSummary(validationResult.formId, validationResult.customerDbId, validationResult.accountId));\r\n }\r\n };\r\n\r\n getFormValidityStatus() {\r\n const { validationResult } = this.props;\r\n\r\n let statusText = '';\r\n if (validationResult) {\r\n statusText = this.isFormValid() ? 'Valid' : 'Invalid';\r\n statusText += this.isFormValid() && this.isCompletedForm() ? ' (Not Expired)' : '';\r\n statusText += this.isFormValid() && validationResult && validationResult.isWithTreaty ? ' with Treaty' : '';\r\n statusText += validationResult && validationResult.isLocked ? ' & Locked' : '';\r\n }\r\n\r\n return statusText;\r\n }\r\n\r\n getChildTinMatchFormProps(formId) {\r\n const { tinMatchResult } = this.props;\r\n const childResult = tinMatchResult.find(x => x.formId === formId);\r\n\r\n const tinTypeSsn = 1;\r\n const tinTypeEin = 2;\r\n\r\n if (childResult) {\r\n return {\r\n name: childResult.name,\r\n tin: {\r\n ssn: `${ childResult.tinType === tinTypeSsn ? childResult.tin : '' }`,\r\n ein: `${ childResult.tinType === tinTypeEin ? childResult.tin : '' }`\r\n }\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n isValidated() {\r\n const { validationResult } = this.props;\r\n return (validationResult && validationResult.isValidated);\r\n }\r\n\r\n isFormValid() {\r\n const { isValid } = this.props;\r\n return isValid;\r\n }\r\n\r\n isCompletedForm() {\r\n const { validationResult } = this.props;\r\n return (validationResult && validationResult.workflowStage === FormWorkflowStages.Complete);\r\n }\r\n\r\n isExpired() {\r\n const { validationResult } = this.props;\r\n if (!validationResult.validUntil) return false;\r\n\r\n const formatedDate = moment(validationResult.validUntil).format('YYYY MM DD');\r\n const m = moment();\r\n m.set({ hour: 0, minute: 0, second: 0, millisecond: 0 });\r\n return m.diff(formatedDate) > 0;\r\n }\r\n\r\n expiryDisplayText(formFamily) {\r\n const { validationResult } = this.props;\r\n return
    \r\n

    \r\n { formFamily }: Expired on { moment(validationResult.validUntil).format('ll') }\r\n

    Expiration due to { validationResult.expiryReasonDescription }

    \r\n

    \r\n
    ;\r\n }\r\n\r\n render() {\r\n const {\r\n isValidatingForm,\r\n isOnlineForm,\r\n validationResult,\r\n whdResult,\r\n showWitholdingValidation,\r\n piiValidationCodes,\r\n isPiiProtectionEnabled,\r\n tinMatchResult,\r\n showTinMatching,\r\n onCheckTin,\r\n tinMatchFormProps,\r\n isFormDirty,\r\n isDownloadingFormSummary,\r\n permissions\r\n } = this.props;\r\n\r\n const formFamily = validationResult.formType && FormTypes[validationResult.formType.toLowerCase()] && FormTypes[validationResult.formType.toLowerCase()].getFamilyName();\r\n const formType = validationResult?.formType;\r\n const isImy = formType?.indexOf('IMY') > -1;\r\n const overallValidity = isImy ? this.isFormValid() && whdResult?.valid : this.isFormValid();\r\n const isSummaryDownloadEnabled = ['w8ben_2021', 'w9_2024', 'w8eci_2021'].includes(validationResult.formType.toLowerCase());\r\n\r\n return (\r\n
    \r\n

    Validation Results

    \r\n
    \r\n

    Account: {validationResult && validationResult.accountNumber}

    \r\n {this.isExpired() && this.isFormValid() && this.expiryDisplayText(formFamily)}\r\n {(!this.isExpired() || !this.isFormValid()) && this.isValidated()\r\n &&

    \r\n { formType && isImy && whdResult && `IMY Structure: ${ overallValidity ? 'Valid' : 'Invalid' }`}\r\n { formType && !isImy && `${ formFamily }: ${ this.getFormValidityStatus() }` }\r\n

    }\r\n {!this.isExpired() && !this.isValidated() &&

    {validationResult && formFamily}: Not Validated

    }\r\n
    \r\n
    \r\n { isValidatingForm &&
    \r\n

    \r\n Please wait while a validation process is performed.\r\n

    \r\n \r\n
    }\r\n { !isValidatingForm && this.isValidated() &&
    \r\n \r\n {\r\n validationResult.childResults != null && [...validationResult.childResults].length > 0\r\n && [...validationResult.childResults].map((x, i) => x != null && ())\r\n }\r\n { showWitholdingValidation && whdResult != null && }\r\n {\r\n isSummaryDownloadEnabled\r\n && AccessControl.hasPermission(permissions, [ActivityPerms.scannedDownloadValidationSummary])\r\n &&
    \r\n Download Results\r\n
    \r\n }\r\n
    }\r\n { !isValidatingForm && !this.isValidated() &&
    \r\n

    \r\n This form has not yet been validated.\r\n Click the "{ isOnlineForm ? 'Check and Submit' : 'Validate form' }" button below to receive the validation results.\r\n

    \r\n
    }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapDispatchToProps\r\n)(ValidationResultsSection);\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { reduxForm, Field } from 'redux-form';\r\nimport { toastr } from 'react-redux-toastr';\r\n\r\nimport { ApiService } from 'services';\r\nimport { addSupportingDoc, deleteSupportingDoc, getStorageSetting } from 'actions';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\n\r\nimport FileUpload from 'components/Common/FileUpload';\r\nimport EvidentiaryDocs from 'components/EvidentiaryDocs';\r\nimport FormWorkflowStages from 'common/Workflows/FormWorkflowStages';\r\n\r\nclass SupportingDocsSection extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n workflowStage: PropTypes.number,\r\n workflowUsername: PropTypes.string,\r\n formId: PropTypes.number,\r\n isDeletingSupportingDocId: PropTypes.number,\r\n supportingDocError: PropTypes.shape({}),\r\n documents: PropTypes.arrayOf(PropTypes.shape()),\r\n isLocked: PropTypes.bool,\r\n collectableSupportingDocs: PropTypes.arrayOf(PropTypes.shape()),\r\n };\r\n\r\n static defaultProps = {\r\n permissions: null,\r\n workflowStage: 0,\r\n workflowUsername: null,\r\n formId: null,\r\n documents: [],\r\n isDeletingSupportingDocId: null,\r\n supportingDocError: null,\r\n isLocked: false,\r\n collectableSupportingDocs: null\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const files = getStorageSetting('files') || [];\r\n\r\n this.state = {\r\n supportingDocType: '',\r\n files\r\n };\r\n }\r\n\r\n static onFileUploadCancel(file) {\r\n toastr.info('', `Upload of ${ file.name } has been canceled.`);\r\n }\r\n\r\n static onFileUploadError(file, error) {\r\n toastr.error('', `Upload of ${ file.name } has been canceled. ${ error.message }`);\r\n }\r\n\r\n static onViewSupportingDocument(file) {\r\n if (file) {\r\n window.open(`customers/supporting-docs/${ file.id }`, '_blank'); // to open new page\r\n return;\r\n }\r\n toastr.error('', 'Sorry, this document cannot be viewed');\r\n }\r\n\r\n onFileUploadSuccess(file, response) {\r\n const { dispatch } = this.props;\r\n dispatch(addSupportingDoc(response));\r\n toastr.success('', `${ response[0].originalFileName } has been uploaded`);\r\n }\r\n\r\n onDeleteSupportingDocument(file) {\r\n const { dispatch } = this.props;\r\n dispatch(deleteSupportingDoc(file.id));\r\n }\r\n\r\n onSupportingDocTypeChange = (e, newValue) => this.setState({ supportingDocType: newValue });\r\n\r\n groupDocuments = () => {\r\n const { documents } = this.props;\r\n const map = new Map();\r\n\r\n if (documents != null) {\r\n documents.forEach((doc) => {\r\n if (doc != null) {\r\n const key = doc.typeDescription;\r\n const collection = map.get(key);\r\n if (collection == null) {\r\n map.set(key, [doc]);\r\n } else {\r\n collection.push(doc);\r\n }\r\n }\r\n });\r\n }\r\n\r\n return Array.from(map);\r\n };\r\n\r\n canUpload() {\r\n const { permissions, workflowStage, workflowUsername, isLocked } = this.props;\r\n\r\n const isUserFormOwner = workflowUsername != null && workflowUsername === getStorageSetting('username');\r\n const hasReviewerPermission = AccessControl.hasPermission(permissions, [ActivityPerms.fwfInitialReviewer, ActivityPerms.fwfSecondaryReviewer, ActivityPerms.fwfExpertReviewer, ActivityPerms.fwfSupplReviewer]);\r\n\r\n if (workflowStage === FormWorkflowStages.Complete || workflowStage === FormWorkflowStages.BatchStaging || isLocked) {\r\n // WF is complete or batch staging or form is locked\r\n return false;\r\n }\r\n\r\n return isUserFormOwner && hasReviewerPermission;\r\n }\r\n\r\n render() {\r\n const { permissions, formId, isDeletingSupportingDocId, collectableSupportingDocs } = this.props;\r\n const { files, supportingDocType } = this.state;\r\n const groupedDocs = this.groupDocuments();\r\n\r\n return (\r\n
    \r\n

    Supporting Documents

    \r\n
    \r\n \r\n { this.canUpload() &&
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.onSupportingDocTypeChange(e, newValue) }\r\n showCollectableSupportingDocs\r\n collectableSupportingDocs={ collectableSupportingDocs }\r\n />\r\n
    \r\n
    \r\n SupportingDocsSection.onFileUploadCancel(file) }\r\n onFileUploadSuccess={ (file, response) => this.onFileUploadSuccess(file, response) }\r\n onFileUploadError={ (file, error) => SupportingDocsSection.onFileUploadError(file, error) }\r\n />\r\n
    \r\n
    }\r\n
    \r\n
    \r\n
    \r\n { (groupedDocs == null || groupedDocs.length === 0) && \r\n \r\n \r\n \r\n
    None uploaded.
    }\r\n { groupedDocs != null && groupedDocs.map(group => group != null && \r\n \r\n \r\n \r\n \r\n { group[1] != null && group[1].map(doc => doc != null && \r\n \r\n \r\n )}\r\n \r\n
    { group[0] } Document(s)
    { `${ doc.originalFileName }` }\r\n \r\n SupportingDocsSection.onViewSupportingDocument(doc) }\r\n >\r\n \r\n \r\n \r\n \r\n this.onDeleteSupportingDocument(doc) }\r\n >\r\n \r\n \r\n \r\n
    )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst supportingDocForm = reduxForm({\r\n form: 'supportingDocForm',\r\n})(SupportingDocsSection);\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n permissions\r\n },\r\n forms: {\r\n isDeletingSupportingDocId,\r\n supportingDocError,\r\n formByIdResponse: {\r\n collectableSupportingDocs\r\n }\r\n }\r\n } = state;\r\n\r\n return {\r\n permissions,\r\n isDeletingSupportingDocId,\r\n supportingDocError,\r\n collectableSupportingDocs\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport const SupportingDocs = connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(supportingDocForm);\r\n\r\nexport default SupportingDocs;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { saveAccountReviewComments, getStorageSetting } from 'actions';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\n\r\nimport FormWorkflowStages from 'common/Workflows/FormWorkflowStages';\r\n\r\nclass FormReviewerCommentsSection extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n formId: PropTypes.number,\r\n accountId: PropTypes.number,\r\n formReviewState: PropTypes.shape(),\r\n workflowState: PropTypes.shape(),\r\n validReviewer: PropTypes.bool,\r\n isLocked: PropTypes.bool,\r\n isSavingFormReviewState: PropTypes.bool,\r\n hasValidationResult: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n permissions: null,\r\n formId: null,\r\n accountId: null,\r\n formReviewState: null,\r\n workflowState: null,\r\n validReviewer: true,\r\n isLocked: false,\r\n isSavingFormReviewState: false,\r\n hasValidationResult: false\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n let draftComments = '';\r\n let previousComments = null;\r\n if (props.accountId && props.formReviewState && props.formReviewState.accountComments) {\r\n const matched = props.formReviewState.accountComments.filter(f => f.accountId === props.accountId);\r\n if (matched && matched.length > 0) {\r\n draftComments = matched[0].draftComments;\r\n previousComments = matched[0].previousComments;\r\n }\r\n }\r\n\r\n this.state = {\r\n draftComments,\r\n previousComments\r\n };\r\n }\r\n\r\n onDraftCommentsChange = e => this.setState({ draftComments: e.target.value });\r\n\r\n onCopyAllPreviousComments = () => {\r\n const { previousComments } = this.state;\r\n\r\n if (previousComments) {\r\n const copiedComments = previousComments.join('\\n');\r\n this.setState({ draftComments: copiedComments });\r\n }\r\n };\r\n\r\n onCopyComment = (comment) => {\r\n this.setState({ draftComments: comment.comm });\r\n };\r\n\r\n onFormSubmit = () => {\r\n const { dispatch, formId, accountId } = this.props;\r\n const { draftComments } = this.state;\r\n\r\n dispatch(saveAccountReviewComments(formId, accountId, draftComments));\r\n };\r\n\r\n getReviewerStage() {\r\n const { formReviewState } = this.props;\r\n\r\n if (formReviewState != null) {\r\n if (formReviewState.workflowStage >= 4 && formReviewState.workflowStage <= 5) {\r\n return 'Initial Reviewer';\r\n }\r\n if (formReviewState.workflowStage >= 6 && formReviewState.workflowStage <= 7) {\r\n return 'Secondary Reviewer';\r\n }\r\n if (formReviewState.workflowStage >= 8 && formReviewState.workflowStage <= 9) {\r\n return 'Expert Reviewer';\r\n }\r\n }\r\n return 'My';\r\n }\r\n\r\n canComment() {\r\n const { permissions, formReviewState, workflowState, validReviewer, isLocked } = this.props;\r\n if (!validReviewer || isLocked) {\r\n return false;\r\n }\r\n\r\n const isUserFormOwner = workflowState != null && workflowState.assignedUser === getStorageSetting('username');\r\n const hasReviewerPermission = AccessControl.hasPermission(permissions, [ActivityPerms.fwfInitialReviewer, ActivityPerms.fwfSecondaryReviewer, ActivityPerms.fwfExpertReviewer, ActivityPerms.fwfSupplReviewer]);\r\n\r\n if (formReviewState != null && formReviewState.workflowStage != null) {\r\n if (formReviewState.workflowStage === FormWorkflowStages.BatchStaging) {\r\n // WF is Batch Staging\r\n return false;\r\n }\r\n if (formReviewState.workflowStage === FormWorkflowStages.Complete) {\r\n // WF is complete\r\n return AccessControl.hasPermission(permissions, [ActivityPerms.fwfExpertReviewer, ActivityPerms.fwfSupplReviewer]);\r\n }\r\n }\r\n return isUserFormOwner && hasReviewerPermission;\r\n }\r\n\r\n render() {\r\n const { isSavingFormReviewState } = this.props;\r\n const { draftComments, previousComments } = this.state;\r\n return (\r\n
    \r\n

    Reviewer Comments

    \r\n
    \r\n
    \r\n \r\n { (!previousComments || previousComments.length === 0) && No comments made. }\r\n { // eslint-disable-next-line\r\n previousComments && previousComments.length > 0 && previousComments.map((comm, index) => comm != null &&

    \r\n { this.canComment() && this.onCopyComment({ comm }) }\r\n >\r\n \r\n }\r\n { // eslint-disable-next-line\r\n comm != null && comm.split('\\n') && comm.split('\\n').map((item, index) => item != null && { item }
    ) \r\n }

    )\r\n }\r\n
    \r\n { this.canComment() &&
    \r\n \r\n

    Insert in the box any additional information supplied or sourced.

    \r\n this.onDraftCommentsChange(e, value) }\r\n />\r\n this.onFormSubmit() }\r\n >\r\n { isSavingFormReviewState && }\r\n Save\r\n \r\n
    }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n permissions\r\n },\r\n forms: {\r\n isSavingFormReviewState,\r\n formReviewState,\r\n workflowState\r\n }\r\n } = state;\r\n\r\n return {\r\n permissions,\r\n isSavingFormReviewState,\r\n formReviewState,\r\n workflowState\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport const FormReviewerComments = connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(FormReviewerCommentsSection);\r\n\r\nexport default FormReviewerComments;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nconst OverrideReasonDropdown = ({\r\n options,\r\n rejection,\r\n onOverrideReasonChange,\r\n canOverride,\r\n defaultValue,\r\n}) => (\r\n onOverrideReasonChange(e, rejection.code) }\r\n >\r\n {options.map(option => (\r\n \r\n ))}\r\n );\r\n\r\nOverrideReasonDropdown.propTypes = {\r\n options: PropTypes.arrayOf(PropTypes.shape()).isRequired,\r\n rejection: PropTypes.shape().isRequired,\r\n onOverrideReasonChange: PropTypes.func.isRequired,\r\n canOverride: PropTypes.bool.isRequired,\r\n defaultValue: PropTypes.string,\r\n};\r\n\r\nOverrideReasonDropdown.defaultProps = {\r\n defaultValue: null\r\n};\r\n\r\nexport default OverrideReasonDropdown;\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport IndividualValidationResult, { buildDescription } from 'components/IndividualValidationResult';\r\nimport FormWorkflowStages from 'common/Workflows/FormWorkflowStages';\r\nimport FormTypes from 'common/Forms/FormTypes';\r\nimport {\r\n saveDraftValidationOverrides,\r\n acceptValidationOverrides,\r\n getStorageSetting\r\n} from 'actions';\r\nimport OverrideReasonDropdown from './OverrideReasonDropdown';\r\n\r\nclass IndividualValidationOverridesSection extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n workflowStage: PropTypes.number,\r\n workflowUsername: PropTypes.string,\r\n valid: PropTypes.bool.isRequired,\r\n rejections: PropTypes.arrayOf(PropTypes.shape({\r\n code: PropTypes.string,\r\n codeDescription: PropTypes.string\r\n })).isRequired,\r\n warnings: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n overrides: PropTypes.shape({\r\n current: PropTypes.shape({}),\r\n draft: PropTypes.shape({})\r\n }),\r\n formType: PropTypes.string.isRequired,\r\n formId: PropTypes.number.isRequired,\r\n accountId: PropTypes.number.isRequired,\r\n customerId: PropTypes.string,\r\n customerName: PropTypes.string,\r\n isOnlineForm: PropTypes.bool.isRequired,\r\n isSavingValidationOverrides: PropTypes.bool,\r\n isWithTreaty: PropTypes.bool,\r\n isLocked: PropTypes.bool,\r\n expiryDate: PropTypes.string,\r\n expiryReasonDesc: PropTypes.string,\r\n validationResult: PropTypes.shape(),\r\n piiValidationCodes: PropTypes.shape(),\r\n isPiiProtectionEnabled: PropTypes.bool,\r\n showTinMatching: PropTypes.bool,\r\n tinMatchResult: PropTypes.arrayOf(PropTypes.shape()),\r\n onCheckTin: PropTypes.func,\r\n tinMatchFormProps: PropTypes.shape(),\r\n isFormDirty: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n permissions: null,\r\n workflowStage: 0,\r\n workflowUsername: null,\r\n customerId: '',\r\n customerName: '',\r\n overrides: null,\r\n isSavingValidationOverrides: false,\r\n isWithTreaty: false,\r\n isLocked: false,\r\n expiryDate: null,\r\n expiryReasonDesc: '',\r\n validationResult: null,\r\n piiValidationCodes: null,\r\n isPiiProtectionEnabled: false,\r\n showTinMatching: false,\r\n tinMatchResult: null,\r\n onCheckTin: null,\r\n tinMatchFormProps: null,\r\n isFormDirty: false\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const existingOverrides = props.overrides.draft ? props.overrides.draft : props.overrides.current;\r\n const formOverride = existingOverrides ? existingOverrides.formOverride : {\r\n override: false,\r\n valid: props.valid,\r\n comments: ''\r\n };\r\n let overrideEntries = [];\r\n if (props.rejections != null) {\r\n overrideEntries = props.rejections;\r\n overrideEntries.map((obj) => {\r\n if (obj != null) {\r\n const existingOverride = existingOverrides != null\r\n && existingOverrides.rejections != null && existingOverrides.rejections.filter(item => item.code === obj.code);\r\n\r\n obj.selected = !!(existingOverride != null && existingOverride[0] != null);\r\n obj.reason = existingOverride != null && existingOverride[0] != null ? existingOverride[0].reason : '';\r\n obj.comments = existingOverride != null && existingOverride[0] != null ? existingOverride[0].comments : '';\r\n return obj;\r\n }\r\n return null;\r\n });\r\n }\r\n\r\n this.onOverrideReasonChange = this.onOverrideReasonChange.bind(this);\r\n\r\n this.state = {\r\n formOverride,\r\n overrideEntries\r\n };\r\n }\r\n\r\n componentDidUpdate() {\r\n const { overrides } = this.props;\r\n const existingOverrides = overrides && (overrides.draft ? overrides.draft : overrides.current);\r\n\r\n const { validationResult } = this.props;\r\n const { rejections } = validationResult && validationResult.result && validationResult.result.length > 0 && validationResult.result[0];\r\n\r\n if (rejections) {\r\n this.onRejectionsUpdated(rejections, existingOverrides);\r\n }\r\n }\r\n\r\n onRejectionsUpdated(rejections, existingOverrides) {\r\n const { overrideEntries } = this.state;\r\n const newRejections = rejections.map((obj) => {\r\n if (obj != null) {\r\n const existingOverride = existingOverrides != null\r\n && existingOverrides.rejections != null && existingOverrides.rejections.filter(item => item.code === obj.code);\r\n\r\n if (typeof obj.selected === 'undefined') {\r\n obj.selected = !!(existingOverride != null && existingOverride[0] != null);\r\n }\r\n if (typeof obj.reason === 'undefined') {\r\n obj.reason = existingOverride != null && existingOverride[0] != null ? existingOverride[0].reason : '';\r\n }\r\n if (typeof obj.comments === 'undefined') {\r\n obj.comments = existingOverride != null && existingOverride[0] != null ? existingOverride[0].comments : '';\r\n }\r\n return obj;\r\n }\r\n return null;\r\n });\r\n\r\n const currentCodes = overrideEntries.map(override => (override && override.code) || null);\r\n let changeFound = false;\r\n\r\n const newOverrideEntries = newRejections.reduce((result, curr) => {\r\n if (curr && curr.code) {\r\n const idx = currentCodes.indexOf(curr.code);\r\n if (idx === -1) {\r\n result.push(curr);\r\n changeFound = true;\r\n } else {\r\n result.push(overrideEntries[idx]);\r\n }\r\n }\r\n\r\n return result;\r\n }, []);\r\n\r\n if (changeFound || newOverrideEntries.length !== currentCodes.length) {\r\n this.setState({ overrideEntries: newOverrideEntries });\r\n }\r\n }\r\n\r\n onFormOverrideSelected(e) {\r\n const { formOverride } = this.state;\r\n\r\n formOverride.override = e.target.checked;\r\n formOverride.valid = !e.target.checked;\r\n formOverride.comments = '';\r\n this.setState({\r\n formOverride\r\n });\r\n }\r\n\r\n onFormOverrideCommentChange(e) {\r\n const { formOverride } = this.state;\r\n\r\n formOverride.comments = e.target.value;\r\n this.setState({\r\n formOverride\r\n });\r\n e.preventDefault();\r\n }\r\n\r\n onOverrideSelected(e, code) {\r\n const { overrideEntries } = this.state;\r\n\r\n if (overrideEntries != null) {\r\n overrideEntries.filter(item => item.code === code).map((obj) => {\r\n if (obj != null) {\r\n obj.selected = e.target.checked;\r\n if (!e.target.checked) {\r\n obj.reason = '';\r\n obj.comments = '';\r\n }\r\n return obj;\r\n }\r\n return null;\r\n });\r\n\r\n this.setState({\r\n overrideEntries\r\n });\r\n }\r\n }\r\n\r\n onOverrideReasonChange(e, code) {\r\n const { overrideEntries } = this.state;\r\n if (overrideEntries != null) {\r\n overrideEntries.filter(item => item.code === code).map((obj) => {\r\n if (obj != null) {\r\n obj.reason = e.target.value;\r\n return obj;\r\n }\r\n return null;\r\n });\r\n\r\n this.setState({\r\n overrideEntries\r\n });\r\n }\r\n e.preventDefault();\r\n }\r\n\r\n onOverrideCommentChange(e, code) {\r\n const { overrideEntries } = this.state;\r\n\r\n if (overrideEntries != null) {\r\n overrideEntries.filter(item => item.code === code).map((obj) => {\r\n if (obj != null) {\r\n obj.comments = e.target.value;\r\n return obj;\r\n }\r\n return null;\r\n });\r\n\r\n this.setState({\r\n overrideEntries\r\n });\r\n }\r\n e.preventDefault();\r\n }\r\n\r\n onSaveOverrides() {\r\n const { dispatch, formId, accountId } = this.props;\r\n const { overrideEntries, formOverride } = this.state;\r\n\r\n const selectedEntries = overrideEntries != null ? overrideEntries.filter(item => item.selected) : null;\r\n\r\n dispatch(saveDraftValidationOverrides(formId, accountId, {\r\n formOverride: formOverride ? {\r\n isDraft: true,\r\n override: formOverride.override,\r\n valid: formOverride.valid,\r\n reason: '4',\r\n comments: formOverride.comments\r\n } : null,\r\n rejections: selectedEntries\r\n }));\r\n }\r\n\r\n onAcceptOverrides() {\r\n const { dispatch, formId, accountId } = this.props;\r\n const { overrideEntries, formOverride } = this.state;\r\n\r\n const selectedEntries = overrideEntries != null ? overrideEntries.filter(item => item.selected) : null;\r\n\r\n dispatch(acceptValidationOverrides(formId, accountId, {\r\n formOverride: formOverride ? {\r\n isDraft: false,\r\n override: formOverride.override,\r\n valid: formOverride.valid,\r\n reason: '4',\r\n comments: formOverride.comments\r\n } : null,\r\n rejections: selectedEntries\r\n }));\r\n }\r\n\r\n getOverriddenRejections() {\r\n const { overrideEntries, formOverride } = this.state;\r\n\r\n return overrideEntries != null && {\r\n current: {\r\n formOverride: formOverride ? {\r\n isDraft: true,\r\n override: formOverride.override,\r\n valid: formOverride.valid,\r\n reason: '4',\r\n comments: formOverride.comments\r\n } : null,\r\n rejections: overrideEntries.filter(item => item.selected)\r\n }\r\n };\r\n }\r\n\r\n canOverride() {\r\n const { permissions, workflowStage, workflowUsername } = this.props;\r\n\r\n const isUserFormOwner = workflowUsername != null && workflowUsername === getStorageSetting('username');\r\n const hasReviewerPermission = AccessControl.hasPermission(permissions, [ActivityPerms.fwfInitialReviewer, ActivityPerms.fwfSecondaryReviewer, ActivityPerms.fwfExpertReviewer, ActivityPerms.fwfSupplReviewer]);\r\n const hasOverridePermission = AccessControl.hasPermission(permissions, [ActivityPerms.overrideValidation]);\r\n\r\n if (workflowStage === FormWorkflowStages.Complete || workflowStage === FormWorkflowStages.BatchStaging) {\r\n // WF is Complete or Batch Staging\r\n return false;\r\n }\r\n\r\n return isUserFormOwner && hasReviewerPermission && hasOverridePermission;\r\n }\r\n\r\n isPiiValidationCode(validationCode) {\r\n const { formType, piiValidationCodes } = this.props;\r\n const formTypeFamily = formType && FormTypes[formType.toLowerCase()];\r\n const family = formTypeFamily && formTypeFamily.family && formTypeFamily.family.toUpperCase();\r\n\r\n const result = family && piiValidationCodes && piiValidationCodes[family]\r\n && piiValidationCodes[family].filter(code => code === validationCode).length !== 0;\r\n return result;\r\n }\r\n\r\n render() {\r\n const {\r\n isSavingValidationOverrides,\r\n formId,\r\n customerId,\r\n customerName,\r\n formType,\r\n isOnlineForm,\r\n valid,\r\n rejections,\r\n warnings,\r\n isWithTreaty,\r\n isLocked,\r\n workflowStage,\r\n expiryDate,\r\n expiryReasonDesc,\r\n piiValidationCodes,\r\n isPiiProtectionEnabled,\r\n showTinMatching,\r\n tinMatchResult,\r\n onCheckTin,\r\n tinMatchFormProps,\r\n isFormDirty\r\n } = this.props;\r\n\r\n const { overrideEntries, formOverride } = this.state;\r\n\r\n const overrideExceptedRejection = '500000';\r\n\r\n const overrideReasons = [\r\n { value: '1', label: 'Supporting document attached.' },\r\n { value: '2', label: 'Exception approval attached.' },\r\n { value: '3', label: 'System issue.' },\r\n { value: '4', label: 'Client specific treatment, specified below.' },\r\n { value: '5', label: 'Other reason, specified below.' },\r\n ];\r\n\r\n const piiOverrideReasons = [{ value: '6', label: 'PII Data.' }, ...overrideReasons];\r\n const defaultOverrideReasons = [{ value: '', label: 'Select a reason' }, ...overrideReasons];\r\n\r\n return (\r\n
    \r\n

    Validation Overrides

    \r\n
    \r\n
    \r\n
    \r\n { !valid &&

    If you received or sourced information additional to this tax document that causes any of the rejections listed below to be incorrect, please take the following steps:

    }\r\n { valid &&

    If you received or sourced information additional to this tax document that causes the validation result to be incorrect, please take the following steps:

    }\r\n
      \r\n { !valid &&
    1. Please select an applicable reason,
    2. }\r\n { valid &&
    3. Please check the check box next to the Invalidate form text below,
    4. }\r\n
    5. Please enter a short rationale to the text box below,
    6. \r\n
    7. Please upload any supporting document substantiating your notes,
    8. \r\n
    9. Please save your changes.
    10. \r\n
    \r\n

    Once you have finished with your edits please click the “Accept” button at the bottom of the page to apply your changes.

    \r\n
    \r\n { (!rejections || rejections.length === 0) && formOverride &&
    \r\n

    Invalidate this form.

    \r\n \r\n { formOverride && formOverride.override && \r\n {defaultOverrideReasons.map(option => (\r\n \r\n ))}\r\n }\r\n { formOverride && formOverride.override && this.onFormOverrideCommentChange(e) }\r\n /> }\r\n
    }\r\n
      \r\n {overrideEntries != null && overrideEntries.length !== 0 && overrideEntries.map(rejection => rejection != null && rejection.code.substring(3) !== overrideExceptedRejection\r\n && !this.isPiiValidationCode(rejection.code) && (\r\n
    • \r\n

      { buildDescription(rejection) }\r\n  ({ rejection.code })

      \r\n \r\n {rejection.selected && }\r\n { rejection.selected && this.onOverrideCommentChange(e, rejection.code) }\r\n /> }\r\n
    • \r\n )) }\r\n
    \r\n {isPiiProtectionEnabled === true && overrideEntries != null\r\n && overrideEntries.some(rejection => rejection != null && this.isPiiValidationCode(rejection.code))\r\n &&

    Personally Identifiable Information (PII) Rejections:

    }\r\n
      \r\n {isPiiProtectionEnabled === true && overrideEntries != null && overrideEntries.length !== 0 && overrideEntries.map(rejection => rejection != null && rejection.code.substring(3) !== overrideExceptedRejection\r\n && this.isPiiValidationCode(rejection.code) && (\r\n
    • \r\n

      {buildDescription(rejection)}\r\n  ({rejection.code})

      \r\n \r\n {rejection.selected && }\r\n {rejection.selected && this.onOverrideCommentChange(e, rejection.code) }\r\n />}\r\n
    • \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n this.onSaveOverrides() }\r\n >\r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Validation Result Preview

    \r\n \r\n
    \r\n
    \r\n this.onAcceptOverrides() }\r\n >\r\n Accept\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n forms: {\r\n isSavingValidationOverrides,\r\n validationResult\r\n }\r\n } = state;\r\n\r\n return {\r\n isSavingValidationOverrides,\r\n validationResult\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nconst IndividualValidationOverrides = connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(IndividualValidationOverridesSection);\r\n\r\nexport default IndividualValidationOverrides;\r\n","const StatementTypes = {\r\n Unknown: 0,\r\n NqiPayeeSpecificFixed: 1,\r\n NqiPayeeSpecificVariable: 2,\r\n QiPayeeSpecificVariable: 3,\r\n QiPooled: 4,\r\n NqiPooled: 5,\r\n SimpleWhdStatement: 6,\r\n DetailedWhdStatement: 7,\r\n AltWhdStatement: 8,\r\n PooledWhdStatement: 9\r\n};\r\n\r\nStatementTypes.getDescription = (type) => {\r\n switch (type) {\r\n case 1:\r\n return 'NQI Payee Specific Fixed';\r\n case 2:\r\n return 'NQI Payee Specific Variable';\r\n case 3:\r\n return 'QI Payee Specific Variable';\r\n case 4:\r\n return 'QI Pooled';\r\n case 5:\r\n return 'NQI Pooled';\r\n case 6:\r\n return 'Simple Withholding Statement';\r\n case 7:\r\n return 'Detailed Withholding Statement';\r\n case 8:\r\n return 'Alt Withholding Statement';\r\n case 9:\r\n return 'Pooled Withholding Statement';\r\n\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\nexport default StatementTypes;\r\n","import React from 'react';\r\n\r\nconst valueOrEmpty = value => ((!value || value === '') ? Empty : value);\r\n\r\nexport default valueOrEmpty;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport moment from 'moment';\r\nimport { connect } from 'react-redux';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport { RenderDatePicker } from 'components/Common/Inputs';\r\nimport DateTimes from 'components/Common/DateTimes';\r\n\r\nconst PublishedVersionsUpdateModal = ({\r\n title,\r\n isShown,\r\n onConfirm,\r\n onCancel,\r\n error,\r\n versionWindows,\r\n publishedVersionIndex,\r\n versionNumber\r\n}) => {\r\n const defaultEffectiveFrom = publishedVersionIndex >= 0 && versionWindows && versionWindows.length > 0 && versionWindows[publishedVersionIndex].effectiveFrom;\r\n const defaultEffectiveTo = publishedVersionIndex >= 0 && versionWindows && versionWindows.length > 0 && versionWindows[publishedVersionIndex].effectiveTo;\r\n\r\n const [newEffectiveFromDate, setNewEffectiveFromDate] = useState(moment(defaultEffectiveFrom, 'YYYY-MM-DD').isValid() ? moment(defaultEffectiveFrom).format('MM-DD-YYYY') : '');\r\n const [newEffectiveToDate, setNewEffectiveToDate] = useState(moment(defaultEffectiveTo, 'YYYY-MM-DD').isValid() ? moment(defaultEffectiveTo).format('MM-DD-YYYY') : '');\r\n const [showInfoMessage, setShowInfoMessage] = useState(false);\r\n const [isDisabled, setIsDisabled] = useState(false);\r\n\r\n const overlappingDateCheck = (newEffectiveFromDateMoment, newEffectiveToDateMoment, currentWindow) => (newEffectiveFromDateMoment <= moment(currentWindow.effectiveTo, 'YYYY-MM-DD') || currentWindow.effectiveTo === null)\r\n && (newEffectiveToDateMoment >= moment(currentWindow.effectiveFrom, 'YYYY-MM-DD') || newEffectiveToDateMoment === null);\r\n\r\n const fullOverlappingDateCheck = (newEffectiveFromDateMoment, newEffectiveToDateMoment, currentWindow) => (newEffectiveFromDateMoment <= moment(currentWindow.effectiveFrom, 'YYYY-MM-DD') || currentWindow.effectiveTo === null)\r\n && (newEffectiveToDateMoment >= moment(currentWindow.effectiveTo, 'YYYY-MM-DD') || newEffectiveToDateMoment === null);\r\n\r\n const disableConfirm = () => isDisabled;\r\n\r\n useEffect(() => {\r\n if (newEffectiveFromDate !== '') {\r\n const newEffectiveFromDateMoment = moment(newEffectiveFromDate, 'MM-DD-YYYY');\r\n const newEffectiveToDateMoment = moment(newEffectiveToDate, 'MM-DD-YYYY');\r\n if (versionWindows != null) {\r\n const filteredVersions = versionWindows.filter(version => overlappingDateCheck(newEffectiveFromDateMoment, newEffectiveToDateMoment, version)).filter(version => version.version !== versionNumber);\r\n const overlappingVersions = versionWindows.filter(version => fullOverlappingDateCheck(newEffectiveFromDateMoment, newEffectiveToDateMoment, version))\r\n .filter(version => version.version !== versionNumber);\r\n\r\n if (!newEffectiveFromDateMoment.isValid()) {\r\n setIsDisabled(true);\r\n setShowInfoMessage(false);\r\n return;\r\n }\r\n\r\n if (overlappingVersions.length > 0) {\r\n setShowInfoMessage(true);\r\n setIsDisabled(true);\r\n return;\r\n }\r\n setIsDisabled(false);\r\n if (filteredVersions.length === 1) {\r\n setShowInfoMessage(true);\r\n }\r\n if (filteredVersions.length === 0) {\r\n setShowInfoMessage(false);\r\n }\r\n }\r\n }\r\n }, [newEffectiveFromDate, newEffectiveToDate]);\r\n\r\n const onConfirmEffectiveDate = () => {\r\n onConfirm({ effectiveFromDate: newEffectiveFromDate, effectiveToDate: newEffectiveToDate, index: publishedVersionIndex, version: versionNumber });\r\n };\r\n\r\n return (\r\n \r\n {showInfoMessage && !isDisabled &&
    \r\n

    Previous Statements are effective on these dates. Publishing this Statement will overwrite pre-existing information on the specified days\r\n

    \r\n
    }\r\n {showInfoMessage && isDisabled &&

    Effective dates would replace an existing published statement. Edit statement dates before updating\r\n

    }\r\n
    \r\n
    \r\n

    Effective From: (required)

    \r\n setNewEffectiveFromDate(e), value: newEffectiveFromDate } }\r\n placeholder=\"mm-dd-yyyy\"\r\n dateFormat=\"MM-dd-yyyy\"\r\n maxDate={ newEffectiveToDate && new Date(Date.parse(newEffectiveToDate)) < DateTimes.today ? new Date(Date.parse(newEffectiveToDate)) : DateTimes.today }\r\n />\r\n
    \r\n
    \r\n

    Effective To: (optional)

    \r\n setNewEffectiveToDate(e), value: newEffectiveToDate && newEffectiveToDate.length > 0 ? newEffectiveToDate : '' } }\r\n placeholder=\"mm-dd-yyyy\"\r\n dateFormat=\"MM-dd-yyyy\"\r\n isClearable\r\n minDate={ newEffectiveFromDate ? new Date(Date.parse(newEffectiveFromDate)) : new Date() }\r\n />\r\n

    Unless a date is set the statement will be published until a new statement provided

    \r\n
    \r\n
    \r\n {\r\n error\r\n &&
    \r\n {error}\r\n
    \r\n }\r\n \r\n );\r\n};\r\n\r\nPublishedVersionsUpdateModal.propTypes = {\r\n title: PropTypes.string,\r\n isShown: PropTypes.bool,\r\n onConfirm: PropTypes.func,\r\n onCancel: PropTypes.func,\r\n error: PropTypes.string,\r\n versionWindows: PropTypes.arrayOf(PropTypes.shape()),\r\n publishedVersionIndex: PropTypes.number,\r\n versionNumber: PropTypes.number,\r\n};\r\n\r\nPublishedVersionsUpdateModal.defaultProps = {\r\n title: null,\r\n isShown: false,\r\n error: null,\r\n onConfirm: null,\r\n onCancel: null,\r\n versionWindows: null,\r\n publishedVersionIndex: -1,\r\n versionNumber: -1\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n forms: {\r\n publishedVersionIndex,\r\n version\r\n }\r\n } = state;\r\n return {\r\n publishedVersionIndex,\r\n versionNumber: version\r\n };\r\n}\r\nexport default connect(\r\n mapStateToProps,\r\n null\r\n)(PublishedVersionsUpdateModal);\r\n","import React, { useState, useEffect } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { useSelector, useDispatch, connect } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\nimport moment from 'moment';\r\n\r\nimport {\r\n updateVersion, showPublishedDateUpdate, hidePublishedDateUpdate\r\n} from 'actions';\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\nimport PublishedVersionsUpdateModal from 'components/Modals/PublishedVersionsUpdateModal';\r\n\r\nconst WhdStatementVersions = ({ accountId, getVersionsCallback, refreshVersions }) => {\r\n const { statementVersions, isLoadingStatementVersions, isShowingPublishedVersionsUpdate } = useSelector(state => state && state.forms);\r\n\r\n const [currentPage, setCurrentPage] = useState(1);\r\n\r\n const getDate = date => moment(date).format('MMM DD, YYYY');\r\n const isLatestStatement = index => index === 0;\r\n\r\n const dispatch = useDispatch();\r\n\r\n const changePage = (pageNumber) => {\r\n if (pageNumber <= 0) {\r\n return;\r\n }\r\n setCurrentPage(pageNumber);\r\n getVersionsCallback(accountId, pageNumber);\r\n };\r\n\r\n const versionWindows = statementVersions?.versions?.map(({ effectiveFrom, effectiveTo, index, version }) => ({ effectiveFrom, effectiveTo, index, version }));\r\n\r\n const getPageNavigation = (totalItems, currentPageSize) => {\r\n const remainder = totalItems % currentPageSize;\r\n const pageCount = Math.trunc(totalItems / currentPageSize) + ((remainder > 0) ? 1 : 0);\r\n\r\n return
    \r\n \r\n

    { pageCount > 0 ? `Page ${ currentPage } of ${ pageCount }` : 'Page 1 of 1' }

    \r\n \r\n
    ;\r\n };\r\n\r\n const toggleDescription = (element) => {\r\n if (element.className.indexOf(' active') === -1) {\r\n element.className += ' active';\r\n } else {\r\n element.className = element.className.replace(' active', '');\r\n }\r\n };\r\n\r\n const onConfirmUpdatedDate = (index, version) => {\r\n dispatch(showPublishedDateUpdate(index, version));\r\n };\r\n\r\n const onUpdateStatement = (versionWindow) => {\r\n dispatch(updateVersion(accountId, versionWindow));\r\n dispatch(hidePublishedDateUpdate());\r\n };\r\n\r\n const onCancelUpdateStatement = () => {\r\n dispatch(hidePublishedDateUpdate());\r\n };\r\n\r\n useEffect(() => {\r\n if (refreshVersions) {\r\n changePage(currentPage);\r\n }\r\n }, [refreshVersions]);\r\n\r\n return (\r\n
    \r\n \r\n { !isLoadingStatementVersions &&
    \r\n { !isLoadingStatementVersions && (!statementVersions?.versions || statementVersions.versions.length === 0) &&

    No Published Versions

    }\r\n { statementVersions?.versions && statementVersions.versions.length > 0 && \r\n

    Published Versions

    \r\n {statementVersions.versions.map((version, index) => (\r\n
    \r\n
    \r\n
    \r\n
    Name: {version?.data?.name ?? 'N/A'}
    \r\n
    Effective: {getDate(version.effectiveFrom)}{version?.effectiveTo && ` - ${ getDate(version.effectiveTo) }`}\r\n {isLatestStatement(index) && currentPage === 1 && ' (Latest)'}\r\n
    \r\n
    Validity: {version.isValid ? Valid : Invalid}
    \r\n
    toggleDescription(e.target) }>\r\n Description: { version?.data?.description ?? 'N/A' }\r\n
    \r\n
    User: { version.username }
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n onConfirmUpdatedDate(index, version.version) }\r\n > \r\n Edit Dates\r\n \r\n View\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ))}\r\n
    \r\n {isShowingPublishedVersionsUpdate && onUpdateStatement(versionWindow) }\r\n onCancel={ () => onCancelUpdateStatement() }\r\n title=\"Update Statement\"\r\n confirmTitle=\"Confirm Effective Date and Update Statement\"\r\n versionWindows={ versionWindows }\r\n />}\r\n
    }\r\n { statementVersions?.versions && statementVersions.versions.length > 0 &&
    { getPageNavigation(statementVersions.totalCount, 10) }
    }\r\n
    }\r\n
    \r\n );\r\n};\r\n\r\nWhdStatementVersions.propTypes = {\r\n accountId: PropTypes.number.isRequired,\r\n getVersionsCallback: PropTypes.func.isRequired,\r\n refreshVersions: PropTypes.bool\r\n};\r\n\r\nWhdStatementVersions.defaultProps = {\r\n refreshVersions: false\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n forms: {\r\n refreshVersions\r\n }\r\n } = state;\r\n return {\r\n refreshVersions\r\n };\r\n}\r\nexport default connect(\r\n mapStateToProps,\r\n null\r\n)(WhdStatementVersions);\r\n","import React, { useState, useEffect } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { toastr } from 'react-redux-toastr';\r\nimport { change } from 'redux-form';\r\nimport { addWhdStatement, createWhdStatement, getStatementVersions } from 'actions';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { push } from 'connected-react-router';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport WithholdingStatementUpload from 'components/Common/WithholdingStatementUpload';\r\nimport StatementTypes from 'common/Forms/StatementTypes';\r\nimport ConfirmModal from 'components/Modals/ConfirmModal';\r\nimport moment from 'moment';\r\nimport valueOrEmpty from 'common/App/valueOrEmpty';\r\nimport WhdStatementVersions from './WhdStatementVersions';\r\n\r\nconst UploadWithholdingSection = ({ accountId, topAccountId, formId, isAddingStatement, withholdingStatement, isFormDirty, assignedUser, whdValidationResult }) => {\r\n const [whdStatement, setWhdStatement] = useState(null);\r\n const [createWhdStatementType, setCreateWhdStatementType] = useState('');\r\n const [addWhdStatementType, setAddWhdStatementType] = useState('');\r\n const [modalStatementType, setModalStatementType] = useState('');\r\n const [disabled, setDisabled] = useState(true);\r\n const [showNewWhdModal, setShowNewWhdModal] = useState(false);\r\n const [newUploadType, setNewUploadType] = useState(null);\r\n const isCreatingNewWhd = useSelector(state => state.forms.isCreatingNewWhd);\r\n const permissions = useSelector(state => state.auth.permissions);\r\n const line1Name = useSelector(state => state?.form && state.form['w8imy-form']?.values?.part1?.entityName?.name1);\r\n\r\n const canUploadStmtBos = AccessControl.hasPermission(permissions, [ActivityPerms.scannedWhdStmtBoUpload], true);\r\n const canViewDigitalWhs = AccessControl.hasPermission(permissions, [ActivityPerms.multiTierMgrViewWhs], true);\r\n const canCreateDigitalWhs = AccessControl.hasPermission(permissions, [ActivityPerms.multiTierMgrCreateWhs], true);\r\n\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n dispatch(getStatementVersions(accountId, 1));\r\n }, []);\r\n\r\n function onWhdStatementFileUploadError(file, response) {\r\n setWhdStatement(null);\r\n setDisabled(true);\r\n }\r\n\r\n function onWhdStatementFileUploadSuccess(file, response) {\r\n setWhdStatement(response);\r\n }\r\n\r\n const onCreateWhdStatementTypeChange = (e, newValue) => {\r\n setCreateWhdStatementType(newValue);\r\n setNewUploadType('Create');\r\n setAddWhdStatementType('');\r\n };\r\n\r\n const onAddWhdStatementTypeChange = (e, newValue) => {\r\n setAddWhdStatementType(newValue);\r\n setNewUploadType('Add');\r\n setCreateWhdStatementType('');\r\n setWhdStatement(null);\r\n };\r\n\r\n const navigateToWithholdingStatement = () => {\r\n dispatch(push(`/whd-statement/${ topAccountId }`));\r\n };\r\n\r\n function onFileUploadCancel(file) {\r\n toastr.info('', `Upload of ${ file.name } has been canceled`);\r\n }\r\n\r\n function onDeleteWhdStatement(file) {\r\n if (file != null) {\r\n setWhdStatement(null);\r\n dispatch(change('uploadingPdfForm', 'benefFormType', null));\r\n setDisabled(true);\r\n }\r\n }\r\n\r\n function submitWithholdingStatement() {\r\n const data = {\r\n formId,\r\n whdStatementType: newUploadType === 'Add' ? addWhdStatementType : createWhdStatementType,\r\n whdStatement\r\n };\r\n dispatch(addWhdStatement(accountId, data));\r\n }\r\n\r\n const displayCreateWhdModal = () => {\r\n if (isFormDirty) {\r\n toastr.warning('', 'The form has changes that are not saved. Please Validate the form before creating the statement');\r\n return;\r\n }\r\n\r\n if (!line1Name || line1Name.trim().length === 0) {\r\n toastr.warning('', 'Line 1 must be entered before a withholding statement can be created');\r\n return;\r\n }\r\n\r\n const selectedStatement = document.getElementById('statementType');\r\n const selectedStatementText = selectedStatement.options[selectedStatement.selectedIndex].text;\r\n const statement = line1Name && line1Name.length > 0 ? `${ selectedStatementText } for ${ line1Name }` : selectedStatementText;\r\n setModalStatementType(statement);\r\n setShowNewWhdModal(true);\r\n };\r\n\r\n const confirmCreateNewStatement = () => {\r\n setShowNewWhdModal(false);\r\n if (!line1Name || line1Name.trim() === '') {\r\n toastr.error('', 'Line 1 must be entered before a withholding statement can be created');\r\n return;\r\n }\r\n dispatch(createWhdStatement(formId, accountId, createWhdStatementType));\r\n };\r\n const getDate = date => (date ? moment(date).format('MMM DD, YYYY') : valueOrEmpty(date));\r\n const toggleDescription = (element) => {\r\n if (element.className.indexOf(' active') === -1) {\r\n element.className += ' active';\r\n } else {\r\n element.className = element.className.replace(' active', '');\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n

    Withholding Statement

    \r\n
    \r\n { !withholdingStatement &&
    \r\n { canCreateDigitalWhs && \r\n

    Please use the functionality below to either create or upload a withholding statement.

    \r\n

    Create An Empty Withholding Statement

    \r\n
    \r\n \r\n
    \r\n
    \r\n displayCreateWhdModal() }\r\n >\r\n Create Statement\r\n \r\n
    \r\n
    }\r\n { !canCreateDigitalWhs &&

    Insufficient permissions to create a new digital withholding statement.

    }\r\n
    }\r\n { withholdingStatement &&
    \r\n

    { StatementTypes.getDescription(withholdingStatement.type) } Uploaded

    \r\n { canViewDigitalWhs && \r\n
    \r\n
    \r\n
    \r\n
    Name: {withholdingStatement?.statementName ?? 'N/A'} (Draft)
    \r\n
    Effective: {getDate(withholdingStatement?.effectiveDate)} {withholdingStatement?.effectiveTo && `- ${ getDate(withholdingStatement.effectiveTo) }`}\r\n
    \r\n
    Validity: {whdValidationResult?.valid ? Valid : Invalid}
    \r\n
    toggleDescription(e.target) }>\r\n Description: {withholdingStatement?.statementDescription ?? 'N/A'}\r\n
    \r\n
    User: {assignedUser}
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n dispatch(getStatementVersions(id, pageNumber)) } />\r\n
    }\r\n { !canViewDigitalWhs &&

    Insufficient permissions to view digital withholding statement.

    }\r\n
    }\r\n { !withholdingStatement &&
    \r\n

    Upload a Withholding Statement

    \r\n { canUploadStmtBos &&
    \r\n onAddWhdStatementTypeChange(e, newValue) }\r\n onFileUploadSuccess={ (file, response) => onWhdStatementFileUploadSuccess(file, response) }\r\n onFileUploadError={ (file, error) => onWhdStatementFileUploadError(file, error) }\r\n onFileUploadCancel={ file => onFileUploadCancel(file) }\r\n onFileDeleteSuccess={ file => onDeleteWhdStatement(file) }\r\n disableConfirm={ e => setDisabled(e) }\r\n ddLabelText=\"\"\r\n singleColumnLayout={ !canUploadStmtBos }\r\n />\r\n
    \r\n submitWithholdingStatement() }\r\n type=\"button\"\r\n disabled={ disabled || addWhdStatementType === null || addWhdStatementType.length <= 0 || isAddingStatement || newUploadType !== 'Add' }\r\n >\r\n Upload Statement\r\n \r\n
    \r\n
    }\r\n { !canUploadStmtBos &&

    Insufficient permissions to upload a withholding statement and underlying documentation

    }\r\n
    }\r\n
    \r\n { showNewWhdModal && confirmCreateNewStatement() }\r\n onCancel={ () => setShowNewWhdModal(false) }\r\n title=\"Confirm Creation of New Withholding Statement\"\r\n message={ `Are you sure you want to create a ${ modalStatementType }?` }\r\n /> }\r\n
    \r\n );\r\n};\r\n\r\nUploadWithholdingSection.propTypes = {\r\n accountId: PropTypes.number.isRequired,\r\n topAccountId: PropTypes.number,\r\n formId: PropTypes.number.isRequired,\r\n isAddingStatement: PropTypes.bool.isRequired,\r\n withholdingStatement: PropTypes.shape(\r\n { type: PropTypes.number,\r\n statementName: PropTypes.string,\r\n statementDescription: PropTypes.string,\r\n effectiveDate: PropTypes.string,\r\n effectiveTo: PropTypes.string\r\n }\r\n ),\r\n isFormDirty: PropTypes.bool,\r\n assignedUser: PropTypes.string,\r\n whdValidationResult: PropTypes.shape()\r\n};\r\n\r\nUploadWithholdingSection.defaultProps = {\r\n topAccountId: null,\r\n withholdingStatement: null,\r\n isFormDirty: false,\r\n assignedUser: '',\r\n whdValidationResult: null\r\n};\r\n\r\nexport default UploadWithholdingSection;\r\n","import React, { useState } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\n\r\nconst FormOverrideModal = ({ isShown, onOverrideConfirm, onClose }) => {\r\n const [comments, setComments] = useState('');\r\n\r\n const onConfirm = () => {\r\n onOverrideConfirm({\r\n isDraft: false,\r\n override: true,\r\n valid: false,\r\n reason: '4',\r\n comments\r\n });\r\n };\r\n\r\n return (\r\n

    The form will be invalidated for all accounts

    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n setComments(e.target.value != null ? e.target.value : '') }\r\n />\r\n
    \r\n );\r\n};\r\n\r\nFormOverrideModal.propTypes = {\r\n isShown: PropTypes.bool.isRequired,\r\n onOverrideConfirm: PropTypes.func.isRequired,\r\n onClose: PropTypes.func.isRequired\r\n};\r\n\r\nexport default FormOverrideModal;\r\n","import React, { useState } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst FormReviewHeader = ({ results, selectedResultId, customerDbId, customerId, customerName, onResultSelect }) => {\r\n const customerPopulated = () => customerDbId && (customerId || customerName);\r\n const resultsPopulated = () => results && results.length > 0;\r\n const [isCopiedMessageVisible, setIsCopiedMessageVisible] = useState(false);\r\n\r\n const onSelect = (id) => {\r\n if (onResultSelect && id) {\r\n onResultSelect(parseInt(id, 10));\r\n } else if (!id) {\r\n onResultSelect(null);\r\n }\r\n };\r\n\r\n const getCustomerDescription = () => {\r\n let description = customerId;\r\n\r\n if (!description && customerName) {\r\n description = customerName;\r\n } else if (customerName) {\r\n description = `${ description } - ${ customerName }`;\r\n }\r\n\r\n return description;\r\n };\r\n\r\n const getAccountDescription = (item) => {\r\n if (!item) {\r\n return 'NA';\r\n }\r\n\r\n let description = item.accountNumber;\r\n\r\n if (!description && item.accountName) {\r\n description = item.accountName;\r\n } else if (item.accountName) {\r\n description = `${ description } - ${ item.accountName }`;\r\n }\r\n\r\n return description;\r\n };\r\n\r\n const copyAccountNumber = () => {\r\n if (!selectedResultId) {\r\n return;\r\n }\r\n\r\n const matched = results.filter(o => o.id === selectedResultId);\r\n if (matched && matched.length > 0) {\r\n const textField = document.createElement('textarea');\r\n textField.innerText = `${ matched[0].accountNumber } - ${ matched[0].accountName }`;\r\n document.body.appendChild(textField);\r\n textField.select();\r\n document.execCommand('copy');\r\n textField.remove();\r\n\r\n setIsCopiedMessageVisible(true);\r\n\r\n setTimeout(() => {\r\n setIsCopiedMessageVisible(false);\r\n }, 2000);\r\n }\r\n };\r\n\r\n return (
    \r\n { customerPopulated() &&
    \r\n \r\n \r\n { getCustomerDescription() }\r\n \r\n
    }\r\n { resultsPopulated() &&
    \r\n onSelect(e.target.value) }\r\n value={ selectedResultId ? selectedResultId.toString() : '' }\r\n >\r\n \r\n {results && results.filter(o => o != null).map((option, i) => (\r\n \r\n )) }\r\n \r\n { selectedResultId != null && { copyAccountNumber(); } }\r\n /> }\r\n { isCopiedMessageVisible &&
    \r\n Copied!\r\n
    }\r\n
    }\r\n
    \r\n );\r\n};\r\n\r\nFormReviewHeader.propTypes = {\r\n results: PropTypes.arrayOf(PropTypes.shape),\r\n selectedResultId: PropTypes.number,\r\n onResultSelect: PropTypes.func,\r\n customerDbId: PropTypes.number,\r\n customerId: PropTypes.string,\r\n customerName: PropTypes.string\r\n};\r\n\r\nFormReviewHeader.defaultProps = {\r\n results: null,\r\n selectedResultId: null,\r\n onResultSelect: null,\r\n customerDbId: null,\r\n customerId: null,\r\n customerName: null,\r\n};\r\n\r\nexport default FormReviewHeader;\r\n","const FormReviewPanelSections = {\r\n Summary: 1,\r\n SupportingDocs: 2,\r\n ValidationResults: 3,\r\n ReviewerComments: 4,\r\n Overrides: 5,\r\n WithholdingStatement: 6,\r\n};\r\n\r\nexport default FormReviewPanelSections;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { push } from 'connected-react-router';\r\nimport moment from 'moment';\r\nimport FormTypes from 'common/Forms/FormTypes';\r\n\r\nimport { getStorageSetting, getWhdStatementFromAccount, checkTin, clearPdfSummaryDownload } from 'actions';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\n\r\nimport FormReviewWorkflow from 'components/FormReviewWorkflow';\r\nimport ValidationResultsSection from 'components/ValidationResultsSection';\r\nimport SupportingDocs from 'components/SupportingDocs';\r\nimport FormReviewerComments from 'components/FormReviewerComments';\r\nimport IndividualValidationOverrides from 'components/IndividualValidationOverrides';\r\nimport UploadWithholdingSection from 'components/UploadWithholdingSection';\r\nimport WithholdingRatesModal from 'components/Modals/WithholdingRatesModal';\r\nimport FormOverrideModal from 'components/Modals/FormOverrideModal';\r\nimport ConfirmModal from 'components/Modals/ConfirmModal';\r\nimport FormReviewHeader from 'components/FormReviewHeader';\r\nimport HintButton from 'components/Common/Buttons/HintButton';\r\nimport FormWorkflowStages from 'common/Workflows/FormWorkflowStages';\r\nimport TinCheckStatus from 'components/TinCheckStatus';\r\n\r\nimport FormReviewPanelSections from './FormReviewPanelSections';\r\n\r\nfunction usePrevious(value) {\r\n const ref = React.useRef();\r\n React.useEffect(() => {\r\n ref.current = value;\r\n });\r\n return ref.current;\r\n}\r\n\r\nconst FormReviewPanel = ({\r\n formId, formType, isOnline, hasParentAccount, accountId, isEnabled, isCollapsed, viewImyTree, viewWithholding, onOpenWithholdingModal, onCloseWithholdingModal, onCollapseExpand, className,\r\n dispatch, permissions, settings, isLoading, isValidatingForm, validationResult, formReviewState, workflowState, supportingDocs, isAccountWithholdingShown, isFormOverrideModalShown,\r\n onConfirmFormOverride, onOpenFormOverrideModal, onCloseFormOverrideModal,\r\n onOpenCancelFormOverrideModal, onCloseCancelFormOverrideModal, isCancelFormOverrideModalShown,\r\n isSavingOverrides, isAddingStatement, isCreatingNewWhd, accountWithholdingStatement,\r\n isFormDirty, piiValidationCodes, tinMatchResult, tinMatchFormProps, formSummaryData, isDownloadingFormSummary, downloadFormSummaryError\r\n}) => {\r\n // eslint-disable-next-line\r\n const [selectedAccountId, setSelectedAccountId] = useState(null);\r\n const [selectedResult, setSelectedResult] = useState(null);\r\n const [selectedSection, setSelectedSection] = useState(FormReviewPanelSections.Summary);\r\n const [sectionShown, setSectionShown] = useState(!isCollapsed);\r\n const [contextInfoShown, setContextInfoShown] = useState(false);\r\n const [pdfSummaryDownload, setPdfSummaryDownload] = useState(null);\r\n\r\n const prevSelectedResult = usePrevious(selectedResult);\r\n\r\n const piiEnabled = settings && settings.selectedClient?.isPiiProtectionEnabled;\r\n\r\n React.useEffect(() => {\r\n setSectionShown(!isCollapsed);\r\n }, [isCollapsed]);\r\n\r\n React.useEffect(() => {\r\n setContextInfoShown(false);\r\n }, [formReviewState, workflowState]);\r\n\r\n React.useEffect(() => {\r\n if (prevSelectedResult && prevSelectedResult.id === 0) {\r\n const nonZeroResults = validationResult.result.filter(v => v.id !== 0);\r\n if (nonZeroResults.length === 0) {\r\n return;\r\n }\r\n } else if (selectedResult != null && validationResult != null && validationResult.result != null) {\r\n const result = validationResult.result.filter(v => v.id === selectedResult.id);\r\n\r\n if (result != null && result.length > 0) {\r\n setSelectedResult(result[0]);\r\n setSelectedAccountId(result[0].accountId);\r\n return;\r\n }\r\n }\r\n setSelectedResult(null);\r\n setSelectedAccountId(null);\r\n setSelectedSection(FormReviewPanelSections.Summary);\r\n }, [validationResult]);\r\n\r\n React.useEffect(() => {\r\n if (validationResult && accountId && accountId > 0) {\r\n const result = validationResult.result.filter(v => v.accountId === accountId);\r\n if (result != null && result.length > 0) {\r\n setSelectedAccountId(accountId);\r\n setSelectedResult(result[0]);\r\n setSelectedSection(FormReviewPanelSections.ValidationResults);\r\n }\r\n }\r\n }, [accountId]);\r\n\r\n const hasReviewerPermission = isEnabled && AccessControl.hasPermission(permissions, [ActivityPerms.fwfInitialReviewer, ActivityPerms.fwfSecondaryReviewer, ActivityPerms.fwfExpertReviewer, ActivityPerms.fwfSupplReviewer]);\r\n const hasSupportingDocsPermission = isEnabled && AccessControl.hasPermission(permissions, [ActivityPerms.scannedSupDocs]);\r\n const hasWithholdingPermission = isEnabled && settings && settings.showWithholding && AccessControl.hasPermission(permissions, [ActivityPerms.whdViewRates]);\r\n const hasViewTreePermission = isEnabled && AccessControl.hasPermission(permissions, [ActivityPerms.scannedViewTree])\r\n && ((formType.toLowerCase().startsWith('w') && selectedResult?.parentAccountId) || (!selectedResult?.parentAccountId && formType.toLowerCase().startsWith('w8imy')));\r\n const canApplyFormOverride = isEnabled && hasReviewerPermission\r\n && (validationResult && (validationResult.formOverrideApplied || validationResult.valid))\r\n && formReviewState != null && formReviewState.workflowStage !== FormWorkflowStages.Complete && formReviewState.workflowStage !== FormWorkflowStages.BatchStaging\r\n && workflowState != null && workflowState.assignedUser === getStorageSetting('username')\r\n && AccessControl.hasPermission(permissions, [ActivityPerms.overrideValidation]);\r\n const hasIntermediaryToolsPermission = isEnabled && AccessControl.hasPermission(permissions, [ActivityPerms.multiTierMgrViewWhs, ActivityPerms.multiTierMgrEditWhs, ActivityPerms.multiTierMgrCreateWhs]);\r\n const canShowWithholdingStatementSection = (formType.toLowerCase().startsWith('w8imy') || accountWithholdingStatement != null) && hasIntermediaryToolsPermission && selectedAccountId != null;\r\n\r\n const getSectionClass = tab => (tab === selectedSection ? 'active' : '');\r\n\r\n const getSupportingDocsBadgeCount = () => {\r\n const docCount = supportingDocs ? supportingDocs.length : 0;\r\n let badgeCount = '0';\r\n if (docCount) {\r\n badgeCount = docCount > 99 ? '99+' : docCount.toString();\r\n }\r\n return badgeCount;\r\n };\r\n\r\n const getFormValidState = (result) => {\r\n if (!result) {\r\n return 'validation-result-icon none';\r\n }\r\n if (result.valid != null && result.valid !== 'undefined') {\r\n return `validation-result-icon ${ ((result.valid) ? 'valid' : 'invalid') }`;\r\n }\r\n return '';\r\n };\r\n\r\n const getSupportingDocsBadgeClass = () => {\r\n let badgeClass = 'supporting-docs-icon';\r\n if (supportingDocs && supportingDocs.length) {\r\n badgeClass = 'supporting-docs-icon bluebadge badge';\r\n }\r\n badgeClass = `${ badgeClass }`;\r\n return badgeClass;\r\n };\r\n\r\n const getAccountIconCssClass = (result) => {\r\n if (!result.isValidated) {\r\n return 'icon-not-validated';\r\n }\r\n let cssClass = result.valid && (result.childResults == null || result.childResults.filter(r => !r.valid).length === 0) ? 'icon-valid' : 'icon-invalid';\r\n cssClass += (result.warnings && result.warnings.filter(w => w.code.indexOf('WRN') > -1).length > 0)\r\n || (result.childResults && result.childResults.filter(r => !r.warnings && r.warnings.filter(w => w.code.indexOf('WRN') > -1).length > 0).length > 0) ? ' red-flag' : '';\r\n return cssClass;\r\n };\r\n\r\n const isExpired = expiryDate => moment().diff(moment(expiryDate).endOf('day')) > 0;\r\n\r\n const isValid = result => result.valid && (result.childResults == null || result.childResults.filter(r => !r.valid).length === 0);\r\n\r\n const getAccountDescription = (result, formFamily) => {\r\n let validStatus = 'Not Validated';\r\n if (result.isValidated) {\r\n if (isExpired(result.validUntil) && isValid(result)) {\r\n validStatus = `Expired on ${ moment(result.validUntil).format('ll') }`;\r\n } else {\r\n validStatus = isValid(result) ? 'Valid' : 'Invalid';\r\n if (isValid(result) && result.workflowStage && result.workflowStage === FormWorkflowStages.Complete) {\r\n validStatus += ' (Not Expired)';\r\n }\r\n if (isValid(result) && result.isWithTreaty) {\r\n validStatus += ' with Treaty';\r\n }\r\n if (result.isLocked) {\r\n validStatus += ' & Locked';\r\n }\r\n }\r\n }\r\n return `${ formFamily }: ${ !result.accountNumber ? 'N/A' : result.accountNumber } - ${ validStatus }`;\r\n };\r\n\r\n const navigateToImyStructure = () => {\r\n dispatch(push(`/w8imystructure/${ selectedAccountId }`));\r\n };\r\n\r\n const navigateToAccountValidationResult = (result) => {\r\n setSelectedAccountId(result.accountId);\r\n setSelectedSection(FormReviewPanelSections.ValidationResults);\r\n setSelectedResult(result);\r\n setContextInfoShown(false);\r\n };\r\n\r\n const navigateToAccountSummary = () => {\r\n setSelectedAccountId(null);\r\n setSelectedSection(FormReviewPanelSections.Summary);\r\n setSelectedResult(null);\r\n setContextInfoShown(false);\r\n };\r\n\r\n const onSectionCollapseExpand = () => {\r\n setSectionShown(!sectionShown);\r\n if (onCollapseExpand) {\r\n onCollapseExpand(!sectionShown);\r\n }\r\n };\r\n\r\n const onHeaderResultSelect = (id) => {\r\n if (!validationResult || !validationResult.result) {\r\n return;\r\n }\r\n\r\n if (!id) {\r\n navigateToAccountSummary();\r\n }\r\n\r\n const matched = validationResult.result.filter(o => o.id === id || o.accountId === id);\r\n if (matched && matched.length > 0) {\r\n navigateToAccountValidationResult(matched[0]);\r\n }\r\n };\r\n\r\n const onFormOverrideChanged = (checked) => {\r\n if (checked) {\r\n validationResult.formOverrideApplied = true;\r\n onOpenFormOverrideModal();\r\n } else {\r\n validationResult.formOverrideApplied = false;\r\n onOpenCancelFormOverrideModal();\r\n }\r\n };\r\n\r\n const showTinCheckStatus = () => {\r\n if (!tinMatchFormProps || !tinMatchFormProps.tin || !tinMatchFormProps.name) {\r\n return false;\r\n }\r\n const tinIsAppliedForOrEmpty = tinMatchFormProps.tin.appliedForTin || ((!tinMatchFormProps.tin.ssn && !tinMatchFormProps.tin.ein));\r\n\r\n const tinIsComplete = tinMatchFormProps.tin.ssn?.length === 9 || tinMatchFormProps.tin.ein?.length === 9;\r\n\r\n return formType.toLowerCase().startsWith('w9') && !piiEnabled && settings.showTinMatching && !tinIsAppliedForOrEmpty && tinIsComplete;\r\n };\r\n\r\n const onCheckTin = (_formId, updateExisting) => {\r\n dispatch(checkTin(_formId, updateExisting));\r\n };\r\n\r\n useEffect(() => {\r\n if (selectedAccountId && (formType.toLowerCase().startsWith('w8imy') || hasParentAccount) && hasIntermediaryToolsPermission && !isCreatingNewWhd) {\r\n dispatch(getWhdStatementFromAccount(selectedAccountId));\r\n }\r\n }, [accountId, isAddingStatement, isCreatingNewWhd, selectedAccountId]);\r\n\r\n useEffect(() => () => {\r\n if (pdfSummaryDownload) {\r\n URL.revokeObjectURL(pdfSummaryDownload);\r\n }\r\n dispatch(clearPdfSummaryDownload());\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (formSummaryData && !isDownloadingFormSummary && !downloadFormSummaryError) {\r\n setPdfSummaryDownload(formSummaryData);\r\n const link = document.createElement('a');\r\n link.href = formSummaryData;\r\n link.setAttribute('download', 'validationsummary.pdf');\r\n link.setAttribute('target', '_blank');\r\n document.body.appendChild(link);\r\n link.click();\r\n }\r\n }, [formSummaryData]);\r\n\r\n const accountSelected = selectedAccountId !== null;\r\n const formFamily = formType && FormTypes[formType.toLowerCase()] && FormTypes[formType.toLowerCase()].getFamilyName();\r\n\r\n return (
    \r\n { !isLoading &&
    \r\n { validationResult && validationResult.result && 0 && validationResult.result[0].customerDbId }\r\n customerId={ validationResult.result.length > 0 && validationResult.result[0].customerId }\r\n customerName={ validationResult.result.length > 0 && validationResult.result[0].customerName }\r\n selectedResultId={ selectedResult && (selectedResult.id !== 0 ? selectedResult.id : selectedResult.accountId) }\r\n onResultSelect={ id => onHeaderResultSelect(id) }\r\n /> }\r\n { selectedSection === FormReviewPanelSections.Summary &&
    \r\n

    VALIDATION SUMMARY  { setContextInfoShown(!contextInfoShown); } } />

    \r\n { contextInfoShown && Overview of form validation per account context. }\r\n { isValidatingForm &&
    \r\n

    Please wait while a validation process is performed.

    \r\n \r\n
    }\r\n { (validationResult === null || validationResult.result === null || [...validationResult.result].length < 1)\r\n &&

    Not Validated

    }\r\n { validationResult && validationResult.result && [...validationResult.result].length >= 1\r\n && \r\n
    \r\n {showTinCheckStatus() && onCheckTin(id, updateExisting) }\r\n formId={ formId }\r\n tinMatchResult={ tinMatchResult }\r\n workflowStage={ formReviewState && formReviewState.workflowStage }\r\n hasValidation={ validationResult && validationResult.result[0]?.id > 0 }\r\n tinMatchFormProps={ tinMatchFormProps }\r\n isFormDirty={ isFormDirty }\r\n />}\r\n \r\n { !isValidatingForm && [...validationResult.result].map((x, i) => x != null && ( navigateToAccountValidationResult(validationResult.result[i]) }\r\n >{getAccountDescription(validationResult.result[i], formFamily) })) }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { workflowState.workflowDescription }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    }\r\n
    }\r\n { selectedSection === FormReviewPanelSections.SupportingDocs && }\r\n { selectedSection === FormReviewPanelSections.ValidationResults && onCheckTin(id, updateExisting) }\r\n showTinMatching={ settings.showTinMatching }\r\n tinMatchFormProps={ tinMatchFormProps }\r\n isFormDirty={ isFormDirty }\r\n isDownloadingFormSummary={ isDownloadingFormSummary }\r\n permissions={ permissions }\r\n /> }\r\n { selectedSection === FormReviewPanelSections.ReviewerComments && validationResult && }\r\n { selectedSection === FormReviewPanelSections.Overrides && validationResult && onCheckTin(id, updateExisting) }\r\n tinMatchFormProps={ tinMatchFormProps }\r\n isFormDirty={ isFormDirty }\r\n /> }\r\n { selectedSection === FormReviewPanelSections.WithholdingStatement && }\r\n
    }\r\n
    \r\n { (hasSupportingDocsPermission || hasReviewerPermission) &&
    { setSelectedSection(FormReviewPanelSections.Summary); setSelectedResult(null); setSelectedAccountId(null); } }\r\n title=\"Validation Summary\"\r\n > 
    }\r\n { (hasSupportingDocsPermission || hasReviewerPermission) &&
    setSelectedSection(FormReviewPanelSections.SupportingDocs) }\r\n title=\"Supporting Documents\"\r\n data-badge={ getSupportingDocsBadgeCount() }\r\n > 
    }\r\n { isEnabled && accountSelected &&
    setSelectedSection(FormReviewPanelSections.ValidationResults) }\r\n title=\"Validation Results\"\r\n > 
    }\r\n { hasReviewerPermission && accountSelected &&
    setSelectedSection(FormReviewPanelSections.ReviewerComments) }\r\n title=\"Reviewer Comments\"\r\n > 
    }\r\n { isEnabled && hasReviewerPermission && validationResult && validationResult.result && accountSelected &&
    setSelectedSection(FormReviewPanelSections.Overrides) }\r\n title=\"Validation Overrides\"\r\n > 
    }\r\n { hasViewTreePermission && viewImyTree && accountSelected &&
    navigateToImyStructure() }\r\n title=\"W-8IMY Structure\"\r\n > 
    }\r\n { hasWithholdingPermission && viewWithholding && accountSelected &&
    onOpenWithholdingModal(selectedAccountId) }\r\n title=\"Show Withholding Rates\"\r\n > 
    }\r\n { canShowWithholdingStatementSection &&
    setSelectedSection(FormReviewPanelSections.WithholdingStatement) }\r\n title=\"Withholding Statement\"\r\n > 
    }\r\n { isEnabled &&
    onSectionCollapseExpand() }\r\n title=\"Click to expand/collapse\"\r\n > 
    }\r\n
    \r\n onCloseWithholdingModal() }\r\n />\r\n { isFormOverrideModalShown && onConfirmFormOverride(data) }\r\n onClose={ () => {\r\n validationResult.formOverrideApplied = false;\r\n onCloseFormOverrideModal();\r\n } }\r\n /> }\r\n { isCancelFormOverrideModalShown && onConfirmFormOverride() }\r\n onCancel={ () => {\r\n validationResult.formOverrideApplied = true;\r\n onCloseCancelFormOverrideModal();\r\n } }\r\n title=\"Confirm Form Override Cancellation\"\r\n message=\"Are you sure you want to cancel this invalidated form override?\"\r\n /> }\r\n
    );\r\n};\r\n\r\nFormReviewPanel.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n formId: PropTypes.number.isRequired,\r\n formType: PropTypes.string.isRequired,\r\n isOnline: PropTypes.bool.isRequired,\r\n isEnabled: PropTypes.bool.isRequired,\r\n isCollapsed: PropTypes.bool.isRequired,\r\n onOpenWithholdingModal: PropTypes.func.isRequired,\r\n onCloseWithholdingModal: PropTypes.func.isRequired,\r\n onConfirmFormOverride: PropTypes.func.isRequired,\r\n onOpenFormOverrideModal: PropTypes.func.isRequired,\r\n onCloseFormOverrideModal: PropTypes.func.isRequired,\r\n onOpenCancelFormOverrideModal: PropTypes.func.isRequired,\r\n onCloseCancelFormOverrideModal: PropTypes.func.isRequired,\r\n accountId: PropTypes.number,\r\n hasParentAccount: PropTypes.bool,\r\n viewImyTree: PropTypes.bool,\r\n viewWithholding: PropTypes.bool,\r\n className: PropTypes.string,\r\n settings: PropTypes.shape(),\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n isLoading: PropTypes.bool,\r\n hasError: PropTypes.shape({\r\n code: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number\r\n ]),\r\n message: PropTypes.string\r\n }),\r\n isValidatingForm: PropTypes.bool,\r\n validationResult: PropTypes.shape(),\r\n formReviewState: PropTypes.shape(),\r\n workflowState: PropTypes.shape(),\r\n supportingDocs: PropTypes.arrayOf(PropTypes.shape()),\r\n isAccountWithholdingShown: PropTypes.bool,\r\n onCollapseExpand: PropTypes.func,\r\n isFormOverrideModalShown: PropTypes.bool,\r\n isCancelFormOverrideModalShown: PropTypes.bool,\r\n isSavingOverrides: PropTypes.bool,\r\n isAddingStatement: PropTypes.bool,\r\n isCreatingNewWhd: PropTypes.bool,\r\n accountWithholdingStatement: PropTypes.shape(),\r\n isFormDirty: PropTypes.bool,\r\n piiValidationCodes: PropTypes.shape(),\r\n tinMatchResult: PropTypes.arrayOf(PropTypes.shape()),\r\n tinMatchFormProps: PropTypes.shape(),\r\n formSummaryData: PropTypes.string,\r\n isDownloadingFormSummary: PropTypes.bool,\r\n downloadFormSummaryError: PropTypes.string,\r\n};\r\n\r\nFormReviewPanel.defaultProps = {\r\n accountId: null,\r\n hasParentAccount: false,\r\n viewImyTree: false,\r\n viewWithholding: false,\r\n className: null,\r\n settings: null,\r\n permissions: null,\r\n isLoading: true,\r\n hasError: null,\r\n isValidatingForm: false,\r\n validationResult: null,\r\n formReviewState: null,\r\n workflowState: null,\r\n supportingDocs: null,\r\n isAccountWithholdingShown: false,\r\n onCollapseExpand: null,\r\n isFormOverrideModalShown: false,\r\n isCancelFormOverrideModalShown: false,\r\n isSavingOverrides: false,\r\n isAddingStatement: false,\r\n isCreatingNewWhd: false,\r\n accountWithholdingStatement: null,\r\n isFormDirty: false,\r\n piiValidationCodes: null,\r\n tinMatchResult: null,\r\n tinMatchFormProps: null,\r\n formSummaryData: null,\r\n isDownloadingFormSummary: false,\r\n downloadFormSummaryError: null,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n settings,\r\n permissions,\r\n piiValidationCodes\r\n },\r\n forms: {\r\n isValidatingForm,\r\n validationResult,\r\n isGettingFormById,\r\n formByIdError,\r\n supportingDocs,\r\n formReviewState,\r\n workflowState,\r\n isAccountWithholdingShown,\r\n isFormOverrideModalShown,\r\n isCancelFormOverrideModalShown,\r\n isSavingOverrides,\r\n isAddingStatement,\r\n isCreatingNewWhd,\r\n accountWithholdingStatement: accountWithholdingStatementList,\r\n isDownloadingFormSummary,\r\n formSummaryData,\r\n downloadFormSummaryError\r\n }\r\n } = state;\r\n\r\n const accountWithholdingStatement = (accountWithholdingStatementList && accountWithholdingStatementList.length > 0) ? accountWithholdingStatementList[0] : null;\r\n\r\n return {\r\n settings,\r\n permissions,\r\n isValidatingForm,\r\n validationResult,\r\n isLoading: isGettingFormById,\r\n hasError: formByIdError,\r\n supportingDocs,\r\n formReviewState,\r\n workflowState,\r\n isAccountWithholdingShown,\r\n isFormOverrideModalShown,\r\n isCancelFormOverrideModalShown,\r\n isSavingOverrides,\r\n isAddingStatement,\r\n isCreatingNewWhd,\r\n accountWithholdingStatement,\r\n piiValidationCodes,\r\n isDownloadingFormSummary,\r\n formSummaryData,\r\n downloadFormSummaryError\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(FormReviewPanel);\r\n","const QueryParams = {\r\n parse(params = '') {\r\n const rawParams = params.replace('?', '').split('&');\r\n const extractedParams = {};\r\n rawParams.forEach((item) => {\r\n item = item.split('=');\r\n // eslint-disable-next-line\r\n extractedParams[item[0]] = item[1];\r\n });\r\n return extractedParams;\r\n }\r\n};\r\n\r\nexport default QueryParams;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nconst SplitButton = ({\r\n title,\r\n icon,\r\n isItemActioning,\r\n onClick,\r\n items\r\n}) => (\r\n \r\n \r\n
    \r\n \r\n
    \r\n {items.map((item, index) => (\r\n (item && index > 0) && \r\n ))}\r\n
    \r\n
    \r\n
    \r\n);\r\n\r\nSplitButton.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n icon: PropTypes.string,\r\n isItemActioning: PropTypes.bool,\r\n onClick: PropTypes.func.isRequired,\r\n items: PropTypes.arrayOf(PropTypes.shape()).isRequired\r\n};\r\n\r\nSplitButton.defaultProps = {\r\n icon: 'icon-download',\r\n isItemActioning: false\r\n};\r\n\r\nexport default SplitButton;\r\n","import React from 'react';\r\n\r\nexport const AsyncBlankBene = React.lazy(() => import(/* webpackChunkName: \"blank.w8bene\" */ '../../components/Blanks/BlankBene'));\r\nexport const AsyncBlankBene2017 = React.lazy(() => import(/* webpackChunkName: \"blank.w8bene2017\" */ '../../components/Blanks/BlankBene2017'));\r\nexport const AsyncBlankBene2021 = React.lazy(() => import(/* webpackChunkName: \"blank.w8bene2021\" */ '../../components/Blanks/BlankBene2021'));\r\nexport const AsyncBlankBen = React.lazy(() => import(/* webpackChunkName: \"blank.w8ben\" */ '../../components/Blanks/BlankBen'));\r\nexport const AsyncBlankBen2014 = React.lazy(() => import(/* webpackChunkName: \"blank.w8ben2014\" */ '../../components/Blanks/BlankBen2014'));\r\nexport const AsyncBlankBen2021 = React.lazy(() => import(/* webpackChunkName: \"blank.w8ben2021\" */ '../../components/Blanks/BlankBen2021'));\r\nexport const AsyncBlankEci = React.lazy(() => import(/* webpackChunkName: \"blank.w8eci\" */ '../../components/Blanks/BlankEci'));\r\nexport const AsyncBlankEci2017 = React.lazy(() => import(/* webpackChunkName: \"blank.w8eci2017\" */ '../../components/Blanks/BlankEci2017'));\r\nexport const AsyncBlankEci2021 = React.lazy(() => import(/* webpackChunkName: \"blank.w8eci2021\" */ '../../components/Blanks/BlankEci2021'));\r\nexport const AsyncBlankExp = React.lazy(() => import(/* webpackChunkName: \"blank.w8exp\" */ '../../components/Blanks/BlankExp'));\r\nexport const AsyncBlankExp2017 = React.lazy(() => import(/* webpackChunkName: \"blank.w8exp2017\" */ '../../components/Blanks/BlankExp2017'));\r\nexport const AsyncBlankExp2023 = React.lazy(() => import(/* webpackChunkName: \"blank.w8exp2023\" */ '../../components/Blanks/BlankExp2023'));\r\nexport const AsyncBlankImy = React.lazy(() => import(/* webpackChunkName: \"blank.w8imy\" */ '../../components/Blanks/BlankImy'));\r\nexport const AsyncBlankImy2017 = React.lazy(() => import(/* webpackChunkName: \"blank.w8imy2017\" */ '../../components/Blanks/BlankImy2017'));\r\nexport const AsyncBlankImy2021 = React.lazy(() => import(/* webpackChunkName: \"blank.w8imy2021\" */ '../../components/Blanks/BlankImy2021'));\r\nexport const AsyncBlankW9 = React.lazy(() => import(/* webpackChunkName: \"blank.w9\" */ '../../components/Blanks/BlankW9'));\r\nexport const AsyncBlankW92017 = React.lazy(() => import(/* webpackChunkName: \"blank.w92017\" */ '../../components/Blanks/BlankW92017'));\r\nexport const AsyncBlankW92018 = React.lazy(() => import(/* webpackChunkName: \"blank.w92018\" */ '../../components/Blanks/BlankW92018'));\r\nexport const AsyncBlankW92024 = React.lazy(() => import(/* webpackChunkName: \"blank.w92024\" */ '../../components/Blanks/BlankW92024'));\r\nexport const AsyncBlankCrse = React.lazy(() => import(/* webpackChunkName: \"blank.crse\" */ '../../components/Blanks/BlankCrse'));\r\nexport const AsyncBlankUCrse2019 = React.lazy(() => import(/* webpackChunkName: \"blank.ucrse2019\" */ '../../components/Blanks/BlankUCrse2019'));\r\nexport const AsyncBlankCrseBba = React.lazy(() => import(/* webpackChunkName: \"blank.crsebba\" */ '../../components/Blanks/BlankCrseBba'));\r\nexport const AsyncBlankCrsCp = React.lazy(() => import(/* webpackChunkName: \"blank.crscp\" */ '../../components/Blanks/BlankCrsCp'));\r\nexport const AsyncBlankUCrsCp2019 = React.lazy(() => import(/* webpackChunkName: \"blank.ucrscp2019\" */ '../../components/Blanks/BlankUCrsCp2019'));\r\nexport const AsyncBlankCrsi = React.lazy(() => import(/* webpackChunkName: \"blank.crsi\" */ '../../components/Blanks/BlankCrsi'));\r\nexport const AsyncBlankCrsi2024 = React.lazy(() => import(/* webpackChunkName: \"blank.crsi2024\" */ '../../components/Blanks/BlankCrsi2024'));\r\nexport const AsyncBlankRc519 = React.lazy(() => import(/* webpackChunkName: \"blank.rc519\" */ '../../components/Blanks/BlankRc519'));\r\nexport const AsyncBlankRc518 = React.lazy(() => import(/* webpackChunkName: \"blank.rc518\" */ '../../components/Blanks/BlankRc518'));\r\nexport const AsyncBlankFatcaCrsI2022 = React.lazy(() => import(/* webpackChunkName: \"blank.fatcacrsi2022\" */ '../../components/Blanks/BlankFatcaCrsI2022'));\r\nexport const AsyncBlankFatcaCrsE2022 = React.lazy(() => import(/* webpackChunkName: \"blank.fatcacrse2022\" */ '../../components/Blanks/BlankFatcaCrsE2022'));\r\nexport const AsyncBlankFatcaCrsI2023 = React.lazy(() => import(/* webpackChunkName: \"blank.fatcacrsi2023\" */ '../../components/Blanks/BlankFatcaCrsI2023'));\r\nexport const AsyncBlankFatcaCrsE2023 = React.lazy(() => import(/* webpackChunkName: \"blank.fatcacrse2023\" */ '../../components/Blanks/BlankFatcaCrsE2023'));\r\n","import React, { Component } from 'react';\r\nimport { toastr } from 'react-redux-toastr';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { isDirty } from 'redux-form';\r\n\r\nimport {\r\n validateForm,\r\n getFormById,\r\n getFormPdf,\r\n resetPdfDownloads,\r\n getPdfView,\r\n showAccountWithholdingModal,\r\n hideAccountWithholdingModal,\r\n showFormOverrideModal,\r\n hideFormOverrideModal,\r\n showCancelFormOverrideModal,\r\n hideCancelFormOverrideModal,\r\n acceptFormOverride,\r\n cancelFormOverride,\r\n showImyTreeWithholding,\r\n getStorageSetting,\r\n hideEditAddressModal,\r\n getStockMarkets\r\n} from 'actions';\r\n\r\nimport EditAddressModal from 'components/Modals/EditAddressModal';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\nimport BlankPage from 'components/Blanks/BlankPage';\r\nimport RedirectButton from 'components/Common/Buttons/RedirectButton';\r\nimport NotFoundPage from 'components/Errors/NotFoundPage';\r\nimport ScrollPdfViewer from 'components/ScrollPdfViewer';\r\nimport FormReviewPanel from 'components/FormReviewPanel';\r\nimport FormWorkflowStages from 'common/Workflows/FormWorkflowStages';\r\nimport withContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary';\r\nimport QueryParams from 'common/App/QueryParams';\r\nimport SplitButton from 'components/Common/Buttons/SplitButton';\r\n\r\nimport {\r\n AsyncBlankBene,\r\n AsyncBlankBene2017,\r\n AsyncBlankBene2021,\r\n AsyncBlankBen,\r\n AsyncBlankBen2014,\r\n AsyncBlankBen2021,\r\n AsyncBlankEci,\r\n AsyncBlankEci2017,\r\n AsyncBlankEci2021,\r\n AsyncBlankExp,\r\n AsyncBlankExp2017,\r\n AsyncBlankExp2023,\r\n AsyncBlankImy,\r\n AsyncBlankImy2017,\r\n AsyncBlankImy2021,\r\n AsyncBlankW9,\r\n AsyncBlankW92017,\r\n AsyncBlankW92018,\r\n AsyncBlankW92024,\r\n AsyncBlankCrse,\r\n AsyncBlankUCrse2019,\r\n AsyncBlankCrseBba,\r\n AsyncBlankCrsCp,\r\n AsyncBlankUCrsCp2019,\r\n AsyncBlankCrsi,\r\n AsyncBlankCrsi2024,\r\n AsyncBlankRc519,\r\n AsyncBlankRc518,\r\n AsyncBlankFatcaCrsE2022,\r\n AsyncBlankFatcaCrsI2022,\r\n AsyncBlankFatcaCrsE2023,\r\n AsyncBlankFatcaCrsI2023\r\n} from './asyncBlanks';\r\n\r\nclass BlankContainer extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n isValidatingForm: PropTypes.bool.isRequired,\r\n validationResult: PropTypes.shape(),\r\n match: PropTypes.shape().isRequired,\r\n isGettingFormById: PropTypes.bool.isRequired,\r\n isFetchingPdfForm: PropTypes.bool,\r\n isFetchingPdfView: PropTypes.bool,\r\n instructionToggled: PropTypes.string,\r\n ignoreDirtyTaxForm: PropTypes.bool,\r\n // eslint-disable-next-line\r\n pdfFile: PropTypes.shape(),\r\n pdfDownloads: PropTypes.arrayOf(PropTypes.shape()),\r\n // eslint-disable-next-line\r\n viewPdfData: PropTypes.any,\r\n formByIdError: PropTypes.shape({\r\n code: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number\r\n ]),\r\n message: PropTypes.string\r\n }),\r\n formByIdResponse: PropTypes.shape(),\r\n getPdfViewError: PropTypes.shape({\r\n code: PropTypes.number,\r\n message: PropTypes.string\r\n }),\r\n formReviewState: PropTypes.shape(),\r\n workflowState: PropTypes.shape(),\r\n dirty: PropTypes.bool,\r\n forms: PropTypes.arrayOf(PropTypes.shape()),\r\n history: PropTypes.shape({\r\n go: PropTypes.func,\r\n block: PropTypes.func\r\n }).isRequired,\r\n location: PropTypes.shape({\r\n search: PropTypes.string\r\n }).isRequired,\r\n tinMatchFormProps: PropTypes.shape({\r\n tin: PropTypes.shape(),\r\n name: PropTypes.string\r\n }),\r\n isEditAddressModalShown: PropTypes.bool,\r\n isPiiProtectionEnabled: PropTypes.bool,\r\n stockMarkets: PropTypes.arrayOf(PropTypes.shape())\r\n };\r\n\r\n static defaultProps = {\r\n permissions: null,\r\n validationResult: null,\r\n formByIdResponse: null,\r\n formByIdError: null,\r\n isFetchingPdfForm: false,\r\n isFetchingPdfView: false,\r\n pdfFile: null,\r\n pdfDownloads: [],\r\n viewPdfData: null,\r\n getPdfViewError: null,\r\n instructionToggled: null,\r\n ignoreDirtyTaxForm: false,\r\n formReviewState: null,\r\n workflowState: null,\r\n dirty: false,\r\n forms: null,\r\n tinMatchFormProps: null,\r\n isEditAddressModalShown: false,\r\n isPiiProtectionEnabled: false,\r\n stockMarkets: null\r\n };\r\n\r\n static resizeTimer;\r\n\r\n static updateFormDimensions() {\r\n if (BlankContainer.resizeTimer) {\r\n clearInterval(BlankContainer.resizeTimer);\r\n BlankContainer.resizeTimer = null;\r\n }\r\n BlankContainer.resizeTimer = setInterval(() => {\r\n if (window.innerWidth < 1000) {\r\n toastr.info('You should use a monitor with a screen resolution higher than 1000 pixels to best view these forms.');\r\n }\r\n BlankContainer.adjustFormContainerHeight();\r\n }, 1000, this);\r\n }\r\n\r\n static adjustFormContainerHeight() {\r\n clearInterval(BlankContainer.resizeTimer);\r\n BlankContainer.resizeTimer = null;\r\n\r\n let height = 0;\r\n\r\n if (!document.getElementById('form-content')\r\n || !document.getElementById('form-content').firstChild\r\n || !document.getElementById('blankForm')) {\r\n return;\r\n }\r\n const pages = document.getElementById('form-content').firstChild.childNodes;\r\n\r\n if (!pages || pages.length === 0) {\r\n return;\r\n }\r\n\r\n let top = 0;\r\n let bottom = 0;\r\n for (let i = 0; i < pages.length; i += 1) {\r\n if (pages[i].className.includes('page')) {\r\n if (top === 0) {\r\n top = Math.ceil(pages[i].getBoundingClientRect().top);\r\n }\r\n bottom = Math.ceil(pages[i].getBoundingClientRect().bottom);\r\n }\r\n }\r\n\r\n if (top === 0 || bottom === 0) {\r\n return;\r\n }\r\n\r\n height = bottom - top;\r\n\r\n document.getElementById('form-content').style.height = `${ height }px`;\r\n }\r\n\r\n static downloadFile(file) {\r\n const link = document.createElement('a');\r\n link.href = file.blob;\r\n link.setAttribute('download', (file.name) ? file.name : 'form.pdf');\r\n document.body.appendChild(link);\r\n link.click();\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const query = QueryParams.parse(props.location.search);\r\n this.toggleOriginal = this.toggleOriginal.bind(this);\r\n this.getPdfFile = this.getPdfFile.bind(this);\r\n\r\n this.state = {\r\n validationResultsVisible: true,\r\n originalVisible: false,\r\n pdfBlocked: false,\r\n pdfDownload: null,\r\n pdfView: null,\r\n showDocumentSignNotif: false,\r\n shownDocumentSignNotif: false,\r\n initialAccount: query && query.account && !Number.isNaN(query.account) ? parseInt(query.account, 10) : null\r\n };\r\n\r\n this.unblock = props.history.block((location, action) => {\r\n const { dirty, ignoreDirtyTaxForm } = this.props;\r\n const { shownDocumentSignNotif } = this.state;\r\n if (shownDocumentSignNotif) {\r\n return null;\r\n }\r\n if (dirty && !ignoreDirtyTaxForm) {\r\n return 'Are you sure you want to leave this page?';\r\n }\r\n return null;\r\n });\r\n\r\n this.onUnload = this.onUnload.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const { dispatch, match } = this.props;\r\n const { params: { blankType, formId } } = match;\r\n dispatch(getFormById(blankType, formId));\r\n\r\n window.addEventListener('resize', BlankContainer.updateFormDimensions);\r\n window.addEventListener('beforeunload', this.onUnload);\r\n }\r\n\r\n /* eslint-disable-next-line camelcase */\r\n UNSAFE_componentWillReceiveProps(newProps) {\r\n const {\r\n dispatch,\r\n isGettingFormById,\r\n isValidatingForm,\r\n isFetchingPdfForm,\r\n isFetchingPdfView,\r\n match,\r\n instructionToggled,\r\n } = this.props;\r\n const { validationResultsVisible, showDocumentSignNotif } = this.state;\r\n const { params: { blankType, formId } } = newProps.match;\r\n\r\n if (match.url !== newProps.match.url) {\r\n dispatch(getFormById(blankType, formId));\r\n dispatch(resetPdfDownloads());\r\n return;\r\n }\r\n\r\n if (isGettingFormById) {\r\n this.setState({\r\n validationResultsVisible: (newProps.validationResult != null && newProps.validationResult.result != null),\r\n originalVisible: false,\r\n pdfView: null,\r\n pdfDownload: null\r\n });\r\n }\r\n\r\n if (newProps.instructionToggled && newProps.instructionToggled !== instructionToggled) {\r\n BlankContainer.updateFormDimensions();\r\n }\r\n\r\n if (isValidatingForm) {\r\n const isVisible = (newProps.validationResult != null\r\n && newProps.validationResult.result != null);\r\n this.setState({\r\n validationResultsVisible: validationResultsVisible || isVisible\r\n });\r\n }\r\n\r\n if (!showDocumentSignNotif\r\n && newProps.formByIdResponse != null && newProps.formByIdResponse.isOnlineForm\r\n && newProps.validationResult != null) {\r\n const instrFound = newProps.validationResult.result[0] != null\r\n && newProps.validationResult.result[0].warnings != null\r\n && newProps.validationResult.result[0].rejections != null\r\n && newProps.validationResult.result[0].rejections.length === 0\r\n && (((blankType === 'w9' || blankType === 'w9_2017' || blankType === 'w9_2018') && newProps.validationResult.result[0].warnings.findIndex(el => el.code === 'REC000240') !== -1)\r\n || ((blankType === 'w8bene' || blankType === 'w8bene_2017' || blankType === 'w8bene_2021') && newProps.validationResult.result[0].warnings.findIndex(el => el.code === 'REC000890') !== -1));\r\n\r\n if (instrFound) {\r\n this.setState({\r\n showDocumentSignNotif: true\r\n });\r\n }\r\n }\r\n\r\n if (isFetchingPdfForm && !newProps.isFetchingPdfForm && newProps.pdfFile) {\r\n this.setState({\r\n pdfDownload: newProps.pdfFile.blob\r\n });\r\n BlankContainer.downloadFile(newProps.pdfFile);\r\n } else {\r\n this.setState({\r\n pdfDownload: null\r\n });\r\n }\r\n\r\n if (newProps?.viewPdfData && !newProps.getPdfViewError) {\r\n if (isFetchingPdfView && !newProps.isFetchingPdfView && newProps.viewPdfData) {\r\n this.setState({\r\n originalVisible: true,\r\n pdfView: newProps.viewPdfData\r\n });\r\n } else if (isFetchingPdfView && !newProps.isFetchingPdfView && newProps.viewPdfData == null) {\r\n toastr.confirm('The original form is too large to be displayed next to the digitized form. To view it, please download it using the \\'Download original PDF\\' button', { disableCancel: true });\r\n this.setState({ pdfBlocked: true });\r\n }\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n BlankContainer.updateFormDimensions();\r\n }\r\n\r\n componentWillUnmount() {\r\n const { dispatch } = this.props;\r\n const { pdfDownload, pdfView } = this.state;\r\n window.removeEventListener('resize', BlankContainer.updateFormDimensions);\r\n\r\n dispatch(resetPdfDownloads());\r\n\r\n if (pdfDownload) {\r\n URL.revokeObjectURL(pdfDownload);\r\n }\r\n\r\n if (pdfView) {\r\n URL.revokeObjectURL(pdfView);\r\n }\r\n\r\n this.unblock();\r\n window.removeEventListener('beforeunload', this.onUnload);\r\n }\r\n\r\n onUnload(event) {\r\n const { dirty } = this.props;\r\n if (dirty != null && dirty) {\r\n event.returnValue = 'Are you sure you want to leave this page?';\r\n }\r\n }\r\n\r\n onValidateForm(blankType, values) {\r\n const { dispatch, match, isValidatingForm } = this.props;\r\n const { params: { formId } } = match;\r\n\r\n if (!isValidatingForm) {\r\n dispatch(validateForm(blankType, formId, values));\r\n }\r\n }\r\n\r\n onFormReviewCollapseExpand(value) {\r\n this.setState({ validationResultsVisible: value });\r\n }\r\n\r\n onConfirmFormOverride(data) {\r\n const { dispatch, match: { params: { formId } } } = this.props;\r\n if (data) {\r\n dispatch(acceptFormOverride(formId, data));\r\n } else {\r\n this.onCancelFormOverride();\r\n }\r\n }\r\n\r\n onCancelFormOverride() {\r\n const { dispatch, match: { params: { formId } } } = this.props;\r\n dispatch(cancelFormOverride(formId));\r\n }\r\n\r\n getBlankComponent(BlankComponent) {\r\n const { dispatch, stockMarkets, match: { params: { blankType } } } = this.props;\r\n if (this.usesStockMarketsDropdown() && !(stockMarkets && stockMarkets.length)) {\r\n dispatch(getStockMarkets());\r\n }\r\n return (\r\n }>\r\n this.onValidateForm(blankType, values) }\r\n formType={ blankType }\r\n />\r\n \r\n );\r\n }\r\n\r\n getPdfFile(file) {\r\n const { dispatch, pdfDownloads } = this.props;\r\n\r\n if (!file || !file.id || !file.originalFileName) {\r\n toastr.error('', 'There is no original pdf file stored with this form');\r\n return;\r\n }\r\n\r\n if (pdfDownloads && pdfDownloads.length > 0) {\r\n const matchingDownloads = pdfDownloads.filter(x => x.id === file.id);\r\n if (matchingDownloads?.length > 0) {\r\n BlankContainer.downloadFile(matchingDownloads[0]);\r\n return;\r\n }\r\n }\r\n\r\n dispatch(getFormPdf(file));\r\n }\r\n\r\n getOriginalPdfView(file) {\r\n const { dispatch, pdfDownloads } = this.props;\r\n const { pdfView } = this.state;\r\n\r\n if (pdfDownloads && pdfDownloads.length > 0) {\r\n const matchingDownloads = pdfDownloads.filter(x => x.id === file.id);\r\n if (matchingDownloads?.length > 0) {\r\n this.setState({ pdfView: matchingDownloads[0].blob, originalVisible: true });\r\n return;\r\n }\r\n }\r\n\r\n if (!pdfView) {\r\n dispatch(getPdfView(file));\r\n }\r\n }\r\n\r\n getWrapperClasses(blankType) {\r\n const { originalVisible, validationResultsVisible } = this.state;\r\n let classes = 'blank-wrapper';\r\n\r\n classes += blankType && blankType.indexOf('w') === 0 ? ' w-blank-wrapper' : '';\r\n classes += blankType && (blankType.indexOf('dt_crs') === 0 || blankType.indexOf('crs') === 0 || blankType.indexOf('ucrs') === 0) ? ' crs-blank-wrapper' : '';\r\n classes += blankType && blankType.indexOf('rc') === 0 ? ' rc-blank-wrapper' : '';\r\n classes += blankType && blankType.indexOf('fatca_crs') === 0 ? ' fatca-crs-blank-wrapper' : '';\r\n\r\n classes += originalVisible ? ' side-by-side' : '';\r\n classes += originalVisible && !validationResultsVisible ? ' val-collapsed' : '';\r\n\r\n return classes;\r\n }\r\n\r\n getFormSectionClasses() {\r\n const { validationResultsVisible, originalVisible } = this.state;\r\n return `form-section ${ !originalVisible && !validationResultsVisible ? 'expand' : '' }`;\r\n }\r\n\r\n getValidationResultsSectionClasses() {\r\n const { validationResultsVisible } = this.state;\r\n return `validation-results-wrapper ${ !validationResultsVisible ? 'hide-content' : '' }`;\r\n }\r\n\r\n getFormContentClasses() {\r\n const { permissions } = this.props;\r\n\r\n if (permissions === null) {\r\n return 'form-content';\r\n }\r\n\r\n if (this.isWorkflowComplete() || this.isViewOnlyForm()) {\r\n return 'form-content view-only';\r\n }\r\n return 'form-content';\r\n }\r\n\r\n usesStockMarketsDropdown() {\r\n const { match: { params: { blankType } } } = this.props;\r\n if (blankType === 'w8bene'\r\n || blankType === 'w8bene_2017'\r\n || blankType === 'w8bene_2021'\r\n || blankType === 'w8imy'\r\n || blankType === 'w8imy_2017'\r\n || blankType === 'w8imy_2021'\r\n || blankType === 'crse'\r\n || blankType === 'ucrse_2019'\r\n || blankType === 'fatca_crse_2022'\r\n || blankType === 'fatca_crse_2023') {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n isValidated() {\r\n const { validationResult } = this.props;\r\n return (validationResult != null && validationResult.result != null);\r\n }\r\n\r\n isLocked() {\r\n const { validationResult } = this.props;\r\n return (validationResult && validationResult.result && validationResult.result[0] && validationResult.result[0].isLocked);\r\n }\r\n\r\n isWorkflowBatchStaging() {\r\n const { formReviewState } = this.props;\r\n return (formReviewState && formReviewState.workflowStage === FormWorkflowStages.BatchStaging);\r\n }\r\n\r\n isWorkflowComplete() {\r\n const { formReviewState } = this.props;\r\n return (formReviewState != null && formReviewState.workflowStage === FormWorkflowStages.Complete);\r\n }\r\n\r\n isValidReviewer() {\r\n const { permissions, formReviewState, workflowState } = this.props;\r\n\r\n if (formReviewState == null) {\r\n return false;\r\n }\r\n\r\n // WF Stage 1 or 2 - Draft or Pending Signature\r\n if (formReviewState.workflowStage === FormWorkflowStages.Draft || formReviewState.workflowStage === FormWorkflowStages.PendingSignature) {\r\n return true;\r\n }\r\n\r\n // WF Stage 3 - Batch Staging\r\n if (formReviewState.workflowStage === FormWorkflowStages.BatchStaging) {\r\n return false;\r\n }\r\n\r\n const isUserFormOwner = workflowState != null && workflowState.assignedUser === getStorageSetting('username');\r\n\r\n // WF Stage 4 or 5 and Initial Reviewer\r\n // WF Stage 6 or 7 and Secondary Reviewer\r\n // WF Stage 8, 9 or 100 and Expert Reviewer\r\n // WF Stage 100 and Supplementary Reviewer\r\n const initialReviewer = (formReviewState.workflowStage === FormWorkflowStages.PendingReview || formReviewState.workflowStage === FormWorkflowStages.UnderInitialReview)\r\n && AccessControl.hasPermission(permissions, [ActivityPerms.fwfInitialReviewer]);\r\n const secondaryReviewer = (formReviewState.workflowStage === FormWorkflowStages.PendingSecondaryReview || formReviewState.workflowStage === FormWorkflowStages.UnderSecondaryReview)\r\n && AccessControl.hasPermission(permissions, [ActivityPerms.fwfSecondaryReviewer]);\r\n const expertReviewer = (formReviewState.workflowStage === FormWorkflowStages.PendingExpertReview || formReviewState.workflowStage === FormWorkflowStages.UnderExpertReview || formReviewState.workflowStage === FormWorkflowStages.Complete)\r\n && AccessControl.hasPermission(permissions, [ActivityPerms.fwfExpertReviewer]);\r\n const suppReviewer = formReviewState.workflowStage === FormWorkflowStages.Complete && AccessControl.hasPermission(permissions, [ActivityPerms.fwfSupplReviewer]);\r\n\r\n if (formReviewState.workflowStage === FormWorkflowStages.Complete) {\r\n return (expertReviewer || suppReviewer);\r\n }\r\n\r\n return (isUserFormOwner && (initialReviewer || secondaryReviewer || expertReviewer || suppReviewer));\r\n }\r\n\r\n isOnlineForm() {\r\n const { formByIdResponse } = this.props;\r\n return (formByIdResponse != null && (formByIdResponse.isOnlineForm || !formByIdResponse.originalFileName));\r\n }\r\n\r\n isViewOnlyForm() {\r\n const { permissions, formReviewState, workflowState } = this.props;\r\n\r\n if (permissions === null) {\r\n return false;\r\n }\r\n\r\n if (this.isLocked()) {\r\n return true;\r\n }\r\n\r\n if (formReviewState == null || formReviewState.workflowStage === FormWorkflowStages.BatchStaging) {\r\n return true;\r\n }\r\n\r\n const isUserFormOwner = workflowState != null && workflowState.assignedUser === getStorageSetting('username');\r\n\r\n if (this.isOnlineForm()) {\r\n if (!isUserFormOwner || !AccessControl.hasPermission(permissions, [ActivityPerms.electronicValidate])) {\r\n return true;\r\n }\r\n return !AccessControl.hasPermission(permissions, [ActivityPerms.electronicView, ActivityPerms.electronicValidate]);\r\n }\r\n\r\n if (!isUserFormOwner || !AccessControl.hasPermission(permissions, [ActivityPerms.scannedValidate, ActivityPerms.scannedEdit])) {\r\n return true;\r\n }\r\n return !AccessControl.hasPermission(permissions, [ActivityPerms.scannedView, ActivityPerms.scannedValidate, ActivityPerms.scannedEdit]);\r\n }\r\n\r\n toggleOriginal(file) {\r\n const { originalVisible } = this.state;\r\n\r\n if (!originalVisible) {\r\n if (!file || !file.id || !file.originalFileName) {\r\n toastr.error('', 'There is no original pdf file stored with this form');\r\n return false;\r\n }\r\n this.getOriginalPdfView(file);\r\n } else {\r\n this.setState({\r\n originalVisible: !originalVisible,\r\n pdfView: null,\r\n validationResultsVisible: this.isValidated()\r\n });\r\n }\r\n return false;\r\n }\r\n\r\n openAccountWithholdingModal(accountId) {\r\n const { dispatch, match: { params: { formId } }, formByIdResponse } = this.props;\r\n if (formByIdResponse != null && (formByIdResponse.hasAllocationStatement || formByIdResponse.hasParentAccount)) {\r\n dispatch(showImyTreeWithholding(accountId));\r\n } else {\r\n dispatch(showAccountWithholdingModal(formId, null, null));\r\n }\r\n }\r\n\r\n closeAccountWithholdingModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideAccountWithholdingModal());\r\n }\r\n\r\n openFormOverrideModal() {\r\n const { dispatch } = this.props;\r\n dispatch(showFormOverrideModal());\r\n }\r\n\r\n closeFormOverrideModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideFormOverrideModal());\r\n }\r\n\r\n openCancelFormOverrideModal() {\r\n const { dispatch } = this.props;\r\n dispatch(showCancelFormOverrideModal());\r\n }\r\n\r\n closeCancelFormOverrideModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideCancelFormOverrideModal());\r\n }\r\n\r\n closeEditAddressModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideEditAddressModal());\r\n }\r\n\r\n renderBlank() {\r\n const { match: { params: { blankType } } } = this.props;\r\n switch (blankType) {\r\n case 'w8bene':\r\n return this.getBlankComponent(AsyncBlankBene);\r\n case 'w8bene_2017':\r\n return this.getBlankComponent(AsyncBlankBene2017);\r\n case 'w8bene_2021':\r\n return this.getBlankComponent(AsyncBlankBene2021);\r\n case 'w8ben':\r\n return this.getBlankComponent(AsyncBlankBen);\r\n case 'w8ben_2014':\r\n return this.getBlankComponent(AsyncBlankBen2014);\r\n case 'w8ben_2021':\r\n return this.getBlankComponent(AsyncBlankBen2021);\r\n case 'w8eci_2014':\r\n return this.getBlankComponent(AsyncBlankEci);\r\n case 'w8eci':\r\n return this.getBlankComponent(AsyncBlankEci2017);\r\n case 'w8eci_2021':\r\n return this.getBlankComponent(AsyncBlankEci2021);\r\n case 'w8exp_2016':\r\n return this.getBlankComponent(AsyncBlankExp);\r\n case 'w8exp':\r\n return this.getBlankComponent(AsyncBlankExp2017);\r\n case 'w8exp_2023':\r\n return this.getBlankComponent(AsyncBlankExp2023);\r\n case 'w8imy':\r\n return this.getBlankComponent(AsyncBlankImy);\r\n case 'w8imy_2017':\r\n return this.getBlankComponent(AsyncBlankImy2017);\r\n case 'w8imy_2021':\r\n return this.getBlankComponent(AsyncBlankImy2021);\r\n case 'w9':\r\n return this.getBlankComponent(AsyncBlankW9);\r\n case 'w9_2017':\r\n return this.getBlankComponent(AsyncBlankW92017);\r\n case 'w9_2018':\r\n return this.getBlankComponent(AsyncBlankW92018);\r\n case 'w9_2024':\r\n return this.getBlankComponent(AsyncBlankW92024);\r\n case 'crse':\r\n case 'dt_crse':\r\n return this.getBlankComponent(AsyncBlankCrse);\r\n case 'ucrse_2019':\r\n return this.getBlankComponent(AsyncBlankUCrse2019);\r\n case 'crsebba':\r\n return this.getBlankComponent(AsyncBlankCrseBba);\r\n case 'crscp':\r\n case 'dt_crscp':\r\n return this.getBlankComponent(AsyncBlankCrsCp);\r\n case 'ucrscp_2019':\r\n return this.getBlankComponent(AsyncBlankUCrsCp2019);\r\n case 'crsi':\r\n case 'dt_crsi':\r\n case 'ucrsi_2023':\r\n return this.getBlankComponent(AsyncBlankCrsi);\r\n case 'crsi_2024':\r\n return this.getBlankComponent(AsyncBlankCrsi2024);\r\n case 'rc519':\r\n return this.getBlankComponent(AsyncBlankRc519);\r\n case 'rc518':\r\n return this.getBlankComponent(AsyncBlankRc518);\r\n case 'fatca_crse_2022':\r\n return this.getBlankComponent(AsyncBlankFatcaCrsE2022);\r\n case 'fatca_crse_2023':\r\n return this.getBlankComponent(AsyncBlankFatcaCrsE2023);\r\n case 'fatca_crsi_2022':\r\n return this.getBlankComponent(AsyncBlankFatcaCrsI2022);\r\n case 'fatca_crsi_2023':\r\n return this.getBlankComponent(AsyncBlankFatcaCrsI2023);\r\n default:\r\n return
    Incorrect blank type
    ;\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n permissions,\r\n validationResult,\r\n match: { params: { formId, blankType } },\r\n isGettingFormById,\r\n isFetchingPdfForm,\r\n isFetchingPdfView,\r\n formByIdError,\r\n formByIdResponse,\r\n getPdfViewError,\r\n isValidatingForm,\r\n dirty,\r\n forms,\r\n workflowState,\r\n tinMatchFormProps,\r\n isEditAddressModalShown,\r\n isPiiProtectionEnabled\r\n } = this.props;\r\n const { originalVisible, pdfDownload, pdfView, pdfBlocked, initialAccount } = this.state;\r\n\r\n const isBatchStaging = this.isWorkflowBatchStaging();\r\n let fileName = 'form.pdf';\r\n if (formByIdResponse?.originalFileName) {\r\n fileName = formByIdResponse.originalFileName;\r\n } else if (formByIdResponse?.hasSavedPdf !== true) {\r\n fileName = null;\r\n }\r\n const originalFile = { id: formId, originalFileName: fileName, name: fileName };\r\n return (\r\n
    \r\n { (isGettingFormById || formByIdError != null) &&
    \r\n \r\n \r\n { formByIdError && (formByIdError.code !== 0\r\n ? \r\n :
    \r\n { formByIdError.message }\r\n
    ) }\r\n \r\n
    \r\n
    }\r\n\r\n {!isPiiProtectionEnabled && isEditAddressModalShown && this.closeEditAddressModal() }\r\n isEditAddressModalShown={ isEditAddressModalShown }\r\n />}\r\n\r\n { !isGettingFormById && formByIdError == null && blankType != null && \r\n
    \r\n { originalVisible && isFetchingPdfView && }\r\n { originalVisible && !isFetchingPdfView && !getPdfViewError && }\r\n { !isFetchingPdfView && getPdfViewError &&
    \r\n

    { getPdfViewError.message != null ? getPdfViewError.message : '' }

    \r\n
    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n { (this.isWorkflowComplete() || this.isViewOnlyForm()) &&
    }\r\n { this.renderBlank() }\r\n
    \r\n
    \r\n
    \r\n this.openAccountWithholdingModal(accountId) }\r\n onCloseWithholdingModal={ () => this.closeAccountWithholdingModal() }\r\n onConfirmFormOverride={ data => this.onConfirmFormOverride(data) }\r\n onOpenFormOverrideModal={ () => this.openFormOverrideModal() }\r\n onCloseFormOverrideModal={ () => this.closeFormOverrideModal() }\r\n onOpenCancelFormOverrideModal={ () => this.openCancelFormOverrideModal() }\r\n onCloseCancelFormOverrideModal={ () => this.closeCancelFormOverrideModal() }\r\n onCollapseExpand={ isExpanded => this.onFormReviewCollapseExpand(isExpanded) }\r\n tinMatchResult={ formByIdResponse && formByIdResponse.tinMatchResult }\r\n workflowState={ workflowState }\r\n isFormDirty={ dirty }\r\n tinMatchFormProps={ tinMatchFormProps }\r\n />\r\n
    }\r\n\r\n { !formByIdError &&
    \r\n
    \r\n { !originalVisible && }\r\n { originalVisible && this.toggleOriginal(pdfView) }\r\n >\r\n Close original form\r\n }\r\n
    \r\n
    \r\n { (this.isValidReviewer() && !this.isWorkflowComplete() && AccessControl.hasPermission(permissions, [ActivityPerms.scannedValidate, ActivityPerms.scannedEdit]))\r\n && document.getElementById('dummy-validate-form-btn').click() }\r\n >\r\n Validate form\r\n }\r\n { !originalVisible && formByIdResponse != null && formByIdResponse.hasSavedPdf && forms?.length === 0 && this.toggleOriginal(originalFile) }\r\n >\r\n { isFetchingPdfView && }\r\n Open original form\r\n }\r\n { (!originalVisible && forms?.length > 0)\r\n && this.toggleOriginal(item) } items={ [originalFile, ...forms] } /> }\r\n
    \r\n
    \r\n { formByIdResponse != null && formByIdResponse.hasSavedPdf && forms?.length === 0 && \r\n this.getPdfFile(originalFile) }\r\n disabled={ isFetchingPdfForm }\r\n download={ !isFetchingPdfForm && pdfDownload && (formByIdResponse && formByIdResponse.originalFileName) ? formByIdResponse.originalFileName : 'form.pdf' }\r\n >\r\n \r\n { !isFetchingPdfForm ? \"PDF : }\r\n Download original PDF\r\n \r\n \r\n }\r\n { forms.length > 0 && \r\n this.getPdfFile(item) }\r\n items={ [originalFile, ...forms] }\r\n />\r\n }\r\n
    \r\n
    }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction getReduxFormDirtyStatus(state, ownProps) {\r\n let reduxFormName = '';\r\n if (ownProps != null && ownProps.match != null && ownProps.match.params != null && ownProps.match.params.blankType != null) {\r\n let formName = ownProps.match.params.blankType;\r\n const splitIndex = ownProps.match.params.blankType.lastIndexOf('_');\r\n if (splitIndex > -1) {\r\n formName = ownProps.match.params.blankType.substring(0, splitIndex);\r\n }\r\n reduxFormName = `${ formName }-form`;\r\n }\r\n return isDirty(reduxFormName)(state);\r\n}\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n const {\r\n auth: {\r\n permissions,\r\n settings: {\r\n selectedClient\r\n }\r\n },\r\n forms: {\r\n isValidatingForm,\r\n validationResult,\r\n isGettingFormById,\r\n isFetchingPdfForm,\r\n isFetchingPdfView,\r\n pdfFile,\r\n pdfDownloads,\r\n formByIdError,\r\n formByIdResponse,\r\n supportingDocs,\r\n formReviewState,\r\n workflowState,\r\n viewPdfData,\r\n getPdfViewError,\r\n instructionToggled,\r\n ignoreDirtyTaxForm,\r\n isEditAddressModalShown\r\n },\r\n form,\r\n common: {\r\n stockMarkets\r\n }\r\n } = state;\r\n\r\n const dirty = getReduxFormDirtyStatus(state, ownProps);\r\n\r\n let tinMatchFormProps = null;\r\n\r\n if (form['w9-form'] !== undefined) {\r\n tinMatchFormProps = { tin: form['w9-form']?.values?.tin, name: form['w9-form']?.values?.name };\r\n }\r\n\r\n let forms = [];\r\n\r\n if (form['w8ben-form'] !== undefined && form['w8ben-form']?.values?.part2?.additionalFiles) {\r\n forms = form['w8ben-form'].values.part2?.additionalFiles?.filter(x => x && Object.keys(x)?.length !== 0);\r\n }\r\n\r\n if (form['w8bene-form'] !== undefined && form['w8bene-form']?.values?.part3?.additionalFiles) {\r\n forms = form['w8bene-form'].values.part3?.additionalFiles?.filter(x => x && Object.keys(x)?.length !== 0);\r\n }\r\n\r\n forms = forms.map(x => ({ ...x, name: x.originalFileName, isAdditional: true }));\r\n\r\n return {\r\n permissions,\r\n isValidatingForm,\r\n validationResult,\r\n isGettingFormById,\r\n isFetchingPdfForm,\r\n isFetchingPdfView,\r\n pdfFile,\r\n pdfDownloads,\r\n formByIdError,\r\n formByIdResponse,\r\n supportingDocs,\r\n formReviewState,\r\n workflowState,\r\n viewPdfData,\r\n getPdfViewError,\r\n instructionToggled,\r\n ignoreDirtyTaxForm,\r\n dirty,\r\n forms,\r\n tinMatchFormProps,\r\n isEditAddressModalShown,\r\n isPiiProtectionEnabled: selectedClient?.isPiiProtectionEnabled,\r\n stockMarkets\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withContainerErrorBoundary(BlankContainer, 'BlankContainer'));\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { getFormPdf } from 'actions';\r\n\r\nimport NotFoundPage from 'components/Errors/NotFoundPage';\r\nimport withContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary';\r\n\r\nclass OriginalPdfForm extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n match: PropTypes.shape().isRequired,\r\n isFetchingPdfForm: PropTypes.bool,\r\n // eslint-disable-next-line\r\n pdfFile: PropTypes.any,\r\n getFormPdfError: PropTypes.shape({})\r\n };\r\n\r\n static defaultProps = {\r\n isFetchingPdfForm: false,\r\n pdfFile: null,\r\n getFormPdfError: null\r\n };\r\n\r\n componentDidMount() {\r\n const { dispatch, match } = this.props;\r\n const { params: { formId } } = match;\r\n dispatch(getFormPdf({ id: formId, IsAdditional: false }));\r\n }\r\n\r\n render() {\r\n const {\r\n isFetchingPdfForm,\r\n pdfFile,\r\n getFormPdfError\r\n } = this.props;\r\n return (\r\n
    \r\n { !getFormPdfError && pdfFile != null &&
    \r\n {\r\n // eslint-disable-next-line\r\n isFetchingPdfForm\r\n ? \r\n : \r\n Cannot display inline PDF document. Try to\r\n download\r\n it\r\n \r\n }\r\n
    }\r\n { getFormPdfError &&
    \r\n
    \r\n \r\n
    \r\n
    }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const { forms: {\r\n isFetchingPdfForm,\r\n pdfFile,\r\n getFormPdfError\r\n } } = state;\r\n return {\r\n isFetchingPdfForm,\r\n pdfFile,\r\n getFormPdfError\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withContainerErrorBoundary(OriginalPdfForm, 'OriginalPdfForm'));\r\n","/* eslint-disable no-unreachable */\r\nimport React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { reduxForm, Field } from 'redux-form';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport { RenderDatePicker } from 'components/Common/Inputs/RenderDatePicker';\r\nimport DateTimes from 'components/Common/DateTimes';\r\n\r\nconst required = value => !value || !value.target || !value.target.value || !value.target.value.trim();\r\n\r\nclass MICustomDateRange extends Component {\r\n static propTypes = {\r\n isShown: PropTypes.bool,\r\n onCancel: PropTypes.func,\r\n onClose: PropTypes.func\r\n };\r\n\r\n static defaultProps = {\r\n isShown: false,\r\n onCancel: null,\r\n onClose: null\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n dateRangeFrom: null,\r\n dateRangeTo: null\r\n };\r\n }\r\n\r\n handleDateFromChange(event, newValue, oldValue) {\r\n this.setState({ dateRangeFrom: newValue });\r\n }\r\n\r\n handleDateToChange(event, newValue, oldValue) {\r\n this.setState({ dateRangeTo: newValue });\r\n }\r\n\r\n handleClose() {\r\n const { dateRangeFrom, dateRangeTo } = this.state;\r\n const { onClose } = this.props;\r\n onClose(dateRangeFrom, dateRangeTo);\r\n }\r\n\r\n isDateSelectionValid() {\r\n const { dateRangeFrom, dateRangeTo } = this.state;\r\n return !!dateRangeFrom && !!dateRangeTo;\r\n }\r\n\r\n render() {\r\n const { dateRangeFrom, dateRangeTo } = this.state;\r\n const { isShown, onCancel } = this.props;\r\n return (\r\n this.handleClose() }\r\n formId=\"customReportingPeriodModal\"\r\n btnConfirmTitle=\"Apply\"\r\n disableConfirm={ () => !this.isDateSelectionValid() }\r\n >\r\n

    The report will only include forms with a ’First Validation Date’ inside the provided date range

    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.handleDateFromChange(e, newValue, previousValue) }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.handleDateToChange(e, newValue, previousValue) }\r\n />\r\n
    \r\n
    \r\n
    \r\n
     
    \r\n
     
    \r\n
    \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default reduxForm({\r\n form: 'customDateForm'\r\n})(MICustomDateRange);\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { Chart, ArcElement, BarElement, CategoryScale, LinearScale, Legend, Tooltip } from 'chart.js';\r\nimport { Pie, Bar } from 'react-chartjs-2';\r\nimport moment from 'moment';\r\n\r\nimport {\r\n showMiDetailsModal,\r\n hideMiDetailsModal,\r\n resetMiDashboard,\r\n getMiDashboardXls,\r\n} from 'actions';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\n\r\nChart.register(ArcElement, BarElement, CategoryScale, LinearScale, Legend, Tooltip);\r\n\r\nclass MIResults extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n clients: PropTypes.arrayOf(PropTypes.shape()),\r\n data: PropTypes.shape(),\r\n trendAnalysisType: PropTypes.string.isRequired,\r\n isGettingMiDashboardXls: PropTypes.bool.isRequired\r\n };\r\n\r\n static defaultProps = {\r\n data: null,\r\n clients: null\r\n };\r\n\r\n static getColourArray(arraySize) {\r\n const colors = [];\r\n const palette = Chart.defaults.backgroundColor;\r\n for (let i = 0; i < arraySize; i += 1) {\r\n const color = palette[i];\r\n colors.push(color);\r\n }\r\n return colors;\r\n }\r\n\r\n static getGridInterval(maxDataPoint) {\r\n if (maxDataPoint <= 100) {\r\n return 5;\r\n }\r\n if (maxDataPoint <= 1000) {\r\n return 50;\r\n }\r\n return Math.round(Math.ceil(maxDataPoint / 5) / 10) * 10;\r\n }\r\n\r\n /* eslint-disable no-underscore-dangle */\r\n static toggleDataSeries(instance, dataset, dataSeriesLabel) {\r\n if (!instance || !dataset) {\r\n return;\r\n }\r\n\r\n const isHiddenNow = dataset.hidden != null && dataset.hidden;\r\n const datasetLength = instance._metasets.length;\r\n dataset.hidden = !isHiddenNow;\r\n\r\n if (datasetLength > 0) {\r\n for (let i = 2; i < datasetLength; i += 1) {\r\n const currentSet = instance._metasets[i];\r\n if (currentSet && currentSet.label === dataSeriesLabel) {\r\n currentSet.hidden = !isHiddenNow;\r\n }\r\n }\r\n }\r\n\r\n instance.update();\r\n }\r\n /* eslint-enable no-underscore-dangle */\r\n\r\n stackedChart = null;\r\n\r\n pieChart = null;\r\n\r\n trendChart = null;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.openMiDetailsModal = this.openMiDetailsModal.bind(this);\r\n this.closeMiDetailsModal = this.closeMiDetailsModal.bind(this);\r\n\r\n Chart.defaults.backgroundColor = ['#8DB4E2', '#B8CCE4', '#E6B8B7', '#D8E4BC', '#CCC0DA',\r\n '#B7DEE8', '#FCD5B4', '#538DD5', '#95B3D7', '#DA9694',\r\n '#C4D79B', '#B1A0C7', '#92CDDC', '#FABF8F', '#16365C',\r\n '#366092', '#963634', '#76933C', '#60497A', '#31869B',\r\n '#E26B0A', '#00B0F0', '#0070C0', '#C00000', '#92D050',\r\n '#00B050', '#7030A0', '#FFC000', '#0F243E', '#244062',\r\n '#632523', '#4F6228', '#403151', '#215967', '#974706',\r\n '#FF0000', '#002060'\r\n ];\r\n\r\n Chart.defaults.borderColor = Chart.defaults.backgroundColor;\r\n\r\n this.state = {\r\n graphOptions: {\r\n colors: {\r\n valid: '#26bc6a',\r\n invalid: '#ff2626',\r\n inProgress: '#8DB4E2',\r\n axesLabels: '#4c4c4c'\r\n }\r\n },\r\n filter: {\r\n formType: null\r\n },\r\n showValidInvalidHint: false\r\n };\r\n }\r\n\r\n componentWillUnmount() {\r\n const { dispatch } = this.props;\r\n dispatch(resetMiDashboard());\r\n }\r\n\r\n /* eslint-disable no-underscore-dangle */\r\n onStackedBarLegendClick(event, elem) {\r\n const instance = this.stackedChart;\r\n if (!instance) {\r\n return;\r\n }\r\n\r\n const dataset = instance._metasets[elem.datasetIndex];\r\n if (!dataset) {\r\n return;\r\n }\r\n\r\n MIResults.toggleDataSeries(instance, dataset, elem.text);\r\n }\r\n\r\n onTrendBarLegendClick(event, elem) {\r\n const instance = this.trendChart;\r\n if (!instance) {\r\n return;\r\n }\r\n\r\n const dataset = instance._metasets[elem.datasetIndex];\r\n if (!dataset) {\r\n return;\r\n }\r\n\r\n MIResults.toggleDataSeries(instance, dataset, elem.text);\r\n }\r\n\r\n onPieChartSliceClick(event, elem) {\r\n if (elem && elem[0] && elem[0].index >= 0) {\r\n this.pieChart._metasets.forEach((dataset) => {\r\n dataset.data.forEach((dataItem, i) => {\r\n if (dataset.data[i]) {\r\n dataset.data[i].active = false;\r\n }\r\n });\r\n });\r\n this.setState({ filter: {\r\n formType: this.pieChart.boxes[0].legendItems[elem[0].index].text\r\n } });\r\n }\r\n }\r\n /* eslint-enable no-underscore-dangle */\r\n\r\n onDownloadExcelReportClick() {\r\n const { dispatch, data } = this.props;\r\n dispatch(getMiDashboardXls(data.clientId, data.from, data.to, data.trendAnalysis, data.includeDeletedForms));\r\n }\r\n\r\n getPieChartData() {\r\n const { data } = this.props;\r\n const { filter } = this.state;\r\n\r\n let labels = data != null && data.formTypes != null && data.formTypes.map(a => a != null && a.description);\r\n let dataPoints = data != null && data.formTypes != null && data.formTypes.map(a => a != null && a.total);\r\n\r\n if (filter != null && filter.formType != null) {\r\n labels = labels != null && labels.filter(a => a === filter.formType);\r\n dataPoints = data != null && data.formTypes != null && data.formTypes.filter(a => a.description === filter.formType).map(a => a != null && a.total);\r\n }\r\n\r\n const graphData = {\r\n labels,\r\n datasets: [{\r\n data: dataPoints,\r\n backgroundColor: MIResults.getColourArray(dataPoints.length)\r\n }]\r\n };\r\n return graphData;\r\n }\r\n\r\n getStackedBarData() {\r\n const { data } = this.props;\r\n const { graphOptions, filter } = this.state;\r\n\r\n let labels = data != null && data.formTypes != null && data.formTypes.map(a => a.description);\r\n let dataValidPoints = data != null && data.formTypes != null && data.formTypes.map(a => a.valid);\r\n let dataInvalidOrExpiredPoints = data != null && data.formTypes != null && data.formTypes.map(a => a.invalid || a.expired);\r\n\r\n if (filter != null && filter.formType != null) {\r\n labels = labels != null && labels.filter(a => a === filter.formType);\r\n dataValidPoints = data != null && data.formTypes != null && data.formTypes.filter(a => a.description === filter.formType)\r\n .map(a => a != null && a.valid);\r\n dataInvalidOrExpiredPoints = data != null && data.formTypes != null && data.formTypes.filter(a => a.description === filter.formType)\r\n .map(a => a != null && (a.invalid || a.expired));\r\n }\r\n\r\n const graphData = {\r\n labels,\r\n datasets: [\r\n {\r\n label: 'Valid (Non Expired)',\r\n backgroundColor: graphOptions.colors.valid,\r\n borderColor: graphOptions.colors.valid,\r\n borderWidth: 1,\r\n data: dataValidPoints\r\n },\r\n {\r\n label: 'Invalid/Expired',\r\n backgroundColor: graphOptions.colors.invalid,\r\n borderColor: graphOptions.colors.invalid,\r\n borderWidth: 1,\r\n data: dataInvalidOrExpiredPoints\r\n }\r\n ]\r\n };\r\n return graphData;\r\n }\r\n\r\n getTrendAnalysisData() {\r\n const { data } = this.props;\r\n const { graphOptions, filter } = this.state;\r\n\r\n const labels = [];\r\n const dates = [];\r\n const dataset = [];\r\n\r\n // Gets Trend Date - Equates to Stacks\r\n if (data != null && data.formTypes != null && data.formTypes.length > 0) {\r\n for (let f = 0; f < data.formTypes.length; f += 1) {\r\n const form = data.formTypes[f];\r\n\r\n if (!filter || !filter.formType || filter.formType === form.description) {\r\n if (form.trendData != null) {\r\n for (let t = 0; t < form.trendData.length; t += 1) {\r\n const trend = form.trendData[t];\r\n const { label } = trend;\r\n if (!dates.includes(label)) {\r\n dates.push(label);\r\n }\r\n if (!labels.includes(`${ label };${ form.description }`)) {\r\n labels.push(`${ label };${ form.description }`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n const valid = {\r\n label: 'Valid (Non Expired)',\r\n backgroundColor: graphOptions.colors.valid,\r\n borderColor: graphOptions.colors.valid,\r\n borderWidth: 1,\r\n data: Array(labels.length).fill(0)\r\n };\r\n const invalid = {\r\n label: 'Invalid/Expired',\r\n backgroundColor: graphOptions.colors.invalid,\r\n borderColor: graphOptions.colors.invalid,\r\n borderWidth: 1,\r\n data: Array(labels.length).fill(0)\r\n };\r\n const inProgress = {\r\n label: 'In Progress',\r\n backgroundColor: graphOptions.colors.inProgress,\r\n borderColor: graphOptions.colors.inProgress,\r\n borderWidth: 1,\r\n data: Array(labels.length).fill(0)\r\n };\r\n\r\n if (data != null && data.formTypes != null && data.formTypes.length > 0) {\r\n for (let f = 0; f < data.formTypes.length; f += 1) {\r\n const form = data.formTypes[f];\r\n if (!filter || !filter.formType || filter.formType === form.description) {\r\n if (form.trendData != null) {\r\n for (let t = 0; t < form.trendData.length; t += 1) {\r\n const trend = form.trendData[t];\r\n const { label } = trend;\r\n if (labels.includes(`${ label };${ form.description }`)) {\r\n if (trend.currentStage && trend.currentStage === 'Complete') {\r\n if (trend.valid && !trend.expired) {\r\n valid.data[labels.indexOf(`${ label };${ form.description }`)] += trend.total;\r\n } else {\r\n invalid.data[labels.indexOf(`${ label };${ form.description }`)] += trend.total;\r\n }\r\n } else {\r\n inProgress.data[labels.indexOf(`${ label };${ form.description }`)] += trend.total;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // If changing the number of total datasets make sure to update the generateLabels() in order to update the items in the legend too\r\n dataset.push(valid);\r\n dataset.push(invalid);\r\n dataset.push(inProgress);\r\n\r\n const graphData = {\r\n labels,\r\n datasets: dataset\r\n };\r\n\r\n return graphData;\r\n }\r\n\r\n getChartHolderStyle(baseClass) {\r\n const { trendAnalysisType } = this.props;\r\n return `${ baseClass } ${ (!trendAnalysisType || trendAnalysisType === 'none') ? 'full-height' : '' }`;\r\n }\r\n\r\n getSelectedClientName() {\r\n const { clients, data } = this.props;\r\n\r\n if (clients && clients.length > 0) {\r\n for (let c = 0; c < clients.length; c += 1) {\r\n if (clients[c].key === data.clientId) {\r\n return clients[c].value;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n hasData() {\r\n const { data } = this.props;\r\n return data != null && data.formTypes != null && data.formTypes.length > 0;\r\n }\r\n\r\n hasTrendData() {\r\n const { data } = this.props;\r\n if (data != null && data.formTypes != null && data.formTypes.length > 0) {\r\n for (let f = 0; f < data.formTypes.length; f += 1) {\r\n const form = data.formTypes[f];\r\n if (form.trendData != null && form.trendData.length > 0) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n openMiDetailsModal() {\r\n const { dispatch } = this.props;\r\n dispatch(showMiDetailsModal());\r\n }\r\n\r\n closeMiDetailsModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideMiDetailsModal());\r\n }\r\n\r\n resetDashboard() {\r\n const { dispatch } = this.props;\r\n dispatch(resetMiDashboard());\r\n }\r\n\r\n /* eslint-disable no-underscore-dangle */\r\n resetFilter() {\r\n this.setState({ filter: { formType: null } });\r\n this.pieChart._metasets.forEach((dataset) => {\r\n dataset.data.forEach((dataItem, i) => {\r\n if (dataset.data[i]) {\r\n dataset.data[i].active = true;\r\n }\r\n });\r\n });\r\n }\r\n /* eslint-enable no-underscore-dangle */\r\n\r\n render() {\r\n const { clients, trendAnalysisType, isGettingMiDashboardXls, data } = this.props;\r\n const { graphOptions, filter, showValidInvalidHint } = this.state;\r\n\r\n const stackedData = this.getStackedBarData();\r\n const maxStackedDataPoint = stackedData != null && stackedData.datasets != null && Math.max(...stackedData.datasets.map(o => o != null && Math.max(...o.data)));\r\n const stackedGridInterval = MIResults.getGridInterval(maxStackedDataPoint);\r\n let maxTrendDataPoint = 0;\r\n let trendData = null;\r\n let trendGridInterval = 5;\r\n if (trendAnalysisType !== 'none') {\r\n trendData = this.getTrendAnalysisData();\r\n maxTrendDataPoint = trendData != null && trendData.datasets != null && Math.max(...trendData.datasets.map(o => o != null && Math.max(...o.data)));\r\n trendGridInterval = MIResults.getGridInterval(maxTrendDataPoint);\r\n }\r\n\r\n const pieOptions = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n plugins: { legend: { position: 'right' } },\r\n onClick: (event, elem) => this.onPieChartSliceClick(event, elem)\r\n };\r\n\r\n if (filter.formType !== null) {\r\n pieOptions.legend = false;\r\n }\r\n\r\n const barOptions = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n plugins: {\r\n legend: {\r\n onClick: (event, elems) => this.onStackedBarLegendClick(event, elems)\r\n },\r\n },\r\n scales: {\r\n x: {\r\n stacked: true,\r\n title: 'Form Types',\r\n font: {\r\n size: 14,\r\n style: 'bold'\r\n },\r\n ticks: {\r\n color: graphOptions.colors.axesLabels,\r\n callback(value, index) {\r\n const context = this;\r\n const label = typeof value === 'number' ? context.getLabelForValue(value) : value;\r\n return label.split(' ');\r\n },\r\n },\r\n },\r\n y: {\r\n stacked: true,\r\n title: '# Forms',\r\n ticks: {\r\n stepSize: stackedGridInterval,\r\n color: graphOptions.colors.axesLabels\r\n },\r\n font: {\r\n size: 14,\r\n style: 'bold'\r\n },\r\n }\r\n }\r\n };\r\n\r\n const trendOptions = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n plugins: {\r\n legend: {\r\n onClick: (event, elems) => this.onTrendBarLegendClick(event, elems)\r\n }\r\n },\r\n scales: {\r\n x: {\r\n stacked: true,\r\n title: 'Form Types',\r\n font: {\r\n size: 14,\r\n style: 'bold'\r\n },\r\n ticks: {\r\n color: graphOptions.colors.axesLabels,\r\n callback(value, index) {\r\n const context = this;\r\n const label = typeof value === 'number' ? context.getLabelForValue(value) : value;\r\n return [label.split(';')[0], label.split(';')[1]];\r\n },\r\n }\r\n },\r\n y: {\r\n stacked: true,\r\n title: '# Forms',\r\n font: {\r\n size: 14,\r\n style: 'bold'\r\n },\r\n ticks: {\r\n stepSize: trendGridInterval,\r\n fontColor: graphOptions.colors.axesLabels\r\n }\r\n }\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n { clients && clients.length > 0 &&

    { this.getSelectedClientName() } MI Report

    \r\n

    Statistics may include draft Online forms but do not cover forms not yet checked for validation results. Forms not created in the given period will not appear in the metrics below.

    }\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Client Code

    \r\n
    { data.clientCode }
    \r\n
    \r\n
    \r\n

    From Validation Date

    \r\n
    { moment(data.from).format('MMM DD, YYYY') }
    \r\n
    \r\n
    \r\n

    To Validation Date

    \r\n
    { moment(data.to).format('MMM DD, YYYY') }
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    All Forms Created

    \r\n
    { data.total }
    \r\n
    \r\n
    \r\n

    Forms Created then Expired

    \r\n
    { data.expired }
    \r\n
    \r\n
    \r\n

    Valid (Not Expired) Complete Forms

    \r\n
    { data.valid }
    \r\n
    \r\n
    \r\n

    Invalid Complete Forms

    \r\n
    { data.invalid }
    \r\n
    \r\n
    \r\n

    In Progress Forms

    \r\n
    { data.inProgress }
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Online Forms

    \r\n
    { data.onlineTotal }
    \r\n
    \r\n
    \r\n

    Scanned Forms

    \r\n
    { data.scannedTotal }
    \r\n
    \r\n
    \r\n

    Digital Entry Forms

    \r\n
    { data.digitalEntryTotal }
    \r\n
    \r\n
    \r\n

    Batch Upload Forms

    \r\n
    { data.batchTotal }
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { filter.formType != null\r\n && }\r\n

    All Forms by Form Type

    \r\n { !this.hasData() &&

    No Data to Show

    }\r\n { this.hasData() &&
    { this.pieChart = c; } }\r\n data={ this.getPieChartData() }\r\n options={ pieOptions }\r\n />
    }\r\n
    \r\n
    \r\n

    \r\n Valid (Non Expired) vs Invalid/Expired Forms by Form Type\r\n \r\n
    \r\n

    Forms validated against multiple account contexts are counted once; where a form is invalid for at least one account context, the form will be added to the invalid count.

    \r\n
    \r\n

    \r\n { !this.hasData() &&

    No Data to Show

    }\r\n { this.hasData() &&
    { this.stackedChart = c; } }\r\n data={ stackedData }\r\n options={ barOptions }\r\n />
    }\r\n
    \r\n { trendAnalysisType !== 'none' &&
    \r\n

    Trend Analysis

    \r\n { !this.hasTrendData() &&

    No Data to Show

    }\r\n { this.hasTrendData() &&
    { this.trendChart = c; } }\r\n data={ trendData }\r\n options={ trendOptions }\r\n />
    }\r\n
    }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n settings: {\r\n clients,\r\n }\r\n },\r\n forms: {\r\n isMiDetailsModalShown\r\n }\r\n } = state;\r\n\r\n return {\r\n clients,\r\n isMiDetailsModalShown\r\n };\r\n}\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(MIResults);\r\n\r\n// export default MIResults;\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { PropTypes } from 'prop-types';\r\nimport moment from 'moment';\r\nimport Modal from 'react-modal';\r\n\r\nimport {\r\n showCustomDateRangeModal,\r\n hideCustomDateRangeModal,\r\n getMiDashboard,\r\n resetMiDashboard\r\n} from 'actions';\r\n\r\nimport MICustomDateRange from 'components/MIDashboard/MICustomDateRange';\r\nimport MIResults from 'components/MIDashboard/MiResults';\r\nimport withContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary';\r\n\r\nModal.setAppElement('#root');\r\n\r\nclass MIDashboard extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n isDateRangePickerShown: PropTypes.bool.isRequired,\r\n isGettingMiDashboard: PropTypes.bool.isRequired,\r\n isGettingMiDashboardXls: PropTypes.bool.isRequired,\r\n dateRangeFrom: PropTypes.string.isRequired,\r\n dateRangeTo: PropTypes.string.isRequired,\r\n miData: PropTypes.shape(),\r\n clients: PropTypes.arrayOf(PropTypes.shape()),\r\n selectedClient: PropTypes.shape({\r\n key: PropTypes.number,\r\n value: PropTypes.string\r\n }),\r\n error: PropTypes.shape({\r\n code: PropTypes.number,\r\n message: PropTypes.string\r\n }),\r\n };\r\n\r\n static defaultProps = {\r\n miData: null,\r\n error: null,\r\n clients: [],\r\n selectedClient: null\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selectedDatePeriod: '',\r\n trendAnalysisType: 'none',\r\n includeDeletedForms: false,\r\n clientId: props.selectedClient != null ? props.selectedClient.key : null,\r\n errorMessage: null,\r\n disableSubmit: false\r\n };\r\n\r\n this.initialState = this.state;\r\n\r\n this.applyCustomDateRangeModal = this.applyCustomDateRangeModal.bind(this);\r\n this.onRunReportClick = this.onRunReportClick.bind(this);\r\n }\r\n\r\n /* eslint-disable-next-line camelcase */\r\n UNSAFE_componentWillReceiveProps(newProps) {\r\n const { clients, error, miData, dateRangeFrom, dateRangeTo } = this.props;\r\n const { clientId } = this.state;\r\n\r\n if (clients != null && clients.length === 1 && clientId === null) {\r\n this.setState({ clientId: clients[0].key });\r\n }\r\n\r\n if (newProps.error && (error === null || error.code !== newProps.error.code)) {\r\n this.setState({ errorMessage: newProps.error.message });\r\n } else if (newProps.miData != null && newProps.miData.total === 0) {\r\n this.setState({ errorMessage: 'No forms were submitted for validation during this period.' });\r\n } else {\r\n this.setState({ errorMessage: null });\r\n }\r\n\r\n if (new Date(dateRangeFrom) > new Date(dateRangeTo)) {\r\n this.setState({ errorMessage: 'The \"From\" date must be before the \"To\" date.', disableSubmit: true });\r\n } else {\r\n this.setState({ disableSubmit: false });\r\n }\r\n\r\n if (miData != null && newProps.miData == null) {\r\n this.setState(this.initialState);\r\n }\r\n }\r\n /* eslint-enable camelcase */\r\n\r\n componentWillUnmount() {\r\n this.resetForm();\r\n }\r\n\r\n onCloseErrorMessage() {\r\n this.setState({ errorMessage: null });\r\n }\r\n\r\n onDatePeriodChange(event) {\r\n if (event != null && event.target != null && event.target.value === 'custom') {\r\n this.openCustomDateRangeModal();\r\n }\r\n this.setState({ selectedDatePeriod: event.target.value, trendAnalysisType: 'none', errorMessage: null, disableSubmit: false });\r\n }\r\n\r\n onTrendAnalysisChange(event) {\r\n this.setState({ trendAnalysisType: event.target.value });\r\n }\r\n\r\n onIncludeDeleted(event) {\r\n this.setState({ includeDeletedForms: event.target.checked });\r\n }\r\n\r\n onSelectedClientChange(event) {\r\n this.setState({ errorMessage: null, clientId: (event != null && event.target != null && event.target.value !== '') ? parseInt(event.target.value, 10) : null });\r\n }\r\n\r\n onRunReportClick() {\r\n const { dispatch, dateRangeFrom, dateRangeTo } = this.props;\r\n const { selectedDatePeriod, trendAnalysisType, clientId, includeDeletedForms } = this.state;\r\n\r\n let from = moment();\r\n let to = moment();\r\n let daystoWeekMonday = 0 - (1 - from.isoWeekday());\r\n\r\n switch (selectedDatePeriod) {\r\n case 'today':\r\n break;\r\n case 'thisweek':\r\n from = from.subtract(daystoWeekMonday, 'days');\r\n to = to.subtract(daystoWeekMonday, 'days').add('days', 6);\r\n break;\r\n case 'lastweek':\r\n daystoWeekMonday += 7;\r\n from = from.subtract(daystoWeekMonday, 'days');\r\n to = to.subtract(daystoWeekMonday, 'days').add('days', 6);\r\n break;\r\n case 'thismonth':\r\n from = moment([from.year(), from.month()]);\r\n to = moment(from).endOf('month');\r\n break;\r\n case 'lastcalendarmonth':\r\n from = from.subtract(1, 'month');\r\n from = moment([from.year(), from.month()]);\r\n to = moment(from).endOf('month');\r\n break;\r\n case 'thisquarter':\r\n from = from.quarter(from.quarter()).startOf('quarter');\r\n to = to.quarter(to.quarter()).endOf('quarter');\r\n break;\r\n case 'lastsixmonths':\r\n from = from.subtract(6, 'month');\r\n break;\r\n case 'thisyear':\r\n from = moment([from.year()]);\r\n to = moment(from).endOf('year');\r\n break;\r\n case 'lastyear':\r\n from = moment([from.year() - 1]);\r\n to = moment(from).endOf('year');\r\n break;\r\n case 'custom':\r\n from = moment(dateRangeFrom, 'MMM DD, YYYY');\r\n to = moment(dateRangeTo, 'MMM DD, YYYY');\r\n\r\n if (!from.isValid() || !to.isValid()) {\r\n this.setState({ errorMessage: 'The custom date range contains invalid dates, please correct and try again.' });\r\n }\r\n\r\n if (to < from) {\r\n this.setState({ errorMessage: 'The \"from date\" cannot be after the \"to date\" in your custom date range, please correct and try again.' });\r\n }\r\n break;\r\n default:\r\n return;\r\n }\r\n\r\n if (trendAnalysisType === null || typeof (trendAnalysisType) === 'undefined') {\r\n this.setState({ trendAnalysisType: 'none' });\r\n dispatch(getMiDashboard(clientId, from.format('YYYY-MM-DD'), to.format('YYYY-MM-DD'), 'none', includeDeletedForms));\r\n } else {\r\n dispatch(getMiDashboard(clientId, from.format('YYYY-MM-DD'), to.format('YYYY-MM-DD'), trendAnalysisType, includeDeletedForms));\r\n }\r\n }\r\n\r\n editDateRange() {\r\n this.openCustomDateRangeModal();\r\n this.setState({ selectedDatePeriod: 'custom', trendAnalysisType: 'none' });\r\n }\r\n\r\n checkDaysInCustomDateRange(trend) {\r\n const { dateRangeFrom, dateRangeTo } = this.props;\r\n\r\n const from = moment(dateRangeFrom, 'MMM DD, YYYY');\r\n const to = moment(dateRangeTo, 'MMM DD, YYYY');\r\n const diff = to.diff(from, 'days');\r\n\r\n let returnVal = false;\r\n if (diff <= 7 && trend === 'day') {\r\n returnVal = true;\r\n } else if (diff > 7 && diff <= 30 && (trend === 'week' || trend === 'day')) {\r\n return true;\r\n } else if (diff > 30 && diff <= 365 && (trend === 'week' || trend === 'month')) {\r\n return true;\r\n } else if (diff > 365 && (trend === 'year' || trend === 'month')) {\r\n return true;\r\n }\r\n return returnVal;\r\n }\r\n\r\n resetForm() {\r\n const { dispatch } = this.props;\r\n dispatch(resetMiDashboard());\r\n }\r\n\r\n isTrendOptionShown(trend) {\r\n const { selectedDatePeriod } = this.state;\r\n\r\n if (!selectedDatePeriod) {\r\n return false;\r\n }\r\n\r\n if (selectedDatePeriod === 'custom') {\r\n return this.checkDaysInCustomDateRange(trend);\r\n }\r\n\r\n switch (trend) {\r\n case 'day':\r\n return selectedDatePeriod.indexOf('week') > -1\r\n || (selectedDatePeriod.indexOf('month') > -1 && selectedDatePeriod.indexOf('sixmonths') === -1);\r\n case 'week':\r\n return selectedDatePeriod.indexOf('month') > -1\r\n || selectedDatePeriod.indexOf('year') > -1 || selectedDatePeriod.indexOf('quarter') > -1;\r\n case 'month':\r\n return selectedDatePeriod.indexOf('year') > -1\r\n || selectedDatePeriod.indexOf('sixmonths') > -1 || selectedDatePeriod.indexOf('quarter') > -1;\r\n case 'year':\r\n return false;\r\n default:\r\n return selectedDatePeriod.indexOf('day') === -1;\r\n }\r\n }\r\n\r\n hasData() {\r\n const { miData } = this.props;\r\n return miData != null && miData.total != null && miData.total > 0;\r\n }\r\n\r\n openCustomDateRangeModal() {\r\n const { dispatch } = this.props;\r\n dispatch(showCustomDateRangeModal());\r\n }\r\n\r\n cancelCustomDateRangeModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideCustomDateRangeModal('', ''));\r\n }\r\n\r\n applyCustomDateRangeModal(fromDate, toDate) {\r\n const { dispatch } = this.props;\r\n dispatch(hideCustomDateRangeModal(fromDate, toDate));\r\n }\r\n\r\n isReportingPeriodSelected() {\r\n const { dateRangeFrom, dateRangeTo } = this.props;\r\n const { selectedDatePeriod } = this.state;\r\n\r\n return (selectedDatePeriod !== '' && selectedDatePeriod !== 'custom')\r\n || (selectedDatePeriod === 'custom' && dateRangeFrom !== '' && dateRangeTo !== '');\r\n }\r\n\r\n CustomRangeOptionText() {\r\n const { dateRangeFrom, dateRangeTo } = this.props;\r\n const { selectedDatePeriod } = this.state;\r\n\r\n if (selectedDatePeriod === 'custom' && dateRangeFrom && dateRangeTo) {\r\n return `Custom Range ( ${ dateRangeFrom } to ${ dateRangeTo } )`;\r\n }\r\n return 'Custom Range';\r\n }\r\n\r\n render() {\r\n const {\r\n isDateRangePickerShown,\r\n isGettingMiDashboard,\r\n isGettingMiDashboardXls,\r\n miData,\r\n clients\r\n } = this.props;\r\n const { trendAnalysisType, errorMessage, selectedDatePeriod, clientId, disableSubmit, includeDeletedForms } = this.state;\r\n\r\n if (!this.hasData() || isGettingMiDashboard) {\r\n return (\r\n
    \r\n
    \r\n

    Welcome to the Management Information Dashboard

    \r\n

    \r\n Select from the drop downs the period & trend for which you would like the report\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.onSelectedClientChange(e) }\r\n disabled={ isGettingMiDashboard || (clients != null && clients.length === 1) }\r\n >\r\n { clients != null && clients.map(client => client != null && ) }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { this.onDatePeriodChange(event); } }\r\n disabled={ isGettingMiDashboard }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n { selectedDatePeriod === 'custom' &&
    \r\n this.editDateRange() }\r\n >\r\n (Edit)\r\n \r\n
    }\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { this.onTrendAnalysisChange(event); } }\r\n disabled={ isGettingMiDashboard }\r\n >\r\n \r\n { this.isTrendOptionShown('day') && }\r\n { this.isTrendOptionShown('week') && }\r\n { this.isTrendOptionShown('month') && }\r\n { this.isTrendOptionShown('year') && }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {isGettingMiDashboard && }\r\n Run Report\r\n \r\n
    \r\n
    \r\n { (errorMessage) &&
    \r\n
    \r\n this.onCloseErrorMessage() }\r\n />\r\n { errorMessage }\r\n
    \r\n
    }\r\n
    \r\n this.cancelCustomDateRangeModal() }\r\n onClose={ this.applyCustomDateRangeModal }\r\n />\r\n
    \r\n );\r\n } if (this.hasData() && !isGettingMiDashboard) {\r\n return (\r\n \r\n );\r\n }\r\n return '';\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n let initialClientId = '';\r\n const {\r\n auth: {\r\n settings: {\r\n clients,\r\n selectedClient\r\n }\r\n },\r\n reports: {\r\n isDateRangePickerShown,\r\n dateRangeFrom,\r\n dateRangeTo,\r\n isGettingMiDashboard,\r\n isGettingMiDashboardXls,\r\n miData,\r\n error\r\n }\r\n } = state;\r\n\r\n if (state.auth.settings.selectedClient) {\r\n initialClientId = state.auth.settings.selectedClient.key;\r\n } else if (state.auth.settings.clients && state.auth.settings.clients.length === 1) {\r\n initialClientId = state.auth.settings.clients[0].id;\r\n }\r\n\r\n return {\r\n clients,\r\n selectedClient,\r\n isDateRangePickerShown,\r\n dateRangeFrom,\r\n dateRangeTo,\r\n isGettingMiDashboard,\r\n isGettingMiDashboardXls,\r\n miData,\r\n error,\r\n initialValues: {\r\n clientId: initialClientId,\r\n }\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withContainerErrorBoundary(MIDashboard, 'MIDashboard'));\r\n","import React from 'react';\r\n\r\nconst Introduction = () => (\r\n
    \r\n

    Dear Customer,

    \r\n

    \r\n As you may be aware, governments around the world have introduced laws to help protect the integrity of tax systems.\r\n Under these laws, we are required to collect and report certain tax information about our customers to the relevant tax authorities.\r\n

    \r\n

    \r\n These laws are known as the Foreign Account Tax Compliance Act (‘FATCA’) and Common Reporting Standard (‘the CRS’).\r\n You can read more about FATCA and CRS requirements here.\r\n

    \r\n

    \r\n To that end, we request that you respond to the following questions which will ensure that we hold accurate and up to date information about your tax\r\n residency and can direct you to the relevant self-certification forms that you will be required to complete, electronically sign and submit.\r\n

    \r\n

    Should you have any technical question while completing this module, please visit the “help” menu by clicking on the “help” button at the bottom left hand corner of the screen.

    \r\n

    Should you have any further question on how FATCA and CRS laws may affect you, please speak to your tax advisor as we do not provide tax advice.

    \r\n

    To begin the process, please click “Next” in the bottom right corner of your screen.

    \r\n
    \r\n);\r\n\r\nexport default Introduction;\r\n","import React from 'react';\r\n\r\nimport {\r\n NestedArrayObjectField,\r\n NestedArrayStringField,\r\n NestedArraySelectField\r\n} from 'components/Common/Inputs';\r\n\r\n/* eslint-disable react/no-array-index-key */\r\n\r\nconst TINQuestions = () => (\r\n
    \r\n

    Please provide your Tax Identification Number (TIN) against all the countries you have confirmed tax residency.

    \r\n

    If a TIN is unavailable please select the appropriate reason A, B or C:

    \r\n
    \r\n

    Reason A

    \r\n

    The country where the Account Holder is liable to pay tax does not issue TINs to its residents.

    \r\n
    \r\n
    \r\n

    Reason B

    \r\n
    \r\n

    The Account Holder is otherwise unable to obtain a TIN or equivalent number. Please explain why you are unable to obtain a TIN in the below table if you have selected this reason.

    \r\n
    \r\n
    \r\n
    \r\n

    Reason C

    \r\n
    \r\n

    No TIN is required. Note - Only select this reason if the authorities of the country of tax residence entered below do not require the TIN to be disclosed.

    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Array(3).fill(0).map((el, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
    Country of tax residenceTINIf no TIN available select Reason A, B or C
    { index + 1 }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    \r\n Please explain in the following boxes why you are unable to obtain a TIN if you selected Reason B above.\r\n

    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Array(3).fill(0).map((el, index) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
    { index + 1 }\r\n \r\n
    \r\n
    \r\n
    \r\n);\r\n/* eslint-enable react/no-array-index-key */\r\n\r\nexport default TINQuestions;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { reduxForm, Field, formValueSelector, change } from 'redux-form';\r\n\r\nimport {\r\n TextInput,\r\n SelectInput\r\n} from 'components/Common/Inputs';\r\nimport RadioTableGroup from 'components/Common/Inputs/RadioTableGroup';\r\nimport Introduction from 'components/Questionnaire/Introduction';\r\nimport TINQuestions from 'components/Questionnaire/TINQuestions';\r\n\r\nclass QuestionnaireForm extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n handleSubmit: PropTypes.func.isRequired,\r\n isSubmittingAnswers: PropTypes.bool,\r\n questionSet: PropTypes.arrayOf(PropTypes.shape({\r\n question: PropTypes.string,\r\n fieldName: PropTypes.string,\r\n fieldType: PropTypes.string.isRequired,\r\n })).isRequired,\r\n taxResidency: PropTypes.arrayOf(PropTypes.string)\r\n };\r\n\r\n static defaultProps = {\r\n isSubmittingAnswers: false,\r\n taxResidency: null\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n currentQuestion: 0\r\n };\r\n }\r\n\r\n /* eslint-disable-next-line camelcase */\r\n UNSAFE_componentWillReceiveProps(nextProps) {\r\n const { dispatch, taxResidency } = this.props;\r\n\r\n if (taxResidency === nextProps.taxResidency) {\r\n return;\r\n }\r\n\r\n if (nextProps.taxResidency && nextProps.taxResidency.length > 0) {\r\n for (let i = 0; i < 3; i += 1) {\r\n if (nextProps.taxResidency[i]) {\r\n dispatch(change('questionnaire-form', `accountHolderTaxInfo[${ i }].countryOfTaxResidence`, nextProps.taxResidency[i]));\r\n } else {\r\n dispatch(change('questionnaire-form', `accountHolderTaxInfo[${ i }].countryOfTaxResidence`, ''));\r\n }\r\n }\r\n }\r\n }\r\n\r\n totalQuestions() {\r\n const { questionSet } = this.props;\r\n return questionSet ? questionSet.length : 0;\r\n }\r\n\r\n nextQuestionClick() {\r\n const { currentQuestion } = this.state;\r\n\r\n if (currentQuestion !== this.totalQuestions()) {\r\n this.setState({ currentQuestion: currentQuestion + 1 });\r\n }\r\n }\r\n\r\n previousQuestionClick() {\r\n const { currentQuestion } = this.state;\r\n\r\n if (currentQuestion !== 1) {\r\n this.setState({ currentQuestion: currentQuestion - 1 });\r\n }\r\n }\r\n\r\n render() {\r\n const { title, isSubmittingAnswers, questionSet, handleSubmit } = this.props;\r\n const { currentQuestion } = this.state;\r\n return (\r\n
    \r\n
    \r\n

    { title }

    \r\n
    \r\n
    \r\n { /* eslint-disable react/no-array-index-key */ }\r\n { currentQuestion === 0 && }\r\n { questionSet != null && questionSet.map((question, index) => {\r\n if (question != null) {\r\n switch (question.fieldType.toLowerCase()) {\r\n case 'yesno':\r\n if (currentQuestion === index + 1) {\r\n return (
    \r\n

    { question.question }

    \r\n \r\n
    );\r\n }\r\n break;\r\n case 'text':\r\n if (currentQuestion === index + 1) {\r\n return (
    \r\n

    { question.question }

    \r\n \r\n
    );\r\n }\r\n break;\r\n case 'select':\r\n if (currentQuestion === index + 1) {\r\n return (
    \r\n

    { question.question }

    \r\n \r\n { question != null && question.options != null && question.options.map((option, oIndex) => option != null && ) }\r\n \r\n
    );\r\n }\r\n break;\r\n case 'select-multiple':\r\n if (currentQuestion === index + 1) {\r\n return (
    \r\n

    { question.question }

    \r\n \r\n { question != null && question.options != null && question.options.map((option, oIndex) => option != null && ) }\r\n \r\n
    );\r\n }\r\n break;\r\n case 'tin':\r\n if (currentQuestion === index + 1) {\r\n return (
    \r\n \r\n
    );\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n return '';\r\n }\r\n return null;\r\n }) }\r\n { /* eslint-enable react/no-array-index-key */ }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst BlankQuestionnaireReduxForm = reduxForm({\r\n form: 'questionnaire-form'\r\n})(QuestionnaireForm);\r\n\r\nconst selector = formValueSelector('questionnaire-form'); // <-- same as form name\r\n\r\nexport const BlankQuestionnaire = connect((state) => {\r\n // can select values individually\r\n const taxResidency = selector(state, 'taxResidency');\r\n return {\r\n taxResidency\r\n };\r\n})(BlankQuestionnaireReduxForm);\r\n\r\nexport default BlankQuestionnaire;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router';\r\nimport { push } from 'connected-react-router';\r\n\r\nimport {\r\n submitAnswers\r\n} from 'actions';\r\n\r\nimport { BlankQuestionnaire } from 'components/Questionnaire/BlankQuestionnaire';\r\nimport withContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary';\r\n\r\nconst countriesList = ['United States of America', 'Canada', 'United Kingdom', 'Afghanistan', 'Aland Islands', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla', 'Antarctica', 'Antigua and Barbuda', 'Argentina', 'Armenia',\r\n 'Aruba', 'Australia', 'Austria', 'Azerbaijan', 'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivia', 'Bosnia and Herzegovina', 'Botswana', 'Bouvet Island', 'Brazil',\r\n 'British Virgin Islands', 'British Indian Ocean Territory', 'Brunei Darussalam', 'Bulgaria', 'Burkina Faso', 'Burundi', 'Cambodia', 'Cameroon', 'Cape Verde', 'Cayman Islands', 'Central African Republic', 'Chad', 'Chile', 'China',\r\n 'Hong Kong, SAR China', 'Macao, SAR China', 'Christmas Island', 'Cocos (Keeling) Islands', 'Colombia', 'Comoros', 'Congo (Brazzaville)', 'Congo, (Kinshasa)', 'Cook Islands', 'Costa Rica', 'Côte d&Ivoire', 'Croatia', 'Cuba',\r\n 'Cyprus', 'Czech Republic', 'Denmark', 'Djibouti', 'Dominica', 'Dominican Republic', 'Ecuador', 'Egypt', 'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Estonia', 'Ethiopia', 'Falkland Islands (Malvinas)', 'Faroe Islands', 'Fiji',\r\n 'Finland', 'France', 'French Guiana', 'French Polynesia', 'French Southern Territories',\r\n 'Gabon', 'Gambia', 'Georgia', 'Germany', 'Ghana', 'Gibraltar', 'Greece', 'Greenland', 'Grenada', 'Guadeloupe', 'Guam', 'Guatemala', 'Guernsey', 'Guinea', 'Guinea-Bissau', 'Guyana', 'Haiti', 'Heard and Mcdonald Islands',\r\n 'Holy See (Vatican City State)', 'Honduras', 'Hungary', 'Iceland', 'India', 'Indonesia', 'Iran, Islamic Republic of', 'Iraq', 'Ireland', 'Isle of Man', 'Israel', 'Italy', 'Jamaica', 'Japan', 'Jersey', 'Jordan', 'Kazakhstan', 'Kenya',\r\n 'Kiribati', 'Korea (North)', 'Korea (South)', 'Kuwait', 'Kyrgyzstan', 'Lao PDR', 'Latvia', 'Lebanon', 'Lesotho', 'Liberia', 'Libya', 'Liechtenstein', 'Lithuania', 'Luxembourg', 'Macedonia, Republic of', 'Madagascar', 'Malawi', 'Malaysia',\r\n 'Maldives', 'Mali', 'Malta', 'Marshall Islands', 'Martinique', 'Mauritania', 'Mauritius', 'Mayotte', 'Mexico', 'Micronesia, Federated States of', 'Moldova', 'Monaco', 'Mongolia', 'Montenegro', 'Montserrat', 'Morocco', 'Mozambique',\r\n 'Myanmar', 'Namibia', 'Nauru', 'Nepal', 'Netherlands', 'Netherlands Antilles', 'New Caledonia', 'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Norfolk Island', 'Northern Mariana Islands', 'Norway', 'Oman', 'Pakistan', 'Palau',\r\n 'Palestinian Territory', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines', 'Pitcairn', 'Poland', 'Portugal', 'Puerto Rico', 'Qatar', 'Réunion', 'Romania', 'Russian Federation', 'Rwanda', 'Saint-Barthélemy', 'Saint Helena',\r\n 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint-Martin (French part)', 'Saint Pierre and Miquelon', 'Saint Vincent and Grenadines', 'Samoa', 'San Marino', 'Sao Tome and Principe', 'Saudi Arabia', 'Senegal', 'Serbia', 'Seychelles',\r\n 'Sierra Leone', 'Singapore', 'Slovakia', 'Slovenia', 'Solomon Islands', 'Somalia', 'South Africa', 'South Georgia and the South Sandwich Islands', 'South Sudan', 'Spain', 'Sri Lanka', 'Sudan', 'Suriname', 'Svalbard and Jan Mayen Islands',\r\n 'Swaziland', 'Sweden', 'Switzerland', 'Syrian Arab Republic (Syria)', 'Taiwan, Republic of China', 'Tajikistan', 'Tanzania, United Republic of', 'Thailand', 'Timor-Leste', 'Togo', 'Tokelau', 'Tonga', 'Trinidad and Tobago', 'Tunisia',\r\n 'Turkey', 'Turkmenistan', 'Turks and Caicos Islands', 'Tuvalu', 'Uganda', 'Ukraine', 'United Arab Emirates', 'US Minor Outlying Islands', 'Uruguay', 'Uzbekistan', 'Vanuatu', 'Venezuela (Bolivarian Republic)', 'Viet Nam',\r\n 'Virgin Islands, US', 'Wallis and Futuna Islands', 'Western Sahara', 'Yemen', 'Zambia', 'Zimbabwe'\r\n];\r\n\r\nclass QuestionnaireContainer extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n match: PropTypes.shape().isRequired,\r\n isSubmittingAnswers: PropTypes.bool,\r\n redirectUrl: PropTypes.string\r\n };\r\n\r\n static defaultProps = {\r\n isSubmittingAnswers: false,\r\n redirectUrl: ''\r\n };\r\n\r\n static getW9Questions() {\r\n return [{\r\n question: 'Do you own a US Passport?',\r\n fieldName: 'usPassport',\r\n fieldType: 'YesNo'\r\n },\r\n {\r\n question: 'Do you live in the USA?',\r\n fieldName: 'usResident',\r\n fieldType: 'YesNo'\r\n },\r\n {\r\n question: 'Please select all countries where you are resident for tax purposes.',\r\n fieldName: 'taxResidency',\r\n fieldType: 'Select-Multiple',\r\n lines: 10,\r\n options: countriesList },\r\n {\r\n fieldType: 'TIN'\r\n }];\r\n }\r\n\r\n static getBeneQuestions() {\r\n return [{\r\n question: 'Is the entity a US resident for the purposes of taxation?',\r\n fieldName: 'usResident',\r\n fieldType: 'YesNo'\r\n },\r\n {\r\n question: 'Does the entity have a current US residence address or US mailing address?',\r\n fieldName: 'usEntityResidentAddress',\r\n fieldType: 'YesNo'\r\n },\r\n {\r\n question: 'Does the entity have standing instructions to pay amounts to a US address or an account maintained in the US?',\r\n fieldName: 'instructionsToPaytoUsAddress',\r\n fieldType: 'YesNo'\r\n },\r\n {\r\n question: 'Does the entity have a current telephone number for the entity in the US?',\r\n fieldName: 'usTelephoneNumber',\r\n fieldType: 'YesNo'\r\n },\r\n {\r\n question: 'Does the entity have a power of attorney or signatory authority granted to a person with a US address?',\r\n fieldName: 'usPowerOfAttorney',\r\n fieldType: 'YesNo'\r\n },\r\n {\r\n question: 'Are you a Financial Institution?',\r\n fieldName: 'financialInstitution',\r\n fieldType: 'YesNo'\r\n },\r\n {\r\n question: 'Please provide you GIIN number (if any)',\r\n fieldName: 'giin',\r\n fieldType: 'Text'\r\n },\r\n {\r\n question: 'Please select all countries where the entity is resident for tax purposes.',\r\n fieldName: 'taxResidency',\r\n fieldType: 'Select-Multiple',\r\n lines: 10,\r\n options: countriesList\r\n },\r\n {\r\n fieldType: 'TIN'\r\n },\r\n {\r\n question: 'Are you also going to be transacting business which is effectively connected with the conduct of a trade or business in the United States?',\r\n fieldName: 'transactingBusinessInUs',\r\n fieldType: 'YesNo'\r\n }];\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n\r\n const { match } = this.props;\r\n const { params: { id } } = match;\r\n this.state = {\r\n id\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { dispatch, redirectUrl } = this.props;\r\n\r\n if (redirectUrl && !prevProps.redirectUrl) {\r\n dispatch(push(redirectUrl));\r\n }\r\n }\r\n\r\n handleSubmit(values) {\r\n const { dispatch } = this.props;\r\n const { id } = this.state;\r\n\r\n const formType = (id === '2') ? 'w8bene_2021' : 'w9_2018';\r\n dispatch(submitAnswers({ id, formType, questionnaire: values }));\r\n }\r\n\r\n render() {\r\n const { isSubmittingAnswers } = this.props;\r\n const { id } = this.state;\r\n\r\n return (\r\n
    \r\n this.handleSubmit(e) }\r\n questionSet={ id === '2' ? QuestionnaireContainer.getBeneQuestions() : QuestionnaireContainer.getW9Questions() }\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n questionnaire: {\r\n isSubmittingAnswers,\r\n redirectUrl\r\n }\r\n } = state;\r\n\r\n return {\r\n isSubmittingAnswers,\r\n redirectUrl\r\n };\r\n}\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps\r\n)(withContainerErrorBoundary(QuestionnaireContainer, 'Questionnaire')));\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { getSupportingDoc } from 'actions';\r\n\r\nimport NotFoundPage from 'components/Errors/NotFoundPage';\r\nimport withContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary';\r\n\r\nclass SupportingDocumentViewer extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n match: PropTypes.shape().isRequired,\r\n isFetchingSupportingDoc: PropTypes.bool,\r\n // eslint-disable-next-line\r\n supportingDocData: PropTypes.any,\r\n supportingDocContentType: PropTypes.string,\r\n getSupportingDocError: PropTypes.shape({}),\r\n supportingDocFilename: PropTypes.string\r\n };\r\n\r\n static defaultProps = {\r\n isFetchingSupportingDoc: false,\r\n supportingDocContentType: 'application/pdf',\r\n supportingDocData: null,\r\n getSupportingDocError: null,\r\n supportingDocFilename: null\r\n };\r\n\r\n componentDidMount() {\r\n const { dispatch, match } = this.props;\r\n const { params: { docId } } = match;\r\n dispatch(getSupportingDoc(docId));\r\n }\r\n\r\n render() {\r\n const {\r\n isFetchingSupportingDoc,\r\n supportingDocContentType,\r\n supportingDocData,\r\n getSupportingDocError,\r\n supportingDocFilename\r\n } = this.props;\r\n return (\r\n
    \r\n { !getSupportingDocError && isFetchingSupportingDoc != null && supportingDocData != null && supportingDocContentType != null &&
    \r\n {\r\n // eslint-disable-next-line\r\n isFetchingSupportingDoc\r\n ? \r\n : \r\n

    The document you selected cannot be displayed in this browser. Please click here to download and view it.

    \r\n \r\n }\r\n
    }\r\n { getSupportingDocError != null &&
    \r\n
    \r\n \r\n
    \r\n
    }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const { forms: {\r\n isFetchingSupportingDoc,\r\n supportingDocData,\r\n supportingDocContentType,\r\n getSupportingDocError,\r\n supportingDocFilename\r\n } } = state;\r\n return {\r\n isFetchingSupportingDoc,\r\n supportingDocData,\r\n supportingDocContentType,\r\n getSupportingDocError,\r\n supportingDocFilename\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withContainerErrorBoundary(SupportingDocumentViewer, 'SupportingDocumentViewer'));\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { reduxForm, Field } from 'redux-form';\r\nimport { connect } from 'react-redux';\r\nimport { toastr } from 'react-redux-toastr';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport { TextInput } from 'components/Common/Inputs/TextInput';\r\n\r\nconst editRequired = value => !value || !value.replace(/\\s/g, '') || value.replace(/\\s/g, '').length < 5;\r\n\r\nclass AccountNumberChangeModal extends Component {\r\n static propTypes = {\r\n reset: PropTypes.func.isRequired,\r\n isShown: PropTypes.bool.isRequired,\r\n onConfirm: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n id: PropTypes.number,\r\n accountNumber: PropTypes.string\r\n };\r\n\r\n static defaultProps = {\r\n accountNumber: '',\r\n id: null,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n newAccountNumber: '',\r\n confirmAccountNumber: ''\r\n };\r\n\r\n this.onDataInputChange = this.onDataInputChange.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleCancel = this.handleCancel.bind(this);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { reset, isShown } = this.props;\r\n if (!isShown && prevProps.isShown) {\r\n reset();\r\n }\r\n }\r\n\r\n handleCancel(e) {\r\n const { onCancel } = this.props;\r\n onCancel();\r\n }\r\n\r\n handleSubmit(event) {\r\n const { onConfirm, id, accountNumber } = this.props;\r\n const { newAccountNumber, confirmAccountNumber } = this.state;\r\n const updatedData = { id, newNumber: newAccountNumber, confirmNewNumber: confirmAccountNumber };\r\n\r\n const charRanges = [\r\n '\\u00a9',\r\n '\\u00ae',\r\n '[\\u2000-\\u3300]',\r\n '\\ud83c[\\ud000-\\udfff]',\r\n '\\ud83d[\\ud000-\\udfff]',\r\n '\\ud83e[\\ud000-\\udfff]'\r\n ];\r\n const charRegEx = new RegExp(charRanges.join('|'), 'g');\r\n\r\n event.preventDefault();\r\n\r\n if (!newAccountNumber.replace(/\\s/g, '') || newAccountNumber.replace(/\\s/g, '').length < 3 || newAccountNumber.replace(/\\s/g, '').length > 50) {\r\n toastr.error('', 'Please provide an Account Number between 3 and 50 characters long.');\r\n return;\r\n }\r\n\r\n if (charRegEx.test(newAccountNumber)) {\r\n toastr.error('', 'Account Number contains invalid characters.');\r\n return;\r\n }\r\n\r\n if ((accountNumber && newAccountNumber && newAccountNumber.replace(/\\s/g, '') === accountNumber.replace(/\\s/g, ''))) {\r\n toastr.error('', 'The new Account Number cannot be same as the current Account Number.');\r\n return;\r\n }\r\n\r\n if ((!newAccountNumber || !confirmAccountNumber || !newAccountNumber.replace(/\\s/g, '') || newAccountNumber.replace(/\\s/g, '').length < 3 || newAccountNumber !== confirmAccountNumber)) {\r\n toastr.error('', 'The Account Numbers entered do not match.');\r\n return;\r\n }\r\n\r\n onConfirm(updatedData);\r\n }\r\n\r\n onDataInputChange(event) {\r\n const { target: { name, value } } = event;\r\n this.setState({ [name]: value });\r\n }\r\n\r\n render() {\r\n const { isShown, accountNumber } = this.props;\r\n const {\r\n newAccountNumber,\r\n confirmAccountNumber\r\n } = this.state;\r\n\r\n return (\r\n \r\n
    \r\n { /* eslint-disable-next-line */ }\r\n
    \r\n
    \r\n
    \r\n

    \r\n Please provide new Account Number for Account { accountNumber }\r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n null,\r\n mapDispatchToProps\r\n)(reduxForm({\r\n form: 'accountNumberChangeForm'\r\n})(AccountNumberChangeModal));\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Field, reduxForm } from 'redux-form';\r\nimport { RenderDatePicker, SelectInput } from 'components/Common/Inputs';\r\nimport AutoCompleteInput from 'components/Common/Inputs/AutoCompleteInput';\r\nimport { toastr } from 'react-redux-toastr';\r\nimport moment from 'moment';\r\n\r\nclass AddAccountCustomerForm extends Component {\r\n static propTypes = {\r\n onConfirmCustomerLink: PropTypes.func.isRequired,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n customer: null,\r\n validFrom: null,\r\n validUntil: null,\r\n capacity: null,\r\n accountNumber: null\r\n };\r\n\r\n this.onDataInputChange = this.onDataInputChange.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n }\r\n\r\n handleDateFromChange(newValue) {\r\n this.setState({ validFrom: newValue });\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { customer, validUntil, accountNumber, capacity } = this.state;\r\n let { validFrom } = this.state;\r\n validFrom = validFrom == null ? moment().format('MMM DD, YYYY') : validFrom;\r\n const customerAccount = { customerId: customer.id, validFrom, validUntil, capacity, accountNumber };\r\n const { onConfirmCustomerLink } = this.props;\r\n\r\n if (!customer) {\r\n toastr.error('', 'Please provide Customer Id.');\r\n return;\r\n }\r\n\r\n onConfirmCustomerLink(customerAccount);\r\n this.setState({\r\n customer: null,\r\n validFrom: null,\r\n validUntil: null,\r\n capacity: null,\r\n accountNumber: null\r\n });\r\n }\r\n\r\n onCustomerIdSelectedItem = lookupValue => lookupValue && this.setState({ customer: lookupValue });\r\n\r\n onDataInputChange(event) {\r\n const { target: { name, value } } = event;\r\n this.setState({ [name]: value });\r\n }\r\n\r\n render() {\r\n const { validFrom, customer, capacity } = this.state;\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Customer ID\r\n \r\n
    \r\n
    \r\n this.onCustomerIdSelectedItem(lookupValue) }\r\n />\r\n
    \r\n \r\n Capacity\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n Effective Date\r\n \r\n \r\n this.handleDateFromChange(date) }\r\n value={ validFrom }\r\n />\r\n
     \r\n Link Customer\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default reduxForm({\r\n form: 'addAccountCustomerForm'\r\n})(AddAccountCustomerForm);\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nconst ActiveChip = ({\r\n isActive\r\n}) => (\r\n isActive !== null && { isActive ? 'ACTIVE' : 'INACTIVE' }\r\n);\r\n\r\nActiveChip.propTypes = {\r\n isActive: PropTypes.bool,\r\n};\r\n\r\nActiveChip.defaultProps = {\r\n isActive: null\r\n};\r\n\r\nexport default ActiveChip;\r\n","import React, { PureComponent } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport moment from 'moment';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AccessControl from 'components/AccessControl';\r\nimport { Link } from 'react-router-dom';\r\nimport ActiveChip from 'components/Common/ActiveChip';\r\n\r\nclass AccountCustomerList extends PureComponent {\r\n static propTypes = {\r\n onConfirmCustomerUnlink: PropTypes.func.isRequired,\r\n account: PropTypes.shape(),\r\n defaultWhdCustomerId: PropTypes.number,\r\n jointAccountsEnabled: PropTypes.bool,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n };\r\n\r\n static defaultProps = {\r\n account: {\r\n customers: []\r\n },\r\n defaultWhdCustomerId: 0,\r\n jointAccountsEnabled: false,\r\n permissions: null\r\n };\r\n\r\n static getCustomerName(item) {\r\n if (item === null || (!item.customerId && !item.name)) {\r\n return 'N/A';\r\n }\r\n\r\n let customerName = item.customerId;\r\n\r\n if (!customerName) {\r\n customerName = item.name;\r\n } else if (item.name !== null && item.name !== customerName) {\r\n customerName = `${ customerName } - ${ item.name }`;\r\n }\r\n\r\n return customerName;\r\n }\r\n\r\n foreignPartnersSuffix(id) {\r\n const { account } = this.props;\r\n if (account && account.customers) {\r\n const selectedCustomer = account.customers.filter(a => a.customerDbId === id);\r\n if (selectedCustomer && selectedCustomer.length === 1) {\r\n const certData = selectedCustomer[0].formCertificationData ?? selectedCustomer[0].importCertificationData;\r\n if (certData && certData.hasForeignPartners === true) {\r\n const classificationData = selectedCustomer[0].reportingClassification ?? selectedCustomer[0].withholdingClassification;\r\n if (classificationData && classificationData.chapter3Status === 8) {\r\n return ' - With Foreign Partners';\r\n }\r\n if (classificationData && classificationData.chapter3Status === 10) {\r\n return ' - With Foreign Beneficiaries';\r\n }\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n render() {\r\n const { account, onConfirmCustomerUnlink, defaultWhdCustomerId, jointAccountsEnabled, permissions } = this.props;\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { jointAccountsEnabled && \r\n \r\n }\r\n \r\n \r\n \r\n { (account != null && account.customers != null && account.customers.length > 0)\r\n && account.customers.map(customerDtl => customerDtl != null && \r\n \r\n \r\n \r\n \r\n \r\n \r\n { jointAccountsEnabled && \r\n \r\n }\r\n ) }\r\n { (!account || !account.customers || account.customers.length === 0)\r\n && }\r\n \r\n
    CustomerCapacityU.S. ClassificationsCRS StatusEffective FromEffective ToUnlink
    \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.customerPageView, ActivityPerms.customerEdit])\r\n ? { AccountCustomerList.getCustomerName(customerDtl) }\r\n : AccountCustomerList.getCustomerName(customerDtl) }\r\n { defaultWhdCustomerId === customerDtl.customerDbId && WHD }\r\n { customerDtl.capacityString != null ? customerDtl.capacityString : '' }\r\n Chapter 3 Status: {customerDtl.reportingClassification?.chapter3StatusDescription ?? 'N/A'}\r\n {this.foreignPartnersSuffix(customerDtl.customerDbId)}
    \r\n Chapter 4 Status: {customerDtl.reportingClassification?.chapter4StatusDescription ?? 'N/A' }
    \r\n W9 Status: {customerDtl.reportingClassification?.w9StatusDescription ?? 'N/A'}
    \r\n Updated By: {customerDtl.reportingClassification?.recordSourceDescription ?? 'N/A' }\r\n
    \r\n {customerDtl.crsClassification?.classificationDescription ?? 'N/A' }
    \r\n Updated By: {customerDtl.crsClassification?.recordSourceDescription ?? 'N/A' }\r\n
    { customerDtl.validFrom != null ? moment(customerDtl.validFrom).format('MMM DD, YYYY') : '' }{ customerDtl.linkedTo != null ? customerDtl.linkedTo : '' }\r\n
    \r\n \r\n
    \r\n

    No Data to Show

    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default AccountCustomerList;\r\n","import React, { PureComponent } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport moment from 'moment';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport FormViewButton from 'components/Common/Buttons/FormViewButton';\r\nimport FormWorkflowStages from 'common/Workflows/FormWorkflowStages';\r\n\r\nclass AccountFormList extends PureComponent {\r\n static propTypes = {\r\n onConfirmFormUnlink: PropTypes.func.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n account: PropTypes.shape(),\r\n onDeleteForm: PropTypes.func.isRequired\r\n };\r\n\r\n static defaultProps = {\r\n permissions: null,\r\n account: {\r\n forms: []\r\n }\r\n };\r\n\r\n render() {\r\n const { permissions, account, onConfirmFormUnlink, onDeleteForm } = this.props;\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { (account != null && account.forms != null && account.forms.length > 0)\r\n && account.forms.sort((a, b) => {\r\n if (moment(b.validUntil).isSame(a.validUntil)) {\r\n return moment(b.dateUploaded).isAfter(a.dateUploaded) ? 1 : -1;\r\n }\r\n return moment(b.validUntil).isAfter(a.validUntil) ? 1 : -1;\r\n }).map(formData => formData != null && \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) }\r\n { (!account || !account.forms || account.forms.length === 0)\r\n && }\r\n \r\n
    Form TypeDate UploadedEntity NameExpiration DateSigned DateWorkflowOriginal FilenameView/Action
    { formData.formTypeDescription != null ? formData.formTypeDescription : '' }{ formData.dateUploaded != null ? moment(formData.dateUploaded).format('MMM DD, YYYY') : '' }{ formData.entityName }{(() => {\r\n if (!formData.isValid) {\r\n return 'N/A - Invalid Form';\r\n }\r\n if (formData.validUntil && formData.validUntil !== null) {\r\n const expiryReason = formData.expiryReasonDescription !== null ? `(${ formData.expiryReasonDescription })` : '';\r\n if (formData.validUntil.includes('9999')) {\r\n return `Evergreen ${ expiryReason }`;\r\n }\r\n return `${ moment(formData.validUntil).format('MMM DD, YYYY') } ${ expiryReason }`;\r\n }\r\n return '';\r\n })()}\r\n {formData.dateSigned !== null ? moment(formData.dateSigned).format('MMM DD, YYYY') : ''} { formData.workflowStageDescription ?? 'N/A' }{ formData.originalFileName }\r\n {\r\n (\r\n (formData.isOnlineForm\r\n && AccessControl.hasPermission(\r\n permissions,\r\n [\r\n ActivityPerms.electronicView,\r\n ActivityPerms.electronicValidate\r\n ]\r\n )\r\n ) || (\r\n !formData.isOnlineForm\r\n && AccessControl.hasPermission(\r\n permissions,\r\n [\r\n ActivityPerms.scannedView,\r\n ActivityPerms.scannedEdit,\r\n ActivityPerms.scannedValidate\r\n ]\r\n )\r\n )\r\n ) && formData.formType && formData.formType.toLowerCase() !== 'unknown' && }\r\n className=\"btn btn-sm\"\r\n title=\"Reopen\"\r\n formId={ formData.id }\r\n accountId={ formData.accountId }\r\n form={ formData }\r\n permissions={ permissions }\r\n />\r\n }\r\n { formData.numAccountsLinked && formData.numAccountsLinked > 1 && AccessControl.hasPermission(permissions, [ActivityPerms.accountEdit])\r\n && onConfirmFormUnlink(formData.id) }\r\n type=\"button\"\r\n title=\"Unlink form\"\r\n >\r\n \r\n }\r\n {\r\n (\r\n ((\r\n ((formData.isOnlineForm && AccessControl.hasPermission(permissions, [ActivityPerms.electronicDeleteCompleteForms]))\r\n || (!formData.isOnlineForm && AccessControl.hasPermission(permissions, [ActivityPerms.scannedDeleteCompleteForms])))\r\n && formData.workflowStage === FormWorkflowStages.Complete)\r\n || (\r\n ((formData.isOnlineForm && AccessControl.hasPermission(permissions, [ActivityPerms.electronicDeleteInReviewForms]))\r\n || (!formData.isOnlineForm && AccessControl.hasPermission(permissions, [ActivityPerms.scannedDeleteInReviewForms])))\r\n && formData.workflowStage !== FormWorkflowStages.Complete))\r\n && formData.formType && formData.formType.toLowerCase() !== 'unknown'\r\n )\r\n && AccessControl.hasPermission(permissions, [ActivityPerms.accountEdit]) && onDeleteForm(formData) }\r\n >\r\n \r\n \r\n }\r\n

    No Data to Show

    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default AccountFormList;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\n\r\nconst UpdateDualFormStatusModal = ({\r\n isShown,\r\n isUpdatingDualFormStatus,\r\n onConfirmUpdate,\r\n onCancel,\r\n updateDualFormStatusError,\r\n checkStatus,\r\n accountNumber\r\n}) => (\r\n \r\n

    \r\n { checkStatus === true\r\n ? 'By enabling the dual form requirement, the account certification status will be based upon validation of both applicable workflow complete valid forms.'\r\n : 'By disabling the dual form requirement, the account certification status will be based upon the most recently signed workflow complete valid form.' }\r\n

    \r\n {\r\n updateDualFormStatusError\r\n &&
    \r\n { updateDualFormStatusError }\r\n
    \r\n }\r\n \r\n);\r\n\r\nUpdateDualFormStatusModal.propTypes = {\r\n isShown: PropTypes.bool,\r\n isUpdatingDualFormStatus: PropTypes.bool,\r\n onConfirmUpdate: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n updateDualFormStatusError: PropTypes.string,\r\n checkStatus: PropTypes.bool.isRequired,\r\n accountNumber: PropTypes.string\r\n};\r\n\r\nUpdateDualFormStatusModal.defaultProps = {\r\n isShown: false,\r\n isUpdatingDualFormStatus: false,\r\n updateDualFormStatusError: null,\r\n accountNumber: ''\r\n};\r\n\r\nexport default UpdateDualFormStatusModal;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport moment from 'moment';\r\n\r\nimport { getWhdDetails, resetWithholdingRates } from 'actions';\r\n\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AccessControl from 'components/AccessControl';\r\nimport WithholdingTable from 'components/WithholdingTable';\r\n\r\nclass WithholdingRates extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n accountWithholdingRates: PropTypes.arrayOf(PropTypes.shape()),\r\n customerId: PropTypes.string,\r\n accountId: PropTypes.number,\r\n isGettingWhd: PropTypes.bool,\r\n showAccountName: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n permissions: null,\r\n accountWithholdingRates: null,\r\n customerId: null,\r\n accountId: null,\r\n isGettingWhd: false,\r\n showAccountName: true\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n accountList: null,\r\n selectedAccount: null\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const { accountList } = this.state;\r\n const { customerId, accountId, dispatch, permissions, accountWithholdingRates } = this.props;\r\n if ((customerId != null || accountId != null) && AccessControl.hasPermission(permissions, [ActivityPerms.whdViewRates])) {\r\n dispatch(getWhdDetails(customerId, accountId));\r\n }\r\n\r\n if (accountList == null && accountWithholdingRates !== null) {\r\n this.setAccountList();\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n const { accountList } = this.state;\r\n const { accountWithholdingRates } = this.props;\r\n\r\n if (accountList == null && accountWithholdingRates !== null) {\r\n this.setAccountList();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { dispatch } = this.props;\r\n\r\n this.setState({ accountList: null });\r\n dispatch(resetWithholdingRates());\r\n }\r\n\r\n onAccountValueChanged(e) {\r\n const { dispatch } = this.props;\r\n this.setState({ selectedAccount: e.target.value });\r\n dispatch(getWhdDetails(null, e.target.value));\r\n }\r\n\r\n setAccountList() {\r\n const { accountList, selectedAccount } = this.state;\r\n const { accountWithholdingRates } = this.props;\r\n\r\n if (accountList == null) {\r\n const listOfAccounts = [];\r\n\r\n for (let i = 0, len = accountWithholdingRates.length; i < len; i += 1) {\r\n listOfAccounts.push({\r\n accountName: accountWithholdingRates[i].accountName,\r\n accountId: accountWithholdingRates[i].accountId,\r\n accountNumber: accountWithholdingRates[i].accountNumber\r\n });\r\n }\r\n\r\n this.setState({ accountList: listOfAccounts });\r\n }\r\n\r\n if (selectedAccount !== null) {\r\n this.setState({ selectedAccount: null });\r\n }\r\n }\r\n\r\n hasAccountList() {\r\n const { accountList } = this.state;\r\n\r\n if (accountList == null || accountList.length === 0) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n render() {\r\n const { accountWithholdingRates, isGettingWhd, showAccountName } = this.props;\r\n const { accountList, selectedAccount } = this.state;\r\n const withholdingContainer = accountWithholdingRates && accountWithholdingRates.length > 0 && accountWithholdingRates[0];\r\n\r\n function dateFormatter(value, format) {\r\n return moment(value).format(format);\r\n }\r\n\r\n function getDateCalculated(withholding) {\r\n if (withholding && withholding[0] !== null && withholding[0].dateCalculated !== null) {\r\n return `${ dateFormatter(withholding[0].dateCalculated, 'MMM DD, YYYY') }`;\r\n }\r\n return 'N/A';\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n {showAccountName && \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Selected Account:\r\n \r\n
    \r\n
    \r\n { this.hasAccountList() && accountList.length > 1\r\n && this.onAccountValueChanged(e) }\r\n >\r\n { accountList != null && accountList.map((option, i) => (\r\n \r\n )) }\r\n }\r\n { this.hasAccountList() && accountList.length === 1 && }\r\n { !this.hasAccountList() && }\r\n
    \r\n \r\n Date Calculated:\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {!isGettingWhd && }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const { auth: {\r\n permissions\r\n },\r\n withholding: {\r\n accountWithholdingRates,\r\n isGettingWhd\r\n } } = state;\r\n return {\r\n permissions,\r\n accountWithholdingRates,\r\n isGettingWhd\r\n };\r\n}\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(WithholdingRates);\r\n","import React from 'react';\r\n\r\nexport default function usePrevious(value) {\r\n const ref = React.useRef();\r\n React.useEffect(() => {\r\n ref.current = value;\r\n });\r\n return ref.current;\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { Field, reduxForm, reset } from 'redux-form';\r\nimport { Link } from 'react-router-dom';\r\nimport moment from 'moment';\r\n\r\nimport { moveForm } from 'actions';\r\nimport usePrevious from 'hooks/usePrevious';\r\n\r\nimport AutoCompleteInput from 'components/Common/Inputs/AutoCompleteInput';\r\n\r\nconst MoveForm = ({ dispatch, title, introText, sourceAccountId, forms, isMovingForm, moveFormComplete, onSuccess, customerSupportingDocs }) => {\r\n const [formId, setFormId] = useState(null);\r\n const [sourceCustomer, setSourceCustomer] = useState(null);\r\n const [sourceAccount, setSourceAccount] = useState(null);\r\n const [customer, setCustomer] = useState(null);\r\n const [account, setAccount] = useState(null);\r\n const [accountPartOfAnImyStructure, setAccountPartOfAnImyStructure] = useState(false);\r\n const [deleteCollectableSupportingDocs, setDeleteCollectableSupportingDocs] = useState(false);\r\n\r\n const prevIsMovingForm = usePrevious(isMovingForm);\r\n\r\n const clearForm = () => {\r\n setFormId(null);\r\n setSourceCustomer(null);\r\n setSourceAccount(null);\r\n setCustomer(null);\r\n setAccount(null);\r\n setDeleteCollectableSupportingDocs(false);\r\n };\r\n\r\n useEffect(() => {\r\n if (prevIsMovingForm && !isMovingForm && moveFormComplete) {\r\n clearForm();\r\n dispatch(reset('move-form'));\r\n }\r\n }, [isMovingForm, moveFormComplete]);\r\n\r\n const formDescription = (form) => {\r\n if (sourceAccountId) {\r\n return `${ form.formTypeDescription } - ${ moment(form.dateUploaded).format('MMM DD, YYYY') } - ${ form.entityName ?? 'N/A' }`;\r\n }\r\n return `${ form.formTypeDescription } - ${ moment(form.dateUploaded).format('MMM DD, YYYY') } - ${ form.accountNumber ?? 'N/A' }`;\r\n };\r\n\r\n const onFormSelected = (value) => {\r\n if (value && forms) {\r\n setFormId(parseInt(value, 10));\r\n const formSelected = forms.filter(f => f.id === parseInt(value, 10));\r\n if (formSelected && formSelected.length > 0) {\r\n setSourceCustomer({ id: formSelected[0].customerDbId, customerId: formSelected[0].customerId, name: formSelected[0].customerName });\r\n if (formSelected[0].accountId) {\r\n setSourceAccount({ id: formSelected[0].accountId, accountNumber: formSelected[0].accountNumber, name: formSelected[0].accountName });\r\n }\r\n return;\r\n }\r\n }\r\n setFormId(null);\r\n setSourceCustomer(null);\r\n setSourceAccount(null);\r\n setCustomer(null);\r\n setAccount(null);\r\n setAccountPartOfAnImyStructure(false);\r\n setDeleteCollectableSupportingDocs(false);\r\n };\r\n\r\n const onAccountSelected = (accountValue) => {\r\n setAccount(accountValue);\r\n if (accountValue.parentAccountId || accountValue.withholdingStatementId) {\r\n setAccountPartOfAnImyStructure(true);\r\n }\r\n\r\n if (accountValue.collectableSupportingDocumentTypes !== undefined) {\r\n const supportingDocumentsForForm = customerSupportingDocs?.filter(f => f.formId === formId);\r\n if (supportingDocumentsForForm?.length > 0) {\r\n const filteredDocuments = supportingDocumentsForForm.filter(doc => accountValue.collectableSupportingDocumentTypes.includes(doc.type));\r\n if (filteredDocuments.length === 0) {\r\n setDeleteCollectableSupportingDocs(true);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const onFormSubmit = (e) => {\r\n e.preventDefault();\r\n if (formId && sourceCustomer && customer && account) {\r\n dispatch(moveForm(formId, sourceCustomer.id, sourceAccount?.id ?? sourceAccountId, customer.id, account.id, onSuccess, deleteCollectableSupportingDocs));\r\n }\r\n };\r\n\r\n return (
    \r\n { title &&

    { title }

    }\r\n { introText &&

    { introText }

    }\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { forms && forms.length > 0\r\n && onFormSelected(e.target.value) }\r\n >\r\n \r\n { forms && forms.map(f => ()) }\r\n }\r\n { (!forms || forms.length === 0) &&

    No forms suitable to move

    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n setCustomer(value) }\r\n onChange={ () => { setCustomer(null); setAccount(null); setAccountPartOfAnImyStructure(false); setDeleteCollectableSupportingDocs(false); } }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { onAccountSelected(value); } }\r\n onChange={ () => { setAccount(null); setAccountPartOfAnImyStructure(false); setDeleteCollectableSupportingDocs(false); } }\r\n />\r\n
    \r\n
    \r\n {accountPartOfAnImyStructure\r\n &&
    \r\n
    \r\n
    \r\n

    {account?.value} is linked to an IMY Structure.
    \r\n Any new form for this account must be uploaded from the\r\n IMY Structure page.

    \r\n
    \r\n
    \r\n
    }\r\n {deleteCollectableSupportingDocs\r\n &&
    \r\n
    \r\n
    \r\n

    The Legal Entity for this Account does not collect Affidavits of Unchanged Status. The Supporting Document will be deleted and not be moved to this Account.

    \r\n
    \r\n
    \r\n
    }\r\n
    \r\n
    \r\n
    \r\n \r\n { isMovingForm && }\r\n Move Form\r\n \r\n
    \r\n
    \r\n \r\n
    );\r\n};\r\n\r\nMoveForm.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n introText: PropTypes.string.isRequired,\r\n sourceAccountId: PropTypes.number,\r\n forms: PropTypes.arrayOf(PropTypes.shape()).isRequired,\r\n isMovingForm: PropTypes.bool.isRequired,\r\n moveFormComplete: PropTypes.bool.isRequired,\r\n onSuccess: PropTypes.func,\r\n customerSupportingDocs: PropTypes.arrayOf(PropTypes.shape())\r\n};\r\n\r\nMoveForm.defaultProps = {\r\n sourceAccountId: null,\r\n onSuccess: null,\r\n customerSupportingDocs: null\r\n};\r\n\r\nconst MoveReduxForm = reduxForm({\r\n form: 'move-form'\r\n})(MoveForm);\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n forms: {\r\n isMovingForm,\r\n moveFormComplete\r\n },\r\n customer: {\r\n customerSupportingDocs\r\n }\r\n } = state;\r\n\r\n return {\r\n isMovingForm,\r\n moveFormComplete,\r\n customerSupportingDocs\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(MoveReduxForm);\r\n","import React, { useState, useEffect } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { Field, reduxForm, reset } from 'redux-form';\r\nimport { Link } from 'react-router-dom';\r\nimport moment from 'moment';\r\n\r\nimport { cloneForm } from 'actions';\r\nimport usePrevious from 'hooks/usePrevious';\r\n\r\nimport AutoCompleteInput from 'components/Common/Inputs/AutoCompleteInput';\r\n\r\nconst CloneForm = ({ dispatch, title, introText, sourceAccountId, forms, accounts, isCloningForm, cloneFormComplete, onSuccess, customerSupportingDocs }) => {\r\n const [formId, setFormId] = useState(null);\r\n const [sourceAccount, setSourceAccount] = useState(null);\r\n const [customer, setCustomer] = useState(null);\r\n const [account, setAccount] = useState(null);\r\n const [accountPartOfAnImyStructure, setAccountPartOfAnImyStructure] = useState(false);\r\n const [cloneCollectableSupportingDocs, setCloneCollectableSupportingDocs] = useState(null);\r\n\r\n const prevIsCloningForm = usePrevious(isCloningForm);\r\n\r\n const clearForm = () => {\r\n setFormId(null);\r\n setSourceAccount(null);\r\n setCustomer(null);\r\n setAccount(null);\r\n setAccountPartOfAnImyStructure(false);\r\n setCloneCollectableSupportingDocs(null);\r\n };\r\n\r\n useEffect(() => {\r\n if (prevIsCloningForm && !isCloningForm && cloneFormComplete) {\r\n clearForm();\r\n dispatch(reset('clone-form'));\r\n }\r\n }, [isCloningForm, cloneFormComplete]);\r\n\r\n const formDescription = (form) => {\r\n if (sourceAccountId) {\r\n return `${ form.formTypeDescription } - ${ moment(form.dateUploaded).format('MMM DD, YYYY') } - ${ form.entityName ?? 'N/A' }`;\r\n }\r\n return `${ form.formTypeDescription } - ${ moment(form.dateUploaded).format('MMM DD, YYYY') } - ${ form.accountNumber ?? 'N/A' }`;\r\n };\r\n\r\n const accountDescription = a => `${ a.accountNumber } - ${ a.accountName }`;\r\n\r\n const onFormSelected = (value) => {\r\n if (value && forms) {\r\n setFormId(parseInt(value, 10));\r\n const formSelected = forms.filter(f => f.id === parseInt(value, 10));\r\n if (formSelected && formSelected.length > 0) {\r\n setCustomer({ id: formSelected[0].customerDbId, customerId: formSelected[0].customerId, name: formSelected[0].customerName });\r\n if (formSelected[0].accountId) {\r\n setSourceAccount({ id: formSelected[0].accountId, accountNumber: formSelected[0].accountNumber, name: formSelected[0].accountName });\r\n }\r\n return;\r\n }\r\n }\r\n setFormId(null);\r\n setSourceAccount(null);\r\n setCustomer(null);\r\n setAccount(null);\r\n setAccountPartOfAnImyStructure(false);\r\n setCloneCollectableSupportingDocs(null);\r\n };\r\n\r\n const onAccountSelected = (accountValue) => {\r\n setAccount(accountValue);\r\n if (accountValue.parentAccountId || accountValue.withholdingStatementId) {\r\n setAccountPartOfAnImyStructure(true);\r\n }\r\n\r\n if (accountValue.collectableSupportingDocumentTypes !== undefined) {\r\n const supportingDocumentsForForm = customerSupportingDocs?.filter(f => f.formId === formId);\r\n if (supportingDocumentsForForm?.length > 0) {\r\n const filteredDocuments = supportingDocumentsForForm.filter(doc => accountValue.collectableSupportingDocumentTypes.includes(doc.type));\r\n if (filteredDocuments.length === 0) {\r\n setCloneCollectableSupportingDocs(false);\r\n } else {\r\n setCloneCollectableSupportingDocs(true);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const onFormSubmit = (e) => {\r\n e.preventDefault();\r\n if (formId && customer && account) {\r\n dispatch(cloneForm(formId, customer.id, sourceAccount?.id ?? sourceAccountId, customer.id, account.id, onSuccess, cloneCollectableSupportingDocs));\r\n }\r\n };\r\n\r\n return (
    \r\n { title &&

    { title }

    }\r\n { introText &&

    { introText }

    }\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n onFormSelected(e.target.value) }\r\n >\r\n \r\n { forms && forms.map(f => ()) }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { !customer &&

    Select form...

    }\r\n { customer &&

    { `${ customer.customerId } - ${ customer.name }` }

    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { accounts && accounts.length > 0 && setAccount(e.target.value ? parseInt(e.target.value, 10) : null) }\r\n >\r\n \r\n { accounts && accounts.map(a => ()) }\r\n }\r\n { (!accounts || accounts.length === 0) && { onAccountSelected(value); } }\r\n onChange={ (e) => { setAccount(null); setAccountPartOfAnImyStructure(false); setCloneCollectableSupportingDocs(null); } }\r\n /> }\r\n
    \r\n
    \r\n {accountPartOfAnImyStructure\r\n &&
    \r\n
    \r\n
    \r\n

    {account?.value} is linked to an IMY Structure.
    \r\n Any new form for this account must be uploaded from the\r\n IMY Structure page.

    \r\n
    \r\n
    \r\n
    }\r\n {cloneCollectableSupportingDocs === false\r\n &&
    \r\n
    \r\n
    \r\n

    The Legal Entity for this Account does not collect Affidavits of Unchanged Status. The Supporting Document will not be cloned to this Account.

    \r\n
    \r\n
    \r\n
    }\r\n
    \r\n
    \r\n
    \r\n \r\n { isCloningForm && }\r\n Clone Form\r\n \r\n
    \r\n
    \r\n \r\n
    );\r\n};\r\n\r\nCloneForm.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n introText: PropTypes.string.isRequired,\r\n sourceAccountId: PropTypes.number,\r\n forms: PropTypes.arrayOf(PropTypes.shape()).isRequired,\r\n accounts: PropTypes.arrayOf(PropTypes.shape()),\r\n isCloningForm: PropTypes.bool.isRequired,\r\n cloneFormComplete: PropTypes.bool.isRequired,\r\n onSuccess: PropTypes.func,\r\n customerSupportingDocs: PropTypes.arrayOf(PropTypes.shape())\r\n};\r\n\r\nCloneForm.defaultProps = {\r\n sourceAccountId: null,\r\n accounts: null,\r\n onSuccess: null,\r\n customerSupportingDocs: null\r\n};\r\n\r\nconst CloneReduxForm = reduxForm({\r\n form: 'clone-form'\r\n})(CloneForm);\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n forms: {\r\n isCloningForm,\r\n cloneFormComplete\r\n },\r\n customer: {\r\n customerSupportingDocs\r\n }\r\n } = state;\r\n\r\n return {\r\n isCloningForm,\r\n cloneFormComplete,\r\n customerSupportingDocs\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(CloneReduxForm);\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nconst DirectChip = ({\r\n isDirect\r\n}) => (\r\n \r\n { isDirect === false && INDIRECT }\r\n \r\n);\r\n\r\nDirectChip.propTypes = {\r\n isDirect: PropTypes.bool,\r\n};\r\n\r\nDirectChip.defaultProps = {\r\n isDirect: null\r\n};\r\n\r\nexport default DirectChip;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\n\r\nimport { saveAccountComments } from 'actions';\r\n\r\nclass AccountCommentsSection extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n accountId: PropTypes.number,\r\n storeAccount: PropTypes.shape(),\r\n isSavingAccount: PropTypes.bool,\r\n newComment: PropTypes.string\r\n };\r\n\r\n static defaultProps = {\r\n permissions: null,\r\n accountId: null,\r\n storeAccount: null,\r\n isSavingAccount: false,\r\n newComment: null\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n newComment: ''\r\n };\r\n }\r\n\r\n onNewCommentChange = e => this.setState({ newComment: e.target.value });\r\n\r\n onCopyComment = (comment) => {\r\n this.setState({ newComment: comment.comm });\r\n };\r\n\r\n onFormSubmit = () => {\r\n const { dispatch, accountId } = this.props;\r\n const { newComment } = this.state;\r\n\r\n dispatch(saveAccountComments(accountId, newComment));\r\n this.setState({ newComment: '' });\r\n };\r\n\r\n canComment() {\r\n const { permissions } = this.props;\r\n return AccessControl.hasPermission(permissions, [ActivityPerms.accountEdit]);\r\n }\r\n\r\n render() {\r\n const { isSavingAccount, storeAccount: { previousComments } } = this.props;\r\n const { newComment } = this.state;\r\n const canComment = this.canComment();\r\n\r\n return (\r\n
    \r\n
    \r\n

    Account Commentary

    \r\n

    Provide any relevant information in the box below.

    \r\n this.onNewCommentChange(e, value) }\r\n />\r\n this.onFormSubmit() }\r\n >\r\n { isSavingAccount && }\r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n { (!previousComments || previousComments.length === 0) && No comments made. }\r\n { /* eslint-disable react/no-array-index-key */\r\n previousComments && previousComments.length > 0 && previousComments.map((comm, index) => comm != null &&

    \r\n { canComment && this.onCopyComment({ comm }) }\r\n >\r\n \r\n }\r\n {\r\n comm != null && comm.split('\\n') && comm.split('\\n').map((item, lineIndex) => item != null && { item }
    )\r\n }

    )\r\n /* eslint-enable react/no-array-index-key */\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n permissions\r\n },\r\n account: {\r\n isSavingAccount,\r\n storeAccount\r\n }\r\n } = state;\r\n\r\n return {\r\n permissions,\r\n isSavingAccount,\r\n storeAccount\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport const AccountComments = connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(AccountCommentsSection);\r\n\r\nexport default AccountComments;\r\n","import React, { useState } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AccessControl from 'components/AccessControl';\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\nimport moment from 'moment';\r\n\r\nconst AccountControllingPersonsList = ({ isGettingControllingPersons, controllingPersons, forms, onConfirmCpUnlink, onConfirmCpRemove, accountIsActive }) => {\r\n const [displayAll, setDisplayAll] = useState(null);\r\n\r\n const handleDisplayAll = () => {\r\n setDisplayAll(!displayAll);\r\n };\r\n\r\n const IsFatcaCrs = (entityFormId) => {\r\n const entityForm = forms.find(({ id }) => id === entityFormId);\r\n return entityForm && entityForm.formType.toLowerCase().indexOf('fatca_crse') >= 0;\r\n };\r\n\r\n let cpsToDisplay;\r\n\r\n if (controllingPersons) {\r\n if (!displayAll) {\r\n cpsToDisplay = controllingPersons.filter(cp => cp.effectiveTo === null);\r\n } else {\r\n cpsToDisplay = controllingPersons;\r\n }\r\n }\r\n\r\n return (
    \r\n { isGettingControllingPersons && }\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { cpsToDisplay && cpsToDisplay.length > 0 && cpsToDisplay.map(cp => (\r\n \r\n \r\n \r\n \r\n \r\n {\r\n forms && forms.length > 0 && \r\n }\r\n {(!forms || forms.length === 0) && }\r\n {\r\n forms && forms.length > 0 && \r\n }\r\n {(!forms || forms.length === 0) && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n { (!cpsToDisplay || cpsToDisplay.length === 0)\r\n && }\r\n \r\n
    NameTypeAddressDate Of BirthEntity FormCP FormEffective FromEffective ToActivity StatusActions
    { cp.name }{ cp.cpType }{\r\n cp.data && cp.data.address\r\n && \r\n {cp.data.address.line1 !== null ? `${ cp.data.address.line1 } ` : ''}\r\n {cp.data.address.line2 !== null ? `${ cp.data.address.line2 } ` : ''}\r\n {cp.data.address.line3 !== null ? `${ cp.data.address.line3 } ` : ''}\r\n {cp.data.address.line4 !== null ? `${ cp.data.address.line4 } ` : ''}\r\n {cp.data.address.postalCode !== null ? `${ cp.data.address.postalCode } ` : ''}\r\n {cp.data.address.country !== null ? `${ cp.data.address.country } ` : ''}\r\n \r\n }\r\n { cp.data && cp.data.dateOfBirth ? moment(cp.data.dateOfBirth).format('MMM DD, YYYY') : 'N/A' }{(\r\n () => {\r\n const accountForm = forms.find(({ id }) => id === cp.entityFormId);\r\n if (accountForm) {\r\n return `${ accountForm.formTypeDescription } (${ accountForm.dateSigned !== null ? moment(accountForm.dateSigned).format('MMM DD, YYYY') : '' })`;\r\n }\r\n return 'N/A - form not found';\r\n }\r\n )()}\r\n { cp.entityFormId }{(\r\n () => {\r\n const accountForm = forms.find(({ id }) => id === cp.cpFormId);\r\n if (accountForm) {\r\n return `${ accountForm.formTypeDescription } (${ accountForm.dateSigned !== null ? moment(accountForm.dateSigned).format('MMM DD, YYYY') : '' })`;\r\n }\r\n return 'N/A - form not found';\r\n }\r\n )()}\r\n { cp.cpFormId }{ moment(cp.effectiveFrom).format('MMM DD, YYYY') }{ cp.effectiveTo && moment(cp.effectiveTo).format('MMM DD, YYYY') }{ !cp.effectiveTo ? ACTIVE : INACTIVE }\r\n { !cp.effectiveTo\r\n &&
    onConfirmCpUnlink(cp.id, cp.effectiveFrom) }\r\n disabled={ !accountIsActive || IsFatcaCrs(cp.entityFormId) }\r\n >\r\n \r\n
    }\r\n { cp.effectiveTo\r\n &&
    onConfirmCpRemove(cp.id) }\r\n disabled={ !accountIsActive || IsFatcaCrs(cp.entityFormId) }\r\n >\r\n \r\n
    }\r\n

    No Data to Show

    \r\n
    \r\n
    );\r\n};\r\n\r\nAccountControllingPersonsList.propTypes = {\r\n controllingPersons: PropTypes.arrayOf(PropTypes.shape()),\r\n isGettingControllingPersons: PropTypes.bool,\r\n forms: PropTypes.arrayOf(PropTypes.shape()).isRequired,\r\n onConfirmCpUnlink: PropTypes.func.isRequired,\r\n onConfirmCpRemove: PropTypes.func.isRequired,\r\n accountIsActive: PropTypes.bool.isRequired\r\n};\r\n\r\nAccountControllingPersonsList.defaultProps = {\r\n controllingPersons: null,\r\n isGettingControllingPersons: false,\r\n};\r\n\r\nexport default AccountControllingPersonsList;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { Field, reduxForm, reset } from 'redux-form';\r\nimport moment from 'moment';\r\n\r\nimport ControllingPersonTypes from 'common/Accounts/ControllingPersonTypes';\r\n\r\nimport { addControllingPerson } from 'actions';\r\nimport usePrevious from 'hooks/usePrevious';\r\n\r\nconst AddAccountControllingPersonForm = ({ dispatch, title, sourceAccountId, forms, accounts, isLinkingControllingPerson, isLinkingControllingPersonComplete, onSuccess, accountIsActive }) => {\r\n const [entityFormId, setEntityFormId] = useState(null);\r\n const [cpFormId, setCpFormId] = useState(null);\r\n const [cpType, setCpType] = useState(null);\r\n\r\n const previsLinkingControllingPerson = usePrevious(isLinkingControllingPerson);\r\n\r\n const clearForm = () => {\r\n setEntityFormId(null);\r\n setCpFormId(null);\r\n setCpType(null);\r\n };\r\n\r\n useEffect(() => {\r\n if (previsLinkingControllingPerson && !isLinkingControllingPerson && isLinkingControllingPersonComplete) {\r\n clearForm();\r\n dispatch(reset('add-controlling-person-form'));\r\n }\r\n }, [isLinkingControllingPerson, isLinkingControllingPersonComplete]);\r\n\r\n const formDescription = (form) => {\r\n let expirationText = '';\r\n\r\n if (form.validUntil && form.validUntil !== null) {\r\n const expiryReason = form.expiryReasonDescription !== null ? `(${ form.expiryReasonDescription })` : '';\r\n if (form.validUntil.includes('9999')) {\r\n expirationText = `Evergreen ${ expiryReason }`;\r\n } else {\r\n expirationText = `${ moment(form.validUntil).format('MMM DD, YYYY') } ${ expiryReason }`;\r\n }\r\n }\r\n\r\n if (sourceAccountId) {\r\n return `${ form.formTypeDescription } - ${ moment(form.dateSigned).format('MMM DD, YYYY') } - ${ form.entityName ?? 'N/A' } - ${ expirationText }`;\r\n }\r\n return `${ form.formTypeDescription } - ${ moment(form.dateSigned).format('MMM DD, YYYY') } - ${ form.accountNumber ?? 'N/A' } - ${ expirationText }`;\r\n };\r\n\r\n const onFormSubmit = (e) => {\r\n e.preventDefault();\r\n if (entityFormId && cpFormId && sourceAccountId) {\r\n dispatch(addControllingPerson(sourceAccountId, entityFormId, cpFormId, cpType));\r\n }\r\n };\r\n\r\n return (
    \r\n { title &&

    { title }

    }\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n setEntityFormId(e.target.value) }\r\n disabled={ !accountIsActive }\r\n >\r\n \r\n { forms && forms.filter(form => (form.formTypeEnum === 5 || form.formTypeEnum === 22 || form.formTypeEnum === 24)\r\n && form.workflowStage === 100 && form.isValid).map(f => ()) }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n setCpFormId(e.target.value) }\r\n disabled={ !accountIsActive }\r\n >\r\n \r\n { forms && forms.filter(form => (form.formTypeEnum === 7 || form.formTypeEnum === 21 || form.formTypeEnum === 23)\r\n && form.workflowStage === 100 && form.isValid).map(f => ()) }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n setCpType(e.target.value) }\r\n disabled={ !accountIsActive }\r\n >\r\n \r\n { ControllingPersonTypes.map(x => (\r\n \r\n )) }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n { isLinkingControllingPerson && }\r\n Link Controlling Person\r\n \r\n
    \r\n
    \r\n \r\n
    );\r\n};\r\n\r\nAddAccountControllingPersonForm.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n sourceAccountId: PropTypes.number,\r\n forms: PropTypes.arrayOf(PropTypes.shape()).isRequired,\r\n accounts: PropTypes.arrayOf(PropTypes.shape()),\r\n isLinkingControllingPerson: PropTypes.bool.isRequired,\r\n isLinkingControllingPersonComplete: PropTypes.bool.isRequired,\r\n onSuccess: PropTypes.func,\r\n accountIsActive: PropTypes.bool.isRequired\r\n};\r\n\r\nAddAccountControllingPersonForm.defaultProps = {\r\n sourceAccountId: null,\r\n accounts: null,\r\n onSuccess: null,\r\n};\r\n\r\nconst AddAccountControllingPersonReduxForm = reduxForm({\r\n form: 'add-controlling-person-form'\r\n})(AddAccountControllingPersonForm);\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n account: {\r\n isLinkingControllingPerson,\r\n isLinkingControllingPersonComplete\r\n }\r\n } = state;\r\n\r\n return {\r\n isLinkingControllingPerson,\r\n isLinkingControllingPersonComplete\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(AddAccountControllingPersonReduxForm);\r\n","import React, { useState } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport { RenderDatePicker } from 'components/Common/Inputs';\r\nimport DateTimes from 'components/Common/DateTimes';\r\nimport moment from 'moment';\r\n\r\nconst ControllingPersonUnlinkModal = ({\r\n title,\r\n message,\r\n isShown,\r\n isPerformingAction,\r\n onConfirm,\r\n onCancel,\r\n minDate\r\n}) => {\r\n const [newEffectiveDate, setNewEffectiveDate] = useState(moment().format('MM-DD-YYYY'));\r\n\r\n const onConfirmEffectiveDate = () => {\r\n onConfirm(newEffectiveDate);\r\n };\r\n\r\n return (\r\n \r\n \r\n { message }\r\n \r\n
    \r\n

    Effective Date:

    \r\n setNewEffectiveDate(e), value: newEffectiveDate && newEffectiveDate.length > 0 ? newEffectiveDate : '' } }\r\n placeholder=\"Please select a date\"\r\n dateFormat=\"MM-dd-yyyy\"\r\n maxDate={ DateTimes.today }\r\n minDate={ minDate ? moment(minDate).toDate() : null }\r\n isClearable\r\n />\r\n
    \r\n \r\n );\r\n};\r\n\r\nControllingPersonUnlinkModal.propTypes = {\r\n title: PropTypes.string,\r\n message: PropTypes.string,\r\n isShown: PropTypes.bool,\r\n isPerformingAction: PropTypes.bool,\r\n onConfirm: PropTypes.func,\r\n onCancel: PropTypes.func,\r\n minDate: PropTypes.string\r\n};\r\n\r\nControllingPersonUnlinkModal.defaultProps = {\r\n title: null,\r\n message: null,\r\n isShown: false,\r\n isPerformingAction: false,\r\n onConfirm: null,\r\n onCancel: null,\r\n minDate: null\r\n};\r\n\r\nexport default ControllingPersonUnlinkModal;\r\n","import React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { PropTypes } from 'prop-types';\r\nimport { push } from 'connected-react-router';\r\nimport moment from 'moment';\r\nimport FormViewButton from 'components/Common/Buttons/FormViewButton';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport FormTypes from 'common/Forms/FormTypes';\r\n\r\nconst LinkedImyStructure = ({ structure, permissions }) => {\r\n const dispatch = useDispatch();\r\n\r\n const navigateToImyStructure = (form) => {\r\n if (form.topLevelAccountId !== null) {\r\n dispatch(push(`/w8imystructure/${ form.topLevelAccountId }`));\r\n }\r\n };\r\n\r\n const navigateToDigitalWhsStatement = (form) => {\r\n if (form.topLevelAccountId !== null) {\r\n dispatch(push(`/whd-statement/${ form.topLevelAccountId }`));\r\n }\r\n };\r\n\r\n const buildFormObject = () => {\r\n const formType = structure && structure.formType && FormTypes.getByValue(structure.formType);\r\n const formObject = {\r\n accountId: structure.topLevelAccountId,\r\n formId: structure.formId,\r\n formType: formType && formType.code,\r\n workflowStatus: structure.workflowStatus,\r\n workflowUsername: structure.workflowUsername ? structure.workflowUsername : 'N/A',\r\n workflowUserFullName: structure.workflowUserFullName\r\n };\r\n return formObject;\r\n };\r\n\r\n function dateFormatter(value, format) {\r\n return moment(value).format(format);\r\n }\r\n\r\n function getEffectiveDate(date) {\r\n if (date !== null) {\r\n return `${ dateFormatter(date, 'MMM DD, YYYY') }`;\r\n }\r\n return 'N/A';\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    Intermediary Name

    \r\n

    { structure.topLevelCustomerName }

    \r\n
    \r\n
    \r\n

    Intermediary Account

    \r\n

    { structure.topLevelAccount }

    \r\n
    \r\n
    \r\n

    Uploaded

    \r\n

    { getEffectiveDate(structure.uploadedDate) }

    \r\n
    \r\n
    \r\n

    Linked

    \r\n

    { getEffectiveDate(structure.effectiveFrom) }

    \r\n
    \r\n
    \r\n
    \r\n

    View options

    \r\n
    \r\n { structure.formId > 0 && AccessControl.hasPermission(permissions, [ActivityPerms.scannedView, ActivityPerms.scannedEdit, ActivityPerms.scannedValidate])\r\n && IMY Form }\r\n className=\"btn btn-secondary mr-10\"\r\n title=\"View IMY Form\"\r\n /> }\r\n { structure.hasAllocationStatement && AccessControl.hasPermission(permissions, [ActivityPerms.scannedViewTree]) && navigateToImyStructure(structure) }\r\n >\r\n \r\n IMY Tree\r\n }\r\n { structure.hasAllocationStatement && AccessControl.hasPermission(permissions, [ActivityPerms.multiTierMgrViewWhs]) && navigateToDigitalWhsStatement(structure) }\r\n >\r\n WHS\r\n }\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nLinkedImyStructure.propTypes = {\r\n structure: PropTypes.shape().isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string)\r\n};\r\n\r\nLinkedImyStructure.defaultProps = {\r\n permissions: null\r\n};\r\n\r\nexport default LinkedImyStructure;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { reduxForm } from 'redux-form';\r\nimport AutoCompleteInput from 'components/Common/Inputs/AutoCompleteInput';\r\nimport { toastr } from 'react-redux-toastr';\r\n\r\nclass UnLinkedImyStructure extends Component {\r\n static propTypes = {\r\n storeAccount: PropTypes.shape().isRequired,\r\n onConfirmImyStructureLink: PropTypes.func.isRequired\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n targetWhsLinkAccount: null\r\n };\r\n\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { targetWhsLinkAccount } = this.state;\r\n const { onConfirmImyStructureLink } = this.props;\r\n\r\n if (!targetWhsLinkAccount || !targetWhsLinkAccount.id) {\r\n toastr.error('', 'Please provide an Account Id');\r\n }\r\n\r\n onConfirmImyStructureLink(targetWhsLinkAccount);\r\n this.setState({ targetWhsLinkAccount: null });\r\n }\r\n\r\n setWhsAccount = value => this.setState({ targetWhsLinkAccount: value });\r\n\r\n render() {\r\n const { targetWhsLinkAccount } = this.state;\r\n const { storeAccount } = this.props;\r\n return (\r\n
    \r\n
    \r\n
    \r\n this.setWhsAccount(value) }\r\n onChange={ e => this.setWhsAccount(null) }\r\n />\r\n
    \r\n { targetWhsLinkAccount && targetWhsLinkAccount.topLevelCustomerName && Intermediary name: { targetWhsLinkAccount.topLevelCustomerName }}\r\n \r\n Link Account\r\n \r\n
    \r\n

    By linking, any forms that are present on this account will be expired.

    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst UnLinkedImyStructureReduxForm = reduxForm({\r\n form: 'link-imy-structure'\r\n})(UnLinkedImyStructure);\r\n\r\nexport default UnLinkedImyStructureReduxForm;\r\n","import React, { useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { PropTypes } from 'prop-types';\r\nimport { GetLinkOperationStatus } from 'actions';\r\n\r\nimport LinkWhsOperationStatus from 'components/LinkWhsOperationStatus';\r\n\r\nconst LinkWhsOperationMonitor = ({\r\n dispatch,\r\n accountId,\r\n showMonitorExplanation,\r\n accountWhsLinkStatus,\r\n reloadOnComplete,\r\n accountWhsLinkMonitorFailed\r\n}) => {\r\n const getStatus = async () => {\r\n dispatch(GetLinkOperationStatus(accountId, reloadOnComplete));\r\n };\r\n\r\n useEffect(() => {\r\n if (accountWhsLinkMonitorFailed) {\r\n return false;\r\n }\r\n const interval = setInterval(() => {\r\n getStatus();\r\n }, 5000);\r\n\r\n return () => clearInterval(interval);\r\n }, [getStatus, accountWhsLinkMonitorFailed]);\r\n\r\n return ;\r\n};\r\n\r\nLinkWhsOperationMonitor.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n accountId: PropTypes.number,\r\n showMonitorExplanation: PropTypes.bool,\r\n accountWhsLinkStatus: PropTypes.shape(),\r\n reloadOnComplete: PropTypes.bool,\r\n accountWhsLinkMonitorFailed: PropTypes.bool\r\n};\r\n\r\nLinkWhsOperationMonitor.defaultProps = {\r\n accountId: null,\r\n showMonitorExplanation: true,\r\n accountWhsLinkStatus: null,\r\n reloadOnComplete: false,\r\n accountWhsLinkMonitorFailed: false\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n account: {\r\n accountWhsLinkStatus,\r\n accountWhsLinkMonitorFailed\r\n }\r\n } = state;\r\n\r\n return {\r\n accountWhsLinkStatus,\r\n accountWhsLinkMonitorFailed\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(LinkWhsOperationMonitor);\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport LinkWhsOperationMonitor from 'components/LinkWhsOperationMonitor';\r\n\r\nconst LinkWhsAccountModal = ({\r\n isShown,\r\n accountWhsLinkStatus,\r\n accountId,\r\n reloadOnComplete,\r\n accountWhsLinkMonitorFailed\r\n}) => (\r\n \r\n);\r\n\r\nLinkWhsAccountModal.propTypes = {\r\n isShown: PropTypes.bool,\r\n accountId: PropTypes.number,\r\n accountWhsLinkStatus: PropTypes.shape(),\r\n reloadOnComplete: PropTypes.bool,\r\n accountWhsLinkMonitorFailed: PropTypes.bool\r\n};\r\n\r\nLinkWhsAccountModal.defaultProps = {\r\n isShown: false,\r\n accountId: null,\r\n accountWhsLinkStatus: null,\r\n reloadOnComplete: false,\r\n accountWhsLinkMonitorFailed: false\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n account: {\r\n accountWhsLinkStatus,\r\n accountWhsLinkMonitorFailed\r\n }\r\n } = state;\r\n\r\n return {\r\n accountWhsLinkStatus,\r\n accountWhsLinkMonitorFailed\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps)(LinkWhsAccountModal);\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router';\r\nimport { PropTypes } from 'prop-types';\r\nimport { reset, change } from 'redux-form';\r\nimport { push } from 'connected-react-router';\r\nimport moment from 'moment';\r\nimport NotFoundPage from 'components/Errors/NotFoundPage';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\n\r\nimport {\r\n accountDataLoad,\r\n accountCustomerLink,\r\n accountCustomerUnlink,\r\n accountFormUnlink,\r\n showAccountNumberChangeModal,\r\n hideAccountNumberChangeModal,\r\n processAccountNumberChange,\r\n showUnlinkFormModal,\r\n hideUnlinkFormModal,\r\n clearAccountData,\r\n getParentImyForms,\r\n showDeleteFormModal,\r\n hideDeleteFormModal,\r\n deleteForms,\r\n takeQueueItem,\r\n hideOwnershipModal,\r\n showUpdateDualFormStatusModal,\r\n hideUpdateDualFormStatusModal,\r\n updateDualFormStatus,\r\n editAccountName,\r\n cancelEditAccountName,\r\n updateAccountName,\r\n getAllControllingPersons,\r\n expireControllingPerson,\r\n removeControllingPerson,\r\n hideLinkToImyStructureConfirmModal,\r\n showLinkToImyStructureConfirmModal,\r\n linkAccountToImyStructure,\r\n getAccountLinkedImyStructure,\r\n clearAccountLinkedImyStructure\r\n} from 'actions';\r\n\r\nimport getCertifictionStatus from 'common/Forms/CertificationStatus';\r\nimport AccountNumberChangeModal from 'components/Modals/AccountNumberChangeModal';\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\nimport AddAccountCustomerForm from 'components/Account/AddAccountCustomerForm';\r\nimport AccountCustomerList from 'components/Account/AccountCustomerList';\r\nimport AccountFormList from 'components/Account/AccountFormList';\r\nimport ConfirmModal from 'components/Modals/ConfirmModal';\r\nimport DeleteFormModal from 'components/Modals/DeleteFormModal';\r\nimport ChangeOwnershipModal from 'components/Modals/ChangeOwnershipModal';\r\nimport UpdateDualFormStatusModal from 'components/Modals/UpdateDualFormStatusModal';\r\nimport ActiveChip from 'components/Common/ActiveChip';\r\nimport withContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary';\r\nimport WithholdingRates from 'components/WithholdingRates';\r\nimport MoveForm from 'components/MoveForm';\r\nimport CloneForm from 'components/CloneForm';\r\nimport DirectChip from 'components/Common/DirectChip';\r\nimport AccountComments from 'components/Account/AccountComments';\r\nimport AccountControllingPersonsList from 'components/Account/AccountControllingPersonsList';\r\nimport AddAccountControllingPerson from 'components/Account/AddAccountControllingPerson';\r\nimport ControllingPersonUnlinkModal from 'components/Modals/ControllingPersonUnlinkModal';\r\nimport LinkedImyStructure from 'components/LinkedImyStructure';\r\nimport UnlinkedImyStructure from 'components/UnlinkedImyStructure';\r\nimport LinkWhsAccountModal from 'components/Modals/LinkWhsAccountModal';\r\n\r\nclass Account extends Component {\r\n static propTypes = {\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n settings: PropTypes.shape({\r\n showWithholding: PropTypes.bool,\r\n showJointAccounts: PropTypes.bool,\r\n showDualForms: PropTypes.bool\r\n }).isRequired,\r\n dispatch: PropTypes.func.isRequired,\r\n storeAccount: PropTypes.shape(),\r\n isLoadingData: PropTypes.bool.isRequired,\r\n match: PropTypes.shape({\r\n params: PropTypes.shape({\r\n id: PropTypes.string.isRequired\r\n }).isRequired\r\n }).isRequired,\r\n isAccountNumberChangeModalShown: PropTypes.bool.isRequired,\r\n accountDataLoadError: PropTypes.shape({\r\n code: PropTypes.number,\r\n message: PropTypes.string\r\n }),\r\n linkedImyStructure: PropTypes.shape(),\r\n isDeleteFormModalShown: PropTypes.bool,\r\n isDeletingForm: PropTypes.bool,\r\n deleteFormError: PropTypes.string,\r\n isUnlinkFormModalShown: PropTypes.bool,\r\n isUnlinkingForm: PropTypes.bool,\r\n unlinkFormError: PropTypes.string,\r\n isOwnershipModalShown: PropTypes.bool,\r\n changeOwnershipItem: PropTypes.shape(),\r\n defaultWhdCustomerId: PropTypes.number,\r\n isUpdateDualFormStatusModalShown: PropTypes.bool,\r\n isUpdatingDualFormStatus: PropTypes.bool,\r\n updateDualFormStatusError: PropTypes.string,\r\n dualFormCheckStatus: PropTypes.bool,\r\n dualFormSelectedAccountId: PropTypes.number,\r\n dualFormSeletedAccountNumber: PropTypes.string,\r\n isEditingAccount: PropTypes.bool,\r\n isSubmittingAccount: PropTypes.bool,\r\n controllingPersons: PropTypes.arrayOf(PropTypes.shape()),\r\n isGettingControllingPersons: PropTypes.bool,\r\n isExpiringControllingPerson: PropTypes.bool,\r\n isRemovingControllingPerson: PropTypes.bool,\r\n targetWhsLinkAccount: PropTypes.shape(),\r\n isLinkToImyStructureConfirmModalShown: PropTypes.bool,\r\n isLinkingToImyStructureModalShown: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n permissions: null,\r\n storeAccount: {\r\n name: '',\r\n customers: [],\r\n forms: []\r\n },\r\n accountDataLoadError: null,\r\n linkedImyStructure: null,\r\n isDeleteFormModalShown: false,\r\n isDeletingForm: false,\r\n deleteFormError: null,\r\n isUnlinkFormModalShown: false,\r\n isUnlinkingForm: false,\r\n unlinkFormError: null,\r\n isOwnershipModalShown: false,\r\n changeOwnershipItem: null,\r\n defaultWhdCustomerId: 0,\r\n isUpdateDualFormStatusModalShown: false,\r\n isUpdatingDualFormStatus: false,\r\n updateDualFormStatusError: null,\r\n dualFormCheckStatus: false,\r\n dualFormSelectedAccountId: 0,\r\n dualFormSeletedAccountNumber: '',\r\n isEditingAccount: false,\r\n isSubmittingAccount: false,\r\n controllingPersons: null,\r\n isGettingControllingPersons: false,\r\n isExpiringControllingPerson: false,\r\n isRemovingControllingPerson: false,\r\n targetWhsLinkAccount: null,\r\n isLinkToImyStructureConfirmModalShown: false,\r\n isLinkingToImyStructureModalShown: false\r\n };\r\n\r\n static getForeignTin(tin, notRequired) {\r\n if (!tin) {\r\n return notRequired ? FTIN Declared as Not Legally Required : 'N/A';\r\n }\r\n const cleanedTin = tin.replace(/\\s/g, '').toLowerCase();\r\n if (cleanedTin.includes('notlegallyrequired')) {\r\n return !notRequired ? { tin } (FTIN Not Correctly Declared as Legally Required) : FTIN Declared as Not Legally Required;\r\n }\r\n\r\n return notRequired ? FTIN Declared as Not Legally Required : tin;\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const { storeAccount } = props;\r\n\r\n this.state = {\r\n isUnlinkCustomerModalShown: false,\r\n isUnlinkingCustomer: false,\r\n UnlinkCustomerError: null,\r\n accountId: null,\r\n formToDelete: null,\r\n formToUnlink: null,\r\n accountName: storeAccount?.accountName ?? null,\r\n isUnlinkCpModalShown: false,\r\n UnlinkCpError: null,\r\n cpToUnlinkId: null,\r\n cpUnlinkMinDate: null,\r\n isRemoveCpModalShown: false,\r\n RemoveCpError: null,\r\n cpToRemoveId: null,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const { dispatch, match, permissions } = this.props;\r\n dispatch(accountDataLoad(match.params.id));\r\n if (AccessControl.hasPermission(permissions, [ActivityPerms.scannedViewTree])) {\r\n dispatch(getAccountLinkedImyStructure(match.params.id));\r\n }\r\n if (AccessControl.hasPermission(permissions, [ActivityPerms.accountEdit, ActivityPerms.accountPageView])) {\r\n dispatch(getAllControllingPersons(match.params.id));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { dispatch } = this.props;\r\n dispatch(clearAccountData());\r\n dispatch(cancelEditAccountName());\r\n dispatch(clearAccountLinkedImyStructure());\r\n }\r\n\r\n onAccountNameChange(e) {\r\n this.setState({ accountName: e.target.value });\r\n }\r\n\r\n onUpdateCancel(e) {\r\n const { dispatch, storeAccount } = this.props;\r\n dispatch(cancelEditAccountName());\r\n this.setState({ accountName: storeAccount?.accountName });\r\n }\r\n\r\n onUpdateSubmit(e) {\r\n const { dispatch, storeAccount } = this.props;\r\n const { accountName } = this.state;\r\n dispatch(updateAccountName(storeAccount.id, accountName));\r\n }\r\n\r\n onEditAccountNameClick() {\r\n const { dispatch, storeAccount } = this.props;\r\n dispatch(editAccountName());\r\n this.setState({ accountName: storeAccount.accountName });\r\n }\r\n\r\n getAccountName = () => {\r\n const { storeAccount } = this.props;\r\n\r\n if (storeAccount === null || (!storeAccount.accountNumber && !storeAccount.accountName)) {\r\n return 'N/A';\r\n }\r\n\r\n let accountName = storeAccount.accountNumber;\r\n\r\n if (!accountName) {\r\n accountName = storeAccount.accountName;\r\n } else if (storeAccount.accountName !== null && storeAccount.accountName !== accountName) {\r\n accountName = `${ accountName } - ${ storeAccount.accountName }`;\r\n }\r\n\r\n return accountName;\r\n };\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n getCustomerDescription = (customer) => {\r\n if (!customer || (!customer.customerId && !customer.name)) {\r\n return 'N/A';\r\n }\r\n let description = customer.customerId;\r\n\r\n if (!description && customer.name) {\r\n description = customer.name;\r\n } else if (customer.name) {\r\n description = `${ description } - ${ customer.name }`;\r\n }\r\n\r\n return description;\r\n };\r\n\r\n openUnlinkFormModal = (formId) => {\r\n const { dispatch } = this.props;\r\n this.setState({ formToUnlink: formId });\r\n dispatch(showUnlinkFormModal());\r\n };\r\n\r\n closeUnlinkFormModal = () => {\r\n const { dispatch } = this.props;\r\n this.setState({ formToUnlink: null });\r\n dispatch(hideUnlinkFormModal());\r\n };\r\n\r\n confirmUnlinkForm = () => {\r\n const { formToUnlink } = this.state;\r\n const { dispatch, storeAccount } = this.props;\r\n dispatch(accountFormUnlink(storeAccount.id, formToUnlink));\r\n };\r\n\r\n openDeleteFormModal = (item) => {\r\n const { dispatch } = this.props;\r\n this.setState({ formToDelete: item });\r\n dispatch(showDeleteFormModal([item]));\r\n };\r\n\r\n closeDeleteFormModal = () => {\r\n const { dispatch } = this.props;\r\n this.setState({ formToDelete: null });\r\n dispatch(hideDeleteFormModal());\r\n };\r\n\r\n processDeleteForms = () => {\r\n const { dispatch, match, permissions } = this.props;\r\n const { formToDelete } = this.state;\r\n dispatch(deleteForms([formToDelete.id], () => {\r\n this.closeDeleteFormModal();\r\n dispatch(accountDataLoad(match.params.id));\r\n if (AccessControl.hasPermission(permissions, [ActivityPerms.scannedViewTree])) {\r\n dispatch(getParentImyForms(null, match.params.id));\r\n }\r\n if (AccessControl.hasPermission(permissions, [ActivityPerms.accountEdit, ActivityPerms.accountPageView])) {\r\n dispatch(getAllControllingPersons(match.params.id));\r\n }\r\n }));\r\n };\r\n\r\n openDualFormStatusModal = (e, accountId, accountNumber) => {\r\n const { dispatch } = this.props;\r\n const isActivated = e.target.value === 'required';\r\n dispatch(showUpdateDualFormStatusModal(isActivated, accountId, accountNumber));\r\n };\r\n\r\n closeUpdateDualFormStatusModal = () => {\r\n const { dispatch } = this.props;\r\n dispatch(hideUpdateDualFormStatusModal());\r\n };\r\n\r\n processUpdateDualFormStatus = () => {\r\n const { dispatch, dualFormCheckStatus, dualFormSelectedAccountId } = this.props;\r\n dispatch(updateDualFormStatus(dualFormCheckStatus, dualFormSelectedAccountId));\r\n };\r\n\r\n openUnlinkCustomerModal = (accountId) => {\r\n this.setState({ isUnlinkCustomerModalShown: true, accountId });\r\n };\r\n\r\n closeUnlinkCustomerModal = () => {\r\n this.setState({ isUnlinkCustomerModalShown: false });\r\n };\r\n\r\n confirmUnlinkCustomer = () => {\r\n const { accountId } = this.state;\r\n this.processCustomerUnlink(accountId);\r\n this.setState({ isUnlinkCustomerModalShown: false });\r\n };\r\n\r\n openUnlinkCpModal = (cpToUnlinkId, cpUnlinkMinDate) => {\r\n this.setState({ isUnlinkCpModalShown: true, cpToUnlinkId, cpUnlinkMinDate });\r\n };\r\n\r\n closeUnlinkCpModal = () => {\r\n this.setState({ isUnlinkCpModalShown: false });\r\n };\r\n\r\n confirmUnlinkCp = (effectiveDate) => {\r\n const { cpToUnlinkId } = this.state;\r\n this.processCpUnlink(cpToUnlinkId, effectiveDate);\r\n this.setState({ isUnlinkCpModalShown: false });\r\n };\r\n\r\n openRemoveCpModal = (cpToRemoveId) => {\r\n this.setState({ isRemoveCpModalShown: true, cpToRemoveId });\r\n };\r\n\r\n closeRemoveCpModal = () => {\r\n this.setState({ isRemoveCpModalShown: false });\r\n };\r\n\r\n confirmRemoveCp = () => {\r\n const { cpToRemoveId } = this.state;\r\n this.processCpRemove(cpToRemoveId);\r\n this.setState({ isRemoveCpModalShown: false });\r\n };\r\n\r\n closeFromOwnershipModal = (item) => {\r\n const { dispatch } = this.props;\r\n dispatch(hideOwnershipModal(item));\r\n };\r\n\r\n reAssignItem = () => {\r\n const { dispatch, changeOwnershipItem } = this.props;\r\n if (changeOwnershipItem != null && changeOwnershipItem.id != null) {\r\n dispatch(takeQueueItem('form', changeOwnershipItem.id, changeOwnershipItem.accountId));\r\n dispatch(hideOwnershipModal());\r\n }\r\n };\r\n\r\n continueFromOwnershipModal = () => {\r\n const { dispatch, changeOwnershipItem } = this.props;\r\n dispatch(hideOwnershipModal());\r\n let redirectUrl = `/forms/${ changeOwnershipItem.formType.toLowerCase() }/${ changeOwnershipItem.id }`;\r\n if (changeOwnershipItem.accountId) {\r\n redirectUrl = `${ redirectUrl }?account=${ changeOwnershipItem.accountId }`;\r\n }\r\n dispatch(push(redirectUrl));\r\n };\r\n\r\n closeLinkToImyStructureConfirmModal = () => {\r\n const { dispatch } = this.props;\r\n dispatch(hideLinkToImyStructureConfirmModal());\r\n };\r\n\r\n openLinkToImyStructureConfirmModal(targetWhsLinkAccount) {\r\n const { dispatch } = this.props;\r\n dispatch(showLinkToImyStructureConfirmModal(targetWhsLinkAccount));\r\n }\r\n\r\n openAccountNumberChangeModal() {\r\n const { dispatch } = this.props;\r\n dispatch(showAccountNumberChangeModal());\r\n }\r\n\r\n closeAccountNumberChangeModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideAccountNumberChangeModal());\r\n }\r\n\r\n processAccountNumberChange(updatedAccount) {\r\n const { dispatch } = this.props;\r\n dispatch(processAccountNumberChange(updatedAccount));\r\n }\r\n\r\n processCustomerLink(addedAccountData) {\r\n const { dispatch, storeAccount } = this.props;\r\n dispatch(accountCustomerLink(storeAccount.id, addedAccountData));\r\n dispatch(reset('addAccountCustomerForm'));\r\n dispatch(change('addAccountCustomerForm', 'customerId', null));\r\n }\r\n\r\n processCustomerUnlink(customerId) {\r\n const { dispatch, storeAccount } = this.props;\r\n dispatch(accountCustomerUnlink(storeAccount.id, customerId));\r\n }\r\n\r\n processCpUnlink(cpToUnlinkId, effectiveDate) {\r\n const { dispatch, storeAccount } = this.props;\r\n dispatch(expireControllingPerson(cpToUnlinkId, storeAccount.id, effectiveDate));\r\n }\r\n\r\n processCpRemove(cpToRemoveId) {\r\n const { dispatch, storeAccount } = this.props;\r\n dispatch(removeControllingPerson(cpToRemoveId, storeAccount.id));\r\n }\r\n\r\n accountContainsValidCpAndCrse() {\r\n const { storeAccount } = this.props;\r\n const crseEnums = [5, 22, 24];\r\n const crsCpEnums = [7, 21, 23];\r\n const crseFormsOnAccount = storeAccount.forms\r\n ? storeAccount.forms.filter(form => crseEnums.includes(form.formTypeEnum) && form.workflowStage === 100 && form.isValid === true)\r\n : [];\r\n const crsCpFormsOnAccount = storeAccount.forms\r\n ? storeAccount.forms.filter(form => crsCpEnums.includes(form.formTypeEnum) && form.workflowStage === 100 && form.isValid === true)\r\n : [];\r\n if (crseFormsOnAccount.length > 0 && crsCpFormsOnAccount.length > 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n confirmLinkToImyStructure(accountIdToLinkTo) {\r\n const { dispatch, storeAccount } = this.props;\r\n dispatch(linkAccountToImyStructure(storeAccount.id, accountIdToLinkTo));\r\n }\r\n\r\n render() {\r\n const { permissions, storeAccount, isLoadingData, settings, accountDataLoadError, isAccountNumberChangeModalShown, linkedImyStructure, dispatch,\r\n isDeleteFormModalShown, isDeletingForm, deleteFormError, isUnlinkFormModalShown, isUnlinkingForm, unlinkFormError,\r\n isOwnershipModalShown, changeOwnershipItem, defaultWhdCustomerId,\r\n isUpdateDualFormStatusModalShown, isUpdatingDualFormStatus, updateDualFormStatusError, dualFormCheckStatus, dualFormSeletedAccountNumber,\r\n isEditingAccount, isSubmittingAccount, controllingPersons, isGettingControllingPersons, isExpiringControllingPerson, isRemovingControllingPerson,\r\n targetWhsLinkAccount, isLinkToImyStructureConfirmModalShown,\r\n isLinkingToImyStructureModalShown\r\n } = this.props;\r\n const {\r\n isUnlinkCustomerModalShown,\r\n isUnlinkingCustomer,\r\n UnlinkCustomerError,\r\n formToDelete,\r\n accountName,\r\n isUnlinkCpModalShown,\r\n UnlinkCpError,\r\n isRemoveCpModalShown,\r\n RemoveCpError,\r\n cpUnlinkMinDate\r\n } = this.state;\r\n\r\n const singleCustomer = storeAccount && storeAccount.customers && storeAccount.customers.length === 1 && storeAccount.customers[0];\r\n const addressPopulated = singleCustomer?.address && (singleCustomer.address.line1 || singleCustomer.address.line2 || singleCustomer.address.postalCode || singleCustomer.address.country);\r\n const showWithholding = storeAccount && settings && settings.showWithholding && AccessControl.hasPermission(permissions, [ActivityPerms.whdViewRates]);\r\n\r\n let certData = null;\r\n if (singleCustomer) {\r\n certData = singleCustomer.formCertificationData ?? singleCustomer.importCertificationData;\r\n }\r\n return (\r\n
    \r\n\r\n { accountDataLoadError && (accountDataLoadError.code !== 0\r\n && \r\n ) }\r\n\r\n { !accountDataLoadError && (isLoadingData || storeAccount == null) && }\r\n { !accountDataLoadError && !isLoadingData && storeAccount !== null &&
    \r\n
    \r\n
    \r\n
    \r\n Account: { this.getAccountName() }\r\n \r\n \r\n
    \r\n {storeAccount?.isDirect && \r\n \r\n }\r\n
    \r\n
    \r\n { storeAccount &&
    \r\n
    \r\n

    Account Details:

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Certification Status:

    \r\n
    \r\n
    \r\n

    { storeAccount && getCertifictionStatus(storeAccount.certificationStatus) }

    \r\n
    \r\n
    \r\n

    Name:

    \r\n
    \r\n
    \r\n { !isEditingAccount &&

    \r\n { storeAccount && storeAccount.accountName ? storeAccount.accountName : 'N/A' }\r\n

    }\r\n { !isEditingAccount && AccessControl.hasPermission(permissions, [ActivityPerms.accountEdit]) && storeAccount?.isDirect === true && this.onEditAccountNameClick() }\r\n >\r\n \r\n }\r\n { isEditingAccount && AccessControl.hasPermission(permissions, [ActivityPerms.accountEdit]) && \r\n this.onAccountNameChange(e) }\r\n />\r\n this.onUpdateSubmit() }\r\n >\r\n this.onUpdateCancel() }\r\n >\r\n }\r\n
    \r\n { (settings.showDualForms || storeAccount.isDualFormRequired !== null)\r\n && storeAccount && (storeAccount.legalEntity && storeAccount.legalEntity.dualFormRequirement > 0)\r\n && \r\n
    \r\n

    Dual Form Status:

    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    }\r\n { singleCustomer && \r\n
    \r\n

    Customer:

    \r\n
    \r\n

    { this.getCustomerDescription(singleCustomer) }

    \r\n
    \r\n

    Permanent Address:

    \r\n
    \r\n
    \r\n { addressPopulated && \r\n {singleCustomer.address.line1 !== null ? singleCustomer.address.line1 : ''}\r\n {singleCustomer.address.line2 !== null ? singleCustomer.address.line2 : ''}\r\n {singleCustomer.address.line3 !== null ? singleCustomer.address.line3 : ''}\r\n {singleCustomer.address.line4 !== null ? singleCustomer.address.line4 : ''}\r\n {singleCustomer.address.postalCode !== null ? singleCustomer.address.postalCode : ''}\r\n {singleCustomer.address.country !== null ? singleCustomer.address.country : ''}\r\n }\r\n { !addressPopulated &&

    N/A

    }\r\n
    \r\n
    }\r\n
    \r\n
    \r\n
    \r\n { storeAccount != null && storeAccount.customers != null && storeAccount.customers.length === 1\r\n &&
    \r\n
    \r\n

    Treaty Country:

    \r\n
    \r\n
    \r\n

    {certData?.treatyCountry ? certData.treatyCountry : 'N/A'}

    \r\n
    \r\n { certData?.lobCategoryCode && certData.lobCategoryCode !== '' && \r\n
    \r\n

    LOB:

    \r\n
    \r\n
    \r\n

    {certData?.lobCategoryCode ? certData.lobCategoryCode : 'N/A'}

    \r\n
    \r\n
    }\r\n
    \r\n

    US TIN:

    \r\n
    \r\n

    {certData?.tin ? certData.tin : 'N/A'}

    \r\n
    \r\n

    FTIN:

    \r\n
    \r\n

    { Account.getForeignTin(certData?.foreignTin, certData?.foreignTinNotRequired) }

    \r\n
    \r\n

    GIIN:

    \r\n
    \r\n

    {certData?.giin ? certData.giin : 'N/A'}

    \r\n
    \r\n

    Part 2 GIIN:

    \r\n
    \r\n

    {certData?.part2Giin ? certData.part2Giin : 'N/A'}

    \r\n
    }\r\n { storeAccount != null && storeAccount.customers != null && storeAccount.customers.length > 1\r\n && \r\n Navigate to the Customer Page for each account holder
    to view additional certification data points\r\n
    }\r\n
    \r\n
    \r\n { storeAccount && !storeAccount.isActive && storeAccount.activeStatusDate && moment(storeAccount.activeStatusDate).isBefore(moment().subtract(90, 'days'))\r\n &&
    \r\n
    \r\n \r\n This account has been inactive for over 90 days. All details will no longer be updated.\r\n \r\n
    \r\n
    }\r\n
    }\r\n { storeAccount.legalEntity &&
    \r\n
    \r\n

    Legal Entity Details:

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Legal Entity:

    \r\n
    \r\n
    \r\n

    {`${ storeAccount.legalEntity.name } (${ storeAccount.legalEntity.identifier ? storeAccount.legalEntity.identifier : 'N/A' })`}

    \r\n
    \r\n
    \r\n

    Legal Entity has US Tax Obligation?:

    \r\n
    \r\n
    \r\n { storeAccount.legalEntity?.usTaxObligation !== null &&

    { storeAccount.legalEntity.usTaxObligation ? 'Yes' : 'No' }

    }\r\n { storeAccount.legalEntity?.usTaxObligation === null &&

    N/A

    }\r\n
    \r\n
    \r\n

    CRS Participating?:

    \r\n
    \r\n
    \r\n { storeAccount.legalEntity?.crsParticipating !== null &&

    { storeAccount.legalEntity.crsParticipating ? 'Yes' : 'No' }

    }\r\n { storeAccount.legalEntity?.crsParticipating === null &&

    N/A

    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Chapter 3:

    \r\n
    \r\n
    \r\n { storeAccount.legalEntity?.chapter3Status !== null ? storeAccount.legalEntity?.chapter3StatusDescription : 'N/A' }\r\n
    \r\n
    \r\n

    Chapter 4:

    \r\n
    \r\n
    \r\n { storeAccount.legalEntity?.chapter4Status !== null ? storeAccount.legalEntity?.chapter4StatusDescription : 'N/A' }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    }\r\n this.processAccountNumberChange(updatedAccount) }\r\n onCancel={ () => this.closeAccountNumberChangeModal() }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Forms Linked to Account:

    \r\n
    \r\n
    \r\n this.openDeleteFormModal(item) }\r\n onConfirmFormUnlink={ accountId => this.openUnlinkFormModal(accountId) }\r\n />\r\n
    \r\n { storeAccount?.forms && storeAccount.forms.length > 0 &&
    \r\n
    \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.scannedEdit]) && f.workflowStage !== 100) } // Only Non-Workflow Complete Forms\r\n onSuccess={ () => dispatch(accountDataLoad(storeAccount.id)) }\r\n /> }\r\n
    \r\n
    \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.scannedEdit]) && }\r\n
    \r\n
    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Customers Linked to Account:

    \r\n
    \r\n
    \r\n this.openUnlinkCustomerModal(accountId) }\r\n permissions={ permissions }\r\n />\r\n
    \r\n { settings.showJointAccounts && \r\n
    \r\n

    Link a Customer:

    \r\n
    \r\n
    \r\n this.processCustomerLink(updateData) } />\r\n
    \r\n
    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Controlling Persons Linked to Account:

    \r\n
    \r\n
    \r\n this.openUnlinkCpModal(id, minDate) }\r\n onConfirmCpRemove={ id => this.openRemoveCpModal(id) }\r\n accountIsActive={ storeAccount && storeAccount.isActive }\r\n />\r\n
    \r\n {this.accountContainsValidCpAndCrse()\r\n && \r\n
    \r\n \r\n
    \r\n
    }\r\n
    \r\n
    \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.accountLinkWhs]) && !linkedImyStructure &&
    \r\n
    \r\n
    \r\n

    Link IMY Tree Structure:

    \r\n
    \r\n
    \r\n this.openLinkToImyStructureConfirmModal(updateData) } />\r\n
    \r\n
    \r\n
    }\r\n { linkedImyStructure &&
    \r\n
    \r\n
    \r\n

    Linked IMY Tree Structure:

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n { showWithholding && AccessControl.hasPermission(permissions, [ActivityPerms.whdViewRates]) &&
    \r\n
    \r\n

    Withholding Rates:

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    }\r\n
    \r\n
    \r\n
    }\r\n this.confirmUnlinkForm() }\r\n onCancel={ () => this.closeUnlinkFormModal() }\r\n error={ unlinkFormError }\r\n title=\"Unlink\"\r\n message=\"Are you sure you want to unlink this form?\"\r\n />\r\n this.confirmUnlinkCustomer() }\r\n onCancel={ () => this.closeUnlinkCustomerModal() }\r\n error={ UnlinkCustomerError }\r\n title=\"Unlink\"\r\n message=\"Are you sure you want to unlink this customer?\"\r\n />\r\n this.confirmUnlinkCp(effectiveDate) }\r\n onCancel={ () => this.closeUnlinkCpModal() }\r\n minDate={ cpUnlinkMinDate }\r\n error={ UnlinkCpError }\r\n title=\"Unlink\"\r\n message=\"Are you sure you want to unlink this controlling person?\"\r\n />\r\n this.processDeleteForms() }\r\n onCancel={ () => this.closeDeleteFormModal() }\r\n deleteFormError={ deleteFormError }\r\n items={ formToDelete !== null ? [formToDelete] : [] }\r\n />\r\n this.processUpdateDualFormStatus() }\r\n onCancel={ () => this.closeUpdateDualFormStatusModal() }\r\n updateDualFormStatusError={ updateDualFormStatusError }\r\n checkStatus={ dualFormCheckStatus }\r\n accountNumber={ dualFormSeletedAccountNumber }\r\n />\r\n this.confirmRemoveCp() }\r\n onCancel={ () => this.closeRemoveCpModal() }\r\n error={ RemoveCpError }\r\n title=\"Remove\"\r\n message=\"Are you sure you want to permanently remove this record?\"\r\n confirmTitle=\"Yes\"\r\n cancelTitle=\"No\"\r\n />\r\n { changeOwnershipItem != null && this.reAssignItem() }\r\n onContinueWithoutAssign={ () => this.continueFromOwnershipModal() }\r\n onCancel={ () => this.closeFromOwnershipModal() }\r\n workflowRecord={ changeOwnershipItem }\r\n /> }\r\n this.confirmLinkToImyStructure(targetWhsLinkAccount.id) }\r\n onCancel={ () => this.closeLinkToImyStructureConfirmModal() }\r\n title=\"Link Account\"\r\n message={ Are you sure you want to permanently link this IMY structure?` }\r\n confirmTitle=\"Yes\"\r\n cancelTitle=\"No\"\r\n />\r\n { targetWhsLinkAccount && targetWhsLinkAccount.id && targetWhsLinkAccount.id > 0 && isLinkingToImyStructureModalShown\r\n && }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n permissions,\r\n settings\r\n },\r\n account: {\r\n storeAccount,\r\n isLoadingData,\r\n accountDataLoadError,\r\n isUnlinkFormModalShown,\r\n isUnlinkingForm,\r\n unlinkFormError,\r\n isAccountNumberChangeModalShown,\r\n isUpdateDualFormStatusModalShown,\r\n isUpdatingDualFormStatus,\r\n updateDualFormStatusError,\r\n dualFormCheckStatus,\r\n dualFormSelectedAccountId,\r\n dualFormSeletedAccountNumber,\r\n isEditingAccount,\r\n isSubmittingAccount,\r\n controllingPersons,\r\n isGettingControllingPersons,\r\n targetWhsLinkAccount,\r\n isLinkToImyStructureConfirmModalShown,\r\n isLinkingToImyStructureModalShown,\r\n linkedImyStructure\r\n },\r\n forms: {\r\n isGettingParentImyForms,\r\n parentImyForms,\r\n isDeleteFormModalShown,\r\n isDeletingForm,\r\n deleteFormError\r\n },\r\n workflow: {\r\n isOwnershipModalShown,\r\n changeOwnershipItem\r\n },\r\n withholding: {\r\n accountWithholdingRates\r\n }\r\n } = state;\r\n\r\n const defaultWhdCustomerContainer = accountWithholdingRates && accountWithholdingRates.find(x => x && x.defaultRatesCustomerId > 0 && x.rates && x.rates.length > 0);\r\n const defaultWhdCustomerId = defaultWhdCustomerContainer && defaultWhdCustomerContainer.defaultRatesCustomerId;\r\n\r\n return {\r\n permissions,\r\n storeAccount,\r\n settings,\r\n isLoadingData,\r\n accountDataLoadError,\r\n isGettingParentImyForms,\r\n parentImyForms,\r\n isDeleteFormModalShown,\r\n isDeletingForm,\r\n deleteFormError,\r\n isUnlinkFormModalShown,\r\n isUnlinkingForm,\r\n unlinkFormError,\r\n isAccountNumberChangeModalShown,\r\n isOwnershipModalShown,\r\n changeOwnershipItem,\r\n defaultWhdCustomerId,\r\n isUpdateDualFormStatusModalShown,\r\n isUpdatingDualFormStatus,\r\n updateDualFormStatusError,\r\n dualFormCheckStatus,\r\n dualFormSelectedAccountId,\r\n dualFormSeletedAccountNumber,\r\n isEditingAccount,\r\n isSubmittingAccount,\r\n controllingPersons,\r\n isGettingControllingPersons,\r\n targetWhsLinkAccount,\r\n isLinkToImyStructureConfirmModalShown,\r\n isLinkingToImyStructureModalShown,\r\n linkedImyStructure\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withContainerErrorBoundary(Account, 'Account')));\r\n","export default function getAccountName(item, returnNa) {\r\n if (typeof item !== 'object' || (!item?.accountNumber && !item?.accountName)) {\r\n return returnNa ? 'N/A' : '';\r\n }\r\n\r\n let displayName = item.accountNumber;\r\n\r\n if (!displayName) {\r\n displayName = item.accountName;\r\n } else if (item?.accountName !== displayName) {\r\n displayName = `${ displayName } - ${ item.accountName }`;\r\n }\r\n\r\n return displayName;\r\n}\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Field, reduxForm } from 'redux-form';\r\nimport { RenderDatePicker, SelectInput } from 'components/Common/Inputs';\r\nimport AutoCompleteInput from 'components/Common/Inputs/AutoCompleteInput';\r\nimport { toastr } from 'react-redux-toastr';\r\nimport moment from 'moment';\r\n\r\nclass AddCustomerAccountForm extends Component {\r\n static propTypes = {\r\n onConfirmAccountLink: PropTypes.func.isRequired,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n customerId: '',\r\n validFrom: null,\r\n validUntil: null,\r\n capacity: null,\r\n accountNumber: null\r\n };\r\n\r\n this.onDataInputChange = this.onDataInputChange.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n }\r\n\r\n handleDateFromChange(newValue) {\r\n this.setState({ validFrom: newValue });\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { customerId, validUntil, accountNumber, capacity } = this.state;\r\n let { validFrom } = this.state;\r\n validFrom = validFrom == null ? moment().format('MMM DD, YYYY') : validFrom;\r\n const customerAccount = { customerId, validFrom, validUntil, capacity, accountNumber };\r\n const { onConfirmAccountLink } = this.props;\r\n\r\n if (!accountNumber || !validFrom) {\r\n toastr.error('', 'Please provide Account Number.');\r\n return;\r\n }\r\n\r\n onConfirmAccountLink(customerAccount);\r\n this.setState({\r\n customerId: '',\r\n validFrom: null,\r\n validUntil: null,\r\n capacity: null,\r\n accountNumber: null\r\n });\r\n }\r\n\r\n onAccountNumberSelectedItem = lookupValue => this.setState({ accountNumber: lookupValue });\r\n\r\n onDataInputChange(event) {\r\n const { target: { name, value } } = event;\r\n this.setState({ [name]: value });\r\n }\r\n\r\n render() {\r\n const { validFrom, accountNumber, capacity } = this.state;\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Account Number\r\n \r\n
    \r\n
    \r\n this.onAccountNumberSelectedItem(lookupValue) }\r\n />\r\n
    \r\n \r\n Capacity\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n Effective Date\r\n \r\n \r\n this.handleDateFromChange(date) }\r\n value={ validFrom }\r\n />\r\n
     \r\n Link Account\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default reduxForm({\r\n form: 'addCustomerAccountForm'\r\n})(AddCustomerAccountForm);\r\n","import React, { useState } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActiveChip from 'components/Common/ActiveChip';\r\n\r\nconst CustomerAccountList = ({ customer, onConfirmAccountUnlink, jointAccountsEnabled, permissions }) => {\r\n const [selectedRow, setSelectedRow] = useState(null);\r\n const [selectedCertData, setSelectedCertData] = useState(null);\r\n\r\n const getAccountName = (item) => {\r\n if (item === null || (!item.accountNumber && !item.accountName)) {\r\n return 'N/A';\r\n }\r\n\r\n let accountName = item.accountNumber;\r\n\r\n if (!accountName) {\r\n accountName = item.accountName;\r\n } else if (item.accountName !== null && item.accountName !== accountName) {\r\n accountName = `${ accountName } - ${ item.accountName }`;\r\n }\r\n\r\n return accountName;\r\n };\r\n\r\n const getLegalEntityDescription = (item) => {\r\n if (!item || (!item.identifier && !item.name)) {\r\n return 'N/A';\r\n }\r\n\r\n let description = item.identifier;\r\n if (description && item.name) {\r\n description = `${ description } - ${ item.name }`;\r\n } else if (!description) {\r\n description = item.name;\r\n }\r\n\r\n return description;\r\n };\r\n\r\n const onExpandCollapse = (id) => {\r\n if (selectedRow === id) {\r\n setSelectedRow(null);\r\n setSelectedCertData(null);\r\n } else {\r\n setSelectedRow(id);\r\n if (customer && customer.accounts) {\r\n const selectedAccount = customer.accounts.filter(a => a.account.id === id);\r\n if (selectedAccount && selectedAccount.length === 1) {\r\n setSelectedCertData(selectedAccount[0].formCertificationData ?? selectedAccount[0].importCertificationData);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const foreignPartnersSuffix = (id) => {\r\n if (customer && customer.accounts) {\r\n const selectedAccount = customer.accounts.filter(a => a.account.id === id);\r\n if (selectedAccount && selectedAccount.length === 1) {\r\n const certData = selectedAccount[0].formCertificationData ?? selectedAccount[0].importCertificationData;\r\n if (certData && certData.hasForeignPartners === true) {\r\n const classificationData = selectedAccount[0].reportingClassification ?? selectedAccount[0].withholdingClassification;\r\n if (classificationData && classificationData.chapter3Status === 8) {\r\n return ' - With Foreign Partners';\r\n }\r\n if (classificationData && classificationData.chapter3Status === 10) {\r\n return ' - With Foreign Beneficiaries';\r\n }\r\n }\r\n }\r\n }\r\n return '';\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { (customer != null && customer.accounts != null && customer.accounts.length > 0)\r\n && customer.accounts.map(accountDtl => accountDtl != null && accountDtl.account != null && \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { selectedRow === accountDtl.account.id && \r\n \r\n }\r\n ) }\r\n { (!customer || !customer.accounts || customer.accounts.length === 0) && }\r\n \r\n
    AccountCapacityU.S. ClassificationsCRS StatusCertification StatusAction
    \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.accountEdit, ActivityPerms.accountPageView])\r\n ? { getAccountName(accountDtl.account) }\r\n : getAccountName(accountDtl.account) }\r\n \r\n { accountDtl.capacityString }\r\n Chapter 3 Status: {accountDtl.reportingClassification?.chapter3StatusDescription ?? 'N/A'}\r\n {foreignPartnersSuffix(accountDtl.account.id)}
    \r\n Chapter 4 Status: {accountDtl.reportingClassification?.chapter4StatusDescription ?? 'N/A' }
    \r\n W9 Status: {accountDtl.reportingClassification?.w9StatusDescription ?? 'N/A'}
    \r\n Updated By: {accountDtl.reportingClassification?.recordSourceDescription ?? 'N/A' }\r\n
    \r\n {accountDtl.crsClassification?.classificationDescription ?? 'N/A' }
    \r\n Updated By: {accountDtl.crsClassification?.recordSourceDescription ?? 'N/A' }\r\n
    { accountDtl.account.certificationStatusDescription }\r\n
    \r\n { jointAccountsEnabled && \r\n \r\n }\r\n onExpandCollapse(accountDtl.account.id) }\r\n >\r\n { selectedRow === accountDtl.account.id ? '▲' : '▼' }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n { getLegalEntityDescription(accountDtl.account?.legalEntity) }\r\n
    \r\n
    \r\n \r\n { selectedCertData?.tin ? selectedCertData.tin : 'N/A' }\r\n
    \r\n
    \r\n \r\n { selectedCertData?.foreignTin ? selectedCertData.foreignTin : 'N/A' }\r\n
    \r\n
    \r\n \r\n { selectedCertData?.giin ? selectedCertData.giin : 'N/A' }\r\n
    \r\n
    \r\n \r\n { selectedCertData?.part2Giin ? selectedCertData.part2Giin : 'N/A' }\r\n
    \r\n
    \r\n \r\n { selectedCertData?.treatyCountry ? selectedCertData.treatyCountry : 'N/A' }\r\n
    \r\n { selectedCertData?.lobCategoryCode && selectedCertData.lobCategoryCode !== ''\r\n &&
    \r\n \r\n { selectedCertData.lobCategoryCode ? selectedCertData.lobCategoryCode : 'N/A' }\r\n
    }\r\n
    \r\n

    No Data to Show

    \r\n
    \r\n );\r\n};\r\n\r\nCustomerAccountList.propTypes = {\r\n customer: PropTypes.shape(),\r\n onConfirmAccountUnlink: PropTypes.func.isRequired,\r\n jointAccountsEnabled: PropTypes.bool,\r\n permissions: PropTypes.arrayOf(PropTypes.string)\r\n};\r\n\r\nCustomerAccountList.defaultProps = {\r\n customer: {\r\n accounts: []\r\n },\r\n jointAccountsEnabled: false,\r\n permissions: null\r\n};\r\n\r\nexport default CustomerAccountList;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport moment from 'moment';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport FormViewButton from 'components/Common/Buttons/FormViewButton';\r\nimport FormWorkflowStages from 'common/Workflows/FormWorkflowStages';\r\n\r\nconst CustomerFormList = ({ permissions, customer, onDeleteForm }) => {\r\n const getAccountName = (item) => {\r\n if (item === null || (!item.accountNumber && !item.accountName)) {\r\n return 'N/A';\r\n }\r\n\r\n let accountName = item.accountNumber;\r\n\r\n if (!accountName) {\r\n accountName = item.accountName;\r\n } else if (item.accountName !== null && item.accountName !== accountName) {\r\n accountName = `${ accountName } - ${ item.accountName }`;\r\n }\r\n\r\n return accountName;\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { (customer != null && customer.forms != null && customer.forms.length > 0)\r\n && customer.forms.sort((a, b) => {\r\n if (moment(b.validUntil).isSame(a.validUntil)) {\r\n return moment(b.dateUploaded).isAfter(a.dateUploaded) ? 1 : -1;\r\n }\r\n return moment(b.validUntil).isAfter(a.validUntil) ? 1 : -1;\r\n }).map(formData => formData != null && \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) }\r\n { (!customer || !customer.forms || customer.forms.length === 0)\r\n && }\r\n \r\n
    Form TypeDate UploadedAccountExpiration DateSigned DateWorkflowOriginal FilenameView/Action
    { formData.formTypeDescription }{ moment(formData.dateUploaded).format('MMM DD, YYYY') }\r\n { formData != null && formData.accountId != null\r\n && AccessControl.hasPermission(permissions, [ActivityPerms.accountPageView, ActivityPerms.accountEdit])\r\n ? { getAccountName(formData) } \r\n : getAccountName(formData) }\r\n { formData == null && formData.accountId == null && 'N/A' }\r\n {(() => {\r\n if (!formData.isValid) {\r\n return 'N/A - Invalid Form';\r\n }\r\n if (formData.validUntil && formData.validUntil !== null) {\r\n const expiryReason = formData.expiryReasonDescription !== null ? `(${ formData.expiryReasonDescription })` : '';\r\n if (formData.validUntil.includes('9999')) {\r\n return `Evergreen ${ expiryReason }`;\r\n }\r\n return `${ moment(formData.validUntil).format('MMM DD, YYYY') } ${ expiryReason }`;\r\n }\r\n return '';\r\n })()}\r\n {formData.dateSigned !== null ? moment(formData.dateSigned).format('MMM DD, YYYY') : ''} { formData.workflowStageDescription ?? 'N/A' }{ formData.originalFileName }\r\n {\r\n (\r\n (formData.isOnlineForm\r\n && AccessControl.hasPermission(\r\n permissions,\r\n [\r\n ActivityPerms.electronicView,\r\n ActivityPerms.electronicValidate\r\n ]\r\n )\r\n ) || (\r\n !formData.isOnlineForm\r\n && AccessControl.hasPermission(\r\n permissions,\r\n [\r\n ActivityPerms.scannedView,\r\n ActivityPerms.scannedEdit,\r\n ActivityPerms.scannedValidate\r\n ]\r\n )\r\n )\r\n ) && formData.formType && formData.formType.toLowerCase() !== 'unknown' && }\r\n className=\"btn btn-sm\"\r\n title=\"Reopen\"\r\n formId={ formData.id }\r\n accountId={ formData.accountId }\r\n form={ formData }\r\n permissions={ permissions }\r\n />\r\n }\r\n {\r\n (\r\n ((\r\n ((formData.isOnlineForm && AccessControl.hasPermission(permissions, [ActivityPerms.electronicDeleteCompleteForms]))\r\n || (!formData.isOnlineForm && AccessControl.hasPermission(permissions, [ActivityPerms.scannedDeleteCompleteForms])))\r\n && formData.workflowStage === FormWorkflowStages.Complete)\r\n || (\r\n ((formData.isOnlineForm && AccessControl.hasPermission(permissions, [ActivityPerms.electronicDeleteInReviewForms]))\r\n || (!formData.isOnlineForm && AccessControl.hasPermission(permissions, [ActivityPerms.scannedDeleteInReviewForms])))\r\n && formData.workflowStage !== FormWorkflowStages.Complete))\r\n && formData.formType && formData.formType.toLowerCase() !== 'unknown'\r\n )\r\n && onDeleteForm(formData) }\r\n >\r\n \r\n \r\n }\r\n

    No Data to Show

    \r\n
    \r\n );\r\n};\r\n\r\nCustomerFormList.propTypes = {\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n customer: PropTypes.shape(),\r\n onDeleteForm: PropTypes.func.isRequired\r\n};\r\n\r\nCustomerFormList.defaultProps = {\r\n permissions: null,\r\n customer: {\r\n forms: []\r\n }\r\n};\r\n\r\nexport default CustomerFormList;\r\n","const whitespacesRegex = /^\\s*$/;\r\n\r\nconst isNullOrWhiteSpace = value => !value || !!value.match(whitespacesRegex);\r\n\r\nexport default isNullOrWhiteSpace;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport isNullOrWhiteSpace from 'common/App/isNullOrWhiteSpace';\r\n\r\nconst CustomerAddressCard = ({ address, jurisdictions, className, showActions, onMakePrimary }) => {\r\n const getJurisdictionName = (country) => {\r\n if (country && jurisdictions && jurisdictions.length > 0) {\r\n const matches = jurisdictions.filter(x => x.code === country || x.name === country);\r\n if (matches && matches.length > 0) {\r\n return `${ matches[0].name } (${ matches[0].code })`;\r\n }\r\n }\r\n return country != null && country !== '' ? country : 'N/A';\r\n };\r\n\r\n const onMakePrimaryClick = () => {\r\n if (onMakePrimary) {\r\n onMakePrimary(address);\r\n }\r\n };\r\n\r\n return (
    \r\n { (address.address.line1 || address.address.line2 || address.address.postalCode || address.address.country)\r\n &&
    \r\n
    \r\n { !isNullOrWhiteSpace(address.address.line1) && { address.address.line1 } }\r\n { !isNullOrWhiteSpace(address.address.line2) && { address.address.line2 } }\r\n { !isNullOrWhiteSpace(address.address.line3) && { address.address.line3 } }\r\n { !isNullOrWhiteSpace(address.address.line4) && { address.address.line4 } }\r\n { !isNullOrWhiteSpace(address.address.postalCode) && { address.address.postalCode }}\r\n { address.address.country !== null && { getJurisdictionName(address.address.countryIso ?? address.address.country) }}\r\n
    \r\n
    \r\n {address.isPrimary &&
    PRIMARY
    }\r\n { showActions && !address.isPrimary && }\r\n { /* eslint-disable-next-line no-bitwise */ }\r\n {((address.regime & 1) === 1) &&
    FATCA
    }\r\n { /* eslint-disable-next-line no-bitwise */ }\r\n {((address.regime & 2) === 2) &&
    CRS
    }\r\n
    \r\n
    }\r\n
    );\r\n};\r\n\r\nCustomerAddressCard.propTypes = {\r\n address: PropTypes.shape().isRequired,\r\n jurisdictions: PropTypes.arrayOf(PropTypes.shape),\r\n className: PropTypes.string,\r\n showActions: PropTypes.bool,\r\n onMakePrimary: PropTypes.func\r\n};\r\n\r\nCustomerAddressCard.defaultProps = {\r\n jurisdictions: null,\r\n className: null,\r\n showActions: false,\r\n onMakePrimary: null\r\n};\r\n\r\nexport default CustomerAddressCard;\r\n","import React, { useState } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport {\r\n changePrimaryAddress\r\n} from 'actions';\r\n\r\nimport CustomerAddressCard from 'components/Customer/CustomerAddressCard';\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport ConfirmModal from 'components/Modals/ConfirmModal';\r\n\r\nconst CustomerAddressesModal = ({\r\n title,\r\n isShown,\r\n onConfirm,\r\n addresses,\r\n cardClassName,\r\n showActions\r\n}) => {\r\n const dispatch = useDispatch();\r\n const [confirmShown, setConfirmShown] = useState(false);\r\n const [selectedAddress, setSelectedAddress] = useState(null);\r\n\r\n const jurisdictions = useSelector(state => state.common?.jurisdictions ?? []);\r\n const isChangingPrimaryAddress = useSelector(state => state.customer.isChangingPrimaryAddress);\r\n\r\n const openModal = (address) => {\r\n setConfirmShown(true);\r\n setSelectedAddress(address);\r\n };\r\n\r\n const closeModal = () => {\r\n setConfirmShown(false);\r\n setSelectedAddress(null);\r\n };\r\n\r\n const onConfirmAddress = () => {\r\n dispatch(changePrimaryAddress(selectedAddress.customerId, selectedAddress.id));\r\n setConfirmShown(false);\r\n setSelectedAddress(null);\r\n };\r\n\r\n return ( onConfirm() }\r\n >\r\n { (!addresses || addresses.length === 0) &&

    No Addresses

    }\r\n { addresses.length > 0 &&
    \r\n { addresses.filter(x => x.source === 2) &&
    \r\n

    From Forms:

    \r\n { addresses.filter(x => x.source === 2).map(x =>
    \r\n openModal(address) }\r\n />\r\n
    )}\r\n
    }\r\n { addresses.filter(x => x.source === 1).length > 0 &&
    \r\n

    From Books & Records:

    \r\n { addresses.filter(x => x.source === 1).map(x =>
    \r\n openModal(address) }\r\n />\r\n
    )}\r\n
    }\r\n { showActions && onConfirmAddress() }\r\n onCancel={ () => closeModal() }\r\n title=\"Switch Primary Mailing Address\"\r\n message=\"Are you sure you want to switch the Primary Mailing Address?\"\r\n >\r\n

    The Primary Mailing Address is used for the Prepopulation of Form Data and Data Exports.

    \r\n }\r\n
    }\r\n );\r\n};\r\n\r\nCustomerAddressesModal.propTypes = {\r\n title: PropTypes.string,\r\n isShown: PropTypes.bool,\r\n onConfirm: PropTypes.func,\r\n addresses: PropTypes.arrayOf(PropTypes.shape),\r\n cardClassName: PropTypes.string,\r\n showActions: PropTypes.bool\r\n};\r\n\r\nCustomerAddressesModal.defaultProps = {\r\n title: 'Customer Addresses',\r\n isShown: false,\r\n onConfirm: () => {},\r\n addresses: null,\r\n cardClassName: null,\r\n showActions: false\r\n};\r\n\r\nexport default CustomerAddressesModal;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport CustomerAddressCard from 'components/Customer/CustomerAddressCard';\r\nimport CustomerAddressesModal from 'components/Modals/CustomerAddressesModal';\r\n\r\nimport {\r\n openCustomerAddressesModal,\r\n closeCustomerAddressesModal\r\n} from 'actions';\r\n\r\nconst CustomerAddresses = ({ addresses, modalTitle, moreButtonText, showActions }) => {\r\n const dispatch = useDispatch();\r\n const jurisdictions = useSelector(state => state.common?.jurisdictions ?? []);\r\n const modalShown = useSelector(state => state.customer?.isCustomerAddressesModalShown ?? false);\r\n\r\n const getPrimaryAddress = () => {\r\n const primaryAddresses = addresses?.filter(x => x.isPrimary);\r\n if (primaryAddresses && primaryAddresses.length > 0) {\r\n return primaryAddresses.sort((a, b) => b.source - a.source)[0];\r\n }\r\n return null;\r\n };\r\n\r\n const primaryAddress = getPrimaryAddress();\r\n\r\n const addressType = primaryAddress?.addressType ?? (addresses?.length > 0 && addresses[0].addressType);\r\n\r\n const showAddressModal = () => dispatch(openCustomerAddressesModal(addressType));\r\n const closeAddressModal = () => dispatch(closeCustomerAddressesModal());\r\n\r\n return (\r\n \r\n { (addresses == null || addresses.length === 0) &&

    N/A

    }\r\n { addresses.length > 0 &&
    \r\n { primaryAddress && }\r\n { addressType && addresses?.length > 1 && }\r\n
    }\r\n { addressType && modalShown === addressType && closeAddressModal() }\r\n />}\r\n
    \r\n );\r\n};\r\n\r\nCustomerAddresses.propTypes = {\r\n addresses: PropTypes.arrayOf(PropTypes.shape),\r\n modalTitle: PropTypes.string,\r\n moreButtonText: PropTypes.string,\r\n showActions: PropTypes.bool\r\n};\r\n\r\nCustomerAddresses.defaultProps = {\r\n addresses: null,\r\n modalTitle: 'Customer Addresses',\r\n moreButtonText: 'Show More Addresses',\r\n showActions: false\r\n};\r\n\r\nexport default CustomerAddresses;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport isNullOrWhiteSpace from 'common/App/isNullOrWhiteSpace';\r\n\r\nconst CustomerJotrCard = ({ jotr, jurisdictions, showActions, onMakePrimary, onMakeWhd }) => {\r\n const getJurisdictionName = (country) => {\r\n if (country && jurisdictions && jurisdictions.length > 0) {\r\n const matches = jurisdictions.filter(x => x.code === country || x.name === country);\r\n if (matches && matches.length > 0) {\r\n return `${ matches[0].name } (${ matches[0].code })`;\r\n }\r\n }\r\n return country != null && country !== '' ? country : 'N/A';\r\n };\r\n\r\n const onMakePrimaryClick = () => {\r\n if (onMakePrimary) {\r\n onMakePrimary(jotr);\r\n }\r\n };\r\n\r\n const onMakeWhdClick = () => {\r\n if (onMakeWhd) {\r\n onMakeWhd(jotr);\r\n }\r\n };\r\n\r\n return (
    \r\n
    \r\n
    \r\n
    \r\n { getJurisdictionName(jotr.countryIsoCode ?? jotr.country) }\r\n
    \r\n
    \r\n { !isNullOrWhiteSpace(jotr.tin) && {jotr.tin} }\r\n { (isNullOrWhiteSpace(jotr.tin) && !isNullOrWhiteSpace(jotr.noTinReason)) && No TIN Reason - {jotr.noTinReason} }\r\n
    \r\n { (isNullOrWhiteSpace(jotr.tin) && !isNullOrWhiteSpace(jotr.noTinReason) && !isNullOrWhiteSpace(jotr.noTinExplanation)) &&
    \r\n {jotr.noTinExplanation}\r\n
    }\r\n
    \r\n
    \r\n {jotr.isPrimary &&
    PRIMARY
    }\r\n { showActions && !jotr.isPrimary && }\r\n {jotr.isWithholdingResidence &&
    WHD
    }\r\n { /* eslint-disable-next-line no-bitwise */ }\r\n { showActions && !jotr.isWithholdingResidence && (jotr.regime & 1) === 1 && }\r\n
    \r\n
    \r\n
    );\r\n};\r\n\r\nCustomerJotrCard.propTypes = {\r\n jotr: PropTypes.shape().isRequired,\r\n jurisdictions: PropTypes.arrayOf(PropTypes.shape),\r\n showActions: PropTypes.bool,\r\n onMakePrimary: PropTypes.func,\r\n onMakeWhd: PropTypes.func\r\n};\r\n\r\nCustomerJotrCard.defaultProps = {\r\n jurisdictions: null,\r\n showActions: false,\r\n onMakePrimary: null,\r\n onMakeWhd: null\r\n};\r\n\r\nexport default CustomerJotrCard;\r\n","import React, { useState } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport {\r\n changePrimaryJotr,\r\n changeWhdJotr\r\n} from 'actions';\r\n\r\nimport CustomerJotrCard from 'components/Customer/CustomerJotrCard';\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport ConfirmModal from 'components/Modals/ConfirmModal';\r\n\r\nconst CustomerJotrsModal = ({\r\n title,\r\n isShown,\r\n onConfirm,\r\n jotrs,\r\n cardClassName,\r\n showActions\r\n}) => {\r\n const dispatch = useDispatch();\r\n const [confirmPrimaryShown, setConfirmPrimaryShown] = useState(false);\r\n const [confirmWhdShown, setConfirmWhdShown] = useState(false);\r\n const [selectedJotr, setSelectedJotr] = useState(null);\r\n\r\n const jurisdictions = useSelector(state => state.common?.jurisdictions ?? []);\r\n const isChangingPrimaryJotr = useSelector(state => state.customer.isChangingPrimaryJotr);\r\n const isChangingWhdJotr = useSelector(state => state.customer.isChangingWhdJotr);\r\n\r\n const openPrimaryModal = (jotr) => {\r\n setConfirmPrimaryShown(true);\r\n setSelectedJotr(jotr);\r\n };\r\n\r\n const closePrimaryModal = () => {\r\n setConfirmPrimaryShown(false);\r\n setSelectedJotr(null);\r\n };\r\n\r\n const onConfirmPrimaryJotr = () => {\r\n dispatch(changePrimaryJotr(selectedJotr.customerId, selectedJotr.id));\r\n setConfirmPrimaryShown(false);\r\n setSelectedJotr(null);\r\n };\r\n\r\n const openWhdModal = (jotr) => {\r\n setConfirmWhdShown(true);\r\n setSelectedJotr(jotr);\r\n };\r\n\r\n const closeWhdModal = () => {\r\n setConfirmWhdShown(false);\r\n setSelectedJotr(null);\r\n };\r\n\r\n const onConfirmWhdJotr = () => {\r\n dispatch(changeWhdJotr(selectedJotr.customerId, selectedJotr.id));\r\n setConfirmWhdShown(false);\r\n setSelectedJotr(null);\r\n };\r\n\r\n return ( onConfirm() }\r\n >\r\n { (!jotrs || jotrs.length === 0) &&

    No Tax Residencies

    }\r\n { jotrs.length > 0 &&
    \r\n { jotrs.filter(x => x.source === 2).length > 0 &&
    \r\n

    From Forms:

    \r\n { jotrs.filter(x => x.source === 2).map(x =>
    \r\n openPrimaryModal(jotr) }\r\n onMakeWhd={ jotr => openWhdModal(jotr) }\r\n />\r\n
    )}\r\n
    }\r\n { jotrs.filter(x => x.source === 1).length > 0 &&
    \r\n

    From Books & Records:

    \r\n { jotrs.filter(x => x.source === 1).map(x =>
    \r\n openPrimaryModal(jotr) }\r\n onMakeWhd={ jotr => openWhdModal(jotr) }\r\n />\r\n
    )}\r\n
    }\r\n { showActions && onConfirmPrimaryJotr() }\r\n onCancel={ () => closePrimaryModal() }\r\n title=\"Switch Primary Tax Residence\"\r\n message=\"Are you sure you want to switch the Primary Tax Residence?\"\r\n >\r\n

    The Primary Tax Residence is used for US Indicia and Presumption Rules.

    \r\n }\r\n { showActions && onConfirmWhdJotr() }\r\n onCancel={ () => closeWhdModal() }\r\n title=\"Switch the WHD Tax Residence\"\r\n message=\"Are you sure you want to switch the Tax Residence that is used for withholding calculations?\"\r\n /> }\r\n
    }\r\n );\r\n};\r\n\r\nCustomerJotrsModal.propTypes = {\r\n title: PropTypes.string,\r\n isShown: PropTypes.bool,\r\n onConfirm: PropTypes.func,\r\n jotrs: PropTypes.arrayOf(PropTypes.shape),\r\n cardClassName: PropTypes.string,\r\n showActions: PropTypes.bool\r\n};\r\n\r\nCustomerJotrsModal.defaultProps = {\r\n title: 'Tax Residencies',\r\n isShown: false,\r\n onConfirm: () => {},\r\n jotrs: null,\r\n cardClassName: null,\r\n showActions: false\r\n};\r\n\r\nexport default CustomerJotrsModal;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport CustomerJotrCard from 'components/Customer/CustomerJotrCard';\r\nimport CustomerJotrsModal from 'components/Modals/CustomerJotrsModal';\r\n\r\nimport {\r\n openCustomerJotrsModal,\r\n closeCustomerJotrsModal\r\n} from 'actions';\r\n\r\nconst CustomerJotrs = ({ jotrs, modalTitle, moreButtonText, showActions }) => {\r\n const dispatch = useDispatch();\r\n const jurisdictions = useSelector(state => state.common?.jurisdictions);\r\n const modalShown = useSelector(state => state.customer?.isCustomerJotrsModalShown ?? false);\r\n\r\n const getPrimary = () => {\r\n const primaryJotrs = jotrs?.filter(x => x.isPrimary);\r\n if (primaryJotrs && primaryJotrs.length > 0) {\r\n return primaryJotrs.sort((a, b) => b.source - a.source)[0];\r\n }\r\n return null;\r\n };\r\n\r\n const getWhd = () => {\r\n const whdJotrs = jotrs?.filter(x => !x.isPrimary && x.isWithholdingResidence);\r\n if (whdJotrs && whdJotrs.length > 0) {\r\n return whdJotrs.sort((a, b) => b.source - a.source)[0];\r\n }\r\n return null;\r\n };\r\n\r\n const primaryJotr = getPrimary();\r\n\r\n const whdJotr = getWhd();\r\n\r\n return (\r\n \r\n { (jotrs == null || jotrs.length === 0) &&

    N/A

    }\r\n { jotrs && jotrs.length > 0 &&
    \r\n { primaryJotr && }\r\n { whdJotr && (!primaryJotr || !primaryJotr.isWithholdingResidence) && }\r\n { jotrs?.length > 1 && }\r\n
    }\r\n { modalShown && dispatch(closeCustomerJotrsModal()) } />}\r\n
    \r\n );\r\n};\r\n\r\nCustomerJotrs.propTypes = {\r\n jotrs: PropTypes.arrayOf(PropTypes.shape),\r\n modalTitle: PropTypes.string,\r\n moreButtonText: PropTypes.string,\r\n showActions: PropTypes.bool\r\n};\r\n\r\nCustomerJotrs.defaultProps = {\r\n jotrs: null,\r\n modalTitle: 'Tax Residencies',\r\n moreButtonText: 'Show More Residencies',\r\n showActions: false\r\n};\r\n\r\nexport default CustomerJotrs;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { reduxForm, Field } from 'redux-form';\r\nimport { connect } from 'react-redux';\r\nimport { toastr } from 'react-redux-toastr';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport { TextInput } from 'components/Common/Inputs/TextInput';\r\n\r\nconst editRequired = value => !value || !value.replace(/\\s/g, '') || value.replace(/\\s/g, '').length < 4;\r\n\r\nclass CustomerIdChangeModal extends Component {\r\n static propTypes = {\r\n reset: PropTypes.func.isRequired,\r\n isShown: PropTypes.bool.isRequired,\r\n onConfirmCustomerIdChange: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n id: PropTypes.number,\r\n customerId: PropTypes.string\r\n };\r\n\r\n static defaultProps = {\r\n customerId: '',\r\n id: null,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n newCustomerId: '',\r\n confirmCustomerId: ''\r\n };\r\n\r\n this.onDataInputChange = this.onDataInputChange.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleCancel = this.handleCancel.bind(this);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { reset, isShown } = this.props;\r\n if (!isShown && prevProps.isShown) {\r\n reset();\r\n }\r\n }\r\n\r\n handleCancel(e) {\r\n const { onCancel } = this.props;\r\n onCancel();\r\n }\r\n\r\n handleSubmit(event) {\r\n const { onConfirmCustomerIdChange, id, customerId } = this.props;\r\n const { newCustomerId, confirmCustomerId } = this.state;\r\n const updateDate = { id, newId: newCustomerId, confirmNewId: confirmCustomerId };\r\n\r\n event.preventDefault();\r\n\r\n if (!newCustomerId.replace(/\\s/g, '') || newCustomerId.replace(/\\s/g, '').length < 3 || newCustomerId.replace(/\\s/g, '').length > 100) {\r\n toastr.error('', 'Please provide a Customer ID between 3 and 100 characters long.');\r\n return;\r\n }\r\n\r\n if ((customerId && newCustomerId && newCustomerId.replace(/\\s/g, '') === customerId.replace(/\\s/g, ''))) {\r\n toastr.error('', 'The new Customer ID cannot be the same as the current Customer ID.');\r\n return;\r\n }\r\n\r\n if ((!newCustomerId || !confirmCustomerId || !newCustomerId.replace(/\\s/g, '') || newCustomerId.replace(/\\s/g, '').length < 3 || newCustomerId !== confirmCustomerId)) {\r\n toastr.error('', 'The Customer ID\\'s entered do not match.');\r\n return;\r\n }\r\n\r\n onConfirmCustomerIdChange(updateDate);\r\n }\r\n\r\n onDataInputChange(event) {\r\n const { target: { name, value } } = event;\r\n this.setState({ [name]: value });\r\n }\r\n\r\n render() {\r\n const { isShown, customerId } = this.props;\r\n const {\r\n newCustomerId,\r\n confirmCustomerId\r\n } = this.state;\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Please provide new Customer Id for Customer { customerId }\r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n New Customer ID\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Confirm Customer ID\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n settings: {\r\n selectedClient\r\n }\r\n },\r\n } = state;\r\n\r\n return {\r\n selectedClient,\r\n initialValues: {\r\n clientId: selectedClient != null ? selectedClient.key.toString() : ''\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps\r\n)(reduxForm({\r\n form: 'customerIdChangeForm'\r\n})(CustomerIdChangeModal));\r\n","// import MultiSelectFilter from 'components/ReactTable/Filters/MultiSelectFilter';\r\n\r\n// note: for the sorting to work, the 'accessor' properties below must have the same name as the backend property to be sorted by\r\nconst supportingDocsColumnDefs = () => [\r\n {\r\n Header: 'File Name',\r\n accessor: 'originalFileName',\r\n disableFilters: true,\r\n disableSortBy: true,\r\n className: 'col-50p',\r\n },\r\n {\r\n Header: 'Document Type',\r\n accessor: 'typeDescription',\r\n disableFilters: true,\r\n disableSortBy: true,\r\n className: 'col-20p',\r\n },\r\n {\r\n Header: 'Uploaded At',\r\n accessor: 'uploadDate',\r\n disableFilters: true,\r\n disableSortBy: true,\r\n className: 'col-20p',\r\n },\r\n {\r\n Header: 'Linked Form',\r\n accessor: 'linkedForm',\r\n disableFilters: true,\r\n disableSortBy: true,\r\n className: 'col-10p',\r\n },\r\n {\r\n Header: 'Account',\r\n accessor: 'account',\r\n disableFilters: true,\r\n disableSortBy: true,\r\n className: 'col-10p',\r\n isLinkToAccount: true\r\n },\r\n {\r\n Header: 'Form Signed Date',\r\n accessor: 'formSignedDate',\r\n disableFilters: true,\r\n disableSortBy: true,\r\n className: 'col-10p',\r\n },\r\n {\r\n Header: 'Item Id',\r\n accessor: 'itemId',\r\n isVisible: false\r\n }\r\n];\r\n\r\nexport default supportingDocsColumnDefs;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AccessControl from 'components/AccessControl';\r\nimport FormViewButton from 'components/Common/Buttons/FormViewButton';\r\n\r\nconst SupportingDocsActions = ({ permissions, deleteSupportingDocument, viewSupportingDocument, canDelete }) => ({\r\n id: 'action-column',\r\n Header: Actions,\r\n /* eslint-disable react/prop-types, react/no-unstable-nested-components */\r\n Cell: ({ row }) => (\r\n
    \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.scannedDownload]) && viewSupportingDocument(row.original) }\r\n >\r\n \r\n }\r\n { (AccessControl.hasPermission(\r\n permissions,\r\n [ActivityPerms.scannedView, ActivityPerms.scannedEdit, ActivityPerms.scannedValidate]\r\n ) && row.original?.formId != null)\r\n && }\r\n className=\"btn btn-sm\"\r\n title=\"View Linked Form\"\r\n formId={ row.original?.formId }\r\n accountId={ row.original?.accountId }\r\n form={ row.original }\r\n permissions={ permissions }\r\n />}\r\n { AccessControl.hasPermission(permissions, [ActivityPerms.scannedSupDocs]) && canDelete && deleteSupportingDocument(row.original) }\r\n >\r\n \r\n }\r\n
    \r\n /* eslint-enable react/prop-types, react/no-unstable-nested-components */\r\n ),\r\n className: 'col-10p'\r\n});\r\n\r\nSupportingDocsActions.propTypes = {\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n viewSupportingDocument: PropTypes.func.isRequired,\r\n deleteSupportingDocument: PropTypes.func.isRequired,\r\n canDelete: PropTypes.bool,\r\n};\r\n\r\nSupportingDocsActions.defaultProps = {\r\n permissions: [],\r\n canDelete: false\r\n};\r\n\r\nexport default SupportingDocsActions;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { reduxForm, Field } from 'redux-form';\r\nimport { toastr } from 'react-redux-toastr';\r\n\r\nimport { ApiService } from 'services';\r\nimport { addSupportingDoc, getStorageSetting } from 'actions';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\n\r\nimport FileUpload from 'components/Common/FileUpload';\r\nimport EvidentiaryDocs from 'components/EvidentiaryDocs';\r\n\r\nclass SupportingDocsSection extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n customerId: PropTypes.number,\r\n supportingDocError: PropTypes.shape({}),\r\n };\r\n\r\n static defaultProps = {\r\n permissions: null,\r\n customerId: null,\r\n supportingDocError: null,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const files = getStorageSetting('files') || [];\r\n\r\n this.state = {\r\n supportingDocType: '',\r\n files\r\n };\r\n }\r\n\r\n static onFileUploadCancel(file) {\r\n toastr.info('', `Upload of ${ file.name } has been canceled.`);\r\n }\r\n\r\n static onFileUploadError(file, error) {\r\n toastr.error('', `Upload of ${ file.name } has been canceled. ${ error.message }`);\r\n }\r\n\r\n static onViewSupportingDocument(file) {\r\n if (file) {\r\n window.open(`customers/supporting-docs/${ file.id }`, '_blank');\r\n return;\r\n }\r\n toastr.error('', 'Sorry, this document cannot be viewed');\r\n }\r\n\r\n onFileUploadSuccess(file, response) {\r\n const { dispatch } = this.props;\r\n\r\n response[0].uploadDate = new Date();\r\n\r\n dispatch(addSupportingDoc(response));\r\n toastr.success('', `${ response[0].originalFileName } has been uploaded`);\r\n }\r\n\r\n onSupportingDocTypeChange = (e, newValue) => this.setState({ supportingDocType: newValue });\r\n\r\n canUpload() {\r\n const { permissions, } = this.props;\r\n\r\n const hasReviewerPermission = AccessControl.hasPermission(permissions, [ActivityPerms.fwfInitialReviewer, ActivityPerms.fwfSecondaryReviewer, ActivityPerms.fwfExpertReviewer, ActivityPerms.fwfSupplReviewer]);\r\n\r\n return hasReviewerPermission;\r\n }\r\n\r\n render() {\r\n const { permissions, customerId } = this.props;\r\n const { files, supportingDocType } = this.state;\r\n\r\n return (\r\n \r\n { this.canUpload() &&
    \r\n
    \r\n

    Upload Documents:

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.onSupportingDocTypeChange(e, newValue) }\r\n />\r\n
    \r\n
    \r\n SupportingDocsSection.onFileUploadCancel(file) }\r\n onFileUploadSuccess={ (file, response) => this.onFileUploadSuccess(file, response) }\r\n onFileUploadError={ (file, error) => SupportingDocsSection.onFileUploadError(file, error) }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst supportingDocForm = reduxForm({\r\n form: 'supportingDocForm',\r\n})(SupportingDocsSection);\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n permissions\r\n },\r\n forms: {\r\n isDeletingSupportingDocId,\r\n supportingDocError\r\n },\r\n } = state;\r\n\r\n return {\r\n permissions,\r\n isDeletingSupportingDocId,\r\n supportingDocError,\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport const SupportingDocsUpload = connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(supportingDocForm);\r\n\r\nexport default SupportingDocsUpload;\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router';\r\nimport { PropTypes } from 'prop-types';\r\nimport { reset, change } from 'redux-form';\r\nimport { push } from 'connected-react-router';\r\nimport NotFoundPage from 'components/Errors/NotFoundPage';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport moment from 'moment';\r\n\r\nimport {\r\n customerDataLoad,\r\n customerAccountLink,\r\n customerAccountUnlink,\r\n showCustomerIdChangeModal,\r\n hideCustomerIdChangeModal,\r\n processCustomerIdChange,\r\n clearCompletedCustomerIdChange,\r\n clearCustomerData,\r\n getParentImyForms,\r\n showDeleteFormModal,\r\n hideDeleteFormModal,\r\n deleteForms,\r\n takeQueueItem,\r\n hideOwnershipModal,\r\n deleteSupportingDoc,\r\n editCustomer,\r\n cancelEditCustomer,\r\n updateCustomer\r\n} from 'actions';\r\n\r\nimport getCertifictionStatus from 'common/Forms/CertificationStatus';\r\nimport getAccountName from 'common/Accounts/GetAccountName';\r\n\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\nimport AddCustomerAccountForm from 'components/Customer/AddCustomerAccountForm';\r\nimport CustomerAccountList from 'components/Customer/CustomerAccountList';\r\nimport CustomerFormList from 'components/Customer/CustomerFormList';\r\nimport CustomerAddresses from 'components/Customer/CustomerAddresses';\r\nimport CustomerJotrs from 'components/Customer/CustomerJotrs';\r\nimport WithholdingRates from 'components/WithholdingRates';\r\n\r\nimport CustomerIdChangeModal from 'components/Modals/CustomerIdChangeModal';\r\nimport ConfirmModal from 'components/Modals/ConfirmModal';\r\nimport ImyFormTable from 'components/ImyFormTable';\r\nimport DeleteFormModal from 'components/Modals/DeleteFormModal';\r\nimport ChangeOwnershipModal from 'components/Modals/ChangeOwnershipModal';\r\nimport ActiveChip from 'components/Common/ActiveChip';\r\nimport DirectChip from 'components/Common/DirectChip';\r\nimport withContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary';\r\nimport MoveForm from 'components/MoveForm';\r\nimport CloneForm from 'components/CloneForm';\r\n\r\nimport ReactTable from 'components/ReactTable';\r\nimport supportingDocsColumnDefs from 'components/Customer/CustomerSupportingDocsList/supportingDocsColumnDefs';\r\nimport SupportingDocsActions from 'components/Customer/CustomerSupportingDocsList/supportingDocsActions';\r\nimport SupportingDocs from 'components/Customer/CustomerSupportingDocsList/supportingDocsUpload';\r\nimport { toastr } from 'react-redux-toastr';\r\n\r\nclass Customer extends Component {\r\n static propTypes = {\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n jurisdictions: PropTypes.arrayOf(PropTypes.shape()),\r\n settings: PropTypes.shape({\r\n showWithholding: PropTypes.bool,\r\n showJointAccounts: PropTypes.bool\r\n }).isRequired,\r\n dispatch: PropTypes.func.isRequired,\r\n match: PropTypes.shape({\r\n params: PropTypes.shape({\r\n id: PropTypes.string.isRequired\r\n }).isRequired\r\n }).isRequired,\r\n isCustomerIdChangeModalShown: PropTypes.bool.isRequired,\r\n isLoadingData: PropTypes.bool.isRequired,\r\n storeCustomer: PropTypes.shape(),\r\n returnedExistingCustomerId: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number\r\n ]),\r\n history: PropTypes.shape({\r\n push: PropTypes.func\r\n }),\r\n customerDataLoadError: PropTypes.shape({\r\n code: PropTypes.number,\r\n message: PropTypes.string\r\n }),\r\n parentImyForms: PropTypes.shape({}),\r\n isGettingParentImyForms: PropTypes.bool,\r\n isDeleteFormModalShown: PropTypes.bool,\r\n isDeletingForm: PropTypes.bool,\r\n deleteFormError: PropTypes.string,\r\n isOwnershipModalShown: PropTypes.bool,\r\n changeOwnershipItem: PropTypes.shape(),\r\n customerSupportingDocs: PropTypes.arrayOf(PropTypes.shape()),\r\n isGettingCustomers: PropTypes.bool,\r\n initSupportingDocGridCriteria: PropTypes.shape(),\r\n isEditingCustomer: PropTypes.bool,\r\n isSubmittingCustomer: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n permissions: null,\r\n jurisdictions: null,\r\n storeCustomer: {\r\n name: '',\r\n accounts: [],\r\n forms: [],\r\n address: {}\r\n },\r\n returnedExistingCustomerId: '',\r\n history: null,\r\n customerDataLoadError: null,\r\n parentImyForms: null,\r\n isGettingParentImyForms: false,\r\n isDeleteFormModalShown: false,\r\n isDeletingForm: false,\r\n deleteFormError: null,\r\n isOwnershipModalShown: false,\r\n changeOwnershipItem: null,\r\n customerSupportingDocs: null,\r\n isGettingCustomers: false,\r\n initSupportingDocGridCriteria: null,\r\n isEditingCustomer: false,\r\n isSubmittingCustomer: false\r\n };\r\n\r\n static getForeignTin(tin, notRequired) {\r\n if (!tin) {\r\n return notRequired ? FTIN Declared as Not Legally Required : 'N/A';\r\n }\r\n const cleanedTin = tin.replace(/\\s/g, '').toLowerCase();\r\n if (cleanedTin.includes('notlegallyrequired')) {\r\n return !notRequired ? { tin } (FTIN Not Correctly Declared as Legally Required) : FTIN Declared as Not Legally Required;\r\n }\r\n\r\n return notRequired ? FTIN Declared as Not Legally Required : tin;\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const { initSupportingDocGridCriteria, permissions, storeCustomer } = props;\r\n\r\n const supportingDocsGridCriteria = initSupportingDocGridCriteria || {\r\n columnDefs: supportingDocsColumnDefs(permissions),\r\n pageIndex: 0,\r\n sortBy: [],\r\n filters: [],\r\n pageCount: 0,\r\n pageSize: 10,\r\n itemCount: 0,\r\n selectedItems: [],\r\n selectedItem: null\r\n };\r\n\r\n this.state = {\r\n isUnlinkAccountModalShown: false,\r\n isUnlinkingAccount: false,\r\n unlinkAccountError: null,\r\n accountId: null,\r\n formToDelete: null,\r\n data: [],\r\n supportingDocsGridCriteria,\r\n loading: true,\r\n loadingTime: 500,\r\n initialLoaded: false,\r\n emailAddress: storeCustomer?.emailAddress ?? null\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const { dispatch, match, permissions } = this.props;\r\n dispatch(customerDataLoad(match.params.id));\r\n if (AccessControl.hasPermission(permissions, [ActivityPerms.scannedViewTree])) {\r\n dispatch(getParentImyForms(match.params.id, null));\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n const { dispatch, returnedExistingCustomerId, history, customerSupportingDocs, storeCustomer } = this.props;\r\n const { initialLoaded } = this.state;\r\n if (returnedExistingCustomerId && prevProps.returnedExistingCustomerId !== returnedExistingCustomerId) {\r\n dispatch(customerDataLoad(returnedExistingCustomerId));\r\n setTimeout(() => {\r\n dispatch(clearCompletedCustomerIdChange());\r\n history.push(`/customer/${ returnedExistingCustomerId }`);\r\n }, 2000);\r\n }\r\n\r\n if (customerSupportingDocs !== prevProps.customerSupportingDocs) {\r\n this.processData(customerSupportingDocs, customerSupportingDocs.length, storeCustomer);\r\n this.hideLoadingAnimation();\r\n if (!initialLoaded) {\r\n // eslint-disable-next-line react/no-did-update-set-state\r\n this.setState({ initialLoaded: true });\r\n }\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { dispatch } = this.props;\r\n dispatch(clearCustomerData());\r\n dispatch(cancelEditCustomer());\r\n }\r\n\r\n onEmailAddressChange(e) {\r\n this.setState({ emailAddress: e.target.value });\r\n }\r\n\r\n onUpdateCancel(e) {\r\n const { dispatch, storeCustomer } = this.props;\r\n dispatch(cancelEditCustomer());\r\n this.setState({ emailAddress: storeCustomer?.emailAddress });\r\n }\r\n\r\n onUpdateSubmit(e) {\r\n const { dispatch, storeCustomer } = this.props;\r\n const { emailAddress } = this.state;\r\n dispatch(updateCustomer(storeCustomer.id, emailAddress));\r\n }\r\n\r\n onEditEmailAddressClick() {\r\n const { dispatch, storeCustomer } = this.props;\r\n dispatch(editCustomer());\r\n this.setState({ emailAddress: storeCustomer.emailAddress });\r\n }\r\n\r\n getCustomerName() {\r\n const { storeCustomer } = this.props;\r\n if (storeCustomer === null || (!storeCustomer.customerId && !storeCustomer.name)) {\r\n return 'N/A';\r\n }\r\n\r\n let customerName = storeCustomer.customerId;\r\n\r\n if (!customerName) {\r\n customerName = storeCustomer.name;\r\n } else if (storeCustomer.name !== null && storeCustomer.name !== customerName) {\r\n customerName = `${ customerName } - ${ storeCustomer.name }`;\r\n }\r\n\r\n return customerName;\r\n }\r\n\r\n getJurisdictionName(country) {\r\n const { jurisdictions } = this.props;\r\n\r\n if (country && jurisdictions && jurisdictions.length > 0) {\r\n const matches = jurisdictions.filter(x => x.code === country || x.name === country);\r\n if (matches && matches.length > 0) {\r\n return `${ matches[0].name } (${ matches[0].code })`;\r\n }\r\n }\r\n return country != null && country !== '' ? country : 'N/A';\r\n }\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n viewSupportingDocument = (item) => {\r\n if (item) {\r\n window.open(`customers/supporting-docs/${ item.itemId }`, '_blank'); // to open new page\r\n return;\r\n }\r\n toastr.error('', 'Sorry, this document cannot be viewed');\r\n };\r\n\r\n deleteSupportingDocument = (item) => {\r\n if (item) {\r\n const { dispatch } = this.props;\r\n dispatch(deleteSupportingDoc(item.itemId));\r\n }\r\n };\r\n\r\n openDeleteFormModal = (item) => {\r\n const { dispatch } = this.props;\r\n this.setState({ formToDelete: item });\r\n dispatch(showDeleteFormModal([item]));\r\n };\r\n\r\n closeDeleteFormModal = () => {\r\n const { dispatch } = this.props;\r\n this.setState({ formToDelete: null });\r\n dispatch(hideDeleteFormModal());\r\n };\r\n\r\n processDeleteForms = () => {\r\n const { dispatch, match } = this.props;\r\n const { formToDelete } = this.state;\r\n dispatch(deleteForms([formToDelete.id], () => {\r\n this.closeDeleteFormModal();\r\n dispatch(customerDataLoad(match.params.id));\r\n }));\r\n };\r\n\r\n openUnlinkAccountModal = (accountId) => {\r\n this.setState({ isUnlinkAccountModalShown: true, accountId });\r\n };\r\n\r\n closeUnlinkAccountModal = () => {\r\n this.setState({ isUnlinkAccountModalShown: false });\r\n };\r\n\r\n confirmUnlinkAccount = () => {\r\n const { accountId } = this.state;\r\n this.processAccountUnlink(accountId);\r\n this.setState({ isUnlinkAccountModalShown: false });\r\n };\r\n\r\n closeFromOwnershipModal = (item) => {\r\n const { dispatch } = this.props;\r\n dispatch(hideOwnershipModal(item));\r\n };\r\n\r\n reAssignItem = () => {\r\n const { dispatch, changeOwnershipItem } = this.props;\r\n if (changeOwnershipItem != null && changeOwnershipItem.id != null) {\r\n dispatch(takeQueueItem('form', changeOwnershipItem.id, changeOwnershipItem.accountId));\r\n dispatch(hideOwnershipModal());\r\n }\r\n };\r\n\r\n continueFromOwnershipModal = () => {\r\n const { dispatch, changeOwnershipItem } = this.props;\r\n dispatch(hideOwnershipModal());\r\n let redirectUrl = `/forms/${ changeOwnershipItem.formType.toLowerCase() }/${ changeOwnershipItem.id }`;\r\n if (changeOwnershipItem.accountId) {\r\n redirectUrl = `${ redirectUrl }?account=${ changeOwnershipItem.accountId }`;\r\n }\r\n dispatch(push(redirectUrl));\r\n };\r\n\r\n getActions = () => {\r\n const { permissions } = this.props;\r\n\r\n return SupportingDocsActions({\r\n permissions,\r\n deleteSupportingDocument: this.deleteSupportingDocument,\r\n viewSupportingDocument: this.viewSupportingDocument,\r\n canDelete: this.canDeleteSupportingDocs()\r\n });\r\n };\r\n\r\n hideLoadingAnimation = () => {\r\n const { loadingTime } = this.state;\r\n const { isGettingCustomers } = this.props;\r\n const loadingInterval = setInterval(() => {\r\n if (!isGettingCustomers) {\r\n this.setState({ loading: false });\r\n clearInterval(loadingInterval);\r\n }\r\n }, loadingTime);\r\n };\r\n\r\n processData = (items, itemCount, storeCustomer) => {\r\n const { supportingDocsGridCriteria } = this.state;\r\n const data = [];\r\n if (items != null) {\r\n items.forEach((item) => {\r\n const accountsWithCollectableDocs = storeCustomer.accounts\r\n .filter(x => x.account?.legalEntity?.collectableSupportingDocs !== null && x.account?.legalEntity?.collectableSupportingDocs > 0)\r\n .map(x => x.account.id);\r\n const form = storeCustomer.forms?.sort((a, b) => a.accountId - b.accountId)\r\n .find(x => x?.id === item?.formId && accountsWithCollectableDocs.includes(x?.accountId));\r\n const datum = {\r\n itemId: item?.id,\r\n originalFileName: item?.originalFileName,\r\n typeDescription: item?.typeDescription,\r\n uploadDate: (item?.uploadDate === null || item?.uploadDate === '') ? 'N/A' : moment(item.uploadDate).format('MMM DD, YYYY HH:mm:ss'),\r\n formId: item?.formId,\r\n linkedForm: form?.formTypeDescription,\r\n account: getAccountName(form),\r\n accountId: form?.accountId,\r\n workflowStageDescription: form?.workflowStageDescription,\r\n workflowUsername: form?.workflowUsername,\r\n formType: form?.formType,\r\n formSignedDate: form?.dateSigned ? moment(form.dateSigned).format('MMM DD, YYYY') : '',\r\n };\r\n data.push(datum);\r\n });\r\n const pageCount = Math.ceil(itemCount / supportingDocsGridCriteria.pageSize);\r\n this.setState({ data, supportingDocsGridCriteria: { ...supportingDocsGridCriteria, itemCount, pageCount } });\r\n }\r\n };\r\n\r\n processAccountLink(addedAccountData) {\r\n const { dispatch, storeCustomer } = this.props;\r\n dispatch(customerAccountLink(storeCustomer.id, addedAccountData));\r\n dispatch(reset('addCustomerAccountForm'));\r\n dispatch(change('addCustomerAccountForm', 'accountNumber', null));\r\n }\r\n\r\n processAccountUnlink(accountId) {\r\n const { dispatch, storeCustomer } = this.props;\r\n dispatch(customerAccountUnlink(storeCustomer.id, accountId));\r\n }\r\n\r\n openCustomerIdChangeModal() {\r\n const { dispatch } = this.props;\r\n dispatch(showCustomerIdChangeModal());\r\n }\r\n\r\n closeCustomerIdChangeModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideCustomerIdChangeModal());\r\n }\r\n\r\n processCustomerIdChangeModal(updatedCustomer) {\r\n const { dispatch } = this.props;\r\n dispatch(processCustomerIdChange(updatedCustomer));\r\n }\r\n\r\n canDeleteSupportingDocs() {\r\n const { storeCustomer } = this.props;\r\n if (storeCustomer?.forms && storeCustomer.forms.length > 0) {\r\n return storeCustomer.forms.filter(form => form.workflowStageDescription === 'Complete').length === 0\r\n && storeCustomer.forms.filter(form => form.workflowStageDescription === 'Complete' && form.validUntil < new Date()).length === 0;\r\n }\r\n return true;\r\n }\r\n\r\n render() {\r\n const { permissions, isLoadingData, storeCustomer, isCustomerIdChangeModalShown, customerDataLoadError, match,\r\n settings, parentImyForms, isGettingParentImyForms, dispatch,\r\n isDeleteFormModalShown, isDeletingForm, deleteFormError,\r\n isOwnershipModalShown, changeOwnershipItem, isEditingCustomer, isSubmittingCustomer\r\n } = this.props;\r\n const {\r\n isUnlinkAccountModalShown,\r\n isUnlinkingAccount,\r\n unlinkAccountError,\r\n formToDelete,\r\n data,\r\n supportingDocsGridCriteria,\r\n loading,\r\n initialLoaded,\r\n emailAddress\r\n } = this.state;\r\n const regexp = /(?:T-)(.*)(?:-MP)(.*)/;\r\n let certData = null;\r\n if (storeCustomer && storeCustomer.accounts && storeCustomer.accounts.length === 1 && storeCustomer.accounts[0]) {\r\n certData = storeCustomer.accounts[0].formCertificationData ?? storeCustomer.accounts[0].importCertificationData;\r\n }\r\n const numAccounts = storeCustomer && storeCustomer.accounts ? storeCustomer.accounts.length : 0;\r\n const numJointAccounts = storeCustomer && storeCustomer.accounts ? storeCustomer.accounts.filter(x => x.account && x.account.isJointAccount).length : 0;\r\n\r\n return (\r\n
    \r\n { customerDataLoadError && (customerDataLoadError.code !== 0\r\n && \r\n ) }\r\n { !customerDataLoadError && (isLoadingData || storeCustomer == null) && }\r\n { !customerDataLoadError && !isLoadingData && storeCustomer !== null\r\n &&
    \r\n
    \r\n
    \r\n
    \r\n Customer: { this.getCustomerName() }\r\n \r\n \r\n
    \r\n { storeCustomer?.isDirect && \r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Customer Details:

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { (numAccounts === 1 && numJointAccounts === 0) && \r\n
    \r\n

    Certification Status:

    \r\n
    \r\n
    \r\n

    { storeCustomer && getCertifictionStatus(storeCustomer.certificationStatus) }

    \r\n
    \r\n
    }\r\n
    \r\n

    Name:

    \r\n
    \r\n
    \r\n

    {storeCustomer.name ? storeCustomer.name : 'N/A'}

    \r\n
    \r\n
    \r\n

    Customer ID:

    \r\n
    \r\n
    \r\n

    {storeCustomer.customerId ? storeCustomer.customerId : 'N/A'}

    \r\n
    \r\n
    \r\n

    Citizenship / Incorporation Country:

    \r\n
    \r\n
    \r\n

    { this.getJurisdictionName(storeCustomer?.citizenshipCode) }

    \r\n
    \r\n
    \r\n

    Permanent Address(es):

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    Mailing Address(es):

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    Phone Number:

    \r\n
    \r\n
    \r\n

    {storeCustomer != null && storeCustomer.phoneNumber ? storeCustomer.phoneNumber : 'N/A'}

    \r\n
    \r\n
    \r\n

    Email Address:

    \r\n
    \r\n
    \r\n { !isEditingCustomer &&

    \r\n { storeCustomer && storeCustomer.emailAddress ? storeCustomer.emailAddress : 'N/A' }\r\n

    }\r\n { !isEditingCustomer && AccessControl.hasPermission(permissions, [ActivityPerms.customerEdit]) && storeCustomer?.isDirect === true && this.onEditEmailAddressClick() }\r\n >\r\n \r\n }\r\n { isEditingCustomer && AccessControl.hasPermission(permissions, [ActivityPerms.customerEdit]) && \r\n this.onEmailAddressChange(e) }\r\n />\r\n this.onUpdateSubmit() }\r\n >\r\n this.onUpdateCancel() }\r\n >\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n { storeCustomer != null && storeCustomer.accounts != null && storeCustomer.accounts.length === 1\r\n &&
    \r\n
    \r\n

    Treaty Country:

    \r\n
    \r\n
    \r\n

    { this.getJurisdictionName(certData?.treatyCountryIsoCode) }

    \r\n
    \r\n { certData?.lobCategoryCode && certData.lobCategoryCode !== '' && \r\n
    \r\n

    LOB:

    \r\n
    \r\n
    \r\n

    {certData?.lobCategoryCode ? certData.lobCategoryCode : 'N/A'}

    \r\n
    \r\n
    }\r\n
    \r\n

    US TIN:

    \r\n
    \r\n
    \r\n

    {certData?.tin ? certData.tin : 'N/A'}

    \r\n
    \r\n
    \r\n

    FTIN:

    \r\n
    \r\n
    \r\n

    { Customer.getForeignTin(certData?.foreignTin, certData?.foreignTinNotRequired) }

    \r\n
    \r\n
    \r\n

    GIIN:

    \r\n
    \r\n
    \r\n

    {certData?.giin ? certData.giin : 'N/A'}

    \r\n
    \r\n
    \r\n

    Part 2 GIIN:

    \r\n
    \r\n
    \r\n

    {certData?.part2Giin ? certData.part2Giin : 'N/A'}

    \r\n
    \r\n
    }\r\n { (storeCustomer != null && storeCustomer.accounts != null && storeCustomer.accounts.length > 1)\r\n &&

    \r\n To view certification data for each account holder
    click the 'Display additional details' icon within the 'Accounts' Grid\r\n

    }\r\n { storeCustomer?.irsBNotice != null &&
    \r\n
    \r\n

    IRS B Notice:

    \r\n
    \r\n

    {storeCustomer?.irsBNotice}

    \r\n
    \r\n

    IRS B Notice Date:

    \r\n
    \r\n

    {storeCustomer?.bNoticeReceivedDate != null ? moment(storeCustomer.bNoticeReceivedDate).format('MMM DD, YYYY') : 'N/A'}

    \r\n
    \r\n
    }\r\n { storeCustomer?.irsCNotice != null &&
    \r\n
    \r\n

    IRS C Notice:

    \r\n
    \r\n

    {storeCustomer?.irsCNotice}

    \r\n
    \r\n

    IRS C Notice Date:

    \r\n
    \r\n

    {storeCustomer?.cNoticeReceivedDate != null ? moment(storeCustomer.cNoticeReceivedDate).format('MMM DD, YYYY') : 'N/A'}

    \r\n
    \r\n
    }\r\n
    \r\n
    \r\n

    Tax Residenc(ies):

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n this.processCustomerIdChangeModal(updatedCustomer) }\r\n onCancel={ () => this.closeCustomerIdChangeModal() }\r\n isTempUser={ storeCustomer.customerId && regexp.exec(storeCustomer.customerId) !== null ? regexp.exec(storeCustomer.customerId).length > 0 : false }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Forms:

    \r\n
    \r\n
    \r\n this.openDeleteFormModal(item) }\r\n />\r\n
    \r\n { storeCustomer?.forms && storeCustomer.forms.length > 0 &&
    \r\n
    \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.scannedEdit]) && f.workflowStage !== 100) } // Only Non-Workflow Complete Forms\r\n sourceCustomerId={ storeCustomer.id }\r\n onSuccess={ () => dispatch(customerDataLoad(storeCustomer.id)) }\r\n /> }\r\n
    \r\n
    \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.scannedEdit]) && dispatch(customerDataLoad(storeCustomer.id)) }\r\n /> }\r\n
    \r\n
    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Supporting Documents:

    \r\n
    \r\n null }\r\n actions={ this.getActions() }\r\n loading={ loading }\r\n initialLoaded={ initialLoaded }\r\n collapseHeight\r\n enablePagination={ false }\r\n />\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Accounts:

    \r\n
    \r\n
    \r\n this.openUnlinkAccountModal(accountId) }\r\n />\r\n
    \r\n { settings.showJointAccounts && \r\n
    \r\n

    Link an Account:

    \r\n
    \r\n
    \r\n this.processAccountLink(updateData) } />\r\n
    \r\n
    }\r\n
    \r\n
    \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.scannedViewTree]) &&
    \r\n
    \r\n
    \r\n

    IMY Trees:

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    }\r\n { settings && settings.showWithholding && AccessControl.hasPermission(permissions, [ActivityPerms.whdViewRates]) &&
    \r\n
    \r\n
    \r\n

    Withholding Rates:

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    }\r\n this.confirmUnlinkAccount() }\r\n onCancel={ () => this.closeUnlinkAccountModal() }\r\n error={ unlinkAccountError }\r\n title=\"Unlink\"\r\n message=\"Are you sure you want to unlink this account?\"\r\n />\r\n this.processDeleteForms() }\r\n onCancel={ () => this.closeDeleteFormModal() }\r\n deleteFormError={ deleteFormError }\r\n items={ formToDelete !== null ? [formToDelete] : [] }\r\n />\r\n { changeOwnershipItem != null && this.reAssignItem() }\r\n onContinueWithoutAssign={ () => this.continueFromOwnershipModal() }\r\n onCancel={ () => this.closeFromOwnershipModal() }\r\n workflowRecord={ changeOwnershipItem }\r\n /> }\r\n
    }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n permissions,\r\n settings\r\n },\r\n common: {\r\n jurisdictions\r\n },\r\n customer: {\r\n storeCustomer,\r\n isLoadingData,\r\n isCustomerIdChangeModalShown,\r\n returnedExistingCustomerId,\r\n customerDataLoadError,\r\n customerSupportingDocs,\r\n isEditingCustomer,\r\n isSubmittingCustomer\r\n },\r\n forms: {\r\n isGettingParentImyForms,\r\n parentImyForms,\r\n isDeleteFormModalShown,\r\n isDeletingForm,\r\n deleteFormError,\r\n supportingDocs,\r\n supportingDocsGridCriteria\r\n },\r\n workflow: {\r\n isOwnershipModalShown,\r\n changeOwnershipItem,\r\n isGettingCustomers\r\n }\r\n } = state;\r\n return {\r\n permissions,\r\n jurisdictions,\r\n storeCustomer,\r\n customerSupportingDocs,\r\n isLoadingData,\r\n isCustomerIdChangeModalShown,\r\n returnedExistingCustomerId,\r\n customerDataLoadError,\r\n settings,\r\n isGettingParentImyForms,\r\n parentImyForms,\r\n isDeleteFormModalShown,\r\n isDeletingForm,\r\n deleteFormError,\r\n isOwnershipModalShown,\r\n changeOwnershipItem,\r\n supportingDocs,\r\n isGettingCustomers,\r\n initSupportingDocGridCriteria: supportingDocsGridCriteria,\r\n isEditingCustomer,\r\n isSubmittingCustomer\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withContainerErrorBoundary(Customer, 'Customer')));\r\n","import React, { useState } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { reduxForm } from 'redux-form';\r\nimport AutoCompleteInput from 'components/Common/Inputs/AutoCompleteInput';\r\n\r\nconst SearchPanel = ({ searchCriteria, onSearchCriteriaChanged, onSearchClicked }) => {\r\n const [raisedWithin, SetRaisedWithin] = useState(90);\r\n\r\n const onSearchClick = () => {\r\n onSearchClicked(searchCriteria);\r\n };\r\n\r\n const onAutoCompleteChange = (_, lookupValue, propertyName) => {\r\n const newSearchCriteria = Object.assign({}, searchCriteria);\r\n\r\n if ((typeof lookupValue === 'string' || lookupValue instanceof String)) {\r\n newSearchCriteria[propertyName] = lookupValue;\r\n newSearchCriteria[`${ propertyName }Selected`] = false;\r\n } else if (lookupValue !== null) {\r\n newSearchCriteria[propertyName] = lookupValue;\r\n newSearchCriteria[`${ propertyName }Selected`] = true;\r\n }\r\n onSearchCriteriaChanged(newSearchCriteria);\r\n };\r\n\r\n const onCountChange = (e) => {\r\n const newSearchCriteria = Object.assign({}, searchCriteria);\r\n\r\n newSearchCriteria.raisedWithin = e.target.value;\r\n SetRaisedWithin(e.target.value);\r\n onSearchCriteriaChanged(newSearchCriteria);\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n onAutoCompleteChange(null, value, 'customer') }\r\n onSelectedItem={ value => onAutoCompleteChange(null, value, 'customer') }\r\n />\r\n
    \r\n
    \r\n onAutoCompleteChange(null, value, 'accountNumber') }\r\n onSelectedItem={ value => onAutoCompleteChange(null, value, 'accountNumber') }\r\n />\r\n
    \r\n
    \r\n onAutoCompleteChange(null, value, 'legalEntity') }\r\n onSelectedItem={ value => onAutoCompleteChange(null, value, 'legalEntity') }\r\n />\r\n
    \r\n
    \r\n onCountChange(e) }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n onSearchClick() }\r\n > Search\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nSearchPanel.propTypes = {\r\n searchCriteria: PropTypes.shape().isRequired,\r\n onSearchCriteriaChanged: PropTypes.func.isRequired,\r\n onSearchClicked: PropTypes.func.isRequired\r\n};\r\n\r\nconst SearchPanelForm = reduxForm({\r\n form: 'monitoringSearchForm',\r\n})(SearchPanel);\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nconst ConnectedMonitoringSearchPanel = connect(\r\n // ({ monitoring }) => ({\r\n // cicAlertsList: monitoring.cicAlertsList,\r\n // cicAlertsListCount: monitoring.cicAlertsListCount\r\n // }),\r\n mapDispatchToProps\r\n)(SearchPanelForm);\r\n\r\nexport default ConnectedMonitoringSearchPanel;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\n\r\nconst ActionSelect = ({ selectedItems, permissions, openAssignToUserModal }) => (\r\n
    \r\n
    \r\n
    \r\n \r\n { selectedItems.length } items selected\r\n \r\n \r\n
      \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.monitoringBulkAssign], true)\r\n &&
    • \r\n openAssignToUserModal(selectedItems) }\r\n >\r\n Assign to user/s\r\n \r\n
    • }\r\n
    \r\n
    \r\n
    \r\n
    \r\n);\r\n\r\nActionSelect.propTypes = {\r\n selectedItems: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n settings: PropTypes.shape({}).isRequired,\r\n openAssignToUserModal: PropTypes.func.isRequired,\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n settings: state.auth.settings,\r\n permissions: state.auth.permissions\r\n});\r\nexport const ConnectedActionSelect = connect(mapStateToProps)(ActionSelect);\r\n\r\nexport default ConnectedActionSelect;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nconst NumberRangeFilter = ({ column: { filterValue = { filter: [], filterType: 'between' }, setFilter } }) => {\r\n const [inputValue, setInputValue] = React.useState(filterValue.filter);\r\n const [showFilter, setShowFilter] = React.useState(false);\r\n const node = React.useRef();\r\n\r\n const handleClickOutside = (e) => {\r\n if (node === null || node.current === null) {\r\n return;\r\n }\r\n\r\n if (node.current.contains(e.target)) {\r\n // inside click\r\n return;\r\n }\r\n setShowFilter(false);\r\n };\r\n\r\n React.useEffect(() => {\r\n if (showFilter) {\r\n document.addEventListener('mousedown', handleClickOutside);\r\n } else {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n }\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [showFilter]);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n = 0 ? inputValue[0].toString() : '' }\r\n type=\"number\"\r\n min=\"0\"\r\n onChange={ (e) => {\r\n const val = e.target.value;\r\n setInputValue((old = []) => {\r\n const newValue = [val >= 0 ? parseInt(val, 10) : undefined, old[1]];\r\n return newValue;\r\n });\r\n } }\r\n style={ { width: '50%', marginRight: '0.5rem' } }\r\n />\r\n to\r\n = 0 ? inputValue[1].toString() : '' }\r\n type=\"number\"\r\n min=\"0\"\r\n onChange={ (e) => {\r\n const val = e.target.value;\r\n setInputValue((old = []) => {\r\n const newValue = [old[0], val >= 0 ? parseInt(val, 10) : undefined];\r\n return newValue;\r\n });\r\n } }\r\n style={ { width: '50%', marginLeft: '0.5rem' } }\r\n />\r\n
    \r\n
    \r\n
    \r\n {\r\n setShowFilter(false);\r\n setFilter({ filter: inputValue, filterType: 'between' });\r\n } }\r\n > Filter\r\n
    \r\n
    \r\n {\r\n setShowFilter(false);\r\n setInputValue([]);\r\n setFilter({ filter: [], filterType: 'between' });\r\n } }\r\n > Clear\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nNumberRangeFilter.propTypes = {\r\n column: PropTypes.shape().isRequired,\r\n};\r\n\r\nNumberRangeFilter.defaultProps = {};\r\n\r\nexport default NumberRangeFilter;\r\n","import React from 'react';\r\n\r\nimport FreeTextFilter from 'components/ReactTable/Filters/FreeTextFilter';\r\nimport CustomerLinkCell from 'components/ReactTable/CellRenderers/CustomerLinkCell';\r\nimport MultiSelectFilter from 'components/ReactTable/Filters/MultiSelectFilter';\r\nimport WorkflowStageFilter from 'components/ReactTable/Filters/WorkflowStageFilter';\r\nimport DateRangeFilter from 'components/ReactTable/Filters/DateRangeFilter';\r\nimport NumberRangeFilter from 'components/ReactTable/Filters/NumberRangeFilter';\r\n\r\nconst CicColumnDefinitions = (permissions, workflowTab) => [\r\n {\r\n Header: 'Reference',\r\n accessor: 'referenceCode',\r\n Filter: FreeTextFilter,\r\n className: 'col-7p5'\r\n },\r\n {\r\n Header: 'Customer',\r\n accessor: 'customerName',\r\n Cell: (cellInfo) => {\r\n const { row: { original } } = cellInfo;\r\n return ();\r\n },\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Action Required',\r\n accessor: 'cicActionRequired',\r\n disableFilters: true,\r\n disableSortBy: true,\r\n className: 'col-12p5 text-centre'\r\n },\r\n {\r\n Header: 'Date Raised',\r\n accessor: 'createdDate',\r\n Filter: DateRangeFilter,\r\n className: 'col-7p5 text-centre'\r\n },\r\n {\r\n Header: 'Days Left for Review',\r\n accessor: 'daysToExpiration',\r\n Filter: NumberRangeFilter,\r\n className: 'col-12p5 text-centre'\r\n },\r\n {\r\n Header: 'Data Points',\r\n accessor: 'cicDataPoints',\r\n Filter: MultiSelectFilter,\r\n disableSortBy: true,\r\n className: ((workflowTab === 'complete') ? 'col-20p text-centre' : 'col-30p text-centre')\r\n },\r\n {\r\n Header: 'Workflow',\r\n accessor: 'workflowStatus',\r\n Filter: WorkflowStageFilter,\r\n disableFilters: (workflowTab !== 'resolvedCicAlerts' && workflowTab !== 'openCicAlerts' && workflowTab !== 'myalerts'),\r\n disableSortBy: (workflowTab !== 'resolvedCicAlerts' && workflowTab !== 'openCicAlerts' && workflowTab !== 'myalerts'),\r\n className: 'col-7p5 text-centre'\r\n },\r\n {\r\n Header: 'Closure Reason',\r\n accessor: 'closureReasonDesc',\r\n isVisible: (workflowTab === 'complete'),\r\n Filter: MultiSelectFilter,\r\n className: 'col-10p text-centre'\r\n },\r\n {\r\n Header: 'Assigned To',\r\n accessor: 'workflowUsername',\r\n disableFilters: (workflowTab === 'myalerts'),\r\n disableSortBy: true,\r\n className: 'col-10p'\r\n },\r\n {\r\n Header: 'Item Id',\r\n accessor: 'itemId',\r\n isVisible: false\r\n }\r\n];\r\n\r\nexport default CicColumnDefinitions;\r\n","const CiCWorkflowStages = {\r\n Draft: 1,\r\n PendingReview: 4,\r\n UnderInitialReview: 5,\r\n PendingExpertReview: 8,\r\n UnderExpertReview: 9,\r\n Complete: 100,\r\n Closed: 200\r\n};\r\n\r\nexport default CiCWorkflowStages;\r\n","import React, { useRef } from 'react';\r\n\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AccessControl from 'components/AccessControl';\r\n\r\nimport CiCWorkflowStages from 'common/Workflows/CiCWorkflowStages';\r\n\r\nconst isClosed = stage => stage === CiCWorkflowStages.Complete || stage === CiCWorkflowStages.Closed;\r\n\r\nconst isExpertReview = stage => stage === CiCWorkflowStages.PendingExpertReview || stage === CiCWorkflowStages.UnderExpertReview;\r\n\r\n/* eslint-disable react/prop-types, react/no-unstable-nested-components */\r\nconst CicActions = ({ permissions, takeAlert }) => ({\r\n id: 'action-column',\r\n Header: View,\r\n Cell: ({ row }) => {\r\n const refButton = useRef(null);\r\n return (
    \r\n { row.original && (\r\n (!isClosed(row.original.workflowStage) && AccessControl.hasPermission(permissions, [ActivityPerms.monitoringResolver]))\r\n || (isClosed(row.original.workflowStage) && AccessControl.hasPermission(permissions, [ActivityPerms.monitoringViewResolved]))\r\n || (isExpertReview(row.original.workflowStage) && AccessControl.hasPermission(permissions, [ActivityPerms.monitoringExpertReviewer])))\r\n && {\r\n refButton.current.blur();\r\n takeAlert(row.original);\r\n } }\r\n title=\"Show Alert Details\"\r\n >\r\n \r\n }\r\n
    );\r\n }\r\n});\r\n/* eslint-enable react/prop-types, react/no-unstable-nested-components */\r\n\r\nexport default CicActions;\r\n","const CicClosureReason = {\r\n Unknown: 0,\r\n Processed: 1,\r\n Expired: 2\r\n};\r\n\r\nexport default CicClosureReason;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { reduxForm, Field, change } from 'redux-form';\r\nimport { toastr } from 'react-redux-toastr';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport { ApiService } from 'services';\r\nimport { addSupportingDoc, saveCicAlertReviewState, getStorageSetting } from 'actions';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\n\r\nimport FileUpload from 'components/Common/FileUpload';\r\nimport EvidentiaryDocs from 'components/EvidentiaryDocs';\r\nimport AutoCompleteInput from 'components/Common/Inputs/AutoCompleteInput';\r\n\r\nclass CICReviewerCommentsSection extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n id: PropTypes.number,\r\n customerId: PropTypes.number,\r\n cicReviewState: PropTypes.shape(),\r\n workflowState: PropTypes.shape(),\r\n validReviewer: PropTypes.bool,\r\n onSubmit: PropTypes.func,\r\n onReviewCommentsChanged: PropTypes.func,\r\n onSupportingDocAdded: PropTypes.func,\r\n onSupportingDocRemoved: PropTypes.func,\r\n isSavingCicReviewState: PropTypes.bool,\r\n allowFormUpdate: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n permissions: null,\r\n id: null,\r\n customerId: null,\r\n cicReviewState: null,\r\n workflowState: null,\r\n validReviewer: true,\r\n onSubmit: null,\r\n onReviewCommentsChanged: null,\r\n onSupportingDocAdded: null,\r\n onSupportingDocRemoved: null,\r\n isSavingCicReviewState: false,\r\n allowFormUpdate: true\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const files = getStorageSetting('files') || [];\r\n\r\n this.state = {\r\n supportingDocType: '',\r\n files,\r\n assignToUser: null,\r\n draftComments: props.cicReviewState ? props.cicReviewState.draftComments : '',\r\n curingDocsLoaded: false\r\n };\r\n }\r\n\r\n static onFileUploadCancel(file) {\r\n toastr.info('', `Upload of ${ file.name } has been canceled.`);\r\n }\r\n\r\n static onFileUploadError(file, error) {\r\n toastr.error('', `Upload of ${ file.name } has been canceled. ${ error.message }`);\r\n }\r\n\r\n onFileUploadSuccess(file, response) {\r\n const { dispatch, onSupportingDocAdded } = this.props;\r\n\r\n dispatch(addSupportingDoc(response));\r\n toastr.success('', `${ response[0].originalFileName } has been uploaded`);\r\n this.setState({ curingDocsLoaded: true });\r\n\r\n file.responseId = response[0].id;\r\n if (onSupportingDocAdded != null) {\r\n onSupportingDocAdded(file, response);\r\n }\r\n }\r\n\r\n onFileRemoved(file) {\r\n const { onSupportingDocRemoved } = this.props;\r\n if (onSupportingDocRemoved != null) {\r\n onSupportingDocRemoved(file);\r\n }\r\n this.setState({ curingDocsLoaded: false });\r\n }\r\n\r\n onSupportingDocTypeChange = (e, newValue) => this.setState({ supportingDocType: newValue });\r\n\r\n onAssignToUserSelectedItem = (lookupValue) => {\r\n this.setState({ assignToUser: lookupValue });\r\n };\r\n\r\n onAssignToUserChange = (e, value) => {\r\n const { assignToUser } = this.state;\r\n\r\n if (value === '') {\r\n this.setState({ assignToUser: null });\r\n }\r\n\r\n if (assignToUser && assignToUser.value !== value) {\r\n this.setState({ assignToUser: null });\r\n }\r\n };\r\n\r\n onDraftCommentsChange = (e, value) => {\r\n const { onReviewCommentsChanged } = this.props;\r\n\r\n this.setState({ draftComments: value });\r\n if (onReviewCommentsChanged != null) {\r\n onReviewCommentsChanged(value);\r\n }\r\n };\r\n\r\n onCopyAllPreviousComments = () => {\r\n const { dispatch, cicReviewState } = this.props;\r\n\r\n if (cicReviewState && cicReviewState.previousComments) {\r\n const copiedComments = cicReviewState.previousComments.join('\\n');\r\n this.setState({ draftComments: copiedComments });\r\n dispatch(change('cicReviewerForm', 'reviewerComment', copiedComments));\r\n }\r\n };\r\n\r\n onCopyComment = (comment) => {\r\n const { dispatch } = this.props;\r\n this.setState({ draftComments: comment.comm });\r\n dispatch(change('cicReviewerForm', 'reviewerComment', comment.comm));\r\n };\r\n\r\n onFormSubmit = (actionId) => {\r\n const { dispatch, id, onSubmit } = this.props;\r\n const { draftComments, assignToUser, curingDocsLoaded } = this.state;\r\n\r\n if (onSubmit != null) {\r\n onSubmit(id, {\r\n actionId,\r\n curingDocsLoaded,\r\n draftComments,\r\n assignToUser\r\n });\r\n } else {\r\n dispatch(saveCicAlertReviewState(id, {\r\n actionId,\r\n draftComments,\r\n assignToUser\r\n }));\r\n }\r\n };\r\n\r\n getReviewerStage() {\r\n const { cicReviewState } = this.props;\r\n\r\n if (cicReviewState != null) {\r\n if (cicReviewState.workflowStage >= 3 && cicReviewState.workflowStage <= 4) {\r\n return 'Initial Reviewer';\r\n }\r\n if (cicReviewState.workflowStage >= 5 && cicReviewState.workflowStage <= 6) {\r\n return 'Initial Reviewer';\r\n }\r\n if (cicReviewState.workflowStage >= 7 && cicReviewState.workflowStage <= 8) {\r\n return 'Expert Reviewer';\r\n }\r\n }\r\n return 'My';\r\n }\r\n\r\n canComment() {\r\n const { permissions, cicReviewState, workflowState, validReviewer } = this.props;\r\n if (!validReviewer) {\r\n return false;\r\n }\r\n\r\n const isOwner = workflowState != null && workflowState.assignedUser === getStorageSetting('username');\r\n const hasReviewerPermission = AccessControl.hasPermission(permissions, [ActivityPerms.monitoringResolver, ActivityPerms.monitoringExpertReviewer]);\r\n\r\n if (cicReviewState != null && cicReviewState.workflowStage != null && cicReviewState.workflowStage === 100) {\r\n // WF is complete\r\n return AccessControl.hasPermission(permissions, [ActivityPerms.monitoringExpertReviewer, ActivityPerms.monitoringResolver]);\r\n }\r\n\r\n return isOwner && hasReviewerPermission;\r\n }\r\n\r\n render() {\r\n const {\r\n permissions,\r\n customerId,\r\n cicReviewState,\r\n isSavingCicReviewState,\r\n allowFormUpdate\r\n } = this.props;\r\n const { files, supportingDocType, draftComments, assignToUser } = this.state;\r\n return (\r\n
    \r\n
    \r\n \r\n { this.canComment() && \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.onSupportingDocTypeChange(e, newValue) }\r\n />\r\n
    \r\n
    \r\n CICReviewerCommentsSection.onFileUploadCancel(file) }\r\n onFileUploadSuccess={ (file, response) => this.onFileUploadSuccess(file, response) }\r\n onFileRemoved={ file => this.onFileRemoved(file) }\r\n onFileUploadError={ (file, error) => CICReviewerCommentsSection.onFileUploadError(file, error) }\r\n />\r\n
    }\r\n \r\n \r\n \r\n \r\n { !this.canComment() && (!cicReviewState\r\n || !cicReviewState.previousComments\r\n || cicReviewState.previousComments.length === 0) && No comments made. }\r\n { cicReviewState != null && cicReviewState.previousComments &&
    \r\n { // eslint-disable-next-line\r\n cicReviewState.previousComments.map((comm, index) => comm != null &&

    \r\n { this.canComment() && this.onCopyComment({ comm }) }\r\n >\r\n \r\n }\r\n { // eslint-disable-next-line\r\n comm != null && comm.split('\\n') && comm.split('\\n').map((item, index) => item != null && { item }
    )\r\n }

    )\r\n }\r\n { this.canComment() && }\r\n
    }\r\n { this.canComment() &&
    \r\n

    Insert in the box any additional information supplied or sourced.

    \r\n value.substring(0, 2000) }\r\n value={ draftComments }\r\n onChange={ (e, value) => this.onDraftCommentsChange(e, value) }\r\n />\r\n
    }\r\n { this.canComment() &&
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.onAssignToUserSelectedItem(lookupValue) }\r\n onChange={ (e, value) => this.onAssignToUserChange(e, value) }\r\n />\r\n
    \r\n
    }\r\n { this.canComment() &&
    \r\n { cicReviewState != null && cicReviewState.availableActions != null &&
    \r\n { Object.entries(cicReviewState.availableActions) != null && Object.entries(cicReviewState.availableActions)\r\n .filter(([key, value]) => value != null && value !== 'Submit').map(([key, value]) => key != null &&
    \r\n this.onFormSubmit(key) }\r\n >\r\n { value }\r\n \r\n
    ) }\r\n
    }\r\n
    \r\n
    \r\n this.onFormSubmit(null) }\r\n >\r\n Save { assignToUser && ' and Assign' }\r\n \r\n
    \r\n
    \r\n { cicReviewState && cicReviewState.availableActions && Object.entries(cicReviewState.availableActions) != null && Object.entries(cicReviewState.availableActions)\r\n .filter(([key, value]) => value != null && value === 'Submit').map(([key, value]) => key != null && this.onFormSubmit(key) }\r\n >\r\n { value }\r\n ) }\r\n
    \r\n
    \r\n
    }\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst cicReviewerForm = reduxForm({\r\n form: 'cicReviewerForm',\r\n})(CICReviewerCommentsSection);\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n permissions\r\n },\r\n monitoring: {\r\n isSavingCicReviewState,\r\n cicReviewState,\r\n workflowState\r\n }\r\n } = state;\r\n\r\n return {\r\n permissions,\r\n isSavingCicReviewState,\r\n cicReviewState,\r\n workflowState,\r\n initialValues: {\r\n reviewerComment: cicReviewState ? cicReviewState.draftComments : ''\r\n }\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport const CICReviewerComments = connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(cicReviewerForm);\r\n\r\nexport default CICReviewerComments;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { reduxForm, change } from 'redux-form';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport { getStorageSetting, getCicAlert, saveCicAlertReviewState } from 'actions';\r\nimport WorkflowStages from 'common/Workflows/WorkflowStages';\r\nimport CicClosureReason from 'common/CiCAlerts/ClosureReason';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport RadioTableGroup from 'components/Common/Inputs/RadioTableGroup';\r\nimport FormViewButton from 'components/Common/Buttons/FormViewButton';\r\n\r\nimport ReviewerComments from './ReviewerComment';\r\n\r\nclass CicAlertModal extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n isShown: PropTypes.bool.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n isCicAlertLoading: PropTypes.bool,\r\n id: PropTypes.number,\r\n cicAlert: PropTypes.shape({\r\n id: PropTypes.number,\r\n isCic: PropTypes.bool,\r\n hasCuringDocs: PropTypes.bool,\r\n changes: PropTypes.arrayOf(PropTypes.shape()),\r\n affectedForms: PropTypes.arrayOf(PropTypes.shape()),\r\n workflow: PropTypes.shape(),\r\n referenceCode: PropTypes.string,\r\n customerDbId: PropTypes.number,\r\n review: PropTypes.shape(),\r\n customerId: PropTypes.string,\r\n customerName: PropTypes.string,\r\n daysBeforeExpiration: PropTypes.string,\r\n dataPoint: PropTypes.string,\r\n presumedCic: PropTypes.bool,\r\n closureReason: PropTypes.number,\r\n curingDocs: PropTypes.arrayOf(PropTypes.shape()),\r\n })\r\n };\r\n\r\n static defaultProps = {\r\n id: null,\r\n cicAlert: null,\r\n permissions: null,\r\n isCicAlertLoading: false,\r\n };\r\n\r\n constructor(props) {\r\n super();\r\n this.state = {\r\n isCicUpdated: false,\r\n currentCuringDocs: null\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const { dispatch, id } = this.props;\r\n dispatch(getCicAlert(id));\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n const { cicAlert } = this.props;\r\n\r\n if (prevProps.cicAlert == null && cicAlert != null && cicAlert.changes != null && cicAlert.changes.length > 0) {\r\n cicAlert.changes.map((chg, index) => (\r\n this.updateFormValue(index, chg.isCic, chg.hasCuringDocs)\r\n ));\r\n }\r\n }\r\n\r\n static getDerivedStateFromProps(props, state) {\r\n if (state.currentChanges == null\r\n && props.cicAlert != null\r\n && props.cicAlert.changes != null) {\r\n return {\r\n currentChanges: props.cicAlert.changes,\r\n currentCuringDocs: props.cicAlert.curingDocs,\r\n initialChangesString: JSON.stringify(props.cicAlert.changes)\r\n };\r\n }\r\n return {};\r\n }\r\n\r\n onCicChange(e, newVal, prevVal, index) {\r\n const { currentChanges, isCicUpdated } = this.state;\r\n currentChanges[index].isCic = newVal ? (newVal === 'true') : null;\r\n this.setState({\r\n currentChanges,\r\n isCicUpdated: !isCicUpdated,\r\n });\r\n }\r\n\r\n onHasCuringDocChange(e, newVal, prevVal, index) {\r\n const { currentChanges } = this.state;\r\n currentChanges[index].hasCuringDocs = newVal ? (newVal === 'true') : null;\r\n this.setState({\r\n currentChanges\r\n });\r\n }\r\n\r\n onClearSubmissionError() {\r\n this.setState({ submissionError: null });\r\n }\r\n\r\n onCuringDocAdded(file, response) {\r\n let { currentCuringDocs } = this.state;\r\n\r\n if (currentCuringDocs == null) {\r\n currentCuringDocs = [];\r\n }\r\n\r\n if (response && response.length > 0) {\r\n currentCuringDocs.push({\r\n id: response[0].id,\r\n originalFileName: file.name\r\n });\r\n\r\n this.setState({ currentCuringDocs });\r\n }\r\n }\r\n\r\n onCuringDocRemoved(file) {\r\n let { currentCuringDocs } = this.state;\r\n\r\n if (currentCuringDocs == null) {\r\n currentCuringDocs = [];\r\n }\r\n\r\n if (file) {\r\n currentCuringDocs = currentCuringDocs.filter(f => f.id !== file.responseId);\r\n this.setState({ currentCuringDocs });\r\n }\r\n }\r\n\r\n onFormSubmit(id, workflowAction) {\r\n const { dispatch } = this.props;\r\n const { currentChanges, currentCuringDocs } = this.state;\r\n let submissionError = null;\r\n if (workflowAction != null) {\r\n if (workflowAction.actionId === '1') {\r\n // Submit button pressed\r\n currentChanges.forEach((element) => {\r\n if (element.isCic === null) {\r\n submissionError = { code: 500, message: 'Please answer \\'Yes\\' or \\'No\\' to all the questions above before submitting this decision.' };\r\n } else if (element.isCic === true && element.hasCuringDocs === null) {\r\n submissionError = { code: 500, message: 'You must indicate if you have located and referenced relevant curing documentation for all possible changes in circumstance.' };\r\n } else if (element.isCic === true && element.hasCuringDocs === true && (!currentCuringDocs || currentCuringDocs.length === 0 || !workflowAction.draftComments)) {\r\n submissionError = { code: 500, message: 'Curing documentation must be uploaded as evidence along with an explanatory comment.' };\r\n } else if (element.isCic === false && !workflowAction.draftComments) {\r\n submissionError = { code: 500, message: 'Commentary is required to explain why the alert is not a change in circumstance.' };\r\n }\r\n });\r\n }\r\n\r\n this.setState({ submissionError }, () => {\r\n if (submissionError != null) {\r\n if (this.submissionErrors) {\r\n this.submissionErrors.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n return;\r\n }\r\n\r\n const reviewState = Object.assign({}, workflowAction);\r\n reviewState.changes = currentChanges;\r\n reviewState.curingDocs = currentCuringDocs ? currentCuringDocs.map(f => f.id) : null;\r\n\r\n dispatch(saveCicAlertReviewState(id, reviewState));\r\n });\r\n }\r\n }\r\n\r\n alertIsExpired = () => {\r\n const { cicAlert } = this.props;\r\n return cicAlert && cicAlert.closureReason && cicAlert.closureReason === CicClosureReason.Expired;\r\n };\r\n\r\n getModalTitle = () => {\r\n const { cicAlert } = this.props;\r\n return { `Alert ${ cicAlert != null\r\n ? cicAlert.referenceCode : '' }` }{ this.alertIsExpired()\r\n ? ' - Closed as relevant forms have expired' : '' };\r\n };\r\n\r\n updateFormValue(index, isCic, hasCuringDocs) {\r\n const { dispatch } = this.props;\r\n dispatch(change('cureCicAlertForm', `changes.[${ index }].isCic`, isCic));\r\n dispatch(change('cureCicAlertForm', `changes.[${ index }].hasCuringDocs`, hasCuringDocs));\r\n }\r\n\r\n isValidReviewer() {\r\n const { permissions, cicAlert } = this.props;\r\n\r\n if (cicAlert == null || cicAlert.workflow == null || this.alertIsExpired()) {\r\n return false;\r\n }\r\n\r\n // WF Stage 1 or 2 - Draft or Pending Signature\r\n if (cicAlert.workflow.stage === WorkflowStages.Draft || cicAlert.workflow.stage === WorkflowStages.PendingSignature) {\r\n return true;\r\n }\r\n\r\n const isOwner = cicAlert.workflow != null && cicAlert.workflow.assignedUser === getStorageSetting('username');\r\n // WF Stage 3 or 4 and Initial Reviewer\r\n // WF Stage 5 or 6 and Secondary Reviewer\r\n // WF Stage 7, 8 or 100 and Expert Reviewer\r\n // WF Stage 100 and Supplementary Reviewer\r\n const initialReviewer = (cicAlert.workflow.stage === WorkflowStages.PendingReview || cicAlert.workflow.stage === WorkflowStages.UnderInitialReview)\r\n && AccessControl.hasPermission(permissions, [ActivityPerms.monitoringResolver]);\r\n const secondaryReviewer = (cicAlert.workflow.stage === WorkflowStages.PendingSecondaryReview || cicAlert.workflow.stage === WorkflowStages.UnderSecondaryReview)\r\n && AccessControl.hasPermission(permissions, [ActivityPerms.monitoringResolver]);\r\n const expertReviewer = (cicAlert.workflow.stage === WorkflowStages.PendingExpertReview || cicAlert.workflow.stage === WorkflowStages.UnderExpertReview || cicAlert.workflow.stage === WorkflowStages.Complete)\r\n && AccessControl.hasPermission(permissions, [ActivityPerms.monitoringExpertReviewer]);\r\n const suppReviewer = cicAlert.workflow.stage === 100 && AccessControl.hasPermission(permissions, [ActivityPerms.monitoringResolver]);\r\n\r\n if (cicAlert.workflow.stage === WorkflowStages.Complete) {\r\n return (expertReviewer || suppReviewer);\r\n }\r\n\r\n return (isOwner && (initialReviewer || secondaryReviewer || expertReviewer || suppReviewer));\r\n }\r\n\r\n disableFormUpdate() {\r\n const { permissions, cicAlert } = this.props;\r\n\r\n if (cicAlert == null || cicAlert.workflow == null) {\r\n return true;\r\n }\r\n\r\n const isOwner = cicAlert.workflow != null && cicAlert.workflow.assignedUser === getStorageSetting('username');\r\n const hasReviewerPermission = AccessControl.hasPermission(permissions, [ActivityPerms.monitoringResolver, ActivityPerms.monitoringExpertReviewer]);\r\n\r\n // WF Stage 1 or 2 - Draft or Pending Signature\r\n if (cicAlert.workflow.stage === WorkflowStages.Draft || cicAlert.workflow.stage === WorkflowStages.PendingSignature) {\r\n return false;\r\n }\r\n\r\n // WF Stage 100 - Complete\r\n if (cicAlert.workflow.stage === WorkflowStages.Complete) {\r\n return true;\r\n }\r\n\r\n return !(isOwner && hasReviewerPermission);\r\n }\r\n\r\n render() {\r\n const {\r\n cicAlert,\r\n isShown,\r\n onCancel,\r\n permissions,\r\n isCicAlertLoading,\r\n id\r\n } = this.props;\r\n const {\r\n submissionError,\r\n currentChanges\r\n } = this.state;\r\n\r\n const disableFormUpdate = this.disableFormUpdate();\r\n return (\r\n \r\n { isCicAlertLoading && }\r\n { !isCicAlertLoading && cicAlert &&
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Customer

    \r\n
    \r\n
    \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.customerPageView, ActivityPerms.customerEdit]) ?

    \r\n { cicAlert.customerId } - { cicAlert.customerName }

    \r\n :

    { cicAlert.customerId } - { cicAlert.customerName }

    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Review the following possible changes in circumstance:

    \r\n { currentChanges != null && currentChanges.map((chg, index) => chg != null &&
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Description

    \r\n
    \r\n
    \r\n

    { chg.changeTypeLongDescription != null ? chg.changeTypeLongDescription : 'N/A' }

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Data Point

    \r\n
    \r\n
    \r\n

    { chg.changeDataPoints != null ? chg.changeDataPoints : 'N/A' }

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    New Books and Records Value

    \r\n
    \r\n
    \r\n

    { chg.current != null && chg.current !== '' ? chg.current : 'N/A' }

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Old Value

    \r\n
    \r\n
    \r\n

    { chg.previous != null && chg.previous !== '' ? chg.previous : 'N/A' }

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    If an uncured CIC, would a grace period apply?

    \r\n
    \r\n
    \r\n { chg.isCic ? 'Yes' : 'No' }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Presumed to be a CiC

    \r\n
    \r\n
    \r\n { chg.presumedCic ? 'Yes' : 'No' }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { !disableFormUpdate && value }\r\n onChange={ (e, newVal, prevVal) => this.onCicChange(e, newVal, prevVal, index) }\r\n disabled={ disableFormUpdate }\r\n /> }\r\n {\r\n // eslint-disable-next-line no-nested-ternary\r\n disableFormUpdate && \r\n }\r\n
    \r\n
    \r\n
    \r\n { chg.isCic &&
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { !disableFormUpdate && value }\r\n onChange={ (e, newVal, prevVal) => this.onHasCuringDocChange(e, newVal, prevVal, index) }\r\n disabled={ disableFormUpdate }\r\n /> }\r\n {\r\n // eslint-disable-next-line no-nested-ternary\r\n disableFormUpdate && \r\n }\r\n
    \r\n
    \r\n
    }\r\n
    \r\n
    \r\n
    )}\r\n { cicAlert.affectedForms != null &&
    \r\n

    The following forms are affected by this alert:

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { cicAlert.affectedForms.length > 0 && cicAlert.affectedForms.map(form => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n { cicAlert.affectedForms.length <= 0 && }\r\n \r\n
    FormAccountDays Left to ReviewForm Replaced?\r\n
    { form.formTypeDescription }{ form.accountName }{ form.daysBeforeExpiration }{ form.formReplaced ? 'Yes' : 'No' }\r\n }\r\n className=\"btn btn-sm\"\r\n title=\"Reopen\"\r\n formId={ form.formId }\r\n accountId={ form.accountId }\r\n form={ form.workflowState && {\r\n accountId: form.accountId,\r\n formType: form.formTypeText,\r\n workflowStageDescription: form.workflowState.stageDescription,\r\n workflowStatus: form.workflowState.stageText,\r\n workflowUsername: form.workflowState.assignedUser,\r\n workflowUserFullName: form.workflowState.assignedUserFullName\r\n } }\r\n permissions={ permissions }\r\n />\r\n

    No Data to Show

    \r\n
    \r\n
    }\r\n
    \r\n { cicAlert && this.onFormSubmit(wfId, values) }\r\n onReviewCommentsChanged={ () => this.setState({ submissionError: null }) }\r\n onSupportingDocAdded={ (f, r) => this.onCuringDocAdded(f, r) }\r\n onSupportingDocRemoved={ (f, r) => this.onCuringDocRemoved(f, r) }\r\n /> }\r\n { submissionError && submissionError.code !== 0 && { this.submissionErrors = el; } }\r\n >\r\n
    }\r\n
    \r\n
    }\r\n { !isCicAlertLoading && !cicAlert &&
    \r\n

    There is no alert data to display.

    \r\n
    }\r\n \r\n );\r\n }\r\n}\r\n\r\nconst CureCicAlertForm = reduxForm({\r\n form: 'cureCicAlertForm',\r\n enableReinitialize: true\r\n})(CicAlertModal);\r\n\r\nconst mapStateToProps = (state) => {\r\n const {\r\n auth: {\r\n permissions\r\n },\r\n monitoring: {\r\n cicAlert,\r\n isCicAlertLoading,\r\n }\r\n } = state;\r\n return {\r\n permissions,\r\n cicAlert,\r\n isCicAlertLoading\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(CureCicAlertForm);\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport moment from 'moment';\r\n\r\nimport withContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ReactTable from 'components/ReactTable';\r\nimport ChangeOwnershipModal from 'components/Modals/ChangeOwnershipModal';\r\nimport AssignToUserModal from 'components/Modals/AssignToUserModal';\r\n\r\nimport SearchPanel from 'components/Monitoring/SearchPanel';\r\nimport ActionSelect from 'components/Monitoring/ActionSelect';\r\nimport CicColumnDefs from 'components/Monitoring/CicColumnDefinitions';\r\nimport CicActions from 'components/Monitoring/GridActions';\r\nimport CicAlertModal from 'components/Modals/CicAlertModal';\r\n\r\nimport {\r\n getStorageSetting,\r\n getCicAlertsByObject,\r\n getUserCicAlertsByObject,\r\n getWorkflowCicAlertsByObject,\r\n saveCicAlertCriteria,\r\n showCicAlertModal,\r\n hideCicAlertModal,\r\n takeCicAlert,\r\n showOwnershipModal,\r\n hideOwnershipModal,\r\n showAssignCicToUserModal,\r\n hideAssignCicToUserModal,\r\n assignCicsToUserWithCallback,\r\n getCicAlertDetails,\r\n clearCicAlertDetails,\r\n getCicAlertCounts,\r\n} from 'actions';\r\n\r\nconst WAIT_INTERVAL = 500;\r\n\r\nclass Monitoring extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n initSearchCriteria: PropTypes.shape(),\r\n initGridCriteria: PropTypes.shape(),\r\n gridTotalLimit: PropTypes.number.isRequired,\r\n cicAlertsListCount: PropTypes.number.isRequired,\r\n cicAlertsList: PropTypes.arrayOf(PropTypes.shape()),\r\n isCicAlertModalShown: PropTypes.bool,\r\n isAssignCicToUserModalShown: PropTypes.bool,\r\n cicAlertId: PropTypes.number,\r\n changeOwnershipItem: PropTypes.shape(),\r\n isOwnershipModalShown: PropTypes.bool,\r\n refreshPage: PropTypes.bool,\r\n cicAlertList: PropTypes.arrayOf(PropTypes.number)\r\n };\r\n\r\n static defaultProps = {\r\n permissions: null,\r\n initSearchCriteria: null,\r\n initGridCriteria: null,\r\n cicAlertsList: [],\r\n isCicAlertModalShown: true,\r\n isAssignCicToUserModalShown: false,\r\n cicAlertId: null,\r\n refreshPage: false,\r\n changeOwnershipItem: null,\r\n isOwnershipModalShown: false,\r\n cicAlertList: []\r\n };\r\n\r\n static isUserOwner(user) {\r\n const loggedOnUser = getStorageSetting('username');\r\n\r\n return (loggedOnUser != null && user != null && loggedOnUser === user);\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const { initGridCriteria, initSearchCriteria, permissions, gridTotalLimit } = props;\r\n const searchCriteria = initSearchCriteria || {\r\n searchQuery: '',\r\n legalEntity: '',\r\n legalEntitySelected: false,\r\n accountNumber: '',\r\n accountNumberSelected: false,\r\n customer: '',\r\n customerSelected: false,\r\n workflowType: 'myalerts'\r\n };\r\n const gridCriteria = initGridCriteria || {\r\n columnDefs: CicColumnDefs(permissions).concat([]),\r\n pageIndex: 0,\r\n sortBy: [],\r\n filters: [],\r\n pageCount: 0,\r\n pageSize: 50,\r\n totalLimit: gridTotalLimit,\r\n itemCount: 0,\r\n selectedItems: [],\r\n selectedItem: null\r\n };\r\n\r\n this.state = {\r\n data: [],\r\n initialLoaded: false,\r\n loading: false,\r\n loadingTime: 500,\r\n searchCriteria,\r\n gridCriteria,\r\n selectionEnabled: true,\r\n };\r\n }\r\n\r\n /* eslint-disable-next-line camelcase */\r\n UNSAFE_componentWillMount() {\r\n this.updateGridCriteriaState();\r\n }\r\n\r\n componentDidMount() {\r\n this.sendDataRequest();\r\n this.updateNotificationHeader();\r\n }\r\n\r\n /* eslint-disable react/no-did-update-set-state */\r\n componentDidUpdate(prevProps) {\r\n const { initialLoaded } = this.state;\r\n const { refreshPage, cicAlertsList, cicAlertsListCount } = this.props;\r\n\r\n if (refreshPage) {\r\n this.sendDataRequest();\r\n }\r\n\r\n if (cicAlertsList !== prevProps.cicAlertsList) {\r\n this.processData(cicAlertsList, cicAlertsListCount);\r\n this.hideLoadingAnimation();\r\n if (!initialLoaded) {\r\n this.setState({ initialLoaded: true });\r\n }\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { dispatch } = this.props;\r\n const { gridCriteria, searchCriteria } = this.state;\r\n dispatch(saveCicAlertCriteria(searchCriteria, gridCriteria));\r\n }\r\n\r\n get isSearchCriteriaValid() {\r\n const { searchCriteria } = this.state;\r\n\r\n const isEmpty = searchCriteria\r\n && !searchCriteria.customer\r\n && !searchCriteria.legalEntity\r\n && !searchCriteria.accountNumber;\r\n\r\n return (searchCriteria\r\n && (isEmpty || searchCriteria.customerSelected || searchCriteria.legalEntitySelected || searchCriteria.accountNumberSelected\r\n || searchCriteria.customer?.length >= 3 || searchCriteria.legalEntity?.length >= 3 || searchCriteria.accountNumber?.length >= 3));\r\n }\r\n\r\n updateGridCriteriaState = () => {\r\n const { gridCriteria } = this.state;\r\n const { permissions } = this.props;\r\n const columnDefs = CicColumnDefs(permissions);\r\n this.setState({ gridCriteria: { ...gridCriteria, columnDefs } });\r\n };\r\n\r\n hideLoadingAnimation = () => {\r\n const { loadingTime } = this.state;\r\n const loadingInterval = setInterval(() => {\r\n this.setState({ loading: false });\r\n clearInterval(loadingInterval);\r\n }, loadingTime);\r\n };\r\n\r\n processData = (items, itemCount) => {\r\n const { gridCriteria } = this.state;\r\n const { gridTotalLimit } = this.props;\r\n const data = [];\r\n if (items != null) {\r\n items.forEach((item) => {\r\n const datum = {\r\n // cic alerts\r\n itemId: item?.id,\r\n accountId: item?.accountId,\r\n customerDbId: item?.customerDbId,\r\n referenceCode: (item?.referenceCode == null || item?.referenceCode === '') ? 'N/A' : item?.referenceCode,\r\n customerId: (item?.customerId == null || item?.customerId === '') ? 'N/A' : item?.customerId,\r\n customerName: (item?.customerName == null || item?.customerName === '') ? 'N/A' : item?.customerName,\r\n cicActionRequired: (item?.actionRequired == null || item?.actionRequired === '') ? 'N/A' : item?.actionRequired,\r\n createdDate: (item?.dateCreated == null || item?.dateCreated === '') ? 'N/A' : moment(item?.dateCreated).format('MMM DD, YYYY'),\r\n daysToExpiration: (item?.daysBeforeExpiration == null || item?.daysBeforeExpiration === '') ? 'N/A' : item?.daysBeforeExpiration,\r\n cicDataPoints: (item?.dataPoints == null || item?.dataPoints === '') ? 'N/A' : item?.dataPoints,\r\n workflowStage: item?.workflowStage,\r\n workflowStageDescription: item?.workflowStageDescription,\r\n workflowStatus: (item?.workflowStageDescription == null || item?.workflowStageDescription === '') ? 'N/A' : item?.workflowStageDescription,\r\n closureReasonDesc: (item?.closureReasonDesc == null || item?.closureReasonDesc === '') ? 'N/A' : item?.closureReasonDesc,\r\n workflowUsername: (item?.workflowUsername == null || item?.workflowUsername === '') ? 'N/A' : item?.workflowUsername,\r\n additionalData: item.additionalData ?? null\r\n };\r\n data.push(datum);\r\n });\r\n const pageCount = Math.ceil(itemCount / gridCriteria.pageSize);\r\n this.setState({ loading: false, data, gridCriteria: { ...gridCriteria, itemCount, pageCount, totalLimit: gridTotalLimit } });\r\n }\r\n };\r\n\r\n generateRequest = () => {\r\n const { searchCriteria, gridCriteria } = this.state;\r\n let sortDirection;\r\n if (gridCriteria.sortBy != null && gridCriteria.sortBy[0]) {\r\n if (gridCriteria.sortBy[0]?.desc != null) {\r\n sortDirection = gridCriteria.sortBy[0]?.desc ? 'desc' : 'asc';\r\n }\r\n } else {\r\n sortDirection = null;\r\n }\r\n return ({\r\n pageNumber: gridCriteria.pageIndex + 1,\r\n pageSize: gridCriteria.pageSize,\r\n totalLimit: gridCriteria.totalLimit,\r\n sortByField: gridCriteria.sortBy != null ? gridCriteria.sortBy[0]?.id : null,\r\n sortDirection,\r\n filterList: gridCriteria.filters,\r\n raisedWithin: searchCriteria.raisedWithin === '' ? null : searchCriteria.raisedWithin,\r\n legalEntity: !searchCriteria.legalEntity ? null : (searchCriteria.legalEntity?.id || searchCriteria.legalEntity),\r\n legalEntitySelected: searchCriteria.legalEntitySelected,\r\n accountNumber: !searchCriteria.accountNumber ? null : (searchCriteria.accountNumber?.id || searchCriteria.accountNumber),\r\n accountNumberSelected: searchCriteria.accountNumberSelected,\r\n customer: !searchCriteria.customer ? null : (searchCriteria.customer?.id || searchCriteria.customer),\r\n customerSelected: searchCriteria.customerSelected\r\n });\r\n };\r\n\r\n onSearchCriteriaChanged = (newSearchCriteria) => {\r\n const { searchCriteria, gridCriteria } = this.state;\r\n\r\n this.setState({ searchCriteria: { ...searchCriteria, ...newSearchCriteria }, gridCriteria: { ...gridCriteria, pageIndex: 0 } }, (() => {\r\n this.fetchData();\r\n }));\r\n };\r\n\r\n onGridCriteriaChanged = (newGridCriteria) => {\r\n this.setState({ gridCriteria: { ...newGridCriteria } }, () => this.fetchData());\r\n };\r\n\r\n onRowSelectionChanged = (rowSelections) => {\r\n const { gridCriteria } = this.state;\r\n this.setState({ gridCriteria: { ...gridCriteria, ...rowSelections } });\r\n };\r\n\r\n sendDataRequest = () => {\r\n const { dispatch } = this.props;\r\n const { searchCriteria, gridCriteria } = this.state;\r\n const request = this.generateRequest();\r\n\r\n if (searchCriteria.workflowType === 'open' || searchCriteria.workflowType === 'complete') {\r\n request.resolved = searchCriteria.workflowType === 'complete';\r\n dispatch(getCicAlertsByObject(request));\r\n } else {\r\n let sortDirection;\r\n if (gridCriteria.sortBy != null && gridCriteria.sortBy[0]) {\r\n if (gridCriteria.sortBy[0]?.desc != null) {\r\n sortDirection = gridCriteria.sortBy[0]?.desc ? 'desc' : 'asc';\r\n }\r\n } else {\r\n sortDirection = null;\r\n }\r\n\r\n const workflowRequest = {\r\n workflow: 'cic',\r\n pageNumber: request.pageNumber,\r\n pageSize: gridCriteria.pageSize,\r\n totalLimit: gridCriteria.totalLimit,\r\n sortByField: gridCriteria.sortBy != null ? gridCriteria.sortBy[0]?.id : null,\r\n sortDirection,\r\n stage: searchCriteria.workflowType,\r\n raisedWithin: searchCriteria.raisedWithin,\r\n legalEntity: !searchCriteria.legalEntity ? null : (searchCriteria.legalEntity?.id || searchCriteria.legalEntity),\r\n legalEntitySelected: searchCriteria.legalEntitySelected,\r\n accountNumber: !searchCriteria.accountNumber ? null : (searchCriteria.accountNumber?.id || searchCriteria.accountNumber),\r\n accountNumberSelected: searchCriteria.accountNumberSelected,\r\n customer: !searchCriteria.customer ? null : (searchCriteria.customer?.id || searchCriteria.customer),\r\n customerSelected: searchCriteria.customerSelected,\r\n filterList: gridCriteria.filters\r\n };\r\n\r\n switch (searchCriteria.workflowType) {\r\n case 'myalerts':\r\n dispatch(getUserCicAlertsByObject(workflowRequest));\r\n break;\r\n case 'initialreview':\r\n workflowRequest.stage = 'pendingreview';\r\n dispatch(getWorkflowCicAlertsByObject(workflowRequest));\r\n break;\r\n case 'expertreview':\r\n workflowRequest.stage = 'pendingexpertreview';\r\n dispatch(getWorkflowCicAlertsByObject(workflowRequest));\r\n break;\r\n case 'complete':\r\n workflowRequest.stage = 'complete';\r\n dispatch(getWorkflowCicAlertsByObject(workflowRequest));\r\n break;\r\n default:\r\n console.error(`Default case hit: ${ searchCriteria.workflowType }`);\r\n }\r\n }\r\n };\r\n\r\n fetchData = () => {\r\n const { gridCriteria, loading } = this.state;\r\n\r\n if (loading) {\r\n return;\r\n }\r\n\r\n clearTimeout(this.timer);\r\n if (this.isSearchCriteriaValid) {\r\n this.setState({ loading: true, gridCriteria: { ...gridCriteria, selectedItems: [] } }, () => {\r\n this.timer = setTimeout(() => {\r\n this.sendDataRequest();\r\n }, WAIT_INTERVAL);\r\n });\r\n }\r\n };\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n getChildRowLayout = childData => ( {\r\n childData.accounts != null &&
    \r\n { childData.accounts.map(a => \r\n { a.item2 }
    ) }
    \r\n }\r\n { (!childData.accounts || childData.accounts.length === 0) &&
    \r\n N/A
    } { childData.legalEntities != null\r\n &&
    \r\n { childData.legalEntities.map(l => { l }
    ) }
    }\r\n { (!childData.legalEntities || childData.legalEntities.length === 0) &&
    \r\n N/A
    }
    );\r\n\r\n onWorkflowTypeChanged = (workflowType) => {\r\n const { permissions } = this.props;\r\n const { gridCriteria, searchCriteria } = this.state;\r\n\r\n if (workflowType === searchCriteria.workflowType) {\r\n return;\r\n }\r\n\r\n const columnDefs = CicColumnDefs(permissions, workflowType);\r\n this.setState({ loading: true, searchCriteria: { ...searchCriteria, workflowType }, gridCriteria: { ...gridCriteria, columnDefs, filters: [], sortBy: [] } }, () => this.sendDataRequest());\r\n };\r\n\r\n closeCicAlertModal = () => {\r\n const { dispatch } = this.props;\r\n this.sendDataRequest();\r\n dispatch(hideCicAlertModal(false));\r\n this.updateNotificationHeader();\r\n };\r\n\r\n getActions = () => {\r\n const { permissions } = this.props;\r\n\r\n return CicActions({\r\n permissions,\r\n takeAlert: cicAlert => this.onTakeAlert(cicAlert)\r\n });\r\n };\r\n\r\n openAssignCicToUserModal = (multipleItems) => {\r\n const { dispatch } = this.props;\r\n const selectedItemIds = Array.from(multipleItems, x => x.itemId);\r\n dispatch(showAssignCicToUserModal(selectedItemIds));\r\n };\r\n\r\n getItemsList = () => {\r\n const { cicAlertList } = this.props;\r\n return cicAlertList;\r\n };\r\n\r\n closeAssignCicToUserModal = () => {\r\n const { dispatch } = this.props;\r\n dispatch(hideAssignCicToUserModal());\r\n };\r\n\r\n processAssignToUsers = (_, user) => {\r\n const { dispatch } = this.props;\r\n const { gridCriteria } = this.state;\r\n const selectedItemIds = Array.from(gridCriteria.selectedItems, x => x.itemId);\r\n dispatch(assignCicsToUserWithCallback(selectedItemIds, user, () => this.fetchData()));\r\n };\r\n\r\n onRowExpandedStateChanged = (row, expand) => {\r\n const { dispatch } = this.props;\r\n\r\n if (expand) {\r\n dispatch(getCicAlertDetails(row.original.itemId, parseInt(row.id, 10)));\r\n } else {\r\n dispatch(clearCicAlertDetails(row.original.itemId, parseInt(row.id, 10)));\r\n }\r\n };\r\n\r\n showChangeOwnershipModal = (cicAlert) => {\r\n const { permissions } = this.props;\r\n\r\n if (cicAlert != null && cicAlert.workflowStageDescription != null && cicAlert.workflowUsername != null) {\r\n const wfStatus = cicAlert.workflowStageDescription.toLowerCase();\r\n const hasHigherPermission = AccessControl.hasPermission(permissions, [ActivityPerms.monitoringResolver]);\r\n\r\n if (wfStatus.includes('initial')) {\r\n return AccessControl.hasPermission(permissions, [ActivityPerms.monitoringResolver]) && hasHigherPermission;\r\n }\r\n\r\n if (wfStatus.includes('expert')) {\r\n return AccessControl.hasPermission(permissions, [ActivityPerms.monitoringExpertReviewer]);\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n onTakeAlert = (cicAlert) => {\r\n const { dispatch, permissions } = this.props;\r\n const wfStatus = cicAlert.workflowStageDescription.toLowerCase();\r\n if (cicAlert && cicAlert.itemId != null) {\r\n if (Monitoring.isUserOwner(cicAlert.workflowUsername)) {\r\n dispatch(showCicAlertModal(cicAlert.itemId));\r\n } else if (wfStatus.includes('initial') && AccessControl.hasPermission(permissions, [ActivityPerms.fwfInitialReviewer])) {\r\n if (this.showChangeOwnershipModal(cicAlert)) {\r\n dispatch(showOwnershipModal({\r\n id: cicAlert.itemId,\r\n currentUser: cicAlert.workflowUsername,\r\n currentUserFullName: cicAlert.workflowUserFullName\r\n }));\r\n }\r\n } else if (wfStatus.includes('expert') && AccessControl.hasPermission(permissions, [ActivityPerms.fwfExpertReviewer])) {\r\n if (this.showChangeOwnershipModal(cicAlert)) {\r\n dispatch(showOwnershipModal({\r\n id: cicAlert.itemId,\r\n currentUser: cicAlert.workflowUsername,\r\n currentUserFullName: cicAlert.workflowUserFullName\r\n }));\r\n }\r\n } else if (wfStatus.includes('closed') && AccessControl.hasPermission(permissions, [ActivityPerms.monitoringResolver])) {\r\n dispatch(showCicAlertModal(cicAlert.itemId));\r\n } else {\r\n dispatch(showCicAlertModal(cicAlert.itemId));\r\n }\r\n }\r\n };\r\n\r\n updateNotificationHeader() {\r\n const { dispatch } = this.props;\r\n dispatch(getCicAlertCounts());\r\n }\r\n\r\n reAssignItem() {\r\n const { dispatch, changeOwnershipItem } = this.props;\r\n if (changeOwnershipItem != null && changeOwnershipItem.id != null) {\r\n dispatch(takeCicAlert(changeOwnershipItem.id));\r\n dispatch(hideOwnershipModal());\r\n dispatch(showCicAlertModal(changeOwnershipItem.id));\r\n }\r\n }\r\n\r\n continueFromOwnershipModal() {\r\n const { dispatch, changeOwnershipItem } = this.props;\r\n dispatch(hideOwnershipModal());\r\n dispatch(showCicAlertModal(changeOwnershipItem.id));\r\n }\r\n\r\n closeFromOwnershipModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideOwnershipModal());\r\n }\r\n\r\n render() {\r\n const {\r\n data,\r\n initialLoaded,\r\n loading,\r\n searchCriteria,\r\n gridCriteria,\r\n selectionEnabled\r\n } = this.state;\r\n const {\r\n isCicAlertModalShown,\r\n cicAlertId,\r\n isOwnershipModalShown,\r\n changeOwnershipItem,\r\n isAssignCicToUserModalShown\r\n } = this.props;\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n this.onWorkflowTypeChanged('myalerts') }\r\n >Assigned to Me\r\n \r\n this.onWorkflowTypeChanged('initialreview') }\r\n >Pending Initial Review\r\n \r\n \r\n this.onWorkflowTypeChanged('expertreview') }\r\n >Pending Expert Review\r\n \r\n \r\n this.onWorkflowTypeChanged('complete') }\r\n >Closed\r\n \r\n \r\n this.onWorkflowTypeChanged('open') }\r\n >Open Alerts\r\n \r\n { selectionEnabled && }\r\n
    \r\n this.getChildRowLayout(childData) }\r\n actions={ this.getActions() }\r\n enableSelection\r\n loading={ loading }\r\n initialLoaded={ initialLoaded }\r\n className={ selectionEnabled ? 'workflow' : '' }\r\n />\r\n
    \r\n
    \r\n { isCicAlertModalShown && this.closeCicAlertModal() }\r\n /> }\r\n { changeOwnershipItem != null && this.reAssignItem() }\r\n onContinueWithoutAssign={ () => this.continueFromOwnershipModal() }\r\n onCancel={ () => this.closeFromOwnershipModal() }\r\n workflowRecord={ changeOwnershipItem }\r\n /> }\r\n this.closeAssignCicToUserModal() }\r\n onConfirmAssign={ (cicAlertList, user) => this.processAssignToUsers(cicAlertList, user) }\r\n getItemsList={ () => this.getItemsList() }\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n permissions,\r\n settings\r\n },\r\n forms: {\r\n gridTotalLimit,\r\n },\r\n monitoring: {\r\n cicAlertsList,\r\n cicAlertsListCount,\r\n searchCriteria,\r\n gridCriteria,\r\n isCicAlertModalShown,\r\n cicAlertId,\r\n refreshPage,\r\n isAssignCicToUserModalShown,\r\n cicAlertList\r\n },\r\n workflow: {\r\n isFetchingQueues,\r\n isGettingAccounts,\r\n isGettingCustomers,\r\n isOwnershipModalShown,\r\n changeOwnershipItem\r\n }\r\n } = state;\r\n return {\r\n permissions,\r\n settings,\r\n gridTotalLimit,\r\n cicAlertsList,\r\n cicAlertsListCount,\r\n isFetchingQueues,\r\n isGettingAccounts,\r\n isGettingCustomers,\r\n isCicAlertModalShown,\r\n cicAlertId,\r\n refreshPage,\r\n isOwnershipModalShown,\r\n changeOwnershipItem,\r\n isAssignCicToUserModalShown,\r\n cicAlertList,\r\n initSearchCriteria: searchCriteria,\r\n initGridCriteria: gridCriteria\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withContainerErrorBoundary(Monitoring, 'Monitoring'));\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport { GridHelper } from '../GridHelper';\r\n\r\nexport default class PagingButtons extends Component {\r\n static propTypes = {\r\n pageNumber: PropTypes.number.isRequired,\r\n pageSize: PropTypes.number.isRequired,\r\n totalItems: PropTypes.number.isRequired,\r\n changePageCallback: PropTypes.func.isRequired\r\n };\r\n\r\n static defaultProps = {\r\n /* pageNumber: 1,\r\n pageSize: 50,\r\n totalItems: 0 */\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n pageNumber: props.pageNumber,\r\n currentPageSize: props.pageSize\r\n };\r\n }\r\n\r\n static getDerivedStateFromProps(props, state) {\r\n if (props.pageNumber !== state.pageNumber) {\r\n return {\r\n pageNumber: props.pageNumber\r\n };\r\n }\r\n return null;\r\n }\r\n\r\n shouldComponentUpdate(nextProps, nextState) {\r\n const {\r\n pageSize,\r\n totalItems,\r\n } = this.props;\r\n const {\r\n pageNumber,\r\n currentPageSize\r\n } = this.state;\r\n return !(\r\n pageSize === nextProps.pageSize\r\n && totalItems === nextProps.totalItems\r\n && pageNumber === nextProps.pageNumber\r\n && pageNumber === nextState.pageNumber\r\n && currentPageSize === nextState.currentPageSize\r\n );\r\n }\r\n\r\n updatePageSize(evt) {\r\n const { changePageCallback, totalItems } = this.props;\r\n let { pageNumber } = this.state;\r\n\r\n const pageSize = Number(evt.target.value);\r\n\r\n if (pageNumber > 1) {\r\n if (((pageNumber - 1) * pageSize) > totalItems) {\r\n pageNumber = parseInt(totalItems / pageSize, 10) + 1;\r\n }\r\n }\r\n\r\n this.setState({ currentPageSize: pageSize, pageNumber });\r\n changePageCallback(\r\n {\r\n number: pageNumber,\r\n size: pageSize\r\n }\r\n );\r\n }\r\n\r\n isPagingButtonEnabled(navigation) {\r\n const {\r\n totalItems,\r\n pageSize\r\n } = this.props;\r\n const { pageNumber } = this.state;\r\n\r\n if (\r\n totalItems === 0\r\n || pageSize === 0\r\n ) {\r\n return false;\r\n }\r\n\r\n const remainder = totalItems % pageSize;\r\n const pageCount = Math.trunc(totalItems / pageSize) + ((remainder > 0) ? 1 : 0);\r\n\r\n const nav = GridHelper.pageNavigationSteps;\r\n\r\n switch (navigation) {\r\n case nav.first:\r\n return pageNumber > 1;\r\n case nav.last:\r\n return pageNumber !== 0 && pageNumber !== pageCount;\r\n case nav.next:\r\n return pageNumber >= 1 && pageNumber < pageCount;\r\n case nav.previous:\r\n return pageNumber > 1 && pageNumber <= pageCount;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n changePage(navigation) {\r\n const {\r\n totalItems,\r\n changePageCallback\r\n } = this.props;\r\n const {\r\n pageNumber,\r\n currentPageSize\r\n } = this.state;\r\n\r\n if (\r\n totalItems === 0\r\n || currentPageSize === 0\r\n || pageNumber === 0\r\n ) {\r\n return;\r\n }\r\n\r\n const nav = GridHelper.pageNavigationSteps;\r\n\r\n const remainder = totalItems % currentPageSize;\r\n const pageCount = Math.trunc(totalItems / currentPageSize) + ((remainder > 0) ? 1 : 0);\r\n let newPageNumber = pageNumber;\r\n\r\n switch (navigation) {\r\n case nav.first:\r\n newPageNumber = 1;\r\n break;\r\n case nav.last:\r\n newPageNumber = pageCount;\r\n break;\r\n case nav.next:\r\n newPageNumber = pageNumber + 1;\r\n break;\r\n case nav.previous:\r\n newPageNumber = pageNumber - 1;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (\r\n changePageCallback\r\n && changePageCallback(\r\n {\r\n number: newPageNumber,\r\n size: currentPageSize\r\n }\r\n )\r\n ) {\r\n this.setState({ pageNumber: newPageNumber });\r\n }\r\n }\r\n\r\n nextPage() {\r\n this.changePage(GridHelper.pageNavigationSteps.next);\r\n }\r\n\r\n lastPage() {\r\n this.changePage(GridHelper.pageNavigationSteps.last);\r\n }\r\n\r\n firstPage() {\r\n this.changePage(GridHelper.pageNavigationSteps.first);\r\n }\r\n\r\n previousPage() {\r\n this.changePage(GridHelper.pageNavigationSteps.previous);\r\n }\r\n\r\n render() {\r\n const {\r\n pageSize,\r\n totalItems\r\n } = this.props;\r\n\r\n const {\r\n currentPageSize\r\n } = this.state;\r\n\r\n let {\r\n pageNumber\r\n } = this.state;\r\n\r\n const nav = GridHelper.pageNavigationSteps;\r\n\r\n const remainder = totalItems % pageSize;\r\n const pageCount = Math.trunc(totalItems / pageSize) + ((remainder > 0) ? 1 : 0);\r\n\r\n let pageFirstRowNum = 0;\r\n let pageLastRowNum = 0;\r\n\r\n if (totalItems !== 0) {\r\n if (\r\n pageNumber === 0\r\n && totalItems > 0\r\n ) {\r\n pageNumber = 1;\r\n }\r\n pageFirstRowNum = (pageNumber !== 0) ? (pageNumber * pageSize) - (pageSize - 1) : 0;\r\n pageLastRowNum = pageCount !== pageNumber ? pageNumber * pageSize : totalItems;\r\n } else {\r\n pageNumber = 0;\r\n }\r\n\r\n const firstEnabled = this.isPagingButtonEnabled(nav.first);\r\n const lastEnabled = this.isPagingButtonEnabled(nav.last);\r\n const nextEnabled = this.isPagingButtonEnabled(nav.next);\r\n const previousEnabled = this.isPagingButtonEnabled(nav.previous);\r\n\r\n return (\r\n
    \r\n \r\n { pageFirstRowNum } to { pageLastRowNum } of { totalItems }\r\n \r\n \r\n \r\n \r\n Page { pageNumber } of { pageCount }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AccessControl from 'components/AccessControl';\r\n\r\nconst buildAccountText = (accountNumber, accountName) => {\r\n if (accountName && accountNumber) {\r\n return `${ accountNumber } - ${ accountName }`;\r\n }\r\n if (accountNumber) {\r\n return accountNumber;\r\n }\r\n if (accountName) {\r\n return accountName;\r\n }\r\n return 'N/A';\r\n};\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const AccountLinkCellRenderer = ({\r\n data: form,\r\n context\r\n}) => {\r\n const { permissions } = context;\r\n const link = form && `/account/${ form.accountId }`;\r\n const defaultDisplayData = buildAccountText(form.accountNumber, form.accountName);\r\n return (\r\n
    \r\n { form && form.accountId > 0 && AccessControl.hasPermission(permissions, [ActivityPerms.accountEdit, ActivityPerms.accountPageView]) && \r\n { defaultDisplayData }\r\n }\r\n { form.customerDbId > 0 && !AccessControl.hasPermission(permissions, [ActivityPerms.accountEdit, ActivityPerms.accountPageView]) && \r\n { defaultDisplayData }\r\n }\r\n { (!form || !form.accountId) && N/A }\r\n
    \r\n );\r\n};\r\n\r\nAccountLinkCellRenderer.propTypes = {\r\n data: PropTypes.shape(),\r\n context: PropTypes.shape({\r\n permissions: PropTypes.arrayOf(PropTypes.string)\r\n })\r\n};\r\n\r\nAccountLinkCellRenderer.defaultProps = {\r\n context: {},\r\n data: {}\r\n};\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Route } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { getBatchFiles } from 'actions';\r\n\r\nclass BatchFilesRedirectButton extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n batchId: PropTypes.oneOfType([\r\n PropTypes.number,\r\n PropTypes.string\r\n ]).isRequired,\r\n content: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node\r\n ]).isRequired,\r\n title: PropTypes.string,\r\n className: PropTypes.string,\r\n disabled: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n title: '',\r\n className: '',\r\n disabled: false\r\n };\r\n\r\n onClick(history) {\r\n const { batchId, dispatch } = this.props;\r\n dispatch(getBatchFiles(batchId, 1, 50, '', '', ''));\r\n history.push(`/batches/${ batchId }/files`);\r\n }\r\n\r\n render() {\r\n const { content, className, title, disabled } = this.props;\r\n return (\r\n this.onClick(history) }\r\n title={ title }\r\n disabled={ disabled }\r\n >\r\n { content }\r\n \r\n ) }\r\n />;\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport const BatchFilesButton = connect(\r\n null,\r\n mapDispatchToProps,\r\n null,\r\n { forwardRef: true }\r\n)(BatchFilesRedirectButton);\r\n\r\nexport default BatchFilesButton;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Route } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\n\r\nclass BatchFileFormsRedirectButton extends Component {\r\n static propTypes = {\r\n batchId: PropTypes.oneOfType([\r\n PropTypes.number,\r\n PropTypes.string\r\n ]).isRequired,\r\n batchFileId: PropTypes.oneOfType([\r\n PropTypes.number,\r\n PropTypes.string\r\n ]),\r\n content: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node\r\n ]).isRequired,\r\n title: PropTypes.string,\r\n className: PropTypes.string,\r\n disabled: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n title: '',\r\n className: '',\r\n disabled: false,\r\n batchFileId: null\r\n };\r\n\r\n onClick(history) {\r\n const { batchId, batchFileId } = this.props;\r\n let historyPathExtension = 'forms';\r\n if (batchFileId && batchFileId > 0) {\r\n historyPathExtension = `files/${ batchFileId }`;\r\n }\r\n\r\n history.push(`/batches/${ batchId }/${ historyPathExtension }`);\r\n }\r\n\r\n render() {\r\n const { content, className, title, disabled } = this.props;\r\n return (\r\n this.onClick(history) }\r\n title={ title }\r\n disabled={ disabled }\r\n >\r\n { content }\r\n \r\n ) }\r\n />;\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport const BatchFileFormsButton = connect(\r\n null,\r\n mapDispatchToProps,\r\n null,\r\n { forwardRef: true }\r\n)(BatchFileFormsRedirectButton);\r\n\r\nexport default BatchFileFormsButton;\r\n","const BatchStatus = {\r\n Unknown: -1,\r\n New: 0,\r\n FilesPrepared: 1,\r\n ReceivedByGateway: 2,\r\n FilesQueued: 3,\r\n Processed: 4,\r\n Failed: 5,\r\n FailedInvalidCoverSheet: 6,\r\n FailedInvalidClientInCoverSheet: 7,\r\n NoFormsFound: 8,\r\n Completed: 9\r\n};\r\n\r\nexport default BatchStatus;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport BatchFilesButton from 'components/Common/Buttons/BatchFilesButton';\r\nimport BatchFileFormsButton from 'components/Common/Buttons/BatchFileFormsButton';\r\nimport BatchStatus from 'common/Batches/BatchStatus';\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const BatchActionsCellRenderer = ({\r\n value: id,\r\n data: batch,\r\n context: {\r\n settings,\r\n permissions,\r\n deleteBatchCallback,\r\n completeBatchCallback\r\n }\r\n}) => (\r\n
    \r\n { batch.id && batch.numberOfFiles != null && batch.numberOfFiles > 0 && }\r\n className=\"btn btn-sm\"\r\n title=\"View Files\"\r\n /> }\r\n\r\n { batch.id && batch.numberOfForms != null && batch.numberOfForms > 0 && }\r\n className=\"btn btn-sm\"\r\n title=\"View All Forms\"\r\n /> }\r\n\r\n { settings && batch.id && batch.id !== '' && batch.numberOfUnassignedForms === 0\r\n && AccessControl.hasPermission(permissions, [ActivityPerms.fwfBatchReviewer])\r\n && batch.status === BatchStatus.Processed\r\n && completeBatchCallback(batch) }\r\n type=\"button\"\r\n title=\"Complete Batch\"\r\n >\r\n \r\n }\r\n\r\n { settings && batch.id && batch.id !== '' && batch.numberOfUnassignedForms > 0\r\n && AccessControl.hasPermission(permissions, [ActivityPerms.fwfBatchReviewer])\r\n && batch.status === BatchStatus.Processed\r\n && }\r\n className=\"btn btn-sm\"\r\n title={ `Unable to Complete - ${ batch.numberOfUnassignedForms } Unassigned forms` }\r\n /> }\r\n\r\n { AccessControl.hasPermission(permissions, [ActivityPerms.fwfBatchReviewer])\r\n && batch.status >= BatchStatus.Processed && batch.status !== BatchStatus.Completed\r\n && deleteBatchCallback(batch) }\r\n type=\"button\"\r\n title=\"Delete Batch\"\r\n >\r\n \r\n }\r\n
    \r\n);\r\n\r\nBatchActionsCellRenderer.propTypes = {\r\n value: PropTypes.oneOfType([\r\n PropTypes.number,\r\n PropTypes.string\r\n ]).isRequired,\r\n data: PropTypes.shape({\r\n id: PropTypes.number,\r\n batchType: PropTypes.string,\r\n isOnlineForm: PropTypes.bool,\r\n numberOfFiles: PropTypes.number,\r\n numberOfForms: PropTypes.number,\r\n numberOfUnassignedForms: PropTypes.number,\r\n status: PropTypes.number\r\n }).isRequired,\r\n context: PropTypes.shape({\r\n settings: PropTypes.shape(),\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n editLegalEntityCallback: PropTypes.func,\r\n completeBatchCallback: PropTypes.func,\r\n editCustomerLegalEntitiesCallback: PropTypes.func,\r\n deleteBatchCallback: PropTypes.func\r\n })\r\n};\r\n\r\nBatchActionsCellRenderer.defaultProps = {\r\n context: {}\r\n};\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport BatchFileFormsButton from 'components/Common/Buttons/BatchFileFormsButton';\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const BatchFileActionsCellRenderer = ({\r\n value: id,\r\n data: batchFile,\r\n context: {\r\n settings,\r\n permissions,\r\n editCustomerLegalEntitiesCallback,\r\n downloadOriginalBatchFileCallback,\r\n deleteFileCallback\r\n }\r\n}) => (\r\n
    \r\n { batchFile.id && batchFile.numberOfForms != null && batchFile.numberOfForms > 0 && }\r\n className=\"btn btn-sm\"\r\n title=\"View Forms\"\r\n /> }\r\n { batchFile && AccessControl.hasPermission(permissions, [ActivityPerms.scannedDownload])\r\n && downloadOriginalBatchFileCallback(batchFile) }\r\n title=\"Download Original Batch File\"\r\n >\r\n \r\n }\r\n { AccessControl.hasPermission(permissions, [ActivityPerms.fwfBatchReviewer]) && deleteFileCallback(batchFile.id) }\r\n type=\"button\"\r\n title=\"Delete File\"\r\n >\r\n \r\n }\r\n { settings && batchFile.id && batchFile.id !== '' && batchFile.customers != null && batchFile.customers.length > 0\r\n && AccessControl.hasPermission(permissions, [ActivityPerms.fwfBatchReviewer])\r\n && editCustomerLegalEntitiesCallback(batchFile.customers) }\r\n type=\"button\"\r\n title=\"Edit Legal Entity\"\r\n >\r\n \r\n }\r\n
    \r\n);\r\n\r\nBatchFileActionsCellRenderer.propTypes = {\r\n value: PropTypes.oneOfType([\r\n PropTypes.number,\r\n PropTypes.string\r\n ]).isRequired,\r\n data: PropTypes.shape({\r\n id: PropTypes.number,\r\n batchId: PropTypes.number,\r\n batchType: PropTypes.string,\r\n isOnlineForm: PropTypes.bool,\r\n numberOfForms: PropTypes.number,\r\n customers: PropTypes.arrayOf(PropTypes.shape()),\r\n }).isRequired,\r\n context: PropTypes.shape({\r\n settings: PropTypes.shape(),\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n editLegalEntityCallback: PropTypes.func,\r\n downloadOriginalBatchFileCallback: PropTypes.func,\r\n editCustomerLegalEntitiesCallback: PropTypes.func,\r\n deleteFileCallback: PropTypes.func,\r\n })\r\n};\r\n\r\nBatchFileActionsCellRenderer.defaultProps = {\r\n context: {}\r\n};\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const BatchFormActionsCellRenderer = ({\r\n value: id,\r\n data: batchForm,\r\n context: {\r\n settings,\r\n permissions,\r\n getOriginalPdfFileCallback,\r\n editFormAssociationsCallback,\r\n deleteFormCallback,\r\n batchItem\r\n }\r\n}) => (\r\n
    \r\n {AccessControl.hasPermission(permissions, [ActivityPerms.scannedView, ActivityPerms.scannedEdit, ActivityPerms.scannedValidate])\r\n && batchForm.hasCustomerAccountLink\r\n && }\r\n { (window.navigator && typeof (window.navigator.msSaveOrOpenBlob) !== 'undefined')\r\n ? AccessControl.hasPermission(permissions, [ActivityPerms.scannedView])\r\n && getOriginalPdfFileCallback(id) }\r\n >\r\n \r\n \r\n : AccessControl.hasPermission(permissions, [ActivityPerms.scannedView])\r\n && \r\n \r\n }\r\n { AccessControl.hasPermission(permissions, [ActivityPerms.fwfBatchReviewer])\r\n && editFormAssociationsCallback(batchForm) }\r\n type=\"button\"\r\n title=\"Edit Form Associations\"\r\n >\r\n \r\n }\r\n { batchItem\r\n && batchItem.statusString !== 'Completed'\r\n && AccessControl.hasPermission(permissions, [ActivityPerms.fwfBatchReviewer])\r\n && deleteFormCallback(batchForm) }\r\n type=\"button\"\r\n title=\"Delete form\"\r\n >\r\n \r\n }\r\n
    \r\n);\r\n\r\nBatchFormActionsCellRenderer.propTypes = {\r\n value: PropTypes.oneOfType([\r\n PropTypes.number,\r\n PropTypes.string\r\n ]).isRequired,\r\n data: PropTypes.shape({\r\n formType: PropTypes.string,\r\n isOnlineForm: PropTypes.bool,\r\n hasCustomerAccountLink: PropTypes.bool,\r\n accountId: PropTypes.number\r\n }).isRequired,\r\n context: PropTypes.shape({\r\n batchItem: PropTypes.shape({\r\n statusString: PropTypes.string\r\n }),\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n editCustomerLegalEntitiesCallback: PropTypes.func,\r\n getOriginalPdfFileCallback: PropTypes.func,\r\n editFormAssociationsCallback: PropTypes.func,\r\n deleteFormCallback: PropTypes.func,\r\n settings: PropTypes.shape()\r\n })\r\n};\r\n\r\nBatchFormActionsCellRenderer.defaultProps = {\r\n context: {}\r\n};\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActiveChip from 'components/Common/ActiveChip';\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const CustomerLinkCellRenderer = ({\r\n data: form,\r\n context\r\n}) => {\r\n const { permissions, showStatusChip } = context;\r\n const link = `/customer/${ form.customerDbId }`;\r\n const defaultDisplayData = `${ form.customerId + ((form.customerName && form.customerName.length > 0) ? `-${ form.customerName }` : '') }`;\r\n return (\r\n
    \r\n { form.customerDbId > 0 && AccessControl.hasPermission(permissions, [ActivityPerms.customerEdit, ActivityPerms.customerPageView]) && \r\n { defaultDisplayData }\r\n }\r\n { form.customerDbId > 0 && !AccessControl.hasPermission(permissions, [ActivityPerms.customerEdit, ActivityPerms.customerPageView]) && \r\n { defaultDisplayData }\r\n }\r\n { form.customerDbId <= 0 && 'N/A' }\r\n { showStatusChip &&
    }\r\n
    \r\n );\r\n};\r\n\r\nCustomerLinkCellRenderer.propTypes = {\r\n data: PropTypes.shape(),\r\n context: PropTypes.shape({\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n showStatusChip: PropTypes.bool\r\n })\r\n};\r\n\r\nCustomerLinkCellRenderer.defaultProps = {\r\n context: {\r\n showStatusChip: false\r\n },\r\n data: {}\r\n};\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const GeneralCellRenderer = ({ value }) => (\r\n
    { value || 'N/A' }
    \r\n);\r\n\r\nGeneralCellRenderer.propTypes = {\r\n value: PropTypes.oneOfType([\r\n PropTypes.number,\r\n PropTypes.string\r\n ])\r\n};\r\n\r\nGeneralCellRenderer.defaultProps = {\r\n value: 'N/A'\r\n};\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const NumberCellRenderer = ({ value }) => (\r\n
    { value != null ? value : 'N/A' }
    \r\n);\r\n\r\nNumberCellRenderer.propTypes = {\r\n value: PropTypes.oneOfType([\r\n PropTypes.number,\r\n PropTypes.string\r\n ])\r\n};\r\n\r\nNumberCellRenderer.defaultProps = {\r\n value: 'N/A'\r\n};\r\n","import { GridHelper } from 'components/Grids/GridHelper';\r\nimport {\r\n GeneralCellRenderer,\r\n NumberCellRenderer,\r\n BatchActionsCellRenderer\r\n} from 'components/Grids/CellRenderers';\r\n\r\nexport default class BatchesColumnDefinitions {\r\n static createColDefs() {\r\n const columnDefs = [\r\n {\r\n headerName: 'Batch ID',\r\n field: 'batchId',\r\n cellRenderer: GeneralCellRenderer,\r\n minWidth: 70\r\n },\r\n {\r\n headerName: 'Upload Date',\r\n field: 'dateUploaded',\r\n cellRenderer: GeneralCellRenderer,\r\n valueGetter: ({\r\n data: { dateUploaded }\r\n }) => GridHelper.dateFormatter(dateUploaded, 'MMM DD, YYYY HH:mm:ss'),\r\n minWidth: 95,\r\n width: 145,\r\n filter: 'text',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'Status',\r\n field: 'statusString',\r\n cellRenderer: GeneralCellRenderer,\r\n minWidth: 100,\r\n width: 150,\r\n filter: 'text',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'Cover Sheet?',\r\n field: 'coverSheetJson',\r\n cellClass: 'center-aligned',\r\n valueGetter: ({\r\n data: { coverSheetJson }\r\n }) => (coverSheetJson ? 'Yes' : 'No'),\r\n minWidth: 120,\r\n width: 100,\r\n filter: false\r\n },\r\n {\r\n headerName: 'Number of Forms',\r\n field: 'numberOfForms',\r\n cellClass: 'center-aligned',\r\n cellRenderer: NumberCellRenderer,\r\n minWidth: 100,\r\n width: 150,\r\n filter: 'agNumberColumnFilter',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: '% Forms Valid',\r\n field: 'percentageOfValidForms',\r\n cellClass: 'center-aligned',\r\n valueGetter: ({\r\n data: { percentageOfValidForms }\r\n }) => (percentageOfValidForms !== 'NaN' ? percentageOfValidForms : 'N/A'),\r\n cellRenderer: NumberCellRenderer,\r\n minWidth: 100,\r\n width: 150,\r\n filter: 'agNumberColumnFilter',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'Number of Form Pages',\r\n field: 'numberOfFormPages',\r\n cellClass: 'center-aligned',\r\n cellRenderer: NumberCellRenderer,\r\n minWidth: 100,\r\n width: 150,\r\n filter: 'agNumberColumnFilter',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'Number of Pages',\r\n field: 'numberOfPages',\r\n cellClass: 'center-aligned',\r\n cellRenderer: NumberCellRenderer,\r\n minWidth: 100,\r\n width: 150,\r\n filter: 'agNumberColumnFilter',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'Number of Files',\r\n field: 'numberOfFiles',\r\n cellClass: 'center-aligned',\r\n cellRenderer: NumberCellRenderer,\r\n minWidth: 100,\r\n width: 150,\r\n filter: 'agNumberColumnFilter',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'View / Action',\r\n cellClass: 'center-aligned form-action-btns',\r\n field: 'id',\r\n cellRenderer: BatchActionsCellRenderer,\r\n minWidth: 70,\r\n width: 135,\r\n filter: false\r\n }\r\n ];\r\n\r\n return columnDefs;\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\nimport { GridHelper } from 'components/Grids/GridHelper';\r\nimport PagingButtons from 'components/Grids/PagingButtons';\r\nimport BatchesColDefFactory from './BatchesColumnDefinitions';\r\n\r\nconst AgGridReact = React.lazy(() => import(/* webpackChunkName: \"ag-grid-react\" */ 'ag-grid-react').then(module => ({ default: module.AgGridReact })));\r\n\r\nexport default class Batches extends Component {\r\n static propTypes = {\r\n settings: PropTypes.shape({}),\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n isLoading: PropTypes.bool,\r\n rowData: PropTypes.arrayOf(PropTypes.shape({})),\r\n totalCount: PropTypes.number.isRequired,\r\n changePageCallback: PropTypes.func.isRequired,\r\n deleteBatchCallback: PropTypes.func.isRequired,\r\n completeBatchCallback: PropTypes.func.isRequired\r\n };\r\n\r\n static defaultProps = {\r\n settings: null,\r\n permissions: null,\r\n isLoading: false,\r\n rowData: []\r\n };\r\n\r\n static isSelectionEnabled = false;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n pageNumber: 1,\r\n pageSize: 50,\r\n sortBy: '',\r\n sortDirection: '',\r\n gridApi: null,\r\n filters: null,\r\n settingFiltersOnReload: false\r\n };\r\n this.gridOptions = GridHelper.buildGridOptions({\r\n suppressRowClickSelection: true,\r\n pagination: false,\r\n rowSelection: 'multiple'\r\n });\r\n this.changePageCallback = this.changePageCallback.bind(this);\r\n this.clearReloadFlag = this.clearReloadFlag.bind(this);\r\n }\r\n\r\n shouldComponentUpdate(nextProps, nextState) {\r\n const {\r\n isLoading,\r\n rowData,\r\n totalCount,\r\n permissions\r\n } = this.props;\r\n const {\r\n gridApi,\r\n pageNumber,\r\n pageSize\r\n } = this.state;\r\n return !(\r\n isLoading === nextProps.isLoading\r\n && rowData === nextProps.rowData\r\n && totalCount === nextProps.totalCount\r\n && permissions === nextProps.permissions\r\n && gridApi === nextState.gridApi\r\n && pageNumber === nextState.pageNumber\r\n && pageSize === nextState.pageSize\r\n );\r\n }\r\n\r\n /* eslint-disable-next-line camelcase */\r\n UNSAFE_componentWillUpdate({\r\n isLoading,\r\n rowData,\r\n }, { gridApi }) {\r\n if (gridApi) {\r\n if (isLoading) {\r\n gridApi.showLoadingOverlay();\r\n } else {\r\n gridApi.setRowData(rowData);\r\n }\r\n }\r\n }\r\n\r\n componentDidUpdate(\r\n prevProps,\r\n prevState\r\n ) {\r\n const { permissions } = this.props;\r\n const {\r\n gridApi,\r\n sortBy,\r\n sortDirection\r\n } = this.state;\r\n\r\n if (this.gridOptions && sortBy && sortDirection) {\r\n const { columnApi } = this.gridOptions;\r\n if (columnApi && columnApi.getColumn(sortBy)) {\r\n columnApi.getColumn(sortBy).setSort(sortDirection);\r\n }\r\n }\r\n if (prevProps.permissions !== permissions && gridApi) {\r\n const params = {\r\n force: true\r\n };\r\n gridApi.refreshCells(params);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('resize', this.setGridSizeToFit.bind(this));\r\n }\r\n\r\n setGridSizeToFit() {\r\n const { gridApi } = this.state;\r\n\r\n if (gridApi) {\r\n GridHelper.sizeColumnsToFit(gridApi);\r\n GridHelper.resetRowHeights(gridApi);\r\n }\r\n }\r\n\r\n /* eslint-disable react/no-unused-class-component-methods */\r\n setSelectionVisibility(isVisible) {\r\n const { gridApi } = this.state;\r\n\r\n if (gridApi) {\r\n this.gridOptions.columnApi.setColumnVisible('checkbox', isVisible);\r\n if (!isVisible) {\r\n gridApi.deselectAll();\r\n }\r\n this.setGridSizeToFit();\r\n }\r\n\r\n this.isSelectionEnabled = isVisible;\r\n }\r\n\r\n getSortModel() {\r\n const { gridApi } = this.state;\r\n return gridApi ? this.gridOptions.columnApi.getColumnState().find(s => s.sort != null) : null;\r\n }\r\n\r\n getFilterModel() {\r\n const { gridApi } = this.state;\r\n return gridApi ? gridApi.getFilterModel() : null;\r\n }\r\n\r\n clearReloadFlag = () => {\r\n clearInterval(this.reloadTimer);\r\n this.reloadTimer = null;\r\n this.setState({ settingFiltersOnReload: false });\r\n };\r\n\r\n changePageCallback = (paging) => {\r\n const { changePageCallback } = this.props;\r\n\r\n if (paging && changePageCallback && changePageCallback(paging)) {\r\n this.setState({ pageNumber: paging.number, pageSize: paging.size });\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n resetPageNumber(pageNumber) {\r\n if (pageNumber) {\r\n this.setState({ pageNumber });\r\n this\r\n .pagingButtons\r\n .resetPageNumber(pageNumber);\r\n }\r\n }\r\n\r\n resizeRowHeights() {\r\n const { gridApi } = this.state;\r\n\r\n if (gridApi) {\r\n GridHelper.resetRowHeights(gridApi);\r\n }\r\n }\r\n\r\n /* eslint-enable react/no-unused-class-component-methods */\r\n\r\n gridDidMount(gridApi) {\r\n window.addEventListener('resize', this.setGridSizeToFit.bind(this));\r\n this.setState({ gridApi });\r\n }\r\n\r\n checkOverlay() {\r\n const { gridApi } = this.state;\r\n\r\n if (gridApi && gridApi.getModel()) {\r\n if (gridApi.getModel().getRowCount()) {\r\n gridApi.hideOverlay();\r\n } else {\r\n gridApi.showNoRowsOverlay();\r\n }\r\n }\r\n }\r\n\r\n gridReloaded() {\r\n const {\r\n gridApi,\r\n filters\r\n } = this.state;\r\n\r\n if (filters) {\r\n this.setState({ settingFiltersOnReload: true });\r\n gridApi.setFilterModel(filters);\r\n }\r\n if (!this.reloadTimer) {\r\n this.reloadTimer = setInterval(this.clearReloadFlag, 2000);\r\n }\r\n this.checkOverlay();\r\n setTimeout(() => this.setGridSizeToFit(), 500);\r\n }\r\n\r\n filterApplied() {\r\n const elem = document.querySelector('.ag-menu');\r\n if (elem) {\r\n elem.style.display = 'none';\r\n }\r\n this.reloadGrid();\r\n }\r\n\r\n reloadGrid() {\r\n const { changePageCallback } = this.props;\r\n const { gridApi,\r\n pageSize, settingFiltersOnReload,\r\n sortBy, sortDirection, filters } = this.state;\r\n\r\n if (settingFiltersOnReload) {\r\n return;\r\n }\r\n\r\n if (gridApi) {\r\n const sortModel = this.getSortModel();\r\n const filterModel = this.getFilterModel();\r\n let sortOrFilterChanged = false;\r\n\r\n if (\r\n sortModel\r\n && sortModel[0]\r\n && (\r\n sortModel[0].colId !== sortBy\r\n || sortModel[0].sort !== sortDirection)\r\n ) {\r\n this.setState({\r\n pageNumber: 1,\r\n sortBy: sortModel[0].colId,\r\n sortDirection: sortModel[0].sort\r\n });\r\n sortOrFilterChanged = true;\r\n } else if (sortBy !== '') {\r\n this.setState({\r\n sortBy: '',\r\n sortDirection: ''\r\n });\r\n sortOrFilterChanged = true;\r\n }\r\n\r\n if (\r\n filterModel\r\n && Object.keys(filterModel).length > 0\r\n && JSON.stringify(filterModel) !== JSON.stringify(filters)\r\n ) {\r\n this.setState({\r\n pageNumber: 1,\r\n filters: filterModel\r\n });\r\n sortOrFilterChanged = true;\r\n } else if (\r\n (\r\n filterModel\r\n && Object.keys(filterModel).length === 0\r\n )\r\n && (\r\n filters\r\n && Object.keys(filters).length !== 0\r\n )\r\n ) {\r\n this.setState({\r\n filters: filterModel\r\n });\r\n sortOrFilterChanged = true;\r\n }\r\n if (sortOrFilterChanged) {\r\n changePageCallback({ number: 1, size: pageSize });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n settings,\r\n permissions,\r\n totalCount,\r\n deleteBatchCallback,\r\n completeBatchCallback\r\n } = this.props;\r\n const {\r\n pageSize,\r\n pageNumber,\r\n } = this.state;\r\n return (\r\n
    \r\n }>\r\n this.gridDidMount(params.api) }\r\n onGridResize={ params => this.setGridSizeToFit(params.api) }\r\n onRowDataChanged={ () => this.gridReloaded() }\r\n onSortChanged={ () => this.reloadGrid() }\r\n onFilterChanged={ () => this.filterApplied() }\r\n context={ { settings, permissions, deleteBatchCallback, completeBatchCallback } }\r\n getRowHeight={ params => GridHelper.calculateRowHeight(params.node) }\r\n rowBuffer={ pageSize }\r\n />\r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\n\r\nconst DeleteBatchModal = ({\r\n isShown,\r\n isDeletingBatch,\r\n onConfirmDelete,\r\n onCancel,\r\n deleteBatchError\r\n}) => (\r\n \r\n

    \r\n Are you sure you want to permanently delete this batch?\r\n

    \r\n {\r\n deleteBatchError\r\n &&
    \r\n { deleteBatchError }\r\n
    \r\n }\r\n \r\n);\r\n\r\nDeleteBatchModal.propTypes = {\r\n isShown: PropTypes.bool,\r\n isDeletingBatch: PropTypes.bool,\r\n onConfirmDelete: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n deleteBatchError: PropTypes.string\r\n};\r\n\r\nDeleteBatchModal.defaultProps = {\r\n isShown: false,\r\n isDeletingBatch: false,\r\n deleteBatchError: null\r\n};\r\n\r\nexport default DeleteBatchModal;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router';\r\nimport {\r\n getBatches,\r\n searchBatches,\r\n showDeleteBatchModal,\r\n hideDeleteBatchModal,\r\n deleteBatch,\r\n completeBatch\r\n} from 'actions';\r\n\r\nimport Batches from 'components/Batches';\r\nimport ConfirmModal from 'components/Modals/ConfirmModal';\r\nimport DeleteBatchModal from 'components/Modals/DeleteBatchModal';\r\nimport withContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary';\r\n\r\nconst WAIT_INTERVAL = 1000;\r\nconst ENTER_KEY = 13;\r\n\r\nclass BatchesContainer extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n history: PropTypes.shape({}).isRequired,\r\n isAuthenticated: PropTypes.bool.isRequired,\r\n settings: PropTypes.shape({}),\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n isGettingBatches: PropTypes.bool.isRequired,\r\n batches: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number,\r\n dateUploaded: PropTypes.string,\r\n folder: PropTypes.string,\r\n legalEntity: PropTypes.string,\r\n businessDivision: PropTypes.string,\r\n region: PropTypes.string,\r\n statusString: PropTypes.string,\r\n numberOfPacks: PropTypes.number,\r\n numberOfForms: PropTypes.number\r\n })),\r\n batchesCount: PropTypes.number,\r\n batchesPageNumber: PropTypes.number,\r\n batchesPageSize: PropTypes.number,\r\n isDeleteBatchModalShown: PropTypes.bool,\r\n batchToDelete: PropTypes.shape(),\r\n isDeletingBatch: PropTypes.bool,\r\n deleteBatchError: PropTypes.string,\r\n location: PropTypes.shape({\r\n key: PropTypes.string\r\n }).isRequired,\r\n isCompletingBatch: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n settings: null,\r\n permissions: null,\r\n batches: null,\r\n batchesPageNumber: 1,\r\n batchesPageSize: 50,\r\n batchesCount: 0,\r\n isDeleteBatchModalShown: false,\r\n batchToDelete: null,\r\n isDeletingBatch: false,\r\n deleteBatchError: false,\r\n isCompletingBatch: false\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchQuery: null,\r\n selectionEnabled: false,\r\n currentPageNumber: props.batchesPageNumber,\r\n currentPageSize: props.batchesPageSize,\r\n isConfirmCompleteBatchModalShown: false,\r\n confirmBatchItem: null\r\n };\r\n }\r\n\r\n /* eslint-disable-next-line camelcase */\r\n UNSAFE_componentWillMount() {\r\n const {\r\n isAuthenticated,\r\n batchesPageNumber,\r\n batchesPageSize\r\n } = this.props;\r\n if (isAuthenticated) {\r\n this.fetchBatches(batchesPageNumber, batchesPageSize);\r\n }\r\n }\r\n\r\n shouldComponentUpdate({ location: { key: nextKey } }) {\r\n const {\r\n location: { key },\r\n batchesPageNumber,\r\n batchesPageSize,\r\n } = this.props;\r\n const updateComponent = key !== nextKey;\r\n if (updateComponent) {\r\n this.fetchBatches(batchesPageNumber, batchesPageSize);\r\n }\r\n return !updateComponent;\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.batchesGrid) {\r\n const { selectionEnabled } = this.state;\r\n this.batchesGrid.setSelectionVisibility(selectionEnabled);\r\n }\r\n }\r\n\r\n getBatchRefreshAction(pageNumber, pageSize) {\r\n const { searchQuery } = this.state;\r\n let sortModel;\r\n let filters;\r\n let actionMethod;\r\n\r\n if (this.batchesGrid) {\r\n sortModel = this.batchesGrid.getSortModel();\r\n filters = this.batchesGrid.getFilterModel();\r\n }\r\n\r\n const sortBy = (sortModel && sortModel[0]) ? sortModel[0].colId : '';\r\n const sortDirection = (sortModel && sortModel[0]) ? sortModel[0].sort : '';\r\n\r\n if (pageNumber === 'undefined' || !pageNumber) {\r\n pageNumber = 1;\r\n }\r\n if (pageSize === 'undefined' || !pageSize) {\r\n pageSize = 50;\r\n }\r\n\r\n let actionParameters = [pageNumber, pageSize, sortBy, sortDirection, filters];\r\n if (!searchQuery && !sortModel && !filters) {\r\n actionMethod = getBatches;\r\n } else {\r\n actionMethod = searchBatches;\r\n actionParameters = [...actionParameters, searchQuery];\r\n }\r\n\r\n return [actionMethod, actionParameters];\r\n }\r\n\r\n triggerSearch = () => {\r\n const { currentPageSize } = this.state;\r\n let { currentPageNumber } = this.state;\r\n currentPageNumber = 1;\r\n this.setState({ currentPageNumber });\r\n this.batchesGrid.resetPageNumber(currentPageNumber);\r\n\r\n this.fetchBatches(currentPageNumber, currentPageSize);\r\n };\r\n\r\n deleteBatch() {\r\n const {\r\n dispatch,\r\n batchToDelete: {\r\n id,\r\n batchId\r\n }\r\n } = this.props;\r\n const {\r\n currentPageNumber,\r\n currentPageSize\r\n } = this.state;\r\n\r\n const refreshAction = this.getBatchRefreshAction(currentPageNumber, currentPageSize);\r\n dispatch(deleteBatch(id, batchId, refreshAction));\r\n }\r\n\r\n fetchBatches(pageNumber, pageSize) {\r\n const { dispatch } = this.props;\r\n const refreshAction = this.getBatchRefreshAction(pageNumber, pageSize);\r\n if (refreshAction && refreshAction.length === 2) {\r\n dispatch(refreshAction[0](...refreshAction[1]));\r\n }\r\n }\r\n\r\n searchChanged(event) {\r\n clearTimeout(this.timer);\r\n const searchQuery = event.target.value;\r\n\r\n if (searchQuery.length > 0 && searchQuery.length < 2) {\r\n return;\r\n }\r\n\r\n this.setState({\r\n searchQuery\r\n });\r\n\r\n this.timer = setTimeout(this.triggerSearch, WAIT_INTERVAL);\r\n }\r\n\r\n searchInGrid(event) {\r\n clearTimeout(this.timer);\r\n const searchQuery = event.target.value;\r\n\r\n if (searchQuery.length > 0 && searchQuery.length < 2) {\r\n return;\r\n }\r\n\r\n this.setState({\r\n searchQuery\r\n });\r\n\r\n if (event.keyCode === ENTER_KEY) {\r\n this.triggerSearch();\r\n } else {\r\n this.timer = setTimeout(this.triggerSearch, WAIT_INTERVAL);\r\n }\r\n }\r\n\r\n changePage(paging) {\r\n this.setState({\r\n currentPageNumber: paging.number,\r\n currentPageSize: paging.size\r\n });\r\n this.fetchBatches(paging.number, paging.size);\r\n return true;\r\n }\r\n\r\n openConfirmCompleteBatchModal(confirmBatchItem) {\r\n this.setState({ isConfirmCompleteBatchModalShown: true, confirmBatchItem });\r\n }\r\n\r\n closeConfirmCompleteBatchModel() {\r\n this.setState({ isConfirmCompleteBatchModalShown: false });\r\n }\r\n\r\n completeBatch() {\r\n const { dispatch } = this.props;\r\n const { confirmBatchItem, currentPageNumber, currentPageSize } = this.state;\r\n\r\n let sortModel;\r\n let filters;\r\n if (this.batchesGrid) {\r\n sortModel = this.batchesGrid.getSortModel();\r\n filters = this.batchesGrid.getFilterModel();\r\n }\r\n const sortBy = (sortModel && sortModel[0]) ? sortModel[0].colId : '';\r\n const sortDirection = (sortModel && sortModel[0]) ? sortModel[0].sort : '';\r\n\r\n dispatch(completeBatch(confirmBatchItem.id, getBatches, [currentPageNumber, currentPageSize, sortBy, sortDirection, filters]));\r\n this.setState({ isConfirmCompleteBatchModalShown: false });\r\n }\r\n\r\n openDeleteBatchModal(item) {\r\n const { dispatch } = this.props;\r\n dispatch(showDeleteBatchModal(item));\r\n }\r\n\r\n closeDeleteBatchModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideDeleteBatchModal());\r\n }\r\n\r\n render() {\r\n const {\r\n settings,\r\n permissions,\r\n isGettingBatches,\r\n batches,\r\n batchesCount,\r\n isDeleteBatchModalShown,\r\n isDeletingBatch,\r\n isCompletingBatch,\r\n deleteBatchError,\r\n batchesPageNumber,\r\n batchesPageSize\r\n } = this.props;\r\n\r\n const {\r\n isConfirmCompleteBatchModalShown,\r\n confirmBatchItem\r\n } = this.state;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Uploaded Batches
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n this.searchInGrid(e) }\r\n onChange={ e => this.searchChanged(e) }\r\n />\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { this.batchesGrid = ref; } }\r\n isLoading={ isGettingBatches }\r\n rowData={ batches }\r\n totalCount={ batchesCount }\r\n deleteBatchCallback={ batch => this.openDeleteBatchModal(batch) }\r\n changePageCallback={ batch => this.changePage(batch) }\r\n editLegalEntityCallback={ batch => this.openEditLegalEntityModal(batch) }\r\n completeBatchCallback={ batch => this.openConfirmCompleteBatchModal(batch) }\r\n />\r\n
    \r\n
    \r\n { isDeleteBatchModalShown && this.deleteBatch() }\r\n onCancel={ () => this.closeDeleteBatchModal() }\r\n deleteBatchError={ deleteBatchError }\r\n /> }\r\n\r\n { isConfirmCompleteBatchModalShown && this.completeBatch() }\r\n onCancel={ () => this.closeConfirmCompleteBatchModel() }\r\n title=\"Confirm Complete Batch\"\r\n message={ `Are you sure you want to complete the batch ${ confirmBatchItem.batchId }?` }\r\n /> }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n if (!state.auth) {\r\n return {};\r\n }\r\n\r\n const {\r\n auth: {\r\n isAuthenticated,\r\n settings,\r\n permissions\r\n },\r\n batches: {\r\n isGettingBatches,\r\n batches,\r\n batchesCount,\r\n isEditLegalEntityModalShown,\r\n isEditingLegalEntity,\r\n batchToEdit,\r\n editLegalEntityError,\r\n batchToDelete,\r\n isDeleteBatchModalShown,\r\n isDeletingBatch,\r\n deleteBatchError,\r\n isCompletingBatch\r\n }\r\n } = state;\r\n\r\n return {\r\n isAuthenticated,\r\n settings,\r\n permissions,\r\n isGettingBatches,\r\n batches,\r\n batchesCount,\r\n isEditLegalEntityModalShown,\r\n isEditingLegalEntity,\r\n batchToEdit,\r\n editLegalEntityError,\r\n isDeleteBatchModalShown,\r\n batchToDelete,\r\n isDeletingBatch,\r\n deleteBatchError,\r\n isCompletingBatch\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withContainerErrorBoundary(BatchesContainer, 'BatchesContainer')));\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\n\r\nclass BatchBreadcrumbLinks extends Component {\r\n static propTypes = {\r\n batchId: PropTypes.oneOfType([\r\n PropTypes.number,\r\n PropTypes.string\r\n ]).isRequired,\r\n batchDisplayId: PropTypes.string.isRequired,\r\n batchFileName: PropTypes.string\r\n };\r\n\r\n static defaultProps = {\r\n batchFileName: null\r\n };\r\n\r\n getBatchFilePart() {\r\n const {\r\n batchId,\r\n batchDisplayId,\r\n batchFileName\r\n } = this.props;\r\n\r\n if (batchFileName) {\r\n return (\r\n >\r\n { batchDisplayId }\r\n >\r\n { batchFileName }\r\n );\r\n }\r\n\r\n return (\r\n >\r\n { batchDisplayId }\r\n );\r\n }\r\n\r\n render() {\r\n const {\r\n batchDisplayId\r\n } = this.props;\r\n\r\n return batchDisplayId && (\r\n
    \r\n | Uploaded Batches\r\n { this.getBatchFilePart() }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport const BatchBreadcrumbs = connect(\r\n null,\r\n mapDispatchToProps\r\n)(BatchBreadcrumbLinks);\r\n\r\nexport default BatchBreadcrumbs;\r\n","import { GridHelper } from 'components/Grids/GridHelper';\r\nimport {\r\n GeneralCellRenderer,\r\n NumberCellRenderer,\r\n BatchFileActionsCellRenderer\r\n} from 'components/Grids/CellRenderers';\r\n\r\nexport default class BatchFilesColumnDefinitions {\r\n static createColDefs() {\r\n const columnDefs = [\r\n {\r\n headerName: 'File Name',\r\n field: 'originalFileName',\r\n cellRenderer: GeneralCellRenderer,\r\n minWidth: 100,\r\n width: 200,\r\n filter: 'text',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'Created Date',\r\n field: 'createdDate',\r\n cellRenderer: GeneralCellRenderer,\r\n valueGetter: ({\r\n data: { createdDate }\r\n }) => GridHelper.dateFormatter(createdDate, 'MMM DD, YYYY HH:mm:ss'),\r\n minWidth: 95,\r\n width: 145,\r\n filter: 'text',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'Status',\r\n field: 'statuString',\r\n cellRenderer: GeneralCellRenderer,\r\n valueGetter: ({\r\n data: { status }\r\n }) => {\r\n if (status === null || status === 'undefined') {\r\n return 'N/A';\r\n }\r\n return status;\r\n },\r\n minWidth: 100,\r\n width: 150,\r\n filter: 'text',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'Number of Forms',\r\n field: 'numberOfForms',\r\n cellClass: 'center-aligned',\r\n cellRenderer: NumberCellRenderer,\r\n minWidth: 100,\r\n width: 150,\r\n filter: 'agNumberColumnFilter',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: '% Forms Valid',\r\n field: 'percentageOfValidForms',\r\n cellClass: 'center-aligned',\r\n valueGetter: ({\r\n data: { percentageOfValidForms }\r\n }) => (percentageOfValidForms !== 'NaN' ? percentageOfValidForms : 'N/A'),\r\n cellRenderer: NumberCellRenderer,\r\n minWidth: 100,\r\n width: 150,\r\n filter: 'agNumberColumnFilter',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'Number of Form Pages',\r\n field: 'numberOfFormPages',\r\n cellClass: 'center-aligned',\r\n cellRenderer: NumberCellRenderer,\r\n minWidth: 100,\r\n width: 150,\r\n filter: 'agNumberColumnFilter',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'Number of Pages',\r\n field: 'numberOfPages',\r\n cellClass: 'center-aligned',\r\n cellRenderer: NumberCellRenderer,\r\n minWidth: 100,\r\n width: 150,\r\n filter: 'agNumberColumnFilter',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'Action',\r\n cellClass: 'center-aligned form-action-btns',\r\n field: 'id',\r\n cellRenderer: BatchFileActionsCellRenderer,\r\n minWidth: 150,\r\n width: 165,\r\n filter: false\r\n }\r\n ];\r\n\r\n return columnDefs;\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\nimport { GridHelper } from 'components/Grids/GridHelper';\r\nimport PagingButtons from 'components/Grids/PagingButtons';\r\nimport BatchFilesColDefFactory from './BatchFilesColumnDefinitions';\r\n\r\nconst AgGridReact = React.lazy(() => import(/* webpackChunkName: \"ag-grid-react\" */ 'ag-grid-react').then(module => ({ default: module.AgGridReact })));\r\n\r\nexport default class BatchFiles extends Component {\r\n static propTypes = {\r\n settings: PropTypes.shape({}),\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n isLoading: PropTypes.bool,\r\n rowData: PropTypes.arrayOf(PropTypes.shape({})),\r\n totalCount: PropTypes.number.isRequired,\r\n changePageCallback: PropTypes.func.isRequired,\r\n editCustomerLegalEntitiesCallback: PropTypes.func.isRequired,\r\n downloadOriginalBatchFileCallback: PropTypes.func.isRequired,\r\n deleteFileCallback: PropTypes.func.isRequired\r\n };\r\n\r\n static defaultProps = {\r\n settings: null,\r\n permissions: null,\r\n isLoading: false,\r\n rowData: []\r\n };\r\n\r\n static isSelectionEnabled = false;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n pageNumber: 1,\r\n pageSize: 50,\r\n sortBy: '',\r\n sortDirection: '',\r\n gridApi: null,\r\n filters: null,\r\n settingFiltersOnReload: false\r\n };\r\n this.gridOptions = GridHelper.buildGridOptions({\r\n suppressRowClickSelection: true,\r\n pagination: false,\r\n rowSelection: 'multiple',\r\n masterDetail: false,\r\n });\r\n this.changePageCallback = this.changePageCallback.bind(this);\r\n this.clearReloadFlag = this.clearReloadFlag.bind(this);\r\n }\r\n\r\n shouldComponentUpdate(nextProps, nextState) {\r\n const {\r\n isLoading,\r\n rowData,\r\n totalCount,\r\n permissions\r\n } = this.props;\r\n const {\r\n gridApi,\r\n pageNumber,\r\n pageSize\r\n } = this.state;\r\n return !(\r\n isLoading === nextProps.isLoading\r\n && rowData === nextProps.rowData\r\n && totalCount === nextProps.totalCount\r\n && permissions === nextProps.permissions\r\n && gridApi === nextState.gridApi\r\n && pageNumber === nextState.pageNumber\r\n && pageSize === nextState.pageSize\r\n );\r\n }\r\n\r\n /* eslint-disable-next-line camelcase */\r\n UNSAFE_componentWillUpdate({\r\n isLoading,\r\n rowData,\r\n }, { gridApi }) {\r\n if (gridApi) {\r\n if (isLoading) {\r\n gridApi.showLoadingOverlay();\r\n } else {\r\n gridApi.setRowData(rowData);\r\n }\r\n }\r\n }\r\n\r\n componentDidUpdate(\r\n prevProps,\r\n prevState\r\n ) {\r\n const { permissions } = this.props;\r\n const {\r\n gridApi,\r\n sortBy,\r\n sortDirection\r\n } = this.state;\r\n\r\n if (this.gridOptions && sortBy && sortDirection) {\r\n const { columnApi } = this.gridOptions;\r\n if (columnApi && columnApi.getColumn(sortBy)) {\r\n columnApi.getColumn(sortBy).setSort(sortDirection);\r\n }\r\n }\r\n if (prevProps.permissions !== permissions && gridApi) {\r\n const params = {\r\n force: true\r\n };\r\n gridApi.refreshCells(params);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('resize', this.setGridSizeToFit.bind(this));\r\n }\r\n\r\n setGridSizeToFit() {\r\n const { gridApi } = this.state;\r\n\r\n if (gridApi) {\r\n GridHelper.sizeColumnsToFit(gridApi);\r\n GridHelper.resetRowHeights(gridApi);\r\n }\r\n }\r\n\r\n /* eslint-disable react/no-unused-class-component-methods */\r\n setSelectionVisibility(isVisible) {\r\n const { gridApi } = this.state;\r\n\r\n if (gridApi) {\r\n this.gridOptions.columnApi.setColumnVisible('checkbox', isVisible);\r\n if (!isVisible) {\r\n gridApi.deselectAll();\r\n }\r\n this.setGridSizeToFit();\r\n }\r\n this.isSelectionEnabled = isVisible;\r\n }\r\n\r\n getBatchFileFormData(params) {\r\n if (this.getBatchFileFormData != null) {\r\n params.successCallback({ data: [{ id: 1, lineVal: 'a' }, { id: 2, lineVal: 'b' }] });\r\n }\r\n }\r\n\r\n getSortModel() {\r\n const { gridApi } = this.state;\r\n return gridApi ? this.gridOptions.columnApi.getColumnState().find(s => s.sort != null) : null;\r\n }\r\n\r\n getFilterModel() {\r\n const { gridApi } = this.state;\r\n return gridApi ? gridApi.getFilterModel() : null;\r\n }\r\n\r\n changePageCallback = (paging) => {\r\n const { changePageCallback } = this.props;\r\n\r\n if (paging && changePageCallback && changePageCallback(paging)) {\r\n this.setState({ pageNumber: paging.number, pageSize: paging.size });\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n clearReloadFlag = () => {\r\n clearInterval(this.reloadTimer);\r\n this.reloadTimer = null;\r\n this.setState({ settingFiltersOnReload: false });\r\n };\r\n\r\n gridDidMount(gridApi) {\r\n window.addEventListener('resize', this.setGridSizeToFit.bind(this));\r\n this.setState({ gridApi });\r\n }\r\n\r\n resetPageNumber(pageNumber) {\r\n if (pageNumber) {\r\n this.setState({ pageNumber });\r\n this\r\n .pagingButtons\r\n .resetPageNumber(pageNumber);\r\n }\r\n }\r\n /* eslint-enable react/no-unused-class-component-methods */\r\n\r\n resizeRowHeights() {\r\n const { gridApi } = this.state;\r\n\r\n if (gridApi) {\r\n GridHelper.resetRowHeights(gridApi);\r\n }\r\n }\r\n\r\n checkOverlay() {\r\n const { gridApi } = this.state;\r\n\r\n if (gridApi && gridApi.getModel()) {\r\n if (gridApi.getModel().getRowCount()) {\r\n gridApi.hideOverlay();\r\n } else {\r\n gridApi.showNoRowsOverlay();\r\n }\r\n }\r\n }\r\n\r\n gridReloaded() {\r\n const {\r\n gridApi,\r\n filters\r\n } = this.state;\r\n\r\n if (filters) {\r\n this.setState({ settingFiltersOnReload: true });\r\n gridApi.setFilterModel(filters);\r\n }\r\n if (!this.reloadTimer) {\r\n this.reloadTimer = setInterval(this.clearReloadFlag, 2000);\r\n }\r\n this.setGridSizeToFit();\r\n this.checkOverlay();\r\n }\r\n\r\n filterApplied() {\r\n const elem = document.querySelector('.ag-menu');\r\n if (elem) {\r\n elem.style.display = 'none';\r\n }\r\n this.reloadGrid();\r\n }\r\n\r\n reloadGrid() {\r\n const { changePageCallback } = this.props;\r\n const { gridApi,\r\n pageSize, settingFiltersOnReload,\r\n sortBy, sortDirection, filters } = this.state;\r\n\r\n if (settingFiltersOnReload) {\r\n return;\r\n }\r\n\r\n if (gridApi) {\r\n const sortModel = this.getSortModel();\r\n const filterModel = this.getFilterModel();\r\n let sortOrFilterChanged = false;\r\n\r\n if (\r\n sortModel\r\n && sortModel[0]\r\n && (\r\n sortModel[0].colId !== sortBy\r\n || sortModel[0].sort !== sortDirection)\r\n ) {\r\n this.setState({\r\n pageNumber: 1,\r\n sortBy: sortModel[0].colId,\r\n sortDirection: sortModel[0].sort\r\n });\r\n sortOrFilterChanged = true;\r\n } else if (sortBy !== '') {\r\n this.setState({\r\n sortBy: '',\r\n sortDirection: ''\r\n });\r\n sortOrFilterChanged = true;\r\n }\r\n\r\n if (\r\n filterModel\r\n && Object.keys(filterModel).length > 0\r\n && JSON.stringify(filterModel) !== JSON.stringify(filters)\r\n ) {\r\n this.setState({\r\n pageNumber: 1,\r\n filters: filterModel\r\n });\r\n sortOrFilterChanged = true;\r\n } else if (\r\n (\r\n filterModel\r\n && Object.keys(filterModel).length === 0\r\n )\r\n && (\r\n filters\r\n && Object.keys(filters).length !== 0\r\n )\r\n ) {\r\n this.setState({\r\n filters: filterModel\r\n });\r\n sortOrFilterChanged = true;\r\n }\r\n if (sortOrFilterChanged) {\r\n changePageCallback({ number: 1, size: pageSize });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n settings,\r\n permissions,\r\n totalCount,\r\n editCustomerLegalEntitiesCallback,\r\n downloadOriginalBatchFileCallback,\r\n deleteFileCallback\r\n } = this.props;\r\n const {\r\n pageSize,\r\n pageNumber,\r\n } = this.state;\r\n return (\r\n
    \r\n }>\r\n this.gridDidMount(params.api) }\r\n onGridResize={ params => this.setGridSizeToFit(params.api) }\r\n onRowDataChanged={ () => this.gridReloaded() }\r\n onSortChanged={ () => this.reloadGrid() }\r\n onFilterChanged={ () => this.filterApplied() }\r\n context={ { settings, permissions, editCustomerLegalEntitiesCallback, downloadOriginalBatchFileCallback, deleteFileCallback } }\r\n getRowHeight={ params => GridHelper.calculateRowHeight(params.node) }\r\n onVirtualColumnsChanged={ () => this.resizeRowHeights() }\r\n onVirtualRowRemoved={ () => this.resizeRowHeights() }\r\n rowBuffer={ pageSize }\r\n />\r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { reduxForm } from 'redux-form';\r\nimport { connect } from 'react-redux';\r\nimport { toastr } from 'react-redux-toastr';\r\n\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport AutoCompleteInput from 'components/Common/Inputs/AutoCompleteInput';\r\n\r\nclass EditCustomerLegalEntitiesModalForm extends Component {\r\n static defaultProps = {\r\n isGettingCustomerLegalEntities: false,\r\n customerList: [],\r\n legalEntityList: [],\r\n clientId: null\r\n };\r\n\r\n static propTypes = {\r\n isGettingCustomerLegalEntities: PropTypes.bool,\r\n isShown: PropTypes.bool.isRequired,\r\n onConfirmLegalEntityIdChange: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n customerList: PropTypes.arrayOf(PropTypes.shape()),\r\n legalEntityList: PropTypes.arrayOf(PropTypes.shape()),\r\n clientId: PropTypes.number\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n newLegalEntity: null,\r\n formErrors: null\r\n };\r\n\r\n this.onDataInputChange = this.onDataInputChange.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n }\r\n\r\n handleSubmit(event) {\r\n const {\r\n onConfirmLegalEntityIdChange,\r\n customerList\r\n } = this.props;\r\n const { newLegalEntity } = this.state;\r\n const newLegalEntityId = newLegalEntity ? newLegalEntity.id : 0;\r\n\r\n event.preventDefault();\r\n\r\n if (!newLegalEntity || newLegalEntityId <= 0) {\r\n toastr.error('', 'Please find & select a valid Legal Entity');\r\n return;\r\n }\r\n\r\n if (!customerList || customerList.length === 0) {\r\n toastr.error('', 'Please close the window and try again');\r\n return;\r\n }\r\n\r\n onConfirmLegalEntityIdChange(customerList, newLegalEntityId);\r\n this.setState({ newLegalEntity: { value: '' } });\r\n }\r\n\r\n onDataInputChange(event) {\r\n const { target: { name, value } } = event;\r\n this.setState({ [name]: value });\r\n }\r\n\r\n onLegalEntitySelectedItem = (lookupValue) => {\r\n this.setState({ newLegalEntity: lookupValue });\r\n };\r\n\r\n onLegalEntityChange = (e, newValue) => {\r\n this.setState({ newLegalEntity: null });\r\n };\r\n\r\n fieldHasErrors(field) {\r\n const { formErrors } = this.state;\r\n return formErrors != null && formErrors.filter(error => error.field === field).length > 0;\r\n }\r\n\r\n render() {\r\n const { isShown, onCancel, customerList, clientId, legalEntityList, isGettingCustomerLegalEntities } = this.props;\r\n const {\r\n newLegalEntity,\r\n } = this.state;\r\n\r\n function getUsTaxObligation(usTaxObligation) {\r\n if (!usTaxObligation && usTaxObligation !== false) {\r\n return 'Not set';\r\n }\r\n\r\n return usTaxObligation ? 'Yes' : 'No';\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n { customerList && customerList.length === 1 &&
    \r\n
    \r\n

    \r\n Editing Legal Entities linked to Customer { customerList[0].customerId } - { customerList[0].name }\r\n

    \r\n
    \r\n
    }\r\n\r\n { customerList && customerList.length <= 1 &&
    \r\n { isGettingCustomerLegalEntities && }\r\n { !isGettingCustomerLegalEntities && legalEntityList &&
    \r\n

    These legal entities are currently linked to this customer

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { legalEntityList.map(item => \r\n \r\n \r\n \r\n ) }\r\n { legalEntityList && legalEntityList.length <= 0 && \r\n \r\n }\r\n \r\n
    NameIdentifierHas US Tax Obligation
    { item.name }{ item.identifier }{ getUsTaxObligation(item.usTaxObligation) }
    No legal entities are linked to this customer
    \r\n
    }\r\n
    }\r\n
    \r\n
    \r\n

    \r\n Please choose the Legal Entity that will replace all current Legal Entity links for the customer\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Legal Entity\r\n \r\n
    \r\n
    \r\n this.onLegalEntitySelectedItem(lookupValue) }\r\n onChange={ (e, newVal) => this.onLegalEntityChange(e, newVal) }\r\n />\r\n
    \r\n
    \r\n Confirm\r\n \r\n \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst EditCustomerLegalEntitiesModalReduxForm = reduxForm({\r\n form: 'customerLegalEntityEditForm'\r\n})(EditCustomerLegalEntitiesModalForm);\r\n\r\nconst mapStateToProps = (state) => {\r\n if (state.auth && state.auth.settings) {\r\n if (state.forms != null && state.forms.currentForm != null && state.forms.currentForm.length > 0) {\r\n const customerList = state.forms.currentForm.map(item => ({ id: item.customerDbId, customerId: item.customerId, name: item.customerName }));\r\n const { clientId } = state.forms.currentForm[0];\r\n let clientIdListOk = true;\r\n let i = 1;\r\n while (clientIdListOk && i < state.forms.currentForm.length) {\r\n clientIdListOk = state.forms.currentForm[i].clientId === clientId;\r\n i += 1;\r\n }\r\n\r\n if (!clientIdListOk) {\r\n toastr.error('', 'The forms selected do not all belong the to same client');\r\n return {};\r\n }\r\n\r\n const { isGettingCustomerLegalEntities, legalEntityList } = state.forms;\r\n\r\n return {\r\n isGettingCustomerLegalEntities,\r\n legalEntityList,\r\n customerList,\r\n clientId\r\n };\r\n }\r\n }\r\n return {};\r\n};\r\n\r\nexport const EditCustomerLegalEntitiesModal = connect(\r\n mapStateToProps\r\n)(EditCustomerLegalEntitiesModalReduxForm);\r\n\r\nexport default EditCustomerLegalEntitiesModal;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\n\r\nconst DeleteFileModal = ({\r\n isShown,\r\n isDeletingFile,\r\n onConfirmDelete,\r\n onCancel,\r\n deleteFileError\r\n}) => (\r\n \r\n

    \r\n Are you sure you want to delete this File?\r\n

    \r\n {\r\n deleteFileError\r\n &&
    \r\n { deleteFileError }\r\n
    \r\n }\r\n \r\n);\r\n\r\nDeleteFileModal.propTypes = {\r\n isShown: PropTypes.bool,\r\n isDeletingFile: PropTypes.bool,\r\n onConfirmDelete: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n deleteFileError: PropTypes.string\r\n};\r\n\r\nDeleteFileModal.defaultProps = {\r\n isShown: false,\r\n isDeletingFile: false,\r\n deleteFileError: null\r\n};\r\n\r\nexport default DeleteFileModal;\r\n","/* eslint-disable prefer-destructuring */\r\nimport React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router';\r\nimport {\r\n completeBatch,\r\n getBatch,\r\n getBatchFiles,\r\n searchBatchFiles,\r\n hideOwnershipModal,\r\n showEditCustomerLegalEntitiesModal,\r\n hideEditCustomerLegalEntitiesModal,\r\n editCustomerLegalEntities,\r\n takeQueueItem,\r\n getBatchFilePdf,\r\n showDeleteFileModal,\r\n hideDeleteFileModal,\r\n deleteBatchFile\r\n} from 'actions';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport BatchBreadcrumbs from 'components/BatchBreadcrumbs';\r\nimport BatchFiles from 'components/BatchFiles';\r\nimport ChangeOwnershipModal from 'components/Modals/ChangeOwnershipModal';\r\nimport ConfirmModal from 'components/Modals/ConfirmModal';\r\nimport EditCustomerLegalEntitiesModal from 'components/Modals/EditCustomerLegalEntitiesModal';\r\nimport DeleteFileModal from 'components/Modals/DeleteFileModal';\r\nimport withContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary';\r\n\r\nconst WAIT_INTERVAL = 1000;\r\nconst ENTER_KEY = 13;\r\n\r\nclass BatchFilesContainer extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n history: PropTypes.shape().isRequired,\r\n isAuthenticated: PropTypes.bool.isRequired,\r\n settings: PropTypes.shape(),\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n isGettingBatchFiles: PropTypes.bool.isRequired,\r\n batchFiles: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number,\r\n dateUploaded: PropTypes.string,\r\n folder: PropTypes.string,\r\n legalEntity: PropTypes.string,\r\n businessDivision: PropTypes.string,\r\n region: PropTypes.string,\r\n statusString: PropTypes.string,\r\n numberOfPacks: PropTypes.number,\r\n numberOfFiles: PropTypes.number\r\n })),\r\n batchItem: PropTypes.shape(),\r\n batchFilesCount: PropTypes.number,\r\n batchFilesPageNumber: PropTypes.number,\r\n batchFilesPageSize: PropTypes.number,\r\n changeOwnershipItem: PropTypes.shape(),\r\n isOwnershipModalShown: PropTypes.bool,\r\n isEditCustomerLegalEntitiesModalShown: PropTypes.bool,\r\n // eslint-disable-next-line\r\n batchFilePdfData: PropTypes.any,\r\n batchFileOriginalFileName: PropTypes.string,\r\n isDeleteFileModalShown: PropTypes.bool,\r\n isDeletingFile: PropTypes.bool,\r\n fileId: PropTypes.number,\r\n deleteFileError: PropTypes.string,\r\n location: PropTypes.shape({\r\n key: PropTypes.string\r\n }).isRequired,\r\n isCompletingBatch: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n settings: null,\r\n permissions: null,\r\n batchItem: null,\r\n batchFiles: null,\r\n batchFilesPageNumber: 1,\r\n batchFilesPageSize: 50,\r\n batchFilesCount: 0,\r\n isOwnershipModalShown: false,\r\n isEditCustomerLegalEntitiesModalShown: false,\r\n changeOwnershipItem: null,\r\n batchFilePdfData: null,\r\n batchFileOriginalFileName: null,\r\n isDeleteFileModalShown: false,\r\n isDeletingFile: false,\r\n deleteFileError: null,\r\n fileId: 0,\r\n isCompletingBatch: false\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchQuery: null,\r\n selectionEnabled: false,\r\n currentPageNumber: props.batchFilesPageNumber,\r\n currentPageSize: props.batchFilesPageSize,\r\n isConfirmCompleteBatchModalShown: false,\r\n confirmBatchItem: null\r\n };\r\n }\r\n\r\n /* eslint-disable-next-line camelcase */\r\n UNSAFE_componentWillMount() {\r\n const {\r\n isAuthenticated,\r\n batchFilesPageNumber,\r\n batchFilesPageSize\r\n } = this.props;\r\n if (isAuthenticated) {\r\n this.fetchBatchFiles(batchFilesPageNumber, batchFilesPageSize);\r\n this.fetchBatchDetails();\r\n }\r\n }\r\n\r\n /* eslint-disable-next-line camelcase */\r\n UNSAFE_componentWillReceiveProps(newProps) {\r\n const { batchFilePdfData, batchFileOriginalFileName } = this.props;\r\n\r\n if (batchFileOriginalFileName == null && batchFilePdfData !== newProps.batchFilePdfData && newProps.batchFilePdfData != null) {\r\n const link = document.createElement('a');\r\n link.href = newProps.batchFilePdfData;\r\n link.setAttribute('download', newProps.batchFileOriginalFileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n }\r\n }\r\n\r\n shouldComponentUpdate({ location: { key: nextKey } }) {\r\n const {\r\n location: { key },\r\n batchFilesPageNumber,\r\n batchFilesPageSize,\r\n } = this.props;\r\n const updateComponent = key !== nextKey;\r\n if (updateComponent) {\r\n this.fetchBatchFiles(batchFilesPageNumber, batchFilesPageSize);\r\n }\r\n return !updateComponent;\r\n }\r\n\r\n componentDidUpdate() {\r\n const { selectionEnabled } = this.state;\r\n this.batchFilesGrid.setSelectionVisibility(selectionEnabled);\r\n }\r\n\r\n componentWillUnmount() {\r\n const { dispatch } = this.props;\r\n dispatch(hideEditCustomerLegalEntitiesModal());\r\n dispatch(hideOwnershipModal());\r\n }\r\n\r\n getCoverSheetMessage() {\r\n const {\r\n batchItem\r\n } = this.props;\r\n\r\n return (batchItem && batchItem.coverSheetJson)\r\n && (
    Cover sheet available
    );\r\n }\r\n\r\n getRefreshAction(pageNumber, pageSize) {\r\n const {\r\n history: {\r\n location: { pathname }\r\n }\r\n } = this.props;\r\n let batchId = 0;\r\n const path = pathname.split('/');\r\n if (path.length >= 2 && path.indexOf('batches') === 1) {\r\n batchId = path[2];\r\n }\r\n\r\n const { searchQuery } = this.state;\r\n let sortModel;\r\n let filters;\r\n let actionMethod;\r\n let actionParameters;\r\n if (this.batchFilesGrid) {\r\n sortModel = this.batchFilesGrid.getSortModel();\r\n filters = this.batchFilesGrid.getFilterModel();\r\n }\r\n\r\n const sortBy = (sortModel && sortModel[0]) ? sortModel[0].colId : '';\r\n const sortDirection = (sortModel && sortModel[0]) ? sortModel[0].sort : '';\r\n\r\n if (pageNumber === 'undefined' || !pageNumber) {\r\n pageNumber = 1;\r\n }\r\n if (pageSize === 'undefined' || !pageSize) {\r\n pageSize = 50;\r\n }\r\n\r\n actionParameters = [batchId, pageNumber, pageSize, sortBy, sortDirection, filters];\r\n if (!searchQuery && !sortModel && !filters) {\r\n actionMethod = getBatchFiles;\r\n } else {\r\n actionMethod = searchBatchFiles;\r\n actionParameters = [...actionParameters, searchQuery];\r\n }\r\n\r\n return { actionMethod, actionParameters };\r\n }\r\n\r\n triggerSearch = () => {\r\n const { currentPageSize } = this.state;\r\n let { currentPageNumber } = this.state;\r\n currentPageNumber = 1;\r\n this.setState({ currentPageNumber });\r\n this.batchFilesGrid.resetPageNumber(currentPageNumber);\r\n\r\n this.fetchBatchFiles(currentPageNumber, currentPageSize);\r\n };\r\n\r\n fetchBatchDetails() {\r\n const {\r\n dispatch,\r\n history: {\r\n location: { pathname }\r\n }\r\n } = this.props;\r\n let batchId = 0;\r\n const path = pathname.split('/');\r\n if (path.length >= 2 && path.indexOf('batches') === 1) {\r\n batchId = path[2];\r\n }\r\n if (batchId > 0) {\r\n dispatch(getBatch(batchId));\r\n }\r\n }\r\n\r\n fetchBatchFiles(pageNumber, pageSize) {\r\n const {\r\n dispatch,\r\n history: {\r\n location: { pathname }\r\n }\r\n } = this.props;\r\n let batchId = 0;\r\n const path = pathname.split('/');\r\n if (path.length >= 2 && path.indexOf('batches') === 1) {\r\n batchId = path[2];\r\n }\r\n\r\n const { searchQuery } = this.state;\r\n let sortModel;\r\n let filters;\r\n\r\n if (this.batchFilesGrid) {\r\n sortModel = this.batchFilesGrid.getSortModel();\r\n filters = this.batchFilesGrid.getFilterModel();\r\n }\r\n\r\n const sortBy = (sortModel && sortModel[0]) ? sortModel[0].colId : '';\r\n const sortDirection = (sortModel && sortModel[0]) ? sortModel[0].sort : '';\r\n\r\n if (pageNumber === 'undefined' || !pageNumber) {\r\n pageNumber = 1;\r\n }\r\n if (pageSize === 'undefined' || !pageSize) {\r\n pageSize = 50;\r\n }\r\n\r\n if (!searchQuery && !sortModel && !filters) {\r\n dispatch(getBatchFiles(batchId, pageNumber, pageSize, sortBy, sortDirection, filters));\r\n } else {\r\n dispatch(searchBatchFiles(batchId, pageNumber, pageSize, sortBy, sortDirection, filters, searchQuery));\r\n }\r\n }\r\n\r\n searchChanged(event) {\r\n clearTimeout(this.timer);\r\n const searchQuery = event.target.value;\r\n\r\n if (searchQuery.length > 0 && searchQuery.length < 2) {\r\n return;\r\n }\r\n\r\n this.setState({\r\n searchQuery\r\n });\r\n\r\n this.timer = setTimeout(this.triggerSearch, WAIT_INTERVAL);\r\n }\r\n\r\n searchInGrid(event) {\r\n clearTimeout(this.timer);\r\n const searchQuery = event.target.value;\r\n\r\n if (searchQuery.length > 0 && searchQuery.length < 2) {\r\n return;\r\n }\r\n\r\n this.setState({\r\n searchQuery\r\n });\r\n\r\n if (event.keyCode === ENTER_KEY) {\r\n this.triggerSearch();\r\n } else {\r\n this.timer = setTimeout(this.triggerSearch, WAIT_INTERVAL);\r\n }\r\n }\r\n\r\n changePage(paging) {\r\n this.setState({\r\n currentPageNumber: paging.number,\r\n currentPageSize: paging.size\r\n });\r\n this.fetchBatchFiles(paging.number, paging.size);\r\n return true;\r\n }\r\n\r\n openConfirmCompleteBatchModal(confirmBatchItem) {\r\n this.setState({ isConfirmCompleteBatchModalShown: true, confirmBatchItem });\r\n }\r\n\r\n closeConfirmCompleteBatchModel() {\r\n this.setState({ isConfirmCompleteBatchModalShown: false });\r\n }\r\n\r\n completeBatch() {\r\n const { dispatch } = this.props;\r\n const { confirmBatchItem } = this.state;\r\n dispatch(completeBatch(confirmBatchItem.id, getBatch));\r\n this.setState({ isConfirmCompleteBatchModalShown: false });\r\n }\r\n\r\n openDeleteFileModal(item) {\r\n const { dispatch } = this.props;\r\n dispatch(showDeleteFileModal(item));\r\n }\r\n\r\n closeDeleteFileModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideDeleteFileModal());\r\n }\r\n\r\n deleteFile() {\r\n const { dispatch, fileId, history: { location: { pathname } } } = this.props;\r\n const { currentPageNumber, currentPageSize } = this.state;\r\n\r\n let batchId = 0;\r\n const path = pathname.split('/');\r\n if (path.length >= 2 && path.indexOf('batches') === 1) {\r\n batchId = path[2];\r\n }\r\n\r\n dispatch(deleteBatchFile(batchId, fileId, currentPageNumber, currentPageSize));\r\n }\r\n\r\n openEditCustomerLegalEntitiesModal(item) {\r\n const { dispatch } = this.props;\r\n dispatch(showEditCustomerLegalEntitiesModal([item]));\r\n }\r\n\r\n closeEditCustomerLegalEntitiesModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideEditCustomerLegalEntitiesModal());\r\n }\r\n\r\n processEditCustomerLegalEntities(customerList, newLegalEntityId) {\r\n const { dispatch } = this.props;\r\n const {\r\n currentPageNumber,\r\n currentPageSize\r\n } = this.state;\r\n dispatch(editCustomerLegalEntities(customerList, newLegalEntityId, currentPageNumber, currentPageSize));\r\n }\r\n\r\n reAssignItem() {\r\n const { dispatch, changeOwnershipItem } = this.props;\r\n\r\n if (changeOwnershipItem != null && changeOwnershipItem.id != null) {\r\n dispatch(takeQueueItem('form', changeOwnershipItem.id, changeOwnershipItem.accountId));\r\n dispatch(hideOwnershipModal());\r\n }\r\n }\r\n\r\n refreshList() {\r\n const { dispatch } = this.props;\r\n const { currentPageNumber, currentPageSize } = this.state;\r\n const refreshAction = this.getRefreshAction(currentPageNumber, currentPageSize);\r\n if (refreshAction) {\r\n dispatch(refreshAction.actionMethod(...refreshAction.actionParameters));\r\n }\r\n }\r\n\r\n continueFromOwnershipModal() {\r\n const { dispatch, history, changeOwnershipItem } = this.props;\r\n dispatch(hideOwnershipModal());\r\n let redirectUrl = `/forms/${ changeOwnershipItem.formType.toLowerCase() }/${ changeOwnershipItem.id }`;\r\n if (changeOwnershipItem.accountId) {\r\n redirectUrl = `${ redirectUrl }?account=${ changeOwnershipItem.accountId }`;\r\n }\r\n history.push(redirectUrl);\r\n }\r\n\r\n closeFromOwnershipModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideOwnershipModal());\r\n }\r\n\r\n downloadOriginalBatchFile(batchFile) {\r\n const { dispatch } = this.props;\r\n dispatch(getBatchFilePdf(batchFile));\r\n }\r\n\r\n render() {\r\n const {\r\n settings,\r\n permissions,\r\n isGettingBatchFiles,\r\n batchItem,\r\n batchFiles,\r\n batchFilesCount,\r\n isOwnershipModalShown,\r\n isEditCustomerLegalEntitiesModalShown,\r\n changeOwnershipItem,\r\n isDeletingFile,\r\n isDeleteFileModalShown,\r\n deleteFileError,\r\n isCompletingBatch\r\n } = this.props;\r\n\r\n const {\r\n isConfirmCompleteBatchModalShown,\r\n confirmBatchItem\r\n } = this.state;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Uploaded Batch Files\r\n { batchItem && batchItem.id && }\r\n
    \r\n { this.getCoverSheetMessage() }\r\n
    \r\n
    \r\n
    \r\n
    \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.fwfBatchReviewer])\r\n && batchItem && batchItem.statusString === 'Processed' && batchItem.numberOfUnassignedForms === 0\r\n && this.openConfirmCompleteBatchModal(batchItem)\r\n }\r\n >\r\n Complete Batch\r\n }\r\n this.searchInGrid(e) }\r\n onChange={ e => this.searchChanged(e) }\r\n />\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { this.batchFilesGrid = ref; } }\r\n isLoading={ isGettingBatchFiles }\r\n rowData={ batchFiles }\r\n totalCount={ batchFilesCount }\r\n changePageCallback={ batchFile => this.changePage(batchFile) }\r\n editCustomerLegalEntitiesCallback={ batchFile => this.openEditCustomerLegalEntitiesModal(batchFile) }\r\n downloadOriginalBatchFileCallback={ (batchId, batchFileId) => this.downloadOriginalBatchFile(batchId, batchFileId) }\r\n deleteFileCallback={ batchFile => this.openDeleteFileModal(batchFile) }\r\n />\r\n
    \r\n
    \r\n\r\n { isEditCustomerLegalEntitiesModalShown && this.closeEditCustomerLegalEntitiesModal() }\r\n onConfirmLegalEntityIdChange={ (customerList, newLegalEntityId) => this.processEditCustomerLegalEntities(customerList, newLegalEntityId) }\r\n /> }\r\n\r\n { changeOwnershipItem != null && this.reAssignItem() }\r\n onContinueWithoutAssign={ () => this.continueFromOwnershipModal() }\r\n onCancel={ () => this.closeFromOwnershipModal() }\r\n workflowRecord={ changeOwnershipItem }\r\n /> }\r\n\r\n { isDeleteFileModalShown && this.deleteFile() }\r\n onCancel={ () => this.closeDeleteFileModal() }\r\n deleteFileError={ deleteFileError }\r\n /> }\r\n\r\n { isConfirmCompleteBatchModalShown && this.completeBatch() }\r\n onCancel={ () => this.closeConfirmCompleteBatchModel() }\r\n title=\"Confirm Complete Batch\"\r\n message={ `Are you sure you want to complete the batch ${ confirmBatchItem.batchId }?` }\r\n /> }\r\n\r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n if (!state.auth) {\r\n return {};\r\n }\r\n\r\n const {\r\n auth: {\r\n isAuthenticated,\r\n settings,\r\n permissions\r\n },\r\n batches: {\r\n batchItem,\r\n isCompletingBatch\r\n },\r\n batchFiles: {\r\n isGettingBatchFiles,\r\n batchFiles,\r\n batchFilesCount,\r\n batchFormToEdit,\r\n editLegalEntityError,\r\n batchFilePdfData,\r\n batchFileOriginalFileName,\r\n isDeleteFileModalShown,\r\n isDeletingFile,\r\n deleteFileError,\r\n fileId\r\n },\r\n forms: {\r\n isEditCustomerLegalEntitiesModalShown\r\n },\r\n workflow: {\r\n isOwnershipModalShown,\r\n changeOwnershipItem\r\n }\r\n } = state;\r\n\r\n return {\r\n isAuthenticated,\r\n settings,\r\n permissions,\r\n isGettingBatchFiles,\r\n batchItem,\r\n batchFiles,\r\n batchFilesCount,\r\n batchFormToEdit,\r\n editLegalEntityError,\r\n isOwnershipModalShown,\r\n changeOwnershipItem,\r\n isEditCustomerLegalEntitiesModalShown,\r\n batchFilePdfData,\r\n batchFileOriginalFileName,\r\n isDeleteFileModalShown,\r\n isDeletingFile,\r\n deleteFileError,\r\n fileId,\r\n isCompletingBatch\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withContainerErrorBoundary(BatchFilesContainer, 'BatchFilesContainer')));\r\n","import { GridHelper } from 'components/Grids/GridHelper';\r\nimport {\r\n GeneralCellRenderer,\r\n BatchFormActionsCellRenderer,\r\n CustomerLinkCellRenderer,\r\n AccountLinkCellRenderer\r\n} from 'components/Grids/CellRenderers';\r\n\r\nexport default class BatchFormsColumnDefinitions {\r\n static createColDefs() {\r\n const columnDefs = [\r\n {\r\n headerName: 'Customer ID',\r\n cellClass: 'center-aligned',\r\n field: 'customerId',\r\n cellRenderer: CustomerLinkCellRenderer,\r\n minWidth: 150,\r\n width: 170,\r\n filter: 'text',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'Line One Name',\r\n field: 'entityName',\r\n cellRenderer: GeneralCellRenderer,\r\n minWidth: 100,\r\n width: 150,\r\n filter: 'text',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'Account',\r\n field: 'accountNumber',\r\n cellRenderer: AccountLinkCellRenderer,\r\n minWidth: 130,\r\n width: 150,\r\n filter: 'text',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'Customer Country',\r\n field: 'customerPermanentAddressCountry',\r\n cellRenderer: GeneralCellRenderer,\r\n minWidth: 100,\r\n width: 150,\r\n filter: 'text',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'Legal Entity',\r\n field: 'legalEntity',\r\n cellRenderer: GeneralCellRenderer,\r\n minWidth: 100,\r\n width: 150,\r\n filter: 'text',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'Form Type',\r\n field: 'formTypeDescription',\r\n cellRenderer: GeneralCellRenderer,\r\n minWidth: 100,\r\n width: 150,\r\n filter: 'text',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'Form Validity',\r\n field: 'valid',\r\n cellClass: 'center-aligned',\r\n cellRenderer: GeneralCellRenderer,\r\n valueGetter: ({\r\n data: { valid }\r\n }) => {\r\n if (valid === null || valid === 'undefined') {\r\n return 'Not Validated';\r\n }\r\n return valid ? 'Valid' : 'Rejected';\r\n },\r\n minWidth: 70,\r\n width: 120,\r\n filter: 'text',\r\n filterParams: { apply: true }\r\n },\r\n { headerName: 'Workflow Status',\r\n field: 'workflowStatus',\r\n cellRenderer: GeneralCellRenderer,\r\n minWidth: 120,\r\n width: 120,\r\n filter: 'text'\r\n },\r\n {\r\n headerName: 'Original File Name',\r\n field: 'originalFileName',\r\n cellRenderer: GeneralCellRenderer,\r\n minWidth: 100,\r\n width: 150,\r\n filter: 'text',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'Upload Date',\r\n field: 'dateUploaded',\r\n cellRenderer: GeneralCellRenderer,\r\n valueGetter: ({\r\n data: { dateUploaded }\r\n }) => GridHelper.dateFormatter(dateUploaded, 'MMM DD, YYYY HH:mm:ss'),\r\n minWidth: 95,\r\n width: 145,\r\n filter: 'text',\r\n filterParams: { apply: true }\r\n },\r\n {\r\n headerName: 'View / Action',\r\n cellClass: 'center-aligned form-action-btns',\r\n field: 'id',\r\n cellRenderer: BatchFormActionsCellRenderer,\r\n minWidth: 70,\r\n width: 115,\r\n filter: false\r\n }\r\n ];\r\n\r\n return columnDefs;\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\nimport { GridHelper } from 'components/Grids/GridHelper';\r\nimport PagingButtons from 'components/Grids/PagingButtons';\r\nimport BatchFormsColDefFactory from './BatchFormsColumnDefinitions';\r\n\r\nconst AgGridReact = React.lazy(() => import(/* webpackChunkName: \"ag-grid-react\" */ 'ag-grid-react').then(module => ({ default: module.AgGridReact })));\r\n\r\nexport default class BatchForms extends Component {\r\n static propTypes = {\r\n settings: PropTypes.shape({}),\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n isLoading: PropTypes.bool,\r\n rowData: PropTypes.arrayOf(PropTypes.shape({})),\r\n totalCount: PropTypes.number.isRequired,\r\n changePageCallback: PropTypes.func.isRequired,\r\n editFormAssociationsCallback: PropTypes.func.isRequired,\r\n getOriginalPdfFileCallback: PropTypes.func.isRequired,\r\n deleteFormCallback: PropTypes.func.isRequired,\r\n batchItem: PropTypes.shape({})\r\n };\r\n\r\n static defaultProps = {\r\n settings: null,\r\n permissions: null,\r\n isLoading: false,\r\n rowData: [],\r\n batchItem: null\r\n };\r\n\r\n static isSelectionEnabled = false;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n pageNumber: 1,\r\n pageSize: 50,\r\n sortBy: '',\r\n sortDirection: '',\r\n gridApi: null,\r\n filters: null,\r\n settingFiltersOnReload: false,\r\n showStatusChip: true\r\n };\r\n this.gridOptions = GridHelper.buildGridOptions({\r\n suppressRowClickSelection: true,\r\n pagination: false,\r\n rowSelection: 'multiple'\r\n });\r\n this.changePageCallback = this.changePageCallback.bind(this);\r\n this.clearReloadFlag = this.clearReloadFlag.bind(this);\r\n }\r\n\r\n shouldComponentUpdate(nextProps, nextState) {\r\n const {\r\n isLoading,\r\n rowData,\r\n totalCount,\r\n permissions\r\n } = this.props;\r\n const {\r\n gridApi,\r\n pageNumber,\r\n pageSize\r\n } = this.state;\r\n return !(\r\n isLoading === nextProps.isLoading\r\n && rowData === nextProps.rowData\r\n && totalCount === nextProps.totalCount\r\n && permissions === nextProps.permissions\r\n && gridApi === nextState.gridApi\r\n && pageNumber === nextState.pageNumber\r\n && pageSize === nextState.pageSize\r\n );\r\n }\r\n\r\n /* eslint-disable-next-line camelcase */\r\n UNSAFE_componentWillUpdate({\r\n isLoading,\r\n rowData,\r\n }, { gridApi }) {\r\n if (gridApi) {\r\n if (isLoading) {\r\n gridApi.showLoadingOverlay();\r\n } else {\r\n gridApi.setRowData(rowData);\r\n }\r\n }\r\n }\r\n\r\n componentDidUpdate(\r\n prevProps,\r\n prevState\r\n ) {\r\n const { permissions } = this.props;\r\n const {\r\n gridApi,\r\n sortBy,\r\n sortDirection\r\n } = this.state;\r\n\r\n if (this.gridOptions && sortBy && sortDirection) {\r\n const { columnApi } = this.gridOptions;\r\n if (columnApi && columnApi.getColumn(sortBy)) {\r\n columnApi.getColumn(sortBy).setSort(sortDirection);\r\n }\r\n }\r\n if (prevProps.permissions !== permissions && gridApi) {\r\n const params = {\r\n force: true\r\n };\r\n gridApi.refreshCells(params);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('resize', this.setGridSizeToFit.bind(this));\r\n }\r\n\r\n setGridSizeToFit() {\r\n const { gridApi } = this.state;\r\n\r\n if (gridApi) {\r\n GridHelper.sizeColumnsToFit(gridApi);\r\n GridHelper.resetRowHeights(gridApi);\r\n }\r\n }\r\n\r\n /* eslint-disable react/no-unused-class-component-methods */\r\n setSelectionVisibility(isVisible) {\r\n const { gridApi } = this.state;\r\n\r\n if (gridApi) {\r\n this.gridOptions.columnApi.setColumnVisible('checkbox', isVisible);\r\n if (!isVisible) {\r\n gridApi.deselectAll();\r\n }\r\n this.setGridSizeToFit();\r\n }\r\n this.isSelectionEnabled = isVisible;\r\n }\r\n\r\n getSortModel() {\r\n const { gridApi } = this.state;\r\n return gridApi ? this.gridOptions.columnApi.getColumnState().find(s => s.sort != null) : null;\r\n }\r\n\r\n getFilterModel() {\r\n const { gridApi } = this.state;\r\n return gridApi ? gridApi.getFilterModel() : null;\r\n }\r\n\r\n changePageCallback = (paging) => {\r\n const { changePageCallback } = this.props;\r\n\r\n if (paging && changePageCallback && changePageCallback(paging)) {\r\n this.setState({ pageNumber: paging.number, pageSize: paging.size });\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n clearReloadFlag = () => {\r\n clearInterval(this.reloadTimer);\r\n this.reloadTimer = null;\r\n this.setState({ settingFiltersOnReload: false });\r\n };\r\n\r\n gridDidMount(gridApi) {\r\n window.addEventListener('resize', this.setGridSizeToFit.bind(this));\r\n this.setState({ gridApi });\r\n }\r\n\r\n resetPageNumber(pageNumber) {\r\n if (pageNumber) {\r\n this.setState({ pageNumber });\r\n this\r\n .pagingButtons\r\n .resetPageNumber(pageNumber);\r\n }\r\n }\r\n /* eslint-enable react/no-unused-class-component-methods */\r\n\r\n resizeRowHeights() {\r\n const { gridApi } = this.state;\r\n\r\n if (gridApi) {\r\n GridHelper.resetRowHeights(gridApi);\r\n }\r\n }\r\n\r\n checkOverlay() {\r\n const { gridApi } = this.state;\r\n\r\n if (gridApi && gridApi.getModel()) {\r\n if (gridApi.getModel().getRowCount()) {\r\n gridApi.hideOverlay();\r\n } else {\r\n gridApi.showNoRowsOverlay();\r\n }\r\n }\r\n }\r\n\r\n gridReloaded() {\r\n const {\r\n gridApi,\r\n filters\r\n } = this.state;\r\n\r\n if (filters) {\r\n this.setState({ settingFiltersOnReload: true });\r\n gridApi.setFilterModel(filters);\r\n }\r\n if (!this.reloadTimer) {\r\n this.reloadTimer = setInterval(this.clearReloadFlag, 2000);\r\n }\r\n this.checkOverlay();\r\n setTimeout(() => this.setGridSizeToFit(), 500);\r\n }\r\n\r\n filterApplied() {\r\n const elem = document.querySelector('.ag-menu');\r\n if (elem) {\r\n elem.style.display = 'none';\r\n }\r\n this.reloadGrid();\r\n }\r\n\r\n reloadGrid() {\r\n const { changePageCallback } = this.props;\r\n const { gridApi,\r\n pageSize, settingFiltersOnReload,\r\n sortBy, sortDirection, filters } = this.state;\r\n\r\n if (settingFiltersOnReload) {\r\n return;\r\n }\r\n\r\n if (gridApi) {\r\n const sortModel = this.getSortModel();\r\n const filterModel = this.getFilterModel();\r\n let sortOrFilterChanged = false;\r\n\r\n if (\r\n sortModel\r\n && sortModel[0]\r\n && (\r\n sortModel[0].colId !== sortBy\r\n || sortModel[0].sort !== sortDirection)\r\n ) {\r\n this.setState({\r\n pageNumber: 1,\r\n sortBy: sortModel[0].colId,\r\n sortDirection: sortModel[0].sort\r\n });\r\n sortOrFilterChanged = true;\r\n } else if (sortBy !== '') {\r\n this.setState({\r\n sortBy: '',\r\n sortDirection: ''\r\n });\r\n sortOrFilterChanged = true;\r\n }\r\n\r\n if (\r\n filterModel\r\n && Object.keys(filterModel).length > 0\r\n && JSON.stringify(filterModel) !== JSON.stringify(filters)\r\n ) {\r\n this.setState({\r\n pageNumber: 1,\r\n filters: filterModel\r\n });\r\n sortOrFilterChanged = true;\r\n } else if (\r\n (\r\n filterModel\r\n && Object.keys(filterModel).length === 0\r\n )\r\n && (\r\n filters\r\n && Object.keys(filters).length !== 0\r\n )\r\n ) {\r\n this.setState({\r\n filters: filterModel\r\n });\r\n sortOrFilterChanged = true;\r\n }\r\n if (sortOrFilterChanged) {\r\n changePageCallback({ number: 1, size: pageSize });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n settings,\r\n permissions,\r\n totalCount,\r\n getOriginalPdfFileCallback,\r\n deleteFormCallback,\r\n editFormAssociationsCallback,\r\n batchItem\r\n } = this.props;\r\n const {\r\n pageSize,\r\n pageNumber,\r\n showStatusChip,\r\n } = this.state;\r\n return (\r\n
    \r\n }>\r\n this.gridDidMount(params.api) }\r\n onGridResize={ params => this.setGridSizeToFit(params.api) }\r\n onRowDataChanged={ () => this.gridReloaded() }\r\n onSortChanged={ () => this.reloadGrid() }\r\n onFilterChanged={ () => this.filterApplied() }\r\n context={ { settings, permissions, getOriginalPdfFileCallback, deleteFormCallback, editFormAssociationsCallback, batchItem, showStatusChip } }\r\n getRowHeight={ params => GridHelper.calculateRowHeight(params.node) }\r\n onVirtualColumnsChanged={ () => this.resizeRowHeights() }\r\n onVirtualRowRemoved={ () => this.resizeRowHeights() }\r\n rowBuffer={ pageSize }\r\n />\r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { reduxForm } from 'redux-form';\r\nimport { connect } from 'react-redux';\r\nimport { toastr } from 'react-redux-toastr';\r\nimport CustomerAccountInput from 'components/Common/Inputs/CustomerAccountInput';\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\n\r\nclass EditFormAssociationsModalForm extends Component {\r\n static propTypes = {\r\n onConfirmFormAssociations: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n isShown: PropTypes.bool.isRequired,\r\n currentForm: PropTypes.shape(),\r\n selectedClient: PropTypes.shape()\r\n };\r\n\r\n static defaultProps = {\r\n currentForm: null,\r\n selectedClient: null\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isRequestingEditFormAssociations: false,\r\n customerAccountSelection: (props.currentForm && props.currentForm.accountId === 0) ? { customerId: props.currentForm.customerDbId } : null\r\n };\r\n\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n }\r\n\r\n handleSubmit(event) {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n const { customerAccountSelection } = this.state;\r\n const { onConfirmFormAssociations } = this.props;\r\n\r\n if (!customerAccountSelection) {\r\n toastr.error('', 'Please select a customer and account(s)');\r\n return;\r\n }\r\n\r\n if (!customerAccountSelection.selectionValid) {\r\n toastr.error('', 'Please correct the selections you have made');\r\n return;\r\n }\r\n\r\n onConfirmFormAssociations(customerAccountSelection);\r\n }\r\n\r\n setCustomerAccountCallback(value) {\r\n this.setState({ customerAccountSelection: value });\r\n }\r\n\r\n render() {\r\n const { onCancel, isShown, currentForm, selectedClient } = this.props;\r\n const { isRequestingEditFormAssociations } = this.state;\r\n\r\n return (\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n Form Type\r\n
    \r\n
    \r\n { currentForm && { currentForm.formType } { currentForm.entityName && - { currentForm.entityName } } }\r\n
    \r\n
    \r\n
    \r\n
    \r\n Assigned Customer\r\n
    \r\n
    \r\n { currentForm && currentForm.customerId }{ currentForm.customerName && / { currentForm.customerName } }\r\n { currentForm && !currentForm.customerId && None }\r\n
    \r\n
    \r\n
    \r\n
    \r\n Assigned Account(s)\r\n
    \r\n
    \r\n { currentForm && currentForm.accountId > 0 && currentForm.accountNumber }{ currentForm.accountName && / { currentForm.accountName } }\r\n { currentForm && currentForm.accountId === 0 && None }\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    To change the customer / account(s) linked to the form, please choose from the options below

    \r\n
    \r\n 0 ? [currentForm.accountId] : [] }\r\n onSelectionChange={ data => this.setCustomerAccountCallback(data) }\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst EditFormAssociationsModalReduxForm = reduxForm({\r\n form: 'editFormAssociationsForm'\r\n})(EditFormAssociationsModalForm);\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n settings: {\r\n selectedClient\r\n }\r\n },\r\n forms: {\r\n isRequestingEditFormAssociations,\r\n currentForm\r\n }\r\n } = state;\r\n\r\n return {\r\n isRequestingEditFormAssociations,\r\n currentForm,\r\n selectedClient\r\n };\r\n}\r\n\r\nexport const EditFormAssociationsModal = connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(EditFormAssociationsModalReduxForm);\r\n\r\nexport default EditFormAssociationsModal;\r\n","/* eslint-disable prefer-destructuring */\r\nimport React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router';\r\nimport {\r\n completeBatch,\r\n getBatchForms,\r\n searchBatchForms,\r\n hideOwnershipModal,\r\n takeQueueItem,\r\n getFormPdf,\r\n showDeleteFormModal,\r\n hideDeleteFormModal,\r\n deleteBatchForm,\r\n showEditFormAssociationsModal,\r\n hideEditFormAssociationsModal,\r\n editBatchFormAssociations,\r\n getBatch\r\n} from 'actions';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport BatchBreadcrumbs from 'components/BatchBreadcrumbs';\r\nimport BatchForms from 'components/BatchForms';\r\nimport ChangeOwnershipModal from 'components/Modals/ChangeOwnershipModal';\r\nimport ConfirmModal from 'components/Modals/ConfirmModal';\r\nimport DeleteFormModal from 'components/Modals/DeleteFormModal';\r\nimport EditFormAssociationsModal from 'components/Modals/EditFormAssociationsModal';\r\nimport withContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary';\r\n\r\nconst WAIT_INTERVAL = 1000;\r\nconst ENTER_KEY = 13;\r\n\r\nclass BatchFormsContainer extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n history: PropTypes.shape().isRequired,\r\n isAuthenticated: PropTypes.bool.isRequired,\r\n settings: PropTypes.shape(),\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n isGettingBatchForms: PropTypes.bool.isRequired,\r\n batchForms: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number,\r\n dateUploaded: PropTypes.string,\r\n folder: PropTypes.string,\r\n legalEntity: PropTypes.string,\r\n businessDivision: PropTypes.string,\r\n region: PropTypes.string,\r\n statusString: PropTypes.string,\r\n numberOfPacks: PropTypes.number,\r\n numberOfForms: PropTypes.number\r\n })),\r\n batchItem: PropTypes.shape(),\r\n batchFileItem: PropTypes.shape(),\r\n batchFormsCount: PropTypes.number,\r\n batchFormsPageNumber: PropTypes.number,\r\n batchFormsPageSize: PropTypes.number,\r\n changeOwnershipItem: PropTypes.shape(),\r\n isOwnershipModalShown: PropTypes.bool,\r\n isDeleteFormModalShown: PropTypes.bool,\r\n isDeletingForm: PropTypes.bool,\r\n deleteFormError: PropTypes.string,\r\n formsToDelete: PropTypes.shape(),\r\n isEditFormAssociationsModalShown: PropTypes.bool,\r\n currentForm: PropTypes.shape(),\r\n location: PropTypes.shape({\r\n key: PropTypes.string\r\n }).isRequired,\r\n isCompletingBatch: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n settings: null,\r\n permissions: null,\r\n batchItem: null,\r\n batchFileItem: null,\r\n batchForms: null,\r\n batchFormsPageNumber: 1,\r\n batchFormsPageSize: 50,\r\n batchFormsCount: 0,\r\n isOwnershipModalShown: false,\r\n isDeleteFormModalShown: false,\r\n isDeletingForm: false,\r\n deleteFormError: null,\r\n formsToDelete: null,\r\n isEditFormAssociationsModalShown: false,\r\n currentForm: null,\r\n changeOwnershipItem: null,\r\n isCompletingBatch: false\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchQuery: null,\r\n selectionEnabled: false,\r\n currentPageNumber: props.batchFormsPageNumber,\r\n currentPageSize: props.batchFormsPageSize,\r\n isConfirmCompleteBatchModalShown: false,\r\n isConfirmEditFormAssociationsModalShown: false,\r\n associationChanges: null\r\n };\r\n }\r\n\r\n /* eslint-disable-next-line camelcase */\r\n UNSAFE_componentWillMount() {\r\n const {\r\n isAuthenticated,\r\n batchFormsPageNumber,\r\n batchFormsPageSize\r\n } = this.props;\r\n if (isAuthenticated) {\r\n this.fetchBatchForms(batchFormsPageNumber, batchFormsPageSize);\r\n }\r\n }\r\n\r\n shouldComponentUpdate({ location: { key: nextKey } }) {\r\n const {\r\n location: { key },\r\n batchFormsPageNumber,\r\n batchFormsPageSize,\r\n } = this.props;\r\n const updateComponent = key !== nextKey;\r\n if (updateComponent) {\r\n this.fetchBatchForms(batchFormsPageNumber, batchFormsPageSize);\r\n }\r\n return !updateComponent;\r\n }\r\n\r\n componentDidUpdate() {\r\n const { selectionEnabled } = this.state;\r\n if (this.batchFormsGrid) {\r\n this.batchFormsGrid.setSelectionVisibility(selectionEnabled);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { dispatch } = this.props;\r\n dispatch(hideOwnershipModal());\r\n }\r\n\r\n getCoverSheetMessage() {\r\n const {\r\n batchItem\r\n } = this.props;\r\n\r\n return (batchItem && batchItem.coverSheetJson)\r\n && (
    Cover sheet available
    );\r\n }\r\n\r\n getBatchFormAction(pageNumber, pageSize) {\r\n const {\r\n history: {\r\n location: { pathname }\r\n }\r\n } = this.props;\r\n let batchId = 0;\r\n let batchFileId = 0;\r\n let actionMethod;\r\n const path = pathname.split('/');\r\n if (path.length >= 2 && path.indexOf('batches') === 1) {\r\n batchId = path[2];\r\n if (path.length >= 4 && path.indexOf('files') === 3) {\r\n batchFileId = path[4];\r\n }\r\n }\r\n\r\n const { searchQuery } = this.state;\r\n let sortModel;\r\n let filters;\r\n\r\n if (this.batchFormsGrid) {\r\n sortModel = this.batchFormsGrid.getSortModel();\r\n filters = this.batchFormsGrid.getFilterModel();\r\n }\r\n\r\n const sortBy = (sortModel && sortModel[0]) ? sortModel[0].colId : '';\r\n const sortDirection = (sortModel && sortModel[0]) ? sortModel[0].sort : '';\r\n\r\n if (pageNumber === 'undefined' || !pageNumber) {\r\n pageNumber = 1;\r\n }\r\n if (pageSize === 'undefined' || !pageSize) {\r\n pageSize = 50;\r\n }\r\n\r\n let actionParameters = [batchId, batchFileId, pageNumber, pageSize, sortBy, sortDirection, filters];\r\n\r\n if (!searchQuery && !sortModel && !filters) {\r\n actionMethod = getBatchForms;\r\n } else {\r\n actionMethod = searchBatchForms;\r\n actionParameters = [...actionParameters, searchQuery];\r\n }\r\n\r\n return [actionMethod, actionParameters];\r\n }\r\n\r\n triggerSearch = () => {\r\n const { currentPageSize } = this.state;\r\n let { currentPageNumber } = this.state;\r\n currentPageNumber = 1;\r\n this.setState({ currentPageNumber });\r\n if (this.batchFormsGrid) {\r\n this.batchFormsGrid.resetPageNumber(currentPageNumber);\r\n }\r\n this.fetchBatchForms(currentPageNumber, currentPageSize);\r\n };\r\n\r\n fetchBatchForms(pageNumber, pageSize) {\r\n const {\r\n dispatch\r\n } = this.props;\r\n\r\n const refreshAction = this.getBatchFormAction(pageNumber, pageSize);\r\n if (refreshAction && refreshAction.length === 2) {\r\n dispatch(refreshAction[0](...refreshAction[1]));\r\n }\r\n }\r\n\r\n searchChanged(event) {\r\n clearTimeout(this.timer);\r\n const searchQuery = event.target.value;\r\n\r\n if (searchQuery.length > 0 && searchQuery.length < 2) {\r\n return;\r\n }\r\n\r\n this.setState({\r\n searchQuery\r\n });\r\n\r\n this.timer = setTimeout(this.triggerSearch, WAIT_INTERVAL);\r\n }\r\n\r\n searchInGrid(event) {\r\n clearTimeout(this.timer);\r\n const searchQuery = event.target.value;\r\n\r\n if (searchQuery.length > 0 && searchQuery.length < 2) {\r\n return;\r\n }\r\n\r\n this.setState({\r\n searchQuery\r\n });\r\n\r\n if (event.keyCode === ENTER_KEY) {\r\n this.triggerSearch();\r\n } else {\r\n this.timer = setTimeout(this.triggerSearch, WAIT_INTERVAL);\r\n }\r\n }\r\n\r\n changePage(paging) {\r\n this.setState({\r\n currentPageNumber: paging.number,\r\n currentPageSize: paging.size\r\n });\r\n this.fetchBatchForms(paging.number, paging.size);\r\n return true;\r\n }\r\n\r\n openConfirmCompleteBatchModal(confirmBatchItem) {\r\n this.setState({ isConfirmCompleteBatchModalShown: true, confirmBatchItem });\r\n }\r\n\r\n closeConfirmCompleteBatchModel() {\r\n this.setState({ isConfirmCompleteBatchModalShown: false });\r\n }\r\n\r\n completeBatch() {\r\n const { dispatch } = this.props;\r\n const { confirmBatchItem } = this.state;\r\n dispatch(completeBatch(confirmBatchItem.id, getBatch));\r\n this.setState({ isConfirmCompleteBatchModalShown: false });\r\n }\r\n\r\n fetchOriginalPdfFile(formId) {\r\n const { dispatch } = this.props;\r\n dispatch(getFormPdf({ id: formId, isAdditional: false }));\r\n }\r\n\r\n openConfirmEditFormAssociationsModal(selections) {\r\n this.setState({ isConfirmEditFormAssociationsModalShown: true, associationChanges: selections });\r\n }\r\n\r\n closeConfirmEditFormAssociationsModal() {\r\n this.setState({ isConfirmEditFormAssociationsModalShown: false });\r\n }\r\n\r\n openEditFormAssociationsModal(item) {\r\n const { dispatch } = this.props;\r\n dispatch(showEditFormAssociationsModal(item));\r\n }\r\n\r\n closeEditFormAssociationsModal(item) {\r\n const { dispatch } = this.props;\r\n dispatch(hideEditFormAssociationsModal());\r\n }\r\n\r\n openDeleteFormModal(item) {\r\n const { dispatch } = this.props;\r\n dispatch(showDeleteFormModal(item));\r\n }\r\n\r\n closeDeleteFormModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideDeleteFormModal());\r\n }\r\n\r\n deleteForm() {\r\n const { dispatch, history: { location: { pathname } }, formsToDelete: { formType, id } } = this.props;\r\n const { currentPageNumber, currentPageSize } = this.state;\r\n\r\n let batchId = 0;\r\n let batchFileId = 0;\r\n const path = pathname.split('/');\r\n if (path.length >= 2 && path.indexOf('batches') === 1) {\r\n batchId = path[2];\r\n if (path.length >= 4 && path.indexOf('files') === 3) {\r\n batchFileId = path[4];\r\n }\r\n }\r\n dispatch(deleteBatchForm(batchId, batchFileId, formType, id, currentPageNumber, currentPageSize));\r\n }\r\n\r\n processEditFormAssociations() {\r\n const { dispatch, currentForm: { id }, history: { location: { pathname } } } = this.props;\r\n const { currentPageNumber, currentPageSize, associationChanges } = this.state;\r\n\r\n let batchId = 0;\r\n let batchFileId = null;\r\n const path = pathname.split('/');\r\n if (path.length >= 2 && path.indexOf('batches') === 1) {\r\n batchId = path[2];\r\n if (path.length >= 4 && path.indexOf('files') === 3) {\r\n batchFileId = path[4];\r\n }\r\n }\r\n\r\n dispatch(editBatchFormAssociations(id, associationChanges, currentPageNumber, currentPageSize, batchId, batchFileId));\r\n this.closeConfirmEditFormAssociationsModal();\r\n }\r\n\r\n reAssignItem() {\r\n const { dispatch, changeOwnershipItem } = this.props;\r\n\r\n if (changeOwnershipItem != null && changeOwnershipItem.id != null) {\r\n dispatch(takeQueueItem('form', changeOwnershipItem.id, changeOwnershipItem.accountId));\r\n dispatch(hideOwnershipModal());\r\n }\r\n }\r\n\r\n refreshList() {\r\n const { dispatch } = this.props;\r\n const { currentPageNumber, currentPageSize } = this.state;\r\n const refreshAction = this.getBatchFormAction(currentPageNumber, currentPageSize);\r\n if (refreshAction) {\r\n dispatch(refreshAction[0](...refreshAction[1]));\r\n }\r\n }\r\n\r\n continueFromOwnershipModal() {\r\n const { dispatch, history, changeOwnershipItem } = this.props;\r\n dispatch(hideOwnershipModal());\r\n let redirectUrl = `/forms/${ changeOwnershipItem.formType.toLowerCase() }/${ changeOwnershipItem.id }`;\r\n if (changeOwnershipItem.accountId) {\r\n redirectUrl = `${ redirectUrl }?account=${ changeOwnershipItem.accountId }`;\r\n }\r\n history.push(redirectUrl);\r\n }\r\n\r\n closeFromOwnershipModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideOwnershipModal());\r\n }\r\n\r\n render() {\r\n const {\r\n settings,\r\n permissions,\r\n isGettingBatchForms,\r\n batchItem,\r\n batchFileItem,\r\n batchForms,\r\n batchFormsCount,\r\n isOwnershipModalShown,\r\n isDeleteFormModalShown,\r\n isDeletingForm,\r\n deleteFormError,\r\n changeOwnershipItem,\r\n isEditFormAssociationsModalShown,\r\n isCompletingBatch\r\n } = this.props;\r\n\r\n const {\r\n isConfirmEditFormAssociationsModalShown,\r\n isConfirmCompleteBatchModalShown,\r\n confirmBatchItem\r\n } = this.state;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Uploaded Batch Forms\r\n { batchItem && () }\r\n
    \r\n { this.getCoverSheetMessage() }\r\n
    \r\n
    \r\n
    \r\n
    \r\n { !batchFileItem && AccessControl.hasPermission(permissions, [ActivityPerms.fwfBatchReviewer])\r\n && batchItem && batchItem.statusString === 'Processed' && batchItem.numberOfUnassignedForms === 0 && this.openConfirmCompleteBatchModal(batchItem)\r\n }\r\n >\r\n Complete Batch\r\n }\r\n this.searchInGrid(e) }\r\n onChange={ e => this.searchChanged(e) }\r\n />\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { batchItem && { this.batchFormsGrid = ref; } }\r\n isLoading={ isGettingBatchForms }\r\n rowData={ batchForms }\r\n totalCount={ batchFormsCount }\r\n changePageCallback={ batchForm => this.changePage(batchForm) }\r\n getOriginalPdfFileCallback={ form => this.fetchOriginalPdfFile(form) }\r\n editFormAssociationsCallback={ form => this.openEditFormAssociationsModal(form) }\r\n deleteFormCallback={ form => this.openDeleteFormModal(form) }\r\n batchItem={ batchItem }\r\n /> }\r\n
    \r\n
    \r\n\r\n { isDeleteFormModalShown && this.deleteForm() }\r\n onCancel={ () => this.closeDeleteFormModal() }\r\n deleteFormError={ deleteFormError }\r\n /> }\r\n\r\n { changeOwnershipItem != null && this.reAssignItem() }\r\n onContinueWithoutAssign={ () => this.continueFromOwnershipModal() }\r\n onCancel={ () => this.closeFromOwnershipModal() }\r\n workflowRecord={ changeOwnershipItem }\r\n /> }\r\n\r\n { isEditFormAssociationsModalShown && this.closeEditFormAssociationsModal() }\r\n onConfirmFormAssociations={ selections => this.openConfirmEditFormAssociationsModal(selections) }\r\n /> }\r\n\r\n { isConfirmCompleteBatchModalShown && this.completeBatch() }\r\n onCancel={ () => this.closeConfirmCompleteBatchModel() }\r\n title=\"Confirm Complete Batch\"\r\n message={ `Are you sure you want to complete the batch ${ confirmBatchItem.batchId }?` }\r\n /> }\r\n\r\n { isConfirmEditFormAssociationsModalShown && this.processEditFormAssociations() }\r\n onCancel={ () => this.closeConfirmEditFormAssociationsModal() }\r\n title=\"Confirm Change of Form Associations\"\r\n message=\"Are you sure you want to change the customer / account(s) associated to this form?\"\r\n /> }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n if (!state.auth) {\r\n return {};\r\n }\r\n\r\n const {\r\n auth: {\r\n isAuthenticated,\r\n settings,\r\n permissions\r\n },\r\n batches: {\r\n batchItem,\r\n isCompletingBatch\r\n },\r\n batchForms: {\r\n batchItem: batchItemFromForms,\r\n isGettingBatchForms,\r\n batchFileItem,\r\n batchForms,\r\n batchFormsCount,\r\n editLegalEntityError\r\n },\r\n forms: {\r\n isDeleteFormModalShown,\r\n isDeletingForm,\r\n deleteFormError,\r\n formsToDelete,\r\n isEditFormAssociationsModalShown,\r\n currentForm\r\n },\r\n workflow: {\r\n isOwnershipModalShown,\r\n changeOwnershipItem\r\n }\r\n } = state;\r\n\r\n return {\r\n batchItem: (batchItem && batchItemFromForms && batchItem.id === batchItemFromForms.id && batchItem) || batchItemFromForms,\r\n isAuthenticated,\r\n settings,\r\n permissions,\r\n isGettingBatchForms,\r\n batchFileItem,\r\n batchForms,\r\n batchFormsCount,\r\n editLegalEntityError,\r\n isOwnershipModalShown,\r\n changeOwnershipItem,\r\n isDeleteFormModalShown,\r\n isDeletingForm,\r\n deleteFormError,\r\n formsToDelete,\r\n isEditFormAssociationsModalShown,\r\n currentForm,\r\n isCompletingBatch\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withContainerErrorBoundary(BatchFormsContainer, 'BatchFormsContainer')));\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { reduxForm, Field } from 'redux-form';\r\n\r\nimport PoweredBy from 'components/PoweredBy';\r\n\r\nconst TruncateText = (text) => {\r\n if (text.length > 60) {\r\n text = `${ text.substring(0, 59) }....`;\r\n }\r\n return text;\r\n};\r\n\r\nconst ClientSelectForm = ({\r\n handleSubmit,\r\n errorMessage,\r\n onCloseErrorMessage,\r\n allClients\r\n}) => (\r\n handleSubmit(values) }\r\n >\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n

    \r\n TAINA Fully Automated Tax Form Validator and Classifier\r\n

    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n onCloseErrorMessage() }\r\n >\r\n \r\n { allClients != null && allClients.map(client => client != null && ) }\r\n \r\n
    \r\n
    \r\n\r\n { errorMessage &&
    \r\n
    \r\n onCloseErrorMessage() }\r\n />\r\n { (errorMessage.message)}\r\n
    \r\n
    }\r\n\r\n
    \r\n Go\r\n
    \r\n \r\n);\r\n\r\nClientSelectForm.propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n onCloseErrorMessage: PropTypes.func.isRequired,\r\n allClients: PropTypes.arrayOf(PropTypes.shape()),\r\n errorMessage: PropTypes.shape({\r\n message: PropTypes.string\r\n })\r\n};\r\n\r\nClientSelectForm.defaultProps = {\r\n allClients: [],\r\n errorMessage: null,\r\n};\r\n\r\nexport default reduxForm({\r\n form: 'clientselect-form'\r\n})(ClientSelectForm);\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { history } from 'containers/App';\r\nimport ClientSelectForm from 'components/ClientSelectForm';\r\nimport { proceedWithClient } from 'actions';\r\nimport withContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary';\r\n\r\nclass ClientSelect extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n clients: PropTypes.arrayOf(PropTypes.shape()),\r\n selectedClient: PropTypes.shape({})\r\n };\r\n\r\n static defaultProps = {\r\n clients: [],\r\n selectedClient: null\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n errorMessage: null\r\n };\r\n\r\n const { selectedClient } = this.props;\r\n if (selectedClient != null) {\r\n history.push('/');\r\n }\r\n }\r\n\r\n async proceedWithClient(client) {\r\n if (client.clientId == null) {\r\n this.setState({ errorMessage: { message: 'Please select a valid client' } });\r\n } else {\r\n const { dispatch, clients } = this.props;\r\n const selectedClient = clients.find(keyId => keyId.key === parseInt(client.clientId, 10));\r\n await dispatch(proceedWithClient(selectedClient));\r\n history.push('/');\r\n }\r\n }\r\n\r\n resetErrorMessage() {\r\n this.setState({ errorMessage: null });\r\n }\r\n\r\n render() {\r\n const { errorMessage } = this.state;\r\n const { clients } = this.props;\r\n\r\n return (\r\n
    \r\n this.proceedWithClient(client) }\r\n onCloseErrorMessage={ () => this.resetErrorMessage() }\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\n// eslint-disable-next-line consistent-return\r\nconst mapStateToProps = (state) => {\r\n if (state.auth && state.auth.settings) {\r\n const {\r\n auth: {\r\n settings: {\r\n clients,\r\n selectedClient\r\n }\r\n },\r\n } = state;\r\n return {\r\n clients,\r\n selectedClient\r\n };\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withContainerErrorBoundary(ClientSelect, 'ClientSelect'));\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport RedirectButton from 'components/Common/Buttons/RedirectButton';\r\nimport ErrorGraphic from '../ErrorGraphic';\r\n\r\nconst UnauthorizedPage = ({ caption }) => (\r\n
    \r\n \r\n
    \r\n

    Access Denied

    \r\n

    { caption }

    \r\n
    \r\n
    \r\n \r\n Go to home page\r\n
    \r\n
    \r\n
    \r\n
    \r\n);\r\n\r\nUnauthorizedPage.propTypes = {\r\n caption: PropTypes.string\r\n};\r\n\r\nUnauthorizedPage.defaultProps = {\r\n caption: 'You must be logged with the correct rights to access this page. Please check your login and try again or speak to your system administrator.'\r\n};\r\n\r\nexport default UnauthorizedPage;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport RedirectButton from 'components/Common/Buttons/RedirectButton';\r\nimport ErrorGraphic from '../ErrorGraphic';\r\n\r\nconst UnlicensedPage = ({ caption }) => (\r\n
    \r\n \r\n
    \r\n

    Access Not Granted

    \r\n

    { caption }

    \r\n
    \r\n
    \r\n \r\n Go to home page\r\n
    \r\n
    \r\n
    \r\n
    \r\n);\r\n\r\nUnlicensedPage.propTypes = {\r\n caption: PropTypes.string\r\n};\r\n\r\nUnlicensedPage.defaultProps = {\r\n caption: 'You have not been permissioned to access this module. Please contact your vendor manager.'\r\n};\r\n\r\nexport default UnlicensedPage;\r\n","import React, { PureComponent } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { reduxForm, Field } from 'redux-form';\r\nimport { TextInput } from 'components/Common/Inputs';\r\n\r\nconst isRequired = value => !value || !value.trim();\r\n\r\nclass PasswordChangeForm extends PureComponent {\r\n static propTypes = {\r\n handleSubmit: PropTypes.func.isRequired,\r\n id: PropTypes.string.isRequired\r\n };\r\n\r\n render() {\r\n const {\r\n handleSubmit,\r\n id\r\n } = this.props;\r\n return (\r\n handleSubmit(values) }\r\n className=\"form-horizontal\"\r\n >\r\n
    \r\n
    \r\n \r\n New Password\r\n \r\n value && value.replace(/^[ ]+/g, '') }\r\n validate={ isRequired }\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n Confirm Password\r\n \r\n value && value.replace(/^[ ]+/g, '') }\r\n validate={ isRequired }\r\n />\r\n
    \r\n
    \r\n Calculate\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default reduxForm({\r\n form: 'pwdChgForm'\r\n})(PasswordChangeForm);\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { closeFailedPasswordChangeModalError } from 'actions';\r\n\r\nimport ModalWrapper from '../ModalWrapper';\r\nimport PasswordChangeForm from './PasswordChangeForm';\r\n\r\nclass PasswordChangeModal extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n isShown: PropTypes.bool.isRequired,\r\n onConfirmUpdate: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n changePasswordError: PropTypes.shape({\r\n code: PropTypes.number,\r\n message: PropTypes.string\r\n })\r\n };\r\n\r\n static defaultProps = {\r\n changePasswordError: null\r\n };\r\n\r\n hideError() {\r\n const { dispatch } = this.props;\r\n dispatch(closeFailedPasswordChangeModalError());\r\n }\r\n\r\n render() {\r\n const {\r\n isShown,\r\n onCancel,\r\n onConfirmUpdate,\r\n changePasswordError\r\n } = this.props;\r\n return (\r\n \r\n

    \r\n Please enter and confirm a new password\r\n

    \r\n\r\n
    \r\n \r\n { changePasswordError && changePasswordError.code !== 0 &&
    \r\n
    }\r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n changePasswordError\r\n }\r\n } = state;\r\n\r\n return {\r\n changePasswordError\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(PasswordChangeModal);\r\n","import React, { useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport PoweredBy from 'components/PoweredBy';\r\n\r\nimport {\r\n closeAboutModal,\r\n getApiStatus,\r\n} from 'actions';\r\n\r\nconst AboutModal = () => {\r\n const dispatch = useDispatch();\r\n const version = useSelector(state => state.common?.apiStatus);\r\n\r\n useEffect(() => {\r\n dispatch(getApiStatus());\r\n }, []);\r\n\r\n return ( dispatch(closeAboutModal()) }\r\n onCancel={ () => dispatch(closeAboutModal()) }\r\n >\r\n
    \r\n
    \r\n
    \r\n \r\n

    \r\n TAINA Fully Automated Tax Form Validator and Classifier\r\n

    \r\n

    Version:

    \r\n
    \r\n { version && \r\n
    \r\n Status: { version.Status }\r\n
    \r\n
    \r\n API Versions\r\n
    \r\n { version.Assemblies && Object.keys(version.Assemblies).map(x => \r\n
    { x }
    \r\n
    { version.Assemblies[x] }
    \r\n
    )}\r\n
    \r\n
    \r\n
    }\r\n
    \r\n );\r\n};\r\n\r\nexport default AboutModal;\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { NavLink, Link } from 'react-router-dom';\r\nimport { withRouter } from 'react-router';\r\n\r\nimport { logoutUser,\r\n showPasswordChangeModal,\r\n hidePasswordChangeModal,\r\n userPasswordChange,\r\n getCicAlertCounts,\r\n openAboutModal\r\n} from 'actions';\r\n\r\nimport { AuthMode } from 'actions/auth/common';\r\n\r\nimport blanks from 'components/Blanks/blanks.json';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport PasswordChangeModal from 'components/Modals/PasswordChangeModal';\r\nimport withContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary';\r\nimport PoweredBy from 'components/PoweredBy';\r\nimport AboutModal from 'components/Modals/AboutModal';\r\n\r\nclass Header extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n location: PropTypes.shape().isRequired,\r\n username: PropTypes.string.isRequired,\r\n settings: PropTypes.shape(),\r\n sessionAuthMode: PropTypes.string,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n isPasswordChangeModalShown: PropTypes.bool,\r\n cicAlertsUnassignedCount: PropTypes.number,\r\n cicAlertsAssignedCount: PropTypes.number,\r\n isAboutOpen: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n settings: null,\r\n permissions: null,\r\n sessionAuthMode: AuthMode.Manual,\r\n isPasswordChangeModalShown: false,\r\n cicAlertsUnassignedCount: 0,\r\n cicAlertsAssignedCount: 0,\r\n isAboutOpen: false\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n moduleMenuShown: false,\r\n bellPopupShown: false,\r\n includeUnassigned: true\r\n };\r\n }\r\n\r\n /* eslint-disable-next-line camelcase */\r\n UNSAFE_componentWillMount() {\r\n document.addEventListener('click', this.handleClickOutside, true);\r\n document.addEventListener('click', this.handleClickOutsideBellPopup, true);\r\n this.getCicAlertCounts();\r\n }\r\n\r\n componentWillUnmount() {\r\n document.removeEventListener('click', this.handleClickOutside, true);\r\n document.removeEventListener('click', this.handleClickOutsideBellPopup, true);\r\n }\r\n\r\n get changePasswordText() {\r\n const { sessionAuthMode } = this.props;\r\n return (sessionAuthMode !== AuthMode.SSO) ? 'Change Password' : null;\r\n }\r\n\r\n setIncludeAssigned(includeUnassigned) {\r\n this.setState({ includeUnassigned });\r\n }\r\n\r\n getBellClassName() {\r\n const { cicAlertsUnassignedCount, cicAlertsAssignedCount } = this.props;\r\n const { includeUnassigned } = this.state;\r\n if ((!includeUnassigned || cicAlertsUnassignedCount === 0) && cicAlertsAssignedCount === 0) return 'standard';\r\n return 'red';\r\n }\r\n\r\n getCicAlertCounts() {\r\n const { settings, permissions, dispatch } = this.props;\r\n\r\n const modulesLicenced = settings && (settings.showBatches || settings.showOngoingMonitoring || settings.showDigitalEntry);\r\n\r\n if (modulesLicenced && (AccessControl.hasPermission(permissions, [ActivityPerms.monitoringExpertReviewer, ActivityPerms.monitoringResolver], true))) {\r\n dispatch(getCicAlertCounts());\r\n }\r\n }\r\n\r\n handleClickOutside = (event) => {\r\n const { moduleMenuShown } = this.state;\r\n if (moduleMenuShown && (!this.moduleMenu || !this.moduleMenu.contains(event.target))) {\r\n this.toggleMenu();\r\n }\r\n };\r\n\r\n handleClickOutsideBellPopup = (event) => {\r\n const { bellPopupShown } = this.state;\r\n if (bellPopupShown && (!this.bellpopup || !this.bellpopup.contains(event.target))) {\r\n this.toggleBellPopup();\r\n }\r\n };\r\n\r\n logout() {\r\n const { dispatch, settings, sessionAuthMode } = this.props;\r\n const switchClient = sessionAuthMode === AuthMode.SSO && settings && settings.clients && settings.clients.length !== 1;\r\n dispatch(logoutUser(switchClient, sessionAuthMode === AuthMode.SSO));\r\n localStorage.setItem('taina.logout', Date.now());\r\n }\r\n\r\n openPasswordChangeModal() {\r\n const { dispatch, sessionAuthMode } = this.props;\r\n\r\n if (sessionAuthMode === AuthMode.SSO) {\r\n // Don't allow user to change password when logged in via SSO\r\n return;\r\n }\r\n\r\n dispatch(showPasswordChangeModal());\r\n }\r\n\r\n closePasswordChangeModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hidePasswordChangeModal());\r\n }\r\n\r\n processPasswordChangeModal(updateData) {\r\n const { dispatch, username } = this.props;\r\n dispatch(userPasswordChange(username, updateData));\r\n }\r\n\r\n toggleMenu() {\r\n const { moduleMenuShown } = this.state;\r\n this.setState({ moduleMenuShown: !moduleMenuShown });\r\n }\r\n\r\n toggleBellPopup() {\r\n const { bellPopupShown } = this.state;\r\n this.setState({ bellPopupShown: !bellPopupShown });\r\n }\r\n\r\n showModuleMenu() {\r\n const { settings, permissions } = this.props;\r\n\r\n const modulesLicenced = settings && (settings.showBatches || settings.showOngoingMonitoring || settings.showDigitalEntry);\r\n\r\n return modulesLicenced && (AccessControl.hasPermission(permissions, [\r\n ActivityPerms.monitoringExpertReviewer,\r\n ActivityPerms.monitoringResolver,\r\n ActivityPerms.scannedViewBatches\r\n ]) || AccessControl.hasPermission(permissions, [\r\n ActivityPerms.fwfInitialReviewer,\r\n ActivityPerms.digitalEntryAccessPortal\r\n ], true));\r\n }\r\n\r\n showBellPopup() {\r\n const { settings, permissions } = this.props;\r\n const modulesLicenced = settings && settings.showOngoingMonitoring;\r\n return modulesLicenced && (AccessControl.hasPermission(permissions, [ActivityPerms.monitoringExpertReviewer, ActivityPerms.monitoringResolver], true));\r\n }\r\n\r\n openAbout() {\r\n const { dispatch } = this.props;\r\n dispatch(openAboutModal());\r\n }\r\n\r\n renderBlankTitle() {\r\n const { location: { pathname } } = this.props;\r\n const path = pathname.split('/');\r\n if (\r\n path.length === 4 || (path.length === 5 && path.indexOf('pdf') !== -1)\r\n ) {\r\n return blanks[path[2]];\r\n }\r\n return null;\r\n }\r\n\r\n render() {\r\n const {\r\n location,\r\n username,\r\n settings,\r\n permissions,\r\n isPasswordChangeModalShown,\r\n cicAlertsAssignedCount,\r\n cicAlertsUnassignedCount,\r\n isAboutOpen\r\n } = this.props;\r\n const { moduleMenuShown, bellPopupShown, includeUnassigned } = this.state;\r\n const path = location.pathname;\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n
      \r\n
    • \r\n
      \r\n \"Avatar\"\r\n
      \r\n
      \r\n { username }\r\n this.logout() }\r\n >\r\n Logout\r\n \r\n
      \r\n
    • \r\n
    • \r\n \r\n HOME\r\n \r\n
    • \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.scannedValidate, ActivityPerms.electronicValidate]) ?
    • \r\n \r\n Validation Results\r\n \r\n
    • : null }\r\n { AccessControl.hasPermission(permissions, [ActivityPerms.miView]) ?
    • \r\n \r\n MI\r\n \r\n
    • : null }\r\n { settings && settings.showBatches && AccessControl.hasPermission(permissions, [ActivityPerms.scannedViewBatches]) ?
    • \r\n \r\n Batches\r\n \r\n
    • : null }\r\n { settings && settings.showDigitalEntry && AccessControl.hasPermission(permissions, [ActivityPerms.digitalEntryAccessPortal, ActivityPerms.fwfInitialReviewer], true) ?
    • \r\n \r\n Digital Entry\r\n \r\n
    • : null }\r\n {\r\n // eslint-disable-next-line jsx-a11y/anchor-is-valid\r\n
    • this.openAbout() }>About
    • \r\n }\r\n
    \r\n
    \r\n this.processPasswordChangeModal(updateData) }\r\n onCancel={ () => this.closePasswordChangeModal() }\r\n />\r\n { isAboutOpen && }\r\n \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n isPasswordChangeModalShown,\r\n sessionAuthMode\r\n },\r\n common: {\r\n isAboutOpen\r\n },\r\n monitoring: {\r\n cicAlertsUnassignedCount,\r\n cicAlertsAssignedCount\r\n }\r\n } = state;\r\n\r\n return {\r\n isPasswordChangeModalShown,\r\n isAboutOpen,\r\n sessionAuthMode,\r\n cicAlertsUnassignedCount,\r\n cicAlertsAssignedCount\r\n };\r\n}\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps\r\n)(withContainerErrorBoundary(Header, 'Header')));\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nconst Banner = ({ mainText, subText, className }) => (\r\n

    { mainText }

    \r\n { subText &&
    {subText}
    }\r\n
    \r\n);\r\n\r\nBanner.propTypes = {\r\n mainText: PropTypes.string,\r\n subText: PropTypes.string,\r\n className: PropTypes.string\r\n};\r\n\r\nBanner.defaultProps = {\r\n mainText: null,\r\n subText: null,\r\n className: ''\r\n};\r\n\r\nexport default Banner;\r\n","import React from 'react';\r\n\r\nconst ColourKey = () => (\r\n
    \r\n

    Colour Key:

    \r\n
      \r\n
    • Valid (Not Expired) - W-8IMY
    • \r\n
    • Valid (Not Expired) - Non W-8IMY
    • \r\n
    • Invalid/Expired
    • \r\n
    • Initial Review
    • \r\n
    • Secondary/Expert Review
    • \r\n
    • Unknown Recipient
    • \r\n
    \r\n
    \r\n);\r\n\r\nexport default ColourKey;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nconst ImyNode = ({ node, showWithholdingRates }) => {\r\n let nodeType = 'BO';\r\n nodeType = (node.formType && node.formType.indexOf('imy') !== -1) || (node.children !== null && node.children.length > 0) ? 'IMY' : nodeType;\r\n nodeType = (node.structureId) ? 'ROOT' : nodeType;\r\n const ratesExist = node.filteredRates != null && node.filteredRates.length > 0;\r\n\r\n return (\r\n { (!node.name || node.name.length <= 40 ? node.name ?? 'NOT GIVEN' : `${ node.name.substring(0, 39) }...`) }\r\n { node.attributes != null && Object.keys(node.attributes).map((a) => {\r\n if (node.attributes[a] && a !== 'Income Allocation') {\r\n return \r\n { a }: { (node.attributes[a]?.length <= 40 ? node.attributes[a] : `${ node.attributes[a].substring(0, 39) }...`) }\r\n ;\r\n }\r\n return null;\r\n }) }\r\n { showWithholdingRates && !ratesExist && No Rates }\r\n { showWithholdingRates && ratesExist && \r\n { nodeType === 'ROOT' &&
    \r\n

    Blended Rates

    \r\n
    \r\n Payment Type\r\n Whs. Alloc.\r\n Tier Alloc.\r\n Blended Rate\r\n State\r\n
    \r\n { node.filteredRates.map(rate =>
    \r\n { rate.paymentType }\r\n { rate.stmtIncomeAllocation ?? 'N/A' }\r\n { rate.blendedIncomeAllocation ?? 'N/A' }\r\n { rate.blendedRate ?? 'N/A' }\r\n { rate.state ?? 'N/A' }\r\n
    ) }\r\n
    }\r\n { nodeType === 'IMY' &&
    \r\n

    Blended Rates

    \r\n
    \r\n Payment Type\r\n Whs. Alloc.\r\n Tier Alloc.\r\n Blended Rate\r\n Breakout Rate\r\n State\r\n
    \r\n { node.filteredRates.map(rate =>
    \r\n { rate.paymentType }\r\n { rate.stmtIncomeAllocation ?? 'N/A' }\r\n { rate.incomeAllocation ?? 'N/A' }\r\n { rate.blendedRate ?? 'N/A' }\r\n { rate.blendedBreakoutRate ?? 'N/A' }\r\n { rate.state ?? 'N/A' }\r\n
    ) }\r\n
    }\r\n { nodeType === 'BO' &&
    \r\n

    Breakout Rates

    \r\n
    \r\n Payment Type\r\n Whs. Alloc.\r\n Tier Alloc.\r\n Whd. Rate\r\n Breakout Rate\r\n State\r\n Whd. Type\r\n
    \r\n { node.filteredRates.map((rate, i) =>
    \r\n { rate.paymentType }\r\n { rate.stmtIncomeAllocation ?? 'N/A' }\r\n { rate.incomeAllocation ?? 'N/A' }\r\n { rate.rate ?? 'N/A' }\r\n { rate.breakoutRate ?? 'N/A' }\r\n { rate.state ?? 'N/A' }\r\n { rate.whdType ?? 'N/A' }\r\n
    ) }\r\n
    }\r\n
    }\r\n
    );\r\n};\r\n\r\nImyNode.propTypes = {\r\n node: PropTypes.shape().isRequired,\r\n showWithholdingRates: PropTypes.bool\r\n};\r\n\r\nImyNode.defaultProps = {\r\n showWithholdingRates: false\r\n};\r\n\r\nexport default ImyNode;\r\n","import React from 'react';\r\nimport moment from 'moment';\r\nimport { withRouter } from 'react-router';\r\nimport { connect } from 'react-redux';\r\nimport { PropTypes } from 'prop-types';\r\nimport ReactSortableTree from '@nosferatu500/react-sortable-tree';\r\nimport {\r\n addForm,\r\n showAddFormModal,\r\n hideAddFormModal,\r\n hideDeleteFormModal,\r\n showDeleteFormModal,\r\n deleteFormFromTree,\r\n showOwnershipModal,\r\n hideOwnershipModal,\r\n takeQueueItem,\r\n hideImyTreeWithholding,\r\n saveImyTreeViewOptions,\r\n setPaymentTypes,\r\n setStructureId,\r\n GetLinkOperationStatus\r\n} from 'actions';\r\nimport { ApiService } from 'services';\r\n\r\nimport { history } from 'containers/App';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\n\r\nimport StatementTypes from 'common/Forms/StatementTypes';\r\nimport NotFoundPage from 'components/Errors/NotFoundPage';\r\nimport DeleteFormModal from 'components/Modals/DeleteFormModal';\r\nimport AddFormModal from 'components/Modals/AddFormModal';\r\nimport ChangeOwnershipModal from 'components/Modals/ChangeOwnershipModal';\r\nimport { FormViewButton } from 'components/Common/Buttons/FormViewButton';\r\nimport withContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary';\r\nimport Banner from 'components/Common/Banner';\r\nimport LinkWhsAccountModal from 'components/Modals/LinkWhsAccountModal';\r\n\r\nimport ColourKey from './ColourKey';\r\nimport ImyNode from './imyNode';\r\n\r\nclass VisualiseW8Imy extends React.PureComponent {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n match: PropTypes.shape({\r\n params: PropTypes.shape({\r\n accountId: PropTypes.string.isRequired,\r\n versionNumber: PropTypes.string\r\n }).isRequired\r\n }).isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n settings: PropTypes.shape({\r\n showWithholding: PropTypes.bool,\r\n selectedClient: PropTypes.shape({\r\n isPiiProtectionEnabled: PropTypes.bool\r\n })\r\n }),\r\n isAddFormModalShown: PropTypes.bool.isRequired,\r\n isDeleteFormModalShown: PropTypes.bool,\r\n isDeletingForm: PropTypes.bool,\r\n deleteFormError: PropTypes.string,\r\n deleteFormResponse: PropTypes.number,\r\n formsToDelete: PropTypes.arrayOf(PropTypes.shape()),\r\n isOwnershipModalShown: PropTypes.bool,\r\n changeOwnershipItem: PropTypes.shape(),\r\n imyTreeViewOptions: PropTypes.shape({}),\r\n currentStructureId: PropTypes.number,\r\n isLinkingToImyStructureModalShown: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n permissions: null,\r\n settings: null,\r\n isDeleteFormModalShown: false,\r\n isDeletingForm: false,\r\n deleteFormError: null,\r\n deleteFormResponse: null,\r\n formsToDelete: null,\r\n isOwnershipModalShown: false,\r\n changeOwnershipItem: null,\r\n imyTreeViewOptions: {\r\n displayMode: 'all',\r\n showWithholdingRates: false\r\n },\r\n currentStructureId: 0,\r\n isLinkingToImyStructureModalShown: false\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n statementType: null,\r\n rawData: null,\r\n data: null,\r\n treeError: null,\r\n displayWithholdingOption: props.settings && props.settings.showWithholding,\r\n imyOptions: props.imyTreeViewOptions,\r\n };\r\n }\r\n\r\n /* eslint-disable-next-line camelcase */\r\n UNSAFE_componentWillMount() {\r\n this.fetchTree();\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n const { deleteFormResponse, isDeletingForm, imyTreeViewOptions } = this.props;\r\n const { data, imyOptions } = this.state;\r\n\r\n if (prevProps.isDeletingForm && !isDeletingForm\r\n && prevProps.deleteFormResponse === null && deleteFormResponse !== null\r\n && (data == null || data.length === 0 || data[0] == null || data[0].id == null || parseInt(data[0].id, 10) !== deleteFormResponse)) {\r\n this.fetchTree();\r\n }\r\n\r\n /* eslint-disable react/prop-types */\r\n if (imyOptions.structureId !== imyTreeViewOptions.structureId) {\r\n this.updateOptions(imyTreeViewOptions);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { dispatch } = this.props;\r\n dispatch(hideImyTreeWithholding());\r\n dispatch(hideOwnershipModal());\r\n dispatch(setStructureId(0));\r\n this.storeImyOptions();\r\n }\r\n\r\n onTitleClick(node) {\r\n const { dispatch, permissions } = this.props;\r\n\r\n const wfStatus = node.workflowStatus != null && node.workflowStatus.toLowerCase();\r\n const form = {\r\n id: node.id,\r\n accountId: node.accountId,\r\n formType: node.formType.toLowerCase(),\r\n workflowStatus: node.workflowStatus,\r\n workflowUsername: node.workflowUsername,\r\n workflowUserFullName: node.workflowUserFullName\r\n };\r\n let formUrl = `/forms/${ node.formType }/${ node.id }`;\r\n if (node.accountId) {\r\n formUrl = `${ formUrl }?account=${ node.accountId }`;\r\n }\r\n if (FormViewButton.isUserFormOwner(node.workflowUsername) || wfStatus === 'complete') {\r\n history.push(formUrl);\r\n } else if (FormViewButton.showModal(permissions, form)) {\r\n dispatch(showOwnershipModal({\r\n id: form.id,\r\n accountId: form.accountId,\r\n formType: form.formType,\r\n currentUser: form.workflowUsername,\r\n currentUserFullName: form.workflowUserFullName\r\n }));\r\n } else {\r\n if (wfStatus.includes('initial') && AccessControl.hasPermission(permissions, [ActivityPerms.fwfInitialReviewer])) {\r\n dispatch(takeQueueItem('form', form.id, form.accountId));\r\n }\r\n\r\n if (wfStatus.includes('secondary') && AccessControl.hasPermission(permissions, [ActivityPerms.fwfSecondaryReviewer])) {\r\n dispatch(takeQueueItem('form', form.id, form.accountId));\r\n }\r\n }\r\n }\r\n\r\n get isPooledStatementType() {\r\n const { statementType } = this.state;\r\n return statementType === StatementTypes.PooledWhdStatement || statementType === StatementTypes.QiPooled || statementType === StatementTypes.NqiPooled;\r\n }\r\n\r\n get isStructureValid() {\r\n const { rawData } = this.state;\r\n return rawData && rawData.length > 0 && rawData[0].isStructureValid;\r\n }\r\n\r\n getRowHeight() {\r\n const { imyOptions: { showWithholdingRates, selectedPaymentTypes }, displayWithholdingOption, data } = this.state;\r\n if (showWithholdingRates) {\r\n const includesStatesRates = this.areStateRatesIncluded(data[0]);\r\n return (220 + (selectedPaymentTypes.length * 16 * (includesStatesRates ? 3 : 1)));\r\n }\r\n return displayWithholdingOption ? 155 : 175;\r\n }\r\n\r\n storeImyOptions = () => {\r\n const { dispatch, currentStructureId } = this.props;\r\n const { imyOptions } = this.state;\r\n dispatch(saveImyTreeViewOptions(currentStructureId, imyOptions));\r\n };\r\n\r\n onPaymentTypesSelectChanged = (e) => {\r\n const { imyOptions: { structureId, displayMode, showWithholdingRates, selectedPaymentTypes, availablePaymentTypes } } = this.state;\r\n\r\n selectedPaymentTypes.push(e.target.value);\r\n availablePaymentTypes.splice(availablePaymentTypes.indexOf(e.target.value), 1);\r\n availablePaymentTypes.sort();\r\n\r\n const newOptions = {\r\n structureId,\r\n displayMode,\r\n showWithholdingRates,\r\n selectedPaymentTypes,\r\n availablePaymentTypes };\r\n\r\n this.setState({ imyOptions: newOptions }, () => this.refreshData());\r\n };\r\n\r\n onPaymentTypeRemoved = (paymentType) => {\r\n const { imyOptions: { structureId, displayMode, showWithholdingRates, selectedPaymentTypes, availablePaymentTypes } } = this.state;\r\n\r\n availablePaymentTypes.push(paymentType);\r\n selectedPaymentTypes.splice(selectedPaymentTypes.indexOf(paymentType), 1);\r\n availablePaymentTypes.sort();\r\n\r\n const newOptions = {\r\n structureId,\r\n displayMode,\r\n showWithholdingRates,\r\n selectedPaymentTypes,\r\n availablePaymentTypes\r\n };\r\n\r\n this.setState({ imyOptions: newOptions }, () => this.refreshData());\r\n };\r\n\r\n onClearPaymentTypes = () => {\r\n const { imyOptions: { structureId, displayMode, showWithholdingRates, selectedPaymentTypes, availablePaymentTypes } } = this.state;\r\n\r\n const temp = JSON.parse(JSON.stringify(selectedPaymentTypes));\r\n temp.forEach((paymentType, index) => {\r\n availablePaymentTypes.push(paymentType);\r\n selectedPaymentTypes.splice(selectedPaymentTypes.indexOf(paymentType), 1);\r\n });\r\n availablePaymentTypes.sort();\r\n\r\n const newOptions = {\r\n structureId,\r\n displayMode,\r\n showWithholdingRates,\r\n selectedPaymentTypes,\r\n availablePaymentTypes\r\n };\r\n\r\n this.setState({ imyOptions: newOptions }, () => this.refreshData());\r\n };\r\n\r\n applyPaymentTypeFilter = (node) => {\r\n const { imyOptions: { selectedPaymentTypes } } = this.state;\r\n\r\n if (node.children != null && node.children.length > 0) {\r\n node.children.forEach(child => this.applyPaymentTypeFilter(child));\r\n }\r\n\r\n node.filteredRates = [];\r\n if (node.rates != null && node.rates.length > 0) {\r\n node.rates.forEach((rate) => {\r\n if (selectedPaymentTypes.indexOf(rate.paymentType) > -1) {\r\n node.filteredRates.push(rate);\r\n }\r\n });\r\n }\r\n\r\n if (node.filteredRates != null) {\r\n this.addMissingFields(node);\r\n }\r\n\r\n return node;\r\n };\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n addMissingFields(obj) {\r\n if (obj != null) {\r\n obj.expanded = true;\r\n }\r\n }\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n areStateRatesIncluded(data) {\r\n if (!data) {\r\n return false;\r\n }\r\n if (data.rates && data.rates.length > 0) {\r\n for (let i = 0; i < data.rates.length; i += 1) {\r\n if (data.rates[i].state) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (data.children && data.children.length > 0) {\r\n for (let i = 0; i < data.children.length; i += 1) {\r\n if (this.areStateRatesIncluded(data.children[i])) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n updateOptions(newOptions) {\r\n this.setState({ imyOptions: newOptions }, () => this.refreshData());\r\n }\r\n\r\n fetchTree() {\r\n const { match, dispatch } = this.props;\r\n const { imyOptions: { displayMode, showWithholdingRates } } = this.state;\r\n\r\n const transform = (array) => {\r\n array.forEach((item) => {\r\n if (item != null) {\r\n this.addMissingFields(item);\r\n if (item.children != null) {\r\n transform(item.children);\r\n }\r\n }\r\n });\r\n };\r\n\r\n ApiService\r\n .getW8ImyTreeStructure(match.params.accountId, match.params.versionNumber)\r\n .then((result) => {\r\n const { data } = result;\r\n\r\n const root = {\r\n id: data.id,\r\n structureId: data.id,\r\n formId: data.formId,\r\n name: data.name,\r\n formType: data.formType,\r\n valid: data.valid,\r\n expired: data.expired,\r\n isFFI: data.isFFI,\r\n isLayer: data.isLayer,\r\n taxRegimeType: data.taxRegimeType,\r\n accountId: data.accountId,\r\n customerId: data.customerId,\r\n customerDbId: data.customerDbId,\r\n title: data.title,\r\n workflowStatus: data.workflowStatus,\r\n workflowUsername: data.workflowUsername,\r\n workflowUserFullName: data.workflowUserFullName,\r\n workflowPhase: data.workflowPhase,\r\n children: data.children,\r\n expanded: true,\r\n rates: data.rates,\r\n attributes: data.attributes,\r\n workflowComplete: data.workflowComplete,\r\n isStructureValid: data.attributes != null && Object.prototype.hasOwnProperty.call(data.attributes, 'Structure is') && data.attributes['Structure is'] === 'Valid',\r\n isWhsLinkingActive: data.isWhsLinkingActive,\r\n effectiveFrom: data.effectiveFrom,\r\n effectiveTo: data.effectiveTo\r\n };\r\n\r\n this.setState({ statementType: data.statementType });\r\n dispatch(setStructureId(root.structureId));\r\n if (root.isWhsLinkingActive) {\r\n dispatch(GetLinkOperationStatus(root.accountId));\r\n }\r\n\r\n transform(root.children);\r\n\r\n if (data.statementType === StatementTypes.PooledWhdStatement) {\r\n const newOptions = {\r\n structureId: root.structureId,\r\n displayMode,\r\n showWithholdingRates: showWithholdingRates && root.isStructureValid,\r\n selectedPaymentTypes: data.paymentTypes ? data.paymentTypes : [],\r\n availablePaymentTypes: []\r\n };\r\n dispatch(setPaymentTypes(root.structureId, newOptions));\r\n } else {\r\n const defaultSelectedTypes = ['Dividends - Ordinary(Private)', 'Dividends - Ordinary(Public)'];\r\n\r\n const newOptions = {\r\n structureId: root.structureId,\r\n displayMode,\r\n showWithholdingRates: showWithholdingRates && root.isStructureValid,\r\n selectedPaymentTypes: data.paymentTypes ? defaultSelectedTypes : [],\r\n availablePaymentTypes: data.paymentTypes ? data.paymentTypes.filter(x => !defaultSelectedTypes.includes(x)) : []\r\n };\r\n dispatch(setPaymentTypes(root.structureId, newOptions));\r\n }\r\n\r\n if (displayMode === 'imyOnly') {\r\n let imys = JSON.parse(JSON.stringify(root));\r\n imys = this.filterImys([imys]);\r\n this.setState({ rawData: [root], data: [imys[0]] }, () => {\r\n this.refreshData();\r\n });\r\n } else {\r\n this.setState({ rawData: [root], data: [root] }, () => {\r\n this.refreshData();\r\n });\r\n }\r\n }).catch((err) => {\r\n if (err.response && err.response.data) {\r\n this.setState({ data: null, treeError: err.response.data });\r\n } else {\r\n this.setState({\r\n data: null,\r\n treeError: {\r\n code: 502,\r\n message: 'Sorry, there was a problem getting the W-8IMY tree structure'\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n openAddFormModal(item) {\r\n const { dispatch } = this.props;\r\n const imyTier = {\r\n accountId: item.accountId,\r\n accountName: item.name,\r\n // accountNumber: datum.accountNumber,\r\n customerDbId: item.customerDbId,\r\n customerId: item.customerId,\r\n customerName: item.name\r\n };\r\n dispatch(showAddFormModal(imyTier, false));\r\n }\r\n\r\n addForms(parentForm, values, onlineForm) {\r\n const { dispatch } = this.props;\r\n dispatch(addForm(parentForm, values, onlineForm));\r\n }\r\n\r\n closeAddFormModal(item) {\r\n const { dispatch } = this.props;\r\n dispatch(hideAddFormModal(item));\r\n this.fetchTree();\r\n }\r\n\r\n closeDeleteFormModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideDeleteFormModal());\r\n }\r\n\r\n openDeleteFormModal(item) {\r\n const { dispatch } = this.props;\r\n dispatch(showDeleteFormModal([item]));\r\n }\r\n\r\n deleteForm() {\r\n const { dispatch, formsToDelete } = this.props;\r\n const { data } = this.state;\r\n\r\n if (!formsToDelete || !formsToDelete.length === 0) {\r\n return;\r\n }\r\n\r\n const [formToDelete] = formsToDelete;\r\n const redirectAfterDelete = (!data || (data.length === 1 && data[0].id === formToDelete.id));\r\n dispatch(deleteFormFromTree(formToDelete.formType, formToDelete.id, redirectAfterDelete));\r\n }\r\n\r\n filterImys(forms) {\r\n const { imyOptions: { showWithholdingRates } } = this.state;\r\n const r = forms?.filter((o) => {\r\n const hasChildren = o.children && o.children.length > 0;\r\n if (o.children) o.children = this.filterImys(o.children);\r\n return ((hasChildren) || (o.formType != null && o.formType.startsWith('w8imy')) || (o.name && o.name.indexOf('Unknown Recipient') >= 0 && showWithholdingRates));\r\n });\r\n return r;\r\n }\r\n\r\n findForm(currentNode, name) {\r\n if (currentNode != null) {\r\n if (name === currentNode.name) {\r\n return currentNode;\r\n }\r\n if (currentNode.children != null) {\r\n // Use a for loop instead of forEach to avoid nested functions\r\n // Otherwise \"return\" will not work properly\r\n for (let i = 0; i < currentNode.children.length; i += 1) {\r\n const currentChild = currentNode.children[i];\r\n let result = null;\r\n if (currentChild != null) {\r\n // Search in the current child\r\n result = this.findForm(currentChild, name);\r\n }\r\n // Return the result if the node has been found\r\n if (result != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n // The node has not been found and we have no more options\r\n return null;\r\n }\r\n return null;\r\n }\r\n\r\n toggleDisplayMode() {\r\n const { rawData, imyOptions: { structureId, showWithholdingRates, selectedPaymentTypes, availablePaymentTypes } } = this.state;\r\n\r\n this.setState((prevState) => {\r\n if (prevState.imyOptions.displayMode === 'imyOnly') {\r\n const imys = JSON.parse(JSON.stringify(rawData));\r\n imys[0] = this.applyPaymentTypeFilter(imys[0]);\r\n return {\r\n imyOptions: { structureId, displayMode: 'all', showWithholdingRates, selectedPaymentTypes, availablePaymentTypes },\r\n data: imys\r\n };\r\n }\r\n\r\n let imys = JSON.parse(JSON.stringify(rawData));\r\n imys = this.filterImys(imys);\r\n imys[0] = this.applyPaymentTypeFilter(imys[0]);\r\n return {\r\n imyOptions: { structureId, displayMode: 'imyOnly', showWithholdingRates, selectedPaymentTypes, availablePaymentTypes },\r\n data: imys\r\n };\r\n }, () => {\r\n this.storeImyOptions();\r\n });\r\n }\r\n\r\n toggleShowWithholding() {\r\n const { imyOptions: { structureId, displayMode, showWithholdingRates, selectedPaymentTypes, availablePaymentTypes } } = this.state;\r\n this.setState({\r\n imyOptions: { structureId, displayMode, showWithholdingRates: !showWithholdingRates, selectedPaymentTypes, availablePaymentTypes }\r\n }, () => {\r\n this.refreshData();\r\n });\r\n }\r\n\r\n refreshData() {\r\n const { imyOptions, rawData } = this.state;\r\n let imys = JSON.parse(JSON.stringify(rawData));\r\n if (imyOptions.displayMode === 'imyOnly') {\r\n imys = this.filterImys(imys);\r\n }\r\n if (imys != null && imys.length > 0) {\r\n imys[0] = this.applyPaymentTypeFilter(imys[0]);\r\n }\r\n this.addMissingFields(imys);\r\n this.setState({\r\n data: imys\r\n });\r\n this.storeImyOptions();\r\n }\r\n\r\n reAssignItem() {\r\n const { dispatch, changeOwnershipItem } = this.props;\r\n\r\n if (changeOwnershipItem != null && changeOwnershipItem.id != null) {\r\n dispatch(takeQueueItem('form', changeOwnershipItem.id, changeOwnershipItem.accountId));\r\n dispatch(hideOwnershipModal());\r\n }\r\n }\r\n\r\n continueFromOwnershipModal() {\r\n const { dispatch, changeOwnershipItem } = this.props;\r\n dispatch(hideOwnershipModal());\r\n let redirectUrl = `/forms/${ changeOwnershipItem.formType.toLowerCase() }/${ changeOwnershipItem.id }`;\r\n if (changeOwnershipItem.accountId) {\r\n redirectUrl = `${ redirectUrl }?account=${ changeOwnershipItem.accountId }`;\r\n }\r\n history.push(redirectUrl);\r\n }\r\n\r\n closeFromOwnershipModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideOwnershipModal());\r\n }\r\n\r\n render() {\r\n const {\r\n data,\r\n rawData,\r\n displayWithholdingOption,\r\n treeError,\r\n imyOptions: {\r\n displayMode,\r\n showWithholdingRates,\r\n selectedPaymentTypes,\r\n availablePaymentTypes\r\n },\r\n } = this.state;\r\n const {\r\n permissions,\r\n isAddFormModalShown,\r\n isDeleteFormModalShown,\r\n isDeletingForm,\r\n deleteFormError,\r\n isOwnershipModalShown,\r\n changeOwnershipItem,\r\n match: {\r\n params: {\r\n versionNumber,\r\n accountId\r\n }\r\n },\r\n settings,\r\n isLinkingToImyStructureModalShown\r\n } = this.props;\r\n\r\n const showingVersion = versionNumber !== null && typeof versionNumber !== 'undefined';\r\n\r\n const versionUndocumented = rawData && rawData[0] && rawData[0].formId === 0;\r\n const versionExpired = rawData && rawData[0] && rawData[0].effectiveTo && moment(rawData[0].effectiveTo).isBefore(moment(), 'day');\r\n const versionExpiring = rawData && rawData[0] && rawData[0].effectiveTo && moment(rawData[0].effectiveTo).isSame(moment(), 'day');\r\n const versionCurrent = rawData && rawData[0] && rawData[0].effectiveTo && moment(rawData[0].effectiveTo).isAfter(moment(), 'day');\r\n const versionOpenEnded = rawData && rawData[0] && (!rawData[0].effectiveTo || rawData[0].effectiveTo.length === 0);\r\n\r\n return (\r\n
    this.scroll(e) }>\r\n { treeError && (treeError.code !== 0\r\n ? \r\n :
    \r\n { treeError.message }\r\n
    ) }\r\n { !treeError &&
    \r\n {!treeError && versionNumber && versionUndocumented &&
    \r\n \r\n
    }\r\n {!treeError && versionNumber && versionExpired && !versionUndocumented &&
    \r\n \r\n
    }\r\n {!treeError && versionNumber && versionExpiring &&
    \r\n \r\n
    }\r\n {!treeError && versionNumber && versionCurrent &&
    \r\n \r\n
    }\r\n {!treeError && versionNumber && versionOpenEnded &&
    \r\n \r\n
    }\r\n { !treeError && !versionNumber &&
    \r\n \r\n
    }\r\n
    \r\n
    \r\n

    Display Options:

    \r\n \r\n \r\n { displayWithholdingOption && this.isStructureValid && }\r\n { showWithholdingRates && this.isStructureValid && availablePaymentTypes\r\n && \r\n
    \r\n \r\n \r\n { selectedPaymentTypes && selectedPaymentTypes.length > 0 && }\r\n
    \r\n
    \r\n { selectedPaymentTypes.map((value, index) =>
    \r\n { value }\r\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events */}\r\n
    this.onPaymentTypeRemoved(value) } />\r\n
    ) }\r\n }\r\n { data && !this.isStructureValid && \r\n The structure is invalid. Withholding rates cannot be displayed for invalid structures.\r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    }\r\n {!settings.selectedClient.isPiiProtectionEnabled && this.addForms(imyTier, values, false) }\r\n onCancel={ () => this.closeAddFormModal() }\r\n />}\r\n this.deleteForm() }\r\n onCancel={ () => this.closeDeleteFormModal() }\r\n deleteFormError={ deleteFormError }\r\n />\r\n { changeOwnershipItem != null && this.reAssignItem() }\r\n onContinueWithoutAssign={ () => this.continueFromOwnershipModal() }\r\n onCancel={ () => this.closeFromOwnershipModal() }\r\n workflowRecord={ changeOwnershipItem }\r\n /> }\r\n { (data != null) && this.setState({ data: newData }) }\r\n rowHeight={ this.getRowHeight() }\r\n canDrag={ false }\r\n searchQuery=\"\"\r\n scaffoldBlockPxWidth={ 100 }\r\n className={ `imy-tree ${ versionNumber ? 'version' : '' } ${ (showWithholdingRates ? 'withholding-tree' : 'basic-tree') }` }\r\n generateNodeProps={ (rowInfo) => {\r\n let cssStyles = '';\r\n if (rowInfo.node.name && rowInfo.node.name.indexOf('Unknown Recipient') >= 0) {\r\n cssStyles = 'rst__unknownRecipientNode';\r\n } else if (rowInfo.node.workflowPhase === 'initial') {\r\n cssStyles = 'rst__initialWorkflowNode';\r\n } else if (rowInfo.node.workflowPhase === 'secondary') {\r\n cssStyles = 'rst__secondaryWorkflowNode';\r\n } else if (rowInfo.node.valid !== true || rowInfo.node.expired === true) {\r\n cssStyles = 'rst__invalidNode';\r\n } else if (rowInfo.node.isLayer) {\r\n cssStyles = 'rst__branchNode';\r\n }\r\n const nodeProps = {\r\n title: (),\r\n className: `rst__leafNode ${ cssStyles }`,\r\n onClick: (e) => {\r\n if (e.target && e.target.className && e.target.className === 'rst__rowTitleItem' && rowInfo.node.id) {\r\n this.onTitleClick(rowInfo.node);\r\n }\r\n },\r\n buttons: []\r\n };\r\n\r\n if (rowInfo.node.id != null) {\r\n if (rowInfo.node.isLayer === true) {\r\n nodeProps.className = `${ cssStyles }`;\r\n nodeProps.buttons = [];\r\n if (!showingVersion\r\n && (((AccessControl.hasPermission(permissions, [ActivityPerms.scannedDeleteCompleteForms]) && rowInfo.node.workflowStatus?.trim().toLowerCase().includes('complete')))\r\n || (AccessControl.hasPermission(permissions, [ActivityPerms.scannedDeleteInReviewForms]) && !rowInfo.node.workflowStatus?.trim().toLowerCase().includes('complete')))) {\r\n nodeProps.buttons.push( this.openDeleteFormModal(rowInfo.node) }\r\n >);\r\n }\r\n if (!settings.selectedClient.isPiiProtectionEnabled\r\n && !showingVersion && !this.isPooledStatementType\r\n && AccessControl.hasPermission(permissions, [ActivityPerms.scannedUpload, ActivityPerms.scannedWhdStmtBoUpload], true)) {\r\n nodeProps.buttons.push( this.openAddFormModal(rowInfo.node) }\r\n >ADD FORM);\r\n }\r\n } else {\r\n nodeProps.buttons = [];\r\n if (!showingVersion\r\n && (((AccessControl.hasPermission(permissions, [ActivityPerms.scannedDeleteCompleteForms]) && rowInfo.node.workflowStatus?.trim().toLowerCase().includes('complete')))\r\n || (AccessControl.hasPermission(permissions, [ActivityPerms.scannedDeleteInReviewForms]) && !rowInfo.node.workflowStatus?.trim().toLowerCase().includes('complete')))) {\r\n nodeProps.buttons.push( this.openDeleteFormModal(rowInfo.node) }\r\n >);\r\n }\r\n }\r\n } else if (rowInfo.node.formType != null && rowInfo.node.formType.startsWith('w8imy')) {\r\n nodeProps.className = ` ${ cssStyles }`;\r\n }\r\n\r\n return nodeProps;\r\n } }\r\n /> }\r\n { accountId > 0 && isLinkingToImyStructureModalShown\r\n && }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n const {\r\n auth: {\r\n permissions,\r\n settings\r\n },\r\n account: {\r\n isLinkingToImyStructureModalShown\r\n },\r\n forms: {\r\n isAddFormModalShown,\r\n isDeleteFormModalShown,\r\n isDeletingForm,\r\n deleteFormError,\r\n deleteFormResponse,\r\n formsToDelete,\r\n showRate,\r\n imyTreeViewOptions,\r\n currentStructureId\r\n },\r\n workflow: {\r\n isOwnershipModalShown,\r\n changeOwnershipItem\r\n }\r\n } = state;\r\n\r\n // Get Default Options\r\n let defaultOptions = imyTreeViewOptions.filter(x => x.structureId === 0);\r\n if (defaultOptions && defaultOptions.length >= 1) {\r\n defaultOptions = (defaultOptions.length >= 1) ? JSON.parse(JSON.stringify(defaultOptions[0])) : null;\r\n }\r\n\r\n let options = null;\r\n if (currentStructureId) {\r\n // Override with saved options\r\n options = imyTreeViewOptions.filter(x => parseInt(x.structureId, 10) === parseInt(currentStructureId, 10));\r\n }\r\n options = (options && options.length >= 1) ? options[0] : JSON.parse(JSON.stringify(defaultOptions));\r\n\r\n return {\r\n permissions,\r\n settings,\r\n isAddFormModalShown,\r\n isDeleteFormModalShown,\r\n isDeletingForm,\r\n deleteFormError,\r\n deleteFormResponse,\r\n formsToDelete,\r\n isOwnershipModalShown,\r\n changeOwnershipItem,\r\n showRate,\r\n imyTreeViewOptions: options,\r\n currentStructureId,\r\n isLinkingToImyStructureModalShown\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withContainerErrorBoundary(VisualiseW8Imy, 'VisualiseW8Imy')));\r\n","const ImyChapter3Status = [\r\n { value: 1, name: 'QualifiedIntermediary', description: 'Qualified Intermediary' },\r\n { value: 2, name: 'NonQualifiedIntermediary', description: 'Non Qualified Intermediary' },\r\n { value: 3, name: 'TerritoryFinancialInstitution', description: 'Territory Financial Institution' },\r\n { value: 4, name: 'UsBranch', description: 'US Branch' },\r\n { value: 5, name: 'WithholdingForeignPartnership', description: 'Withholding Foreign Partnership' },\r\n { value: 6, name: 'WithholdingForeignTrust', description: 'Withholding Foreign Trust' },\r\n { value: 7, name: 'NonwithholdingForeignPartnership', description: 'Nonwithholding Foreign Partnership' },\r\n { value: 8, name: 'NonwithholdingForeignSimpleTrust', description: 'Nonwithholding Foreign Simple Trust' },\r\n { value: 9, name: 'NonwithholdingForeignGrantorTrust', description: 'Nonwithholding Foreign Grantor Trust' },\r\n];\r\n\r\nImyChapter3Status.findByName = (statusName) => {\r\n if (!statusName || statusName.length <= 0) {\r\n return null;\r\n }\r\n\r\n const status = ImyChapter3Status.find(x => x.name.toLowerCase() === statusName.toLowerCase());\r\n return status || null;\r\n};\r\n\r\nexport default ImyChapter3Status;\r\n","const filterResultItem = (validationItem, typeCode, specificCodes, ignoreCodes) => validationItem\r\n && validationItem.code\r\n && validationItem.code.length > 3\r\n && validationItem.code.substring(0, 3) === typeCode\r\n && (!specificCodes || specificCodes.indexOf(validationItem.code) !== -1)\r\n && (!ignoreCodes || ignoreCodes.indexOf(validationItem.code) === -1);\r\n\r\nexport default class ValidationInspector {\r\n static filterValidationResults = (validationResultList, typeCode, specificCodes, ignoreCodes) => validationResultList\r\n && Array.isArray(validationResultList)\r\n && validationResultList.reduce((filteredResult, validationItem) => {\r\n if (filterResultItem(validationItem, typeCode, specificCodes, ignoreCodes)) {\r\n filteredResult.push(validationItem);\r\n }\r\n\r\n return filteredResult;\r\n }, []);\r\n\r\n static hasValidationItems = (validationResultList, typeCode, specificCodes, ignoreCodes) => validationResultList\r\n && Array.isArray(validationResultList)\r\n && validationResultList.some(validationItem => filterResultItem(validationItem, typeCode, specificCodes, ignoreCodes));\r\n\r\n static filterRecommendations = (validationResult, specificCodes, ignoreCodes) => (validationResult && ValidationInspector.filterValidationResults(validationResult.warnings, 'REC', specificCodes, ignoreCodes)) || null;\r\n\r\n static filterWarnings = (validationResult, specificCodes, ignoreCodes) => (validationResult && ValidationInspector.filterValidationResults(validationResult.warnings, 'WRN', specificCodes, ignoreCodes)) || null;\r\n\r\n static filterRejections = (validationResult, specificCodes, ignoreCodes) => (validationResult && ValidationInspector.filterValidationResults(validationResult.rejections, 'REJ', specificCodes, ignoreCodes)) || null;\r\n\r\n static hasWarnings = (validationResult, specificCodes, ignoreCodes) => validationResult && ValidationInspector.hasValidationItems(validationResult.warnings, 'WRN', specificCodes, ignoreCodes);\r\n\r\n static hasRejections = (validationResult, specificCodes, ignoreCodes) => validationResult && ValidationInspector.hasValidationItems(validationResult.rejections, 'REJ', specificCodes, ignoreCodes);\r\n}\r\n","const LOBCodes = [\r\n { value: 1, description: 'Individual', disabled: true },\r\n { value: 2, description: 'Government – contracting state / political subdivision / local authority' },\r\n { value: 3, description: 'Tax exempt pension trust / Pension fund' },\r\n { value: 4, description: 'Tax exempt / Charitable organization' },\r\n { value: 5, description: 'Publicly traded corporation' },\r\n { value: 6, description: 'Subsidiary of publicly traded corporation' },\r\n { value: 7, description: 'Company that meets the ownership and base erosion test' },\r\n { value: 8, description: 'Company that meets the derivative benefits test' },\r\n { value: 9, description: 'Company with an item of income that meets the active trade or business test' },\r\n { value: 10, description: 'Discretionary determination' },\r\n { value: 11, description: 'Other' }\r\n];\r\n\r\nexport default LOBCodes;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport ValidationInspector from 'common/Validation/ValidationInspector';\r\n\r\nconst WhdValidationSummary = ({ validationResult, sectionTitle, className, ignoreCodes, specificCodes }) => {\r\n const warnings = ValidationInspector.filterWarnings(validationResult, specificCodes, ignoreCodes);\r\n const rejections = ValidationInspector.filterRejections(validationResult, specificCodes, ignoreCodes);\r\n\r\n const hasWarnings = warnings && warnings.length > 0;\r\n const hasRejections = rejections && rejections.length > 0;\r\n\r\n if (!validationResult || !(rejections || warnings)) {\r\n return null;\r\n }\r\n\r\n const quantRejections = rejections.length === 1 ? 'a rejection' : `${ rejections.length } rejections`;\r\n const quantWarnings = warnings.length === 1 ? 'a warning' : `${ warnings.length } warnings`;\r\n\r\n const [isDetailedVisible, setIsDetailedVisible] = useState(false);\r\n\r\n const myRef = useRef(null);\r\n\r\n useEffect(() => {\r\n function handleClickOutside(event) {\r\n if (myRef.current && !myRef.current.contains(event.target)) {\r\n setIsDetailedVisible(false);\r\n }\r\n }\r\n\r\n function handleEscPress(event) {\r\n if (myRef.current && !myRef.current.contains(event.target)) {\r\n setIsDetailedVisible(false);\r\n }\r\n\r\n if (event.keyCode === 27) {\r\n setIsDetailedVisible(false);\r\n }\r\n }\r\n\r\n document.addEventListener('keyup', handleEscPress);\r\n document.addEventListener('mousedown', handleClickOutside);\r\n\r\n return () => {\r\n document.removeEventListener('keyup', handleEscPress);\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [myRef]);\r\n\r\n return
    \r\n
    \r\n { hasRejections &&
    \r\n \r\n
    }\r\n { hasWarnings &&
    \r\n \r\n
    }\r\n
    \r\n { isDetailedVisible &&
    \r\n
    }\r\n
    ;\r\n};\r\n\r\nWhdValidationSummary.propTypes = {\r\n sectionTitle: PropTypes.string.isRequired,\r\n className: PropTypes.string,\r\n ignoreCodes: PropTypes.arrayOf(PropTypes.string),\r\n specificCodes: PropTypes.arrayOf(PropTypes.string),\r\n validationResult: PropTypes.shape({\r\n valid: PropTypes.bool,\r\n rejections: PropTypes.arrayOf(PropTypes.shape({\r\n code: PropTypes.string,\r\n codeDescription: PropTypes.string,\r\n key: PropTypes.string\r\n })),\r\n warnings: PropTypes.arrayOf(PropTypes.shape({\r\n code: PropTypes.string,\r\n codeDescription: PropTypes.string,\r\n key: PropTypes.string\r\n }))\r\n })\r\n};\r\n\r\nWhdValidationSummary.defaultProps = {\r\n className: 'pt-1rem',\r\n ignoreCodes: null,\r\n specificCodes: null,\r\n validationResult: null\r\n};\r\n\r\nconst ValidationResultItem = ({ validationEntry, className }) => {\r\n const resultType = validationEntry.code.substring(0, 3);\r\n const isWrn = resultType === 'WRN';\r\n const isRej = resultType === 'REJ';\r\n const isRec = resultType === 'REC';\r\n const itemClass = (isWrn && 'validation-warning') || (isRej && 'validation-error') || (isRec && 'validation-recommendation');\r\n const iconClass = (isWrn && 'icon-flag solid') || (isRej && 'icon-cross icon-cross-circle') || (isRec && 'icon-message');\r\n return
  • { validationEntry.codeDescription } ({ validationEntry.code })
  • ;\r\n};\r\n\r\nValidationResultItem.propTypes = {\r\n className: PropTypes.string,\r\n validationEntry: PropTypes.shape({\r\n code: PropTypes.string,\r\n codeDescription: PropTypes.string,\r\n key: PropTypes.string\r\n }).isRequired\r\n};\r\n\r\nValidationResultItem.defaultProps = {\r\n className: null\r\n};\r\n\r\nexport default WhdValidationSummary;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst JurisdictionDropDown = ({ value, placeholder, className, onChange }) => {\r\n const { jurisdictions } = useSelector(state => state.common);\r\n\r\n const addCountryOption = (country) => {\r\n if (jurisdictions) {\r\n const filteredJurisdiction = jurisdictions.filter(x => x.name === country);\r\n if (filteredJurisdiction.length === 0) {\r\n return ;\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n return ();\r\n};\r\n\r\nJurisdictionDropDown.propTypes = {\r\n value: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n className: PropTypes.string,\r\n onChange: PropTypes.func.isRequired,\r\n};\r\n\r\nJurisdictionDropDown.defaultProps = {\r\n value: null,\r\n placeholder: '',\r\n className: ''\r\n};\r\n\r\nexport default JurisdictionDropDown;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { showImyTreeWithholding, updateStatementRow, deleteStatementRow } from 'actions';\r\nimport FormTypes from 'common/Forms/FormTypes';\r\nimport StatementTypes from 'common/Forms/StatementTypes';\r\nimport LOBCodes from 'common/Customers/LimitationOnBenefits';\r\nimport ValidationInspector from 'common/Validation/ValidationInspector';\r\nimport valueOrEmpty from 'common/App/valueOrEmpty';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport { FormViewButton } from 'components/Common/Buttons/FormViewButton';\r\nimport Chapter3Status from 'common/Customers/Chapter3Status';\r\nimport Chapter4Status from 'common/Customers/Chapter4Status';\r\nimport WhdValidationSummary from 'components/WhdStatement/WhdValidationSummary';\r\nimport JurisdictionDropDown from 'components/Common/Inputs/JurisdictionDropDown';\r\nimport ConfirmModal from 'components/Modals/ConfirmModal';\r\n\r\nclass BeneficialOwner extends React.PureComponent {\r\n static propTypes = {\r\n beneficialOwner: PropTypes.shape({\r\n basicDetails: PropTypes.shape({}),\r\n recipients: PropTypes.arrayOf(PropTypes.shape({ allocationIncomeRate: PropTypes.number, validationLineNo: PropTypes.number })),\r\n guid: PropTypes.string,\r\n ownerDetails: PropTypes.shape({\r\n name: PropTypes.string,\r\n guid: PropTypes.string,\r\n accountNumber: PropTypes.string,\r\n disregardedEntityName: PropTypes.string,\r\n foreignTIN: PropTypes.string,\r\n giin: PropTypes.string,\r\n tin: PropTypes.string,\r\n active: PropTypes.string,\r\n address: PropTypes.string,\r\n allocationIncomeRate: PropTypes.number,\r\n chapter3RecipientCode: PropTypes.string,\r\n city: PropTypes.string,\r\n country: PropTypes.string,\r\n decimalPrecision: PropTypes.number,\r\n fatcaStatus: PropTypes.string,\r\n formType: PropTypes.number,\r\n limitationOnBenefits: PropTypes.number,\r\n new: PropTypes.string,\r\n stateProvince: PropTypes.string,\r\n taxResidenceCountry: PropTypes.string,\r\n tinType: PropTypes.string,\r\n treatyBenefits: PropTypes.string,\r\n usNonUsStatus: PropTypes.string,\r\n zip: PropTypes.string,\r\n isTier: PropTypes.bool,\r\n }),\r\n statementIndex: PropTypes.number\r\n }).isRequired,\r\n decimalPrecision: PropTypes.number,\r\n getChapter3DescriptionByName: PropTypes.func.isRequired,\r\n getChapter4DescriptionByName: PropTypes.func.isRequired,\r\n isParentTierExpanded: PropTypes.bool,\r\n isTopTierExpanded: PropTypes.bool,\r\n openChangeParentModal: PropTypes.func.isRequired,\r\n parents: PropTypes.arrayOf(PropTypes.string),\r\n statementType: PropTypes.number,\r\n idx: PropTypes.number.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n dispatch: PropTypes.func.isRequired,\r\n openAccountWithholdingModal: PropTypes.func.isRequired,\r\n openAddFormModal: PropTypes.func.isRequired,\r\n topAccountId: PropTypes.number.isRequired,\r\n addBeneficialOwner: PropTypes.func.isRequired,\r\n isSavingStatement: PropTypes.bool,\r\n validationLineNo: PropTypes.number,\r\n validationResult: PropTypes.shape({\r\n valid: PropTypes.bool,\r\n rejections: PropTypes.arrayOf(PropTypes.shape({ code: PropTypes.string })),\r\n warnings: PropTypes.arrayOf(PropTypes.shape({ code: PropTypes.string })),\r\n lines: PropTypes.arrayOf(PropTypes.shape({}))\r\n }),\r\n openPooledRatesModal: PropTypes.func.isRequired,\r\n updateToggledCollapsibleTiers: PropTypes.func.isRequired,\r\n tierCollapseStructure: PropTypes.shape({}),\r\n // eslint-disable-next-line react/no-unused-prop-types\r\n parentAccountId: PropTypes.number,\r\n isDeletingRow: PropTypes.bool,\r\n isStructureValid: PropTypes.bool,\r\n isAddingNewBeneficalOwner: PropTypes.bool,\r\n statementVersion: PropTypes.string,\r\n parentTierTotalAllocation: PropTypes.number,\r\n hideTierAllocationValue: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n parents: null,\r\n decimalPrecision: 2,\r\n isParentTierExpanded: false,\r\n isTopTierExpanded: false,\r\n statementType: 9,\r\n permissions: null,\r\n isSavingStatement: false,\r\n validationResult: null,\r\n validationLineNo: null,\r\n tierCollapseStructure: null,\r\n isDeletingRow: false,\r\n isStructureValid: false,\r\n parentAccountId: null,\r\n isAddingNewBeneficalOwner: false,\r\n statementVersion: null,\r\n parentTierTotalAllocation: 0,\r\n hideTierAllocationValue: false\r\n };\r\n\r\n static buildElementId(name) {\r\n return (name && name.replace(/[^a-zA-Z0-9]/g, '')) || '';\r\n }\r\n\r\n static isAllocationFromChildren(beneficialOwner) {\r\n const allocation = (beneficialOwner.ownerDetails && beneficialOwner.ownerDetails.allocationIncomeRate) || beneficialOwner.allocationIncomeRate || 0;\r\n\r\n if (allocation === 0 && beneficialOwner.recipients) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n static shouldDisplayTierAllocationValue(beneficialOwner) {\r\n const allocation = (beneficialOwner.ownerDetails && beneficialOwner.ownerDetails.allocationIncomeRate) || beneficialOwner.allocationIncomeRate || 0;\r\n if (allocation === 0 && beneficialOwner.recipients && BeneficialOwner.getAllocationValue(beneficialOwner) === 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n toggleState: {\r\n isAdditionalExpanded: false,\r\n isOverrideTopTier: false,\r\n isTierExpanded: false,\r\n },\r\n isEdit: false,\r\n rowToDelete: null,\r\n details: {\r\n accountName: null,\r\n name: null,\r\n disregardedEntityName: null,\r\n giin: null,\r\n tin: null,\r\n foreignTin: null,\r\n taxResidenceCountry: null,\r\n fatcaStatus: null,\r\n chapter3RecipientCode: null,\r\n usNonUsStatus: null,\r\n address: null,\r\n city: null,\r\n stateProvince: null,\r\n zip: null,\r\n country: null,\r\n new: false,\r\n active: false,\r\n tinType: null,\r\n limitationOnBenefits: null,\r\n treatyBenefits: null,\r\n allocationIncomeRate: 0,\r\n accountNumber: null,\r\n formType: null,\r\n allocationFromChildren: false,\r\n isTier: null\r\n },\r\n checkboxState: {\r\n formsDisableImyCheckbox: false,\r\n allocDisablesImyCheckbox: false,\r\n formsDisableOwnerCheckbox: false,\r\n }\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.setExpandedTiers();\r\n this.setFieldStates();\r\n }\r\n\r\n componentDidUpdate(oldProps) {\r\n const { isTopTierExpanded, beneficialOwner, statementType, isDeletingRow, tierCollapseStructure } = this.props;\r\n const isPooled = statementType === StatementTypes.PooledWhdStatement;\r\n const ownerDetails = isPooled ? beneficialOwner : beneficialOwner.ownerDetails;\r\n const rowIdentifier = ownerDetails.guid || ownerDetails.name || ownerDetails.accountName;\r\n\r\n if (oldProps && oldProps.isTopTierExpanded !== isTopTierExpanded) {\r\n this.resetOverrideTopTierCollapse(rowIdentifier, isTopTierExpanded);\r\n }\r\n\r\n if (oldProps && oldProps.isDeletingRow && !isDeletingRow) {\r\n this.closeDeleteConfirmation();\r\n }\r\n\r\n if (oldProps && JSON.stringify(oldProps.tierCollapseStructure) !== JSON.stringify(tierCollapseStructure)) {\r\n if (tierCollapseStructure[rowIdentifier] != null) {\r\n this.setExpandedTiers();\r\n }\r\n }\r\n }\r\n\r\n static getLOBDescriptionByCode = (code) => {\r\n const codeValue = (code && parseInt(code, 10)) || null;\r\n const item = code && codeValue > 0 && LOBCodes.find(x => x.value === codeValue);\r\n return (codeValue && `${ codeValue < 10 ? '0' : '' }${ codeValue } - ${ (item && item.description) || 'Unknown code' }`) || code || null;\r\n };\r\n\r\n static getAllocationTitle() {\r\n return 'WHS Allocation';\r\n }\r\n\r\n static getAllocationValue(beneficialOwner) {\r\n const allocation = (beneficialOwner.ownerDetails && beneficialOwner.ownerDetails.allocationIncomeRate) || beneficialOwner.allocationIncomeRate || 0;\r\n\r\n if (allocation === 0 && beneficialOwner.recipients) {\r\n return beneficialOwner.recipients.reduce((prev, curr) => prev + (BeneficialOwner.getAllocationValue(curr) || 0), 0);\r\n }\r\n\r\n return allocation * 100;\r\n }\r\n\r\n static getTierAllocationTitle(beneficialOwner) {\r\n const allocation = (beneficialOwner.ownerDetails && beneficialOwner.ownerDetails.allocationIncomeRate) || 0;\r\n return allocation === 0 && beneficialOwner.recipients ? 'Tier Total' : 'Tier Allocation';\r\n }\r\n\r\n static getTierAllocationValue(beneficialOwner, parentTierTotalAllocation) {\r\n if (beneficialOwner.ownerDetails && !beneficialOwner.ownerDetails.allocationIncomeRate && beneficialOwner.recipients) {\r\n return 100;\r\n }\r\n const allocationValueOfBeneficialOwner = BeneficialOwner.getAllocationValue(beneficialOwner);\r\n if (parentTierTotalAllocation) {\r\n return (allocationValueOfBeneficialOwner / parentTierTotalAllocation) * 100;\r\n }\r\n return allocationValueOfBeneficialOwner;\r\n }\r\n\r\n onNameChange(value) {\r\n const { statementType } = this.props;\r\n const { details } = this.state;\r\n const isPooled = statementType === StatementTypes.PooledWhdStatement;\r\n if (isPooled) {\r\n this.setState({ details: { ...details, accountName: value } });\r\n } else {\r\n this.setState({ details: { ...details, name: value } });\r\n }\r\n }\r\n\r\n setExpandedTiers() {\r\n const { tierCollapseStructure, beneficialOwner, statementType } = this.props;\r\n\r\n const isPooled = statementType === StatementTypes.PooledWhdStatement;\r\n const ownerDetails = isPooled ? beneficialOwner : beneficialOwner.ownerDetails;\r\n const name = ownerDetails.guid || ownerDetails.name || ownerDetails.accountName;\r\n const toggleState = tierCollapseStructure && tierCollapseStructure[name];\r\n if (toggleState) {\r\n toggleState.isOverrideTopTier = true;\r\n this.setState({ toggleState });\r\n }\r\n }\r\n\r\n setFieldStates() {\r\n const { statementType, beneficialOwner } = this.props;\r\n const { details, checkboxState } = this.state;\r\n\r\n const isPooled = statementType === StatementTypes.PooledWhdStatement;\r\n const isDetailed = statementType === StatementTypes.DetailedWhdStatement;\r\n const isSimple = statementType === StatementTypes.SimpleWhdStatement;\r\n const isAlt = statementType === StatementTypes.AltWhdStatement;\r\n\r\n const ownerDetails = Object.assign(isPooled ? beneficialOwner : beneficialOwner.ownerDetails, {});\r\n const name = ownerDetails.name || ownerDetails.accountName;\r\n const chapter3Item = Chapter3Status.findByName(ownerDetails.chapter3RecipientCode);\r\n const chapter4Item = Chapter4Status.findByName(ownerDetails.fatcaStatus);\r\n const allocationValue = BeneficialOwner.getAllocationValue(beneficialOwner);\r\n\r\n details.chapter3RecipientCode = (chapter3Item && chapter3Item.name) || null;\r\n details.fatcaStatus = (chapter4Item && chapter4Item.name) || null;\r\n details.allocationIncomeRate = allocationValue ? allocationValue * 1 : null;\r\n details.allocationFromChildren = BeneficialOwner.isAllocationFromChildren(beneficialOwner);\r\n\r\n if (isPooled) {\r\n details.accountName = name;\r\n }\r\n\r\n if (!isPooled) {\r\n details.name = name;\r\n details.disregardedEntityName = ownerDetails.disregardedEntityName;\r\n details.giin = ownerDetails.giin;\r\n details.isTier = ownerDetails.isTier;\r\n\r\n if (isDetailed || isSimple) {\r\n details.tin = ownerDetails.tin;\r\n details.foreignTin = ownerDetails.foreignTIN;\r\n details.address = ownerDetails.address;\r\n }\r\n if (isDetailed || isSimple || isAlt) {\r\n details.taxResidenceCountry = ownerDetails.taxResidenceCountry;\r\n }\r\n\r\n if (isDetailed || isSimple || isPooled) {\r\n details.usNonUsStatus = ownerDetails.usNonUsStatus;\r\n }\r\n\r\n if (isDetailed) {\r\n details.city = ownerDetails.city;\r\n details.stateProvince = ownerDetails.stateProvince;\r\n details.zip = ownerDetails.zip;\r\n details.country = ownerDetails.country;\r\n details.new = ownerDetails.new;\r\n details.active = ownerDetails.active;\r\n details.tinType = ownerDetails.tinType;\r\n details.treatyBenefits = ownerDetails.treatyBenefits;\r\n details.limitationOnBenefits = ownerDetails.limitationOnBenefits;\r\n details.accountNumber = ownerDetails.accountNumber;\r\n details.formType = ownerDetails.formType;\r\n }\r\n\r\n const formInt = details.formType && parseInt(details.formType, 10);\r\n const detailsFormType = formInt && FormTypes.getByValue(formInt);\r\n\r\n checkboxState.formsDisableImyCheckbox = !!(detailsFormType && detailsFormType.family !== 'w8imy');\r\n checkboxState.allocDisablesImyCheckbox = !details.allocationFromChildren && !!details.allocationIncomeRate;\r\n checkboxState.formsDisableOwnerCheckbox = !!(detailsFormType && detailsFormType.family === 'w8imy');\r\n }\r\n\r\n this.setState({ details, checkboxState });\r\n }\r\n\r\n getTierRecipientCount() {\r\n const { beneficialOwner } = this.props;\r\n return beneficialOwner?.recipients ? beneficialOwner?.recipients.filter(r => !r.recipients).length : 0;\r\n }\r\n\r\n getTierIntermediaryCount() {\r\n const { beneficialOwner } = this.props;\r\n return beneficialOwner?.recipients ? beneficialOwner?.recipients.filter(r => r.recipients).length : 0;\r\n }\r\n\r\n ownerHasValidationErrors = (recipient) => {\r\n const { validationResult } = this.props;\r\n\r\n if (!validationResult?.lines || validationResult.lines.length === 0) {\r\n return false;\r\n }\r\n\r\n const lineNo = recipient && (recipient.lineNo || (recipient.ownerDetails && recipient.ownerDetails.lineNo > 0 && recipient.ownerDetails.lineNo));\r\n const lineValidation = lineNo > 0 && validationResult.lines.find(result => result.lineNumber === lineNo);\r\n\r\n return lineNo > 0\r\n && (ValidationInspector.hasRejections(lineValidation)\r\n || ValidationInspector.hasWarnings(lineValidation));\r\n };\r\n\r\n tierHasValidationErrors = () => {\r\n const { beneficialOwner, validationResult } = this.props;\r\n if (!beneficialOwner.recipients || !validationResult?.lines || validationResult.lines.length === 0) {\r\n return false;\r\n }\r\n\r\n if (this.ownerHasValidationErrors(beneficialOwner)) {\r\n return true;\r\n }\r\n\r\n // This filter ensures only direct owners and not sub-layers are checked\r\n return beneficialOwner.recipients.some(recipient => recipient\r\n && !Object.prototype.hasOwnProperty.call(recipient, 'recipients')\r\n && this.ownerHasValidationErrors(recipient));\r\n };\r\n\r\n toggleExpandedAdditionalDetails = () => {\r\n const { updateToggledCollapsibleTiers, beneficialOwner, statementType } = this.props;\r\n const { toggleState } = this.state;\r\n const isPooled = statementType === StatementTypes.PooledWhdStatement;\r\n const ownerDetails = isPooled ? beneficialOwner : beneficialOwner.ownerDetails;\r\n const rowIdentifier = ownerDetails.guid || ownerDetails.name || ownerDetails.accountName;\r\n\r\n toggleState.isAdditionalExpanded = !toggleState.isAdditionalExpanded;\r\n this.setState({ toggleState });\r\n updateToggledCollapsibleTiers(rowIdentifier, toggleState);\r\n };\r\n\r\n toggleCollapseTier = () => {\r\n const { isTopTierExpanded, updateToggledCollapsibleTiers, beneficialOwner, statementType } = this.props;\r\n const { toggleState } = this.state;\r\n\r\n const { isTierExpanded, isOverrideTopTier } = toggleState;\r\n const isPooled = statementType === StatementTypes.PooledWhdStatement;\r\n const ownerDetails = isPooled ? beneficialOwner : beneficialOwner.ownerDetails;\r\n const rowIdentifier = ownerDetails.guid || ownerDetails.name || ownerDetails.accountName;\r\n\r\n if (!isOverrideTopTier) {\r\n toggleState.isOverrideTopTier = true;\r\n toggleState.isTierExpanded = !isTopTierExpanded;\r\n } else {\r\n toggleState.isTierExpanded = !isTierExpanded;\r\n }\r\n\r\n this.setState({ toggleState });\r\n updateToggledCollapsibleTiers(rowIdentifier, toggleState);\r\n };\r\n\r\n displayImy = (formaccountId, versionNumber) => {\r\n const { dispatch } = this.props;\r\n dispatch(showImyTreeWithholding(formaccountId, versionNumber));\r\n };\r\n\r\n onIncomeAllocationChange = (e) => {\r\n const { details, checkboxState } = this.state;\r\n const result = this.getImyCheckboxState(null, e.target.value, true);\r\n\r\n if (e.target.value >= 0 && e.target.value <= 100) {\r\n this.setState({\r\n details: { ...details,\r\n allocationIncomeRate: e.target.value,\r\n isTier: result[0] },\r\n checkboxState: {\r\n ...checkboxState,\r\n allocDisablesImyCheckbox: result[2],\r\n } });\r\n }\r\n };\r\n\r\n addOwner = (topAccountId, parentGuid, isLayer) => {\r\n const { addBeneficialOwner, updateToggledCollapsibleTiers } = this.props;\r\n const { toggleState } = this.state;\r\n if (!toggleState.isOverrideTopTier) {\r\n toggleState.isOverrideTopTier = true;\r\n }\r\n\r\n toggleState.isTierExpanded = true;\r\n this.setState({ toggleState });\r\n updateToggledCollapsibleTiers(parentGuid, toggleState);\r\n\r\n const preventExpand = true;\r\n addBeneficialOwner(topAccountId, parentGuid, isLayer, preventExpand);\r\n };\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n doesCh3AllowAllocationChange = (ch3Name, boRecipients) => {\r\n if (ch3Name && (!boRecipients || boRecipients.length === 0)) {\r\n const chapter3Item = Chapter3Status.findByName(ch3Name);\r\n if (chapter3Item && chapter3Item.value) {\r\n const allowedCh3Elections = [3, 5, 9, 11, 12, 35, 39];\r\n\r\n if (allowedCh3Elections.includes(chapter3Item.value)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n doesCh3AllowImyCheckbox = (ch3Code) => {\r\n const { details } = this.state;\r\n const codeToUse = ch3Code || details.chapter3RecipientCode;\r\n\r\n if (codeToUse) {\r\n const ch3Election = Chapter3Status.findByName(codeToUse);\r\n if (ch3Election && ch3Election.value) {\r\n const allowedCh3Elections = [8, 10];\r\n\r\n if (allowedCh3Elections.includes(ch3Election.value)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n getImyCheckboxState = (formType, allocation, allocationChanged) => {\r\n const { details } = this.state;\r\n let isTier;\r\n\r\n const formTypeFamily = formType ? FormTypes.getByValue(formType) : details.formType && FormTypes.getByValue(details.formType);\r\n\r\n const imyCheckBoxResult = this.getImyCheckboxSettings(formTypeFamily, allocation, allocationChanged);\r\n\r\n const formsDisableImyCheckbox = imyCheckBoxResult[0];\r\n const allocDisablesImyCheckbox = imyCheckBoxResult[1];\r\n\r\n if (formsDisableImyCheckbox || allocDisablesImyCheckbox) {\r\n isTier = false;\r\n }\r\n\r\n const formsDisableOwnerCheckbox = this.getOwnerCheckboxSettings(formTypeFamily);\r\n\r\n if (formsDisableOwnerCheckbox) {\r\n isTier = true;\r\n }\r\n\r\n return [isTier, formsDisableImyCheckbox, allocDisablesImyCheckbox, formsDisableOwnerCheckbox];\r\n };\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n getOwnerCheckboxSettings = formTypeFamily => !!(formTypeFamily && formTypeFamily.family === 'w8imy');\r\n\r\n getImyCheckboxSettings = (formTypeFamily, allocation, allocationChanged) => {\r\n const { details } = this.state;\r\n const formsDisableImyCheckbox = !!(formTypeFamily && formTypeFamily.family !== 'w8imy');\r\n const allocDisablesImyCheckbox = allocationChanged ? !!allocation : !!details.allocationIncomeRate;\r\n\r\n return [formsDisableImyCheckbox, allocDisablesImyCheckbox];\r\n };\r\n\r\n onFormTypeChange = (e) => {\r\n const { details, checkboxState } = this.state;\r\n const formType = parseInt(e.target.value, 10);\r\n\r\n const intermediaryCheckboxResult = this.getImyCheckboxState(formType, null);\r\n\r\n this.setState({\r\n details: { ...details,\r\n formType,\r\n isTier: intermediaryCheckboxResult[0],\r\n },\r\n checkboxState: { ...checkboxState,\r\n formsDisableImyCheckbox: intermediaryCheckboxResult[1],\r\n formsDisableOwnerCheckbox: intermediaryCheckboxResult[3] } });\r\n };\r\n\r\n onCh3Change = (e) => {\r\n const { details } = this.state;\r\n const ch3Result = this.doesCh3AllowImyCheckbox(e.target.value);\r\n const clearIsTier = !ch3Result;\r\n\r\n this.setState({ details: { ...details,\r\n chapter3RecipientCode: (e.target.value && Chapter3Status.findByName(e.target.value).name) || '',\r\n isTier: clearIsTier ? null : details.isTier\r\n } });\r\n };\r\n\r\n submitData() {\r\n const { beneficialOwner, statementType, topAccountId, dispatch, decimalPrecision } = this.props;\r\n const { details, isEdit } = this.state;\r\n\r\n const isPooled = statementType === StatementTypes.PooledWhdStatement;\r\n\r\n const ownerDetails = isPooled ? beneficialOwner : beneficialOwner.ownerDetails;\r\n const currentAccountName = ownerDetails.name || ownerDetails.accountName;\r\n const boCopy = Object.assign(isPooled ? beneficialOwner : beneficialOwner.ownerDetails);\r\n const updatedObject = Object.assign(boCopy, details);\r\n\r\n let allocationRate = details.allocationIncomeRate ? details.allocationIncomeRate / 100 : null;\r\n if (allocationRate) {\r\n allocationRate = parseFloat(allocationRate.toFixed(2 + (decimalPrecision ?? 2)));\r\n details.allocationIncomeRate = (allocationRate * 100).toString();\r\n }\r\n\r\n const ch3AllowsAllocationChange = this.doesCh3AllowAllocationChange(details.chapter3RecipientCode, beneficialOwner.recipients);\r\n\r\n if (ch3AllowsAllocationChange) {\r\n updatedObject.allocationIncomeRate = allocationRate;\r\n } else if (details.allocationFromChildren) {\r\n updatedObject.allocationIncomeRate = null;\r\n } else {\r\n updatedObject.allocationIncomeRate = allocationRate;\r\n }\r\n\r\n const rowUpdate = {\r\n guid: ownerDetails.guid,\r\n name: currentAccountName,\r\n type: statementType,\r\n owner: !isPooled ? updatedObject : null,\r\n account: isPooled ? updatedObject : null\r\n };\r\n\r\n dispatch(updateStatementRow(topAccountId, rowUpdate));\r\n this.setState({ isEdit: !isEdit, details });\r\n }\r\n\r\n resetOverrideTopTierCollapse(rowIdentifier, isTopExpanded) {\r\n const { updateToggledCollapsibleTiers } = this.props;\r\n const { toggleState } = this.state;\r\n toggleState.isTierExpanded = isTopExpanded;\r\n toggleState.isOverrideTopTier = false;\r\n this.setState({ toggleState });\r\n updateToggledCollapsibleTiers(rowIdentifier, toggleState);\r\n }\r\n\r\n displayAllocationValue(beneficialOwner) {\r\n const { decimalPrecision } = this.props;\r\n const allocation = BeneficialOwner.getAllocationValue(beneficialOwner);\r\n\r\n if (allocation === 100) {\r\n return allocation;\r\n }\r\n\r\n return allocation.toFixed(decimalPrecision);\r\n }\r\n\r\n displayTierAllocationValue(beneficialOwner, parentTierTotalAllocation) {\r\n const { decimalPrecision } = this.props;\r\n const allocation = BeneficialOwner.getTierAllocationValue(beneficialOwner, parentTierTotalAllocation);\r\n\r\n if (allocation === 100) {\r\n return allocation;\r\n }\r\n\r\n return allocation.toFixed(decimalPrecision);\r\n }\r\n\r\n deleteRow() {\r\n const { dispatch, topAccountId } = this.props;\r\n const { rowToDelete } = this.state;\r\n dispatch(deleteStatementRow(topAccountId, rowToDelete));\r\n }\r\n\r\n openDeleteConfirmation() {\r\n const { statementType, beneficialOwner } = this.props;\r\n const ownerDetails = statementType === StatementTypes.PooledWhdStatement ? beneficialOwner : beneficialOwner.ownerDetails;\r\n\r\n this.setState({ rowToDelete: {\r\n guid: ownerDetails.guid,\r\n type: statementType,\r\n } });\r\n }\r\n\r\n closeDeleteConfirmation() {\r\n this.setState({ rowToDelete: null });\r\n }\r\n\r\n render() {\r\n const {\r\n beneficialOwner,\r\n decimalPrecision,\r\n getChapter3DescriptionByName,\r\n getChapter4DescriptionByName,\r\n idx,\r\n isParentTierExpanded,\r\n isTopTierExpanded,\r\n openChangeParentModal,\r\n parents,\r\n statementType,\r\n permissions,\r\n dispatch,\r\n openAccountWithholdingModal,\r\n openAddFormModal,\r\n addBeneficialOwner,\r\n topAccountId,\r\n isSavingStatement,\r\n validationResult,\r\n validationLineNo,\r\n openPooledRatesModal,\r\n updateToggledCollapsibleTiers,\r\n tierCollapseStructure,\r\n isDeletingRow,\r\n isStructureValid,\r\n isAddingNewBeneficalOwner,\r\n statementVersion,\r\n parentTierTotalAllocation,\r\n hideTierAllocationValue\r\n } = this.props;\r\n\r\n const {\r\n toggleState: {\r\n isAdditionalExpanded,\r\n isTierExpanded,\r\n isOverrideTopTier\r\n },\r\n isEdit,\r\n rowToDelete,\r\n details,\r\n checkboxState,\r\n } = this.state;\r\n\r\n const isAlt = statementType === StatementTypes.AltWhdStatement;\r\n const isDetailed = statementType === StatementTypes.DetailedWhdStatement;\r\n const isSimple = statementType === StatementTypes.SimpleWhdStatement;\r\n const isPooled = statementType === StatementTypes.PooledWhdStatement;\r\n\r\n const showingVersion = statementVersion !== null && typeof statementVersion !== 'undefined';\r\n\r\n const ownerDetails = isPooled ? beneficialOwner : beneficialOwner.ownerDetails;\r\n const name = ownerDetails.name || ownerDetails.accountName;\r\n const detailsName = isPooled ? details.accountName : details.name;\r\n const levelParents = [...parents];\r\n const formType = FormTypes.getByValue(ownerDetails.formType);\r\n const isImyLayer = !!beneficialOwner.recipients || formType === FormTypes.w8imy;\r\n const allowLayerAllocationChange = this.doesCh3AllowAllocationChange(details.chapter3RecipientCode, beneficialOwner.recipients);\r\n\r\n const isTopTierCollapsed = isImyLayer && !isOverrideTopTier && !isTopTierExpanded;\r\n const isTierCollapsed = isTopTierCollapsed || (isImyLayer && isOverrideTopTier ? !isTierExpanded : !isParentTierExpanded);\r\n const validationResultLine = validationResult && validationResult.lines && validationResult.lines.length >= 0 && validationResult.lines.find(result => result.lineNumber === validationLineNo);\r\n const beneficialOwnerObject = beneficialOwner;\r\n\r\n const hasFormUploaded = beneficialOwnerObject && beneficialOwnerObject.basicDetails && beneficialOwnerObject.basicDetails.formId !== null;\r\n const ownerFormId = hasFormUploaded && beneficialOwnerObject.basicDetails.formId;\r\n const ownerAccountId = beneficialOwnerObject.basicDetails && beneficialOwnerObject.basicDetails.accountId;\r\n const canEdit = AccessControl.hasPermission(permissions, [ActivityPerms.multiTierMgrEditWhs]) && !showingVersion;\r\n const canUploadPermission = AccessControl.hasPermission(permissions, [ActivityPerms.scannedUpload, ActivityPerms.scannedWhdStmtBoUpload], true);\r\n const tierRecipients = this.getTierRecipientCount();\r\n const tierIntermediaries = this.getTierIntermediaryCount();\r\n const canSetIntermediaryCheckbox = this.doesCh3AllowImyCheckbox();\r\n\r\n const disabledOwnerToolTipText = checkboxState.formsDisableOwnerCheckbox ? 'Beneficiary Owners require W-8BEN-E or W-8ECI forms.' : null;\r\n const disableIntermediaryCheckbox = !!((checkboxState.formsDisableImyCheckbox || checkboxState.allocDisablesImyCheckbox));\r\n let disabledIntermediaryToolTipText = null;\r\n\r\n if (checkboxState.formsDisableImyCheckbox) {\r\n disabledIntermediaryToolTipText = 'To be an Intermediary requires a W8-IMY form.';\r\n } else if (checkboxState.allocDisablesImyCheckbox) {\r\n disabledIntermediaryToolTipText = 'Intermediaries cannot have a direct % allocation.';\r\n }\r\n\r\n const pooledRecipient = beneficialOwner;\r\n\r\n const buildImyTierObject = (item) => {\r\n if (!item) {\r\n return null;\r\n }\r\n const formObject = {\r\n accountId: item.accountId,\r\n accountName: item.name,\r\n accountNumber: item.accountNumber,\r\n customerDbId: item.customerDbId,\r\n customerId: item.customerIdentifier,\r\n customerName: item.customerName,\r\n };\r\n\r\n return formObject;\r\n };\r\n\r\n const buildFormObject = (item) => {\r\n if (item === undefined) {\r\n return null;\r\n }\r\n const formTypeValue = item && item.formType && FormTypes.getByValue(item.formType);\r\n const formObject = {\r\n accountId: item.accountId,\r\n id: item.formId,\r\n name: item.name,\r\n customerDbId: item.customerDbId,\r\n customerName: item.customerName,\r\n formId: item.formId,\r\n formType: formTypeValue && formTypeValue.code,\r\n workflowStatus: item.workflowStatus,\r\n workflowUsername: item.workflowUsername ? item.workflowUsername : 'N/A',\r\n workflowUserFullName: item.workflowUserFullName\r\n };\r\n return formObject;\r\n };\r\n\r\n if (isImyLayer) {\r\n levelParents.push(name);\r\n }\r\n\r\n return (isImyLayer || !isTierCollapsed) && \r\n
    \r\n
    \r\n
    \r\n /{ levelParents && levelParents.length > 0 && levelParents.map(x => { x } /) }\r\n
    \r\n { isImyLayer && !showingVersion &&
    \r\n { canEdit && openChangeParentModal(beneficialOwner.ownerDetails.guid, beneficialOwner.basicDetails, idx) }\r\n className=\"btn link-button\"\r\n >Change Parent }\r\n \r\n
    }\r\n
    \r\n { isImyLayer &&
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    { valueOrEmpty(name) }

    \r\n
    \r\n
    \r\n
    { tierRecipients } { isPooled ? 'Pooled Account' : 'Beneficial Owner' }{ tierRecipients === 0 || tierRecipients > 1 ? 's' : '' }
    \r\n { !isPooled &&
    / { tierIntermediaries } Intermediar{ tierIntermediaries === 0 || tierIntermediaries > 1 ? 'ies' : 'y' }
    }\r\n
    \r\n
    \r\n
    { this.displayAllocationValue(beneficialOwner) }% WHS Allocation
    \r\n
    \r\n
    \r\n { !isPooled && hasFormUploaded && canUploadPermission && !showingVersion &&
    \r\n \r\n
    }\r\n { canEdit &&
    \r\n this.addOwner(topAccountId, beneficialOwner.ownerDetails.guid, false) }\r\n >\r\n { isPooled ? 'Add Pool' : 'Add Beneficial Owner' }\r\n \r\n
    }\r\n { !isPooled && canEdit &&
    \r\n this.addOwner(topAccountId, beneficialOwner.ownerDetails.guid, true) }\r\n >\r\n Add IMY Tier\r\n \r\n
    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    }\r\n { !isTierCollapsed &&
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { (!isImyLayer || allowLayerAllocationChange) &&

    { name }

    }\r\n
    \r\n { isDetailed &&
    \r\n

    Unique ID: { !isEdit && { valueOrEmpty(ownerDetails.accountNumber) } }\r\n { isEdit && this.setState({ details: { ...details, accountNumber: e.target.value } }) } /> }\r\n

    \r\n
    \r\n
    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Name
    \r\n { !isEdit &&
    { name }
    }\r\n { isEdit && this.onNameChange(e.target.value) } value={ detailsName || '' } /> }\r\n { !isPooled && \r\n
    Business (DRE) Name
    \r\n { !isEdit &&
    { valueOrEmpty(ownerDetails.disregardedEntityName) }
    }\r\n { isEdit && this.setState({ details: { ...details, disregardedEntityName: e.target.value } }) } value={ details.disregardedEntityName || '' } /> }\r\n
    GIIN
    \r\n { !isEdit &&
    { valueOrEmpty(ownerDetails.giin) }
    }\r\n { isEdit && this.setState({ details: { ...details, giin: e.target.value } }) } value={ details.giin || '' } /> }\r\n { (isDetailed || isSimple) && \r\n
    U.S. TIN
    \r\n { !isEdit &&
    { valueOrEmpty(ownerDetails.tin) }
    }\r\n { isEdit && this.setState({ details: { ...details, tin: e.target.value } }) } value={ details.tin || '' } /> }\r\n
    Foreign TIN
    \r\n { !isEdit &&
    { valueOrEmpty(ownerDetails.foreignTIN) }
    }\r\n { isEdit && this.setState({ details: { ...details, foreignTin: e.target.value } }) } value={ details.foreignTin || '' } /> }\r\n
    }\r\n
    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n { (isDetailed || isSimple || isAlt) && \r\n
    Country of Tax Residence
    \r\n { !isEdit &&
    { valueOrEmpty(ownerDetails.taxResidenceCountry) }
    }\r\n { isEdit && this.setState({ details: { ...details, taxResidenceCountry: value } }) } /> }\r\n
    }\r\n { (isDetailed || isSimple || isPooled) && \r\n
    U.S. / Non-U.S. Status
    \r\n { !isEdit &&
    { valueOrEmpty(ownerDetails.usNonUsStatus) }
    }\r\n { isEdit && }\r\n
    }\r\n
    FATCA Status
    \r\n { !isEdit &&
    { valueOrEmpty(getChapter4DescriptionByName(ownerDetails.fatcaStatus)) }
    }\r\n { isEdit && this.setState({ details: { ...details, fatcaStatus: Chapter4Status.findByName(e.target.value).name || '' } }) }\r\n defaultValue={ (details.fatcaStatus && details.fatcaStatus) || '' }\r\n >\r\n \r\n { Chapter4Status.filter(x => !isPooled || (isPooled && x.whsPooledStatus)).map(x => (\r\n \r\n )) }\r\n }\r\n
    Chapter 3 Recipient Code
    \r\n { !isEdit &&
    { valueOrEmpty(getChapter3DescriptionByName(ownerDetails.chapter3RecipientCode)) }
    }\r\n { isEdit && this.onCh3Change(e) }\r\n defaultValue={ (details.chapter3RecipientCode && details.chapter3RecipientCode) || '' }\r\n >\r\n \r\n { Chapter3Status.filter(x => !isPooled || (isPooled && x.whsPooledStatus)).map(x => (\r\n \r\n )) }\r\n }\r\n { isEdit && canSetIntermediaryCheckbox && \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n { validationResultLine && }\r\n
    \r\n
    \r\n
    \r\n
    \r\n { BeneficialOwner.getAllocationTitle() }\r\n
    \r\n { (!isEdit || isImyLayer) &&
    \r\n { this.displayAllocationValue(beneficialOwner) }%\r\n
    }\r\n { ((isEdit && allowLayerAllocationChange) || (isEdit && !isImyLayer)) &&
    \r\n this.onIncomeAllocationChange(e) } />%\r\n
    }\r\n { isEdit &&
    \r\n
    \r\n
    \r\n
    }\r\n { (!isPooled && !hideTierAllocationValue && BeneficialOwner.shouldDisplayTierAllocationValue(beneficialOwner)) &&
    \r\n
    \r\n { BeneficialOwner.getTierAllocationTitle(beneficialOwner) }\r\n
    \r\n
    \r\n { this.displayTierAllocationValue(beneficialOwner, parentTierTotalAllocation) }%\r\n
    \r\n
    }\r\n { !isEdit &&
    \r\n { hasFormUploaded &&
    \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.scannedView, ActivityPerms.scannedEdit, ActivityPerms.scannedValidate]) && }\r\n className=\"btn btn-secondary\"\r\n title=\"View Form\"\r\n /> }\r\n
    }\r\n { AccessControl.hasPermission(permissions, [ActivityPerms.whdViewRates]) && isPooled && isStructureValid && { openPooledRatesModal(pooledRecipient.guid, pooledRecipient.rates); } }\r\n title=\"View Withholding Rates\"\r\n > }\r\n { hasFormUploaded &&
    \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.scannedViewTree]) && this.displayImy(ownerAccountId, statementVersion) }\r\n title=\"View IMY Tree\"\r\n > }\r\n
    }\r\n { canEdit &&
    \r\n \r\n
    }\r\n { canEdit &&
    \r\n
    }\r\n
    }\r\n
    \r\n
    \r\n { (isDetailed || isSimple) &&
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Additional Address Fields

    \r\n
    \r\n
    Street Address
    \r\n { !isEdit &&
    { valueOrEmpty(ownerDetails.address) }
    }\r\n { isEdit && this.setState({ details: { ...details, address: e.target.value } }) } value={ details.address || '' } /> }\r\n { isDetailed && \r\n
    City
    \r\n { !isEdit &&
    { valueOrEmpty(ownerDetails.city) }
    }\r\n { isEdit && this.setState({ details: { ...details, city: e.target.value } }) } value={ details.city || '' } /> }\r\n
    State / Province
    \r\n { !isEdit &&
    { valueOrEmpty(ownerDetails.stateProvince) }
    }\r\n { isEdit && this.setState({ details: { ...details, stateProvince: e.target.value } }) } value={ details.stateProvince || '' } /> }\r\n
    ZIP / Postal Code
    \r\n { !isEdit &&
    { valueOrEmpty(ownerDetails.zip) }
    }\r\n { isEdit && this.setState({ details: { ...details, zip: e.target.value } }) } value={ details.zip || '' } /> }\r\n
    Country
    \r\n { !isEdit &&
    { valueOrEmpty(ownerDetails.country) }
    }\r\n { isEdit && this.setState({ details: { ...details, country: value } }) } /> }\r\n
    }\r\n
    \r\n
    \r\n { isDetailed &&
    \r\n

    Further Details

    \r\n
    \r\n
    New Beneficial Owner?
    \r\n { !isEdit &&
    { valueOrEmpty(ownerDetails.new) }
    }\r\n { isEdit && }\r\n
    Active Beneficial Owner?
    \r\n { !isEdit &&
    { valueOrEmpty(ownerDetails.active) }
    }\r\n { isEdit && }\r\n
    U.S. TIN Type
    \r\n { !isEdit &&
    { valueOrEmpty(ownerDetails.tinType) }
    }\r\n { isEdit && }\r\n
    Tax Form Type
    \r\n { !isEdit &&
    { valueOrEmpty(formType && formType.getFamilyName()) }
    }\r\n { isEdit && this.onFormTypeChange(e) }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n
    \r\n
    }\r\n
    \r\n
    \r\n { isDetailed &&
    \r\n
    \r\n
    Treaty Benefits
    \r\n { !isEdit &&
    { valueOrEmpty(ownerDetails.treatyBenefits) }
    }\r\n { isEdit && }\r\n
    Limitation on Benefits
    \r\n { !isEdit &&
    { valueOrEmpty(BeneficialOwner.getLOBDescriptionByCode(ownerDetails.limitationOnBenefits)) }
    }\r\n { isEdit && }\r\n
    \r\n
    }\r\n
    \r\n
    }\r\n { (isDetailed || isSimple) &&
    \r\n \r\n
    }\r\n
    \r\n
    }\r\n
    \r\n { beneficialOwner.recipients &&
    \r\n { beneficialOwner.recipients.map((x, childIdx) => openAccountWithholdingModal(formId) }\r\n topAccountId={ topAccountId }\r\n parentAccountId={ ownerAccountId }\r\n openAddFormModal={ openAddFormModal }\r\n addBeneficialOwner={ addBeneficialOwner }\r\n isSavingStatement={ isSavingStatement }\r\n updateToggledCollapsibleTiers={ (accountName, toggleState) => updateToggledCollapsibleTiers(accountName, toggleState) }\r\n tierCollapseStructure={ tierCollapseStructure }\r\n validationLineNo={ x.ownerDetails?.lineNo || null }\r\n validationResult={ validationResult }\r\n openPooledRatesModal={ (accountName, rates) => openPooledRatesModal(accountName, rates) }\r\n isDeletingRow={ isDeletingRow }\r\n isStructureValid={ isStructureValid }\r\n isAddingNewBeneficalOwner={ isAddingNewBeneficalOwner }\r\n statementVersion={ statementVersion }\r\n parentTierTotalAllocation={ BeneficialOwner.getAllocationValue(beneficialOwner) }\r\n />) }\r\n
    }\r\n this.deleteRow() }\r\n onCancel={ () => {\r\n this.closeDeleteConfirmation();\r\n } }\r\n confirmTitle=\"Continue\"\r\n cancelTitle=\"Close\"\r\n title=\"Are you sure?\"\r\n message={ beneficialOwner?.recipients\r\n ? 'Deleting an intermediary will also delete all of the beneficial owners beneath it'\r\n : 'Deleting a statement row can not be undone' }\r\n />\r\n ;\r\n }\r\n}\r\n\r\nexport default BeneficialOwner;\r\n","import React, { useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\n\r\nimport valueOrEmpty from 'common/App/valueOrEmpty';\r\nimport StatementTypes from 'common/Forms/StatementTypes';\r\n\r\nimport ValidationInspector from 'common/Validation/ValidationInspector';\r\nimport ImyChapter3Status from 'common/Forms/ImyChapter3Status';\r\nimport Chapter4Status from 'common/Customers/Chapter4Status';\r\nimport WhdValidationSummary from 'components/WhdStatement/WhdValidationSummary';\r\nimport JurisdictionDropDown from 'components/Common/Inputs/JurisdictionDropDown';\r\nimport { updateStatement } from 'actions';\r\n\r\nconst IntermediaryDetailsPanel = ({ accountId, statement, getChapter3DescriptionByName, getChapter4DescriptionByName, permissions, dispatch, validationResult, showingVersion }) => {\r\n const isDetailed = statement && statement.type === StatementTypes.DetailedWhdStatement;\r\n const ignoredValidationCodes = ['REJ600070'];\r\n const hasWarnings = ValidationInspector.hasWarnings(validationResult, null, ignoredValidationCodes);\r\n const hasRejections = ValidationInspector.hasRejections(validationResult, null, ignoredValidationCodes);\r\n const canEdit = AccessControl.hasPermission(permissions, [ActivityPerms.multiTierMgrEditWhs]) && !showingVersion;\r\n const [isEdit, setIsEdit] = useState(false);\r\n const [intermediaryName, setIntermediaryName] = useState(statement.intermediaryName);\r\n const [intermediaryIdentifier, setIntermediaryIdentifier] = useState(statement.intermediaryIdentifier);\r\n const [intermediaryAddressLine1, setIntermediaryAddressLine1] = useState(statement.intermediaryAddressLine1);\r\n const [intermediaryCity, setIntermediaryCity] = useState(statement.intermediaryCity);\r\n const [intermediaryCountry, setIntermediaryCountry] = useState(statement.intermediaryCountry);\r\n const [intermediaryGiin, setIntermediaryGiin] = useState(statement.intermediaryGiin);\r\n const [intermediaryTin, setIntermediaryTin] = useState(statement.intermediaryTin);\r\n const [intermediaryFatcaStatus, setIntermediaryFatcaStatus] = useState(Chapter4Status.findByName(statement.intermediaryFatcaStatus));\r\n const [intermediaryChapter3, setIntermediaryChapter3] = useState(ImyChapter3Status.findByName(statement.intermediaryChapter3));\r\n const [hybridStatus, setHybridStatus] = useState(statement.hybridStatus);\r\n const { isSavingStatement } = useSelector(state => state && state.withholdingStatement);\r\n\r\n const buildAddress = (addressElements) => {\r\n if (addressElements && addressElements.length > 0) {\r\n return addressElements.reduce((prev, curr) => {\r\n if (curr && curr.length > 0) {\r\n return `${ prev && prev.length > 0 ? `${ prev }, ` : '' }${ curr }`;\r\n }\r\n\r\n return prev ?? null;\r\n });\r\n }\r\n\r\n return null;\r\n };\r\n\r\n const submitData = () => {\r\n const obj = {\r\n details: {\r\n intermediaryIdentifier,\r\n intermediaryName,\r\n intermediaryChapter3: intermediaryChapter3.name,\r\n intermediaryFatcaStatus: intermediaryFatcaStatus.name,\r\n intermediaryGiin\r\n }\r\n };\r\n\r\n if (isDetailed) {\r\n obj.details.intermediaryAddressLine1 = intermediaryAddressLine1;\r\n obj.details.intermediaryCity = intermediaryCity;\r\n obj.details.intermediaryCountry = intermediaryCountry;\r\n obj.details.intermediaryTin = intermediaryTin;\r\n obj.details.hybridStatus = hybridStatus;\r\n }\r\n\r\n setIsEdit(false);\r\n dispatch(updateStatement(accountId, obj));\r\n };\r\n\r\n return
    \r\n

    Intermediary Details

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Institution Name
    \r\n { !isEdit &&
    { statement.intermediaryName }
    }\r\n { isEdit && setIntermediaryName(e.target.value) } value={ intermediaryName } /> }\r\n
    \r\n
    \r\n
    Unique ID
    \r\n { !isEdit &&
    { valueOrEmpty(statement.intermediaryIdentifier) }
    }\r\n { isEdit && setIntermediaryIdentifier(e.target.value) } value={ intermediaryIdentifier ?? '' } /> }\r\n
    \r\n { isDetailed &&
    \r\n
    Institution Address
    \r\n { !isEdit &&
    { valueOrEmpty(buildAddress([statement.intermediaryAddressLine1, statement.intermediaryCity, statement.intermediaryCountry])) }
    }\r\n { isEdit && setIntermediaryAddressLine1(e.target.value) } value={ intermediaryAddressLine1 } /> }\r\n { isEdit && setIntermediaryCity(e.target.value) } value={ intermediaryCity } /> }\r\n { isEdit && setIntermediaryCountry(value) } /> }\r\n
    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n Intermediary GIIN\r\n
    \r\n
    \r\n { !isEdit && valueOrEmpty(statement.intermediaryGiin) }\r\n { isEdit && setIntermediaryGiin(e.target.value) } value={ intermediaryGiin } /> }\r\n
    \r\n { isDetailed && \r\n
    \r\n Intermediary EIN\r\n
    \r\n
    \r\n { !isEdit && valueOrEmpty(statement.intermediaryTin) }\r\n { isEdit && setIntermediaryTin(e.target.value) } value={ intermediaryTin } /> }\r\n\r\n
    \r\n
    }\r\n
    \r\n FATCA Status\r\n
    \r\n
    \r\n { !isEdit && valueOrEmpty(getChapter4DescriptionByName(statement.intermediaryFatcaStatus, false)) }\r\n { isEdit && }\r\n
    \r\n
    \r\n Chapter 3 Entity Type\r\n
    \r\n
    \r\n { !isEdit && valueOrEmpty(getChapter3DescriptionByName(statement.intermediaryChapter3, false)) }\r\n { isEdit && }\r\n
    \r\n { isDetailed && \r\n
    \r\n Hybrid Status\r\n
    \r\n
    \r\n { !isEdit && valueOrEmpty(statement.hybridStatus) }\r\n { isEdit && }\r\n
    \r\n
    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n { canEdit &&
    \r\n { !isEdit && }\r\n { isEdit && }\r\n { isEdit && }\r\n
    }\r\n
    \r\n
    ;\r\n};\r\n\r\nIntermediaryDetailsPanel.propTypes = {\r\n statement: PropTypes.shape({\r\n hybridStatus: PropTypes.string,\r\n intermediaryAddressLine1: PropTypes.string,\r\n intermediaryChapter3: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number\r\n ]),\r\n intermediaryCity: PropTypes.string,\r\n intermediaryCountry: PropTypes.string,\r\n intermediaryFatcaStatus: PropTypes.string,\r\n intermediaryGiin: PropTypes.string,\r\n intermediaryIdentifier: PropTypes.string,\r\n intermediaryName: PropTypes.string,\r\n intermediaryTin: PropTypes.string,\r\n type: PropTypes.number,\r\n }),\r\n getChapter3DescriptionByName: PropTypes.func.isRequired,\r\n getChapter4DescriptionByName: PropTypes.func.isRequired,\r\n validationResult: PropTypes.shape({}),\r\n accountId: PropTypes.string.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n dispatch: PropTypes.func.isRequired,\r\n showingVersion: PropTypes.bool\r\n};\r\n\r\nIntermediaryDetailsPanel.defaultProps = {\r\n statement: null,\r\n validationResult: null,\r\n permissions: null,\r\n showingVersion: false\r\n};\r\n\r\nexport default IntermediaryDetailsPanel;\r\n","const paymentType = [\r\n { key: 1, value: 'Accounts Payable - Attorney fees' },\r\n { key: 2, value: 'Accounts Payable - Goods' },\r\n { key: 3, value: 'AP - Non - employee compensation' },\r\n { key: 4, value: 'Accounts Payable - Rents' },\r\n { key: 5, value: 'Dividends - Foreign Source' },\r\n { key: 6, value: 'Dividends - Ordinary(Private)', isPooled: true },\r\n { key: 7, value: 'Dividends - Ordinary(Public)' },\r\n { key: 8, value: 'Dividends - Qualified', isPooled: true },\r\n { key: 9, value: 'Fees - Borrow' },\r\n { key: 10, value: 'Fees - Contract' },\r\n { key: 11, value: 'Fees - Foreign Source' },\r\n { key: 12, value: 'Fees - Financial Services' },\r\n { key: 13, value: 'Fees - Loan Prepayment' },\r\n { key: 14, value: 'Gross Proceeds' },\r\n { key: 15, value: 'Interest - Bank Deposit' },\r\n { key: 16, value: 'Interest - Foreign Source' },\r\n { key: 17, value: 'Interest - Non - Portfolio', isPooled: true },\r\n { key: 18, value: 'Interest - Portfolio', isPooled: true },\r\n { key: 19, value: 'REIT - Dividends - Private', isPooled: true },\r\n { key: 20, value: 'REIT - Dividends - Public', isPooled: true },\r\n { key: 21, value: 'REIT - Long - Term Capital Gains', isPooled: true },\r\n { key: 22, value: 'REIT - Short - Term Capital Gains', isPooled: true },\r\n { key: 23, value: 'Return of Capital' },\r\n { key: 24, value: 'RIC - Dividends - Private', isPooled: true },\r\n { key: 25, value: 'RIC - Dividends - Public', isPooled: true },\r\n { key: 26, value: 'RIC - Long-Term Capital Gains', isPooled: true },\r\n { key: 27, value: 'RIC - Short-Term Capital Gains', isPooled: true },\r\n { key: 28, value: 'Swaps' },\r\n { key: 29, value: 'Ordinary ECI/Short-Term Capital Gains' },\r\n { key: 30, value: 'Collectibles Gains' },\r\n { key: 31, value: 'Unrecaptured Section 1250 Gains' },\r\n { key: 32, value: 'Section 1231 Gains/Qualified Dividend Income' },\r\n { key: 33, value: 'Publicly Traded Partnership Distributions', isPooled: true },\r\n { key: 34, value: 'Substitute Dividends - Ordinary(Public)', isPooled: true },\r\n { key: 35, value: 'Substitute Dividends - 871(m)', isPooled: true },\r\n { key: 36, value: 'Substitute Interest – Non-Portfolio' },\r\n { key: 37, value: 'Real Property Income' },\r\n { key: 38, value: 'Natural Resource Royalties', isPooled: true },\r\n { key: 39, value: 'Copyright Royalties', isPooled: true },\r\n { key: 40, value: 'Other Income' },\r\n { key: 41, value: 'Public Securities Royalties', isPooled: true },\r\n { key: 42, value: 'Partnership Gross Proceeds', isPooled: true },\r\n { key: 43, value: 'Substitute Dividends - 871(m) Gross Proceeds', isPooled: true },\r\n { key: 44, value: 'Original Issue Discount - Short-Term Non-Portfolio' },\r\n { key: 45, value: 'Original Issue Discount - Long-Term Non-Portfolio' },\r\n { key: 46, value: 'Original Issue Discount - Short-Term Portfolio' },\r\n { key: 47, value: 'Original Issue Discount - Long-Term Portfolio' },\r\n { key: 48, value: 'Substitute Interest - Non-Portfolio(Private)' },\r\n { key: 49, value: 'Substitute Dividends - Ordinary(Private)' },\r\n];\r\n\r\npaymentType.findByKey = (key) => {\r\n if (!key || key <= 0) {\r\n return null;\r\n }\r\n\r\n const code = paymentType.find(x => x.key === key);\r\n return code && code.value ? code.value : null;\r\n};\r\n\r\nexport default paymentType;\r\n","const fatcaExemptions = [\r\n { key: 0, value: 'No Exemption' },\r\n { key: 1, value: 'Effectively Connected Income' },\r\n { key: 2, value: 'Exempt under IRC (other than portfolio interest)' },\r\n { key: 3, value: 'Income Not From Us Sources' },\r\n { key: 4, value: 'Exempt under tax treaty' },\r\n { key: 5, value: 'Portfolio interest exempt under IRC' },\r\n { key: 6, value: 'QI that assumes primary withholding responsibility' },\r\n { key: 7, value: 'WFP or WFT' },\r\n { key: 8, value: 'U.S. branch treated as U.S. Person' },\r\n { key: 9, value: 'Territory FI treated as U.S. Person' },\r\n { key: 10, value: 'QI represents that income is exempt' },\r\n { key: 11, value: 'QSL that assumes primary withholding responsibility' },\r\n { key: 12, value: 'Payee subjected to chapter 4 withholding' },\r\n { key: 13, value: 'Grandfathered Payment' },\r\n { key: 15, value: 'Payee not subject to Ch4 WHD ' },\r\n { key: 16, value: 'Excluded Non-financial Payment' },\r\n { key: 17, value: 'Foreign Primary-WHD Entity' },\r\n { key: 18, value: 'US Payees - of PFFI or RDCFFI' },\r\n { key: 19, value: 'Exempt from WHD under IGA' },\r\n { key: 20, value: 'Dormant Account' },\r\n { key: 21, value: 'Excluded Offshore Payment' },\r\n { key: 22, value: 'QDD that assumes primary withholding responsibility' },\r\n { key: 23, value: 'Exempt under section 897(l)' },\r\n];\r\n\r\nfatcaExemptions.findByKey = (key) => {\r\n if (!key || key < 0) {\r\n return null;\r\n }\r\n\r\n const code = fatcaExemptions.find(x => x.key === key);\r\n return code && code.value ? code.value : null;\r\n};\r\n\r\nexport default fatcaExemptions;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { toastr } from 'react-redux-toastr';\r\n\r\nimport { updateStatement } from 'actions';\r\nimport PaymentTypes from 'common/Forms/PaymentTypes';\r\nimport FatcaExemptions from 'common/Forms/FatcaExemptions';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport ModalWrapper from '../ModalWrapper';\r\n\r\nconst PooledRatesModal = ({ structureId, accountId, statementVersion, isShown, onClose, permissions }) => {\r\n const { pooledRates } = useSelector(state => state && state.forms);\r\n const { selectedPooledAccount } = useSelector(state => state && state.forms);\r\n const [ratesList, setRatesList] = useState([]);\r\n const [paymentType, setPaymentType] = useState('');\r\n const [newRate, setNewRate] = useState(null);\r\n const [exemptionCode, setExemptionCode] = useState(0);\r\n const [ratesChanged, setRatesChanges] = useState(false);\r\n const [availablePaymentTypes, setAvailablePaymentTypes] = useState([]);\r\n const [rateError, setRateError] = useState(false);\r\n const provideExemption = newRate === 0 && exemptionCode === 0;\r\n const hasPermission = AccessControl.hasPermission(permissions, [ActivityPerms.multiTierMgrEditWhs]);\r\n const showingVersion = statementVersion !== null && typeof statementVersion !== 'undefined';\r\n\r\n const setRate = (value) => {\r\n if (value && !Number.isNaN(value)) {\r\n setNewRate(parseFloat(value));\r\n if (parseFloat(value) > 30) {\r\n setRateError(true);\r\n return;\r\n }\r\n } else {\r\n setNewRate(null);\r\n }\r\n setRateError(false);\r\n };\r\n\r\n const dispatch = useDispatch();\r\n\r\n const closeModal = () => {\r\n setRate(null);\r\n setExemptionCode(null);\r\n setPaymentType(null);\r\n\r\n onClose();\r\n };\r\n\r\n const deleteItem = (index) => {\r\n const items = [...ratesList];\r\n items.splice(index, 1);\r\n setRatesList(items);\r\n setRatesChanges(true);\r\n setAvailablePaymentTypes(PaymentTypes.filter(x => items.findIndex(y => y.paymentType === x.key) < 0 && x.isPooled));\r\n };\r\n\r\n const addNewRate = () => {\r\n const newRatesList = ratesList;\r\n const newPayment = {\r\n paymentType,\r\n rate: newRate,\r\n exemptionCode\r\n };\r\n\r\n if (newRate > 30) {\r\n toastr.error('Data Entry Error', 'The \\'Rate\\' value can not be above 30%.');\r\n return;\r\n }\r\n\r\n newRatesList.push(newPayment);\r\n setRatesList(newRatesList);\r\n setRatesChanges(true);\r\n setAvailablePaymentTypes(PaymentTypes.filter(x => newRatesList.findIndex(y => y.paymentType === x.key) < 0 && x.isPooled));\r\n setPaymentType('');\r\n setExemptionCode(newRatesList[0].exemptionCode);\r\n };\r\n\r\n const submitRates = () => {\r\n const obj = {\r\n pooledRates: {\r\n guid: selectedPooledAccount,\r\n rates: ratesList\r\n }\r\n };\r\n\r\n const rateKeys = ratesList.map(x => x.paymentType);\r\n const newPaymentTypeOptions = {\r\n structureId,\r\n paymentTypes: PaymentTypes.filter(x => rateKeys.includes(x.key)).map(x => x.value)\r\n };\r\n\r\n dispatch(updateStatement(accountId, obj, newPaymentTypeOptions));\r\n setRatesChanges(false);\r\n };\r\n\r\n useEffect(() => {\r\n if (pooledRates) {\r\n setRatesList([...pooledRates]);\r\n } else {\r\n setRatesList([]);\r\n }\r\n\r\n return function cleanup() {\r\n setRate(null);\r\n setExemptionCode(null);\r\n };\r\n }, [pooledRates]);\r\n\r\n useEffect(() => {\r\n if (ratesList) {\r\n setAvailablePaymentTypes(PaymentTypes.filter(x => ratesList.findIndex(y => y.paymentType === x.key) < 0 && x.isPooled));\r\n\r\n if (ratesList.length > 0) {\r\n setNewRate(ratesList[0].rate);\r\n setExemptionCode(ratesList[0].exemptionCode);\r\n }\r\n }\r\n }, [ratesList]);\r\n\r\n return (\r\n closeModal() }\r\n showFooter\r\n disableConfirm={ () => !ratesChanged }\r\n modalSize=\"modal-lg whd-rates-modal\"\r\n onConfirm={ () => submitRates(accountId, selectedPooledAccount, ratesList) }\r\n >\r\n { (ratesList === null || (ratesList && ratesList.length <= 0)) &&

    No withholding rates to display

    }\r\n { ratesList != null && ratesList.length > 0 && \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { ratesList.map((pooledRate, index) => (pooledRate\r\n && \r\n \r\n \r\n \r\n \r\n \r\n )) }\r\n \r\n
    Payment typeRateExemption CodeAction
    { pooledRate.paymentType && PaymentTypes.findByKey(pooledRate.paymentType) }{ pooledRate.rate ? `${ pooledRate.rate.toFixed(2) }%` : '0.00%' }{ pooledRate.exemptionCode && pooledRate.exemptionCode > 0 ? FatcaExemptions.findByKey(pooledRate.exemptionCode) : 'None' }{ !showingVersion && hasPermission && }
    }\r\n { !showingVersion && hasPermission &&
    \r\n

    Please add a new rate. Payment types can only be selected once and an exemption code is required for rates of 0%

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n 0 }\r\n value={ newRate != null ? newRate.toString() : '' }\r\n placeholder=\"Rate\"\r\n onChange={ e => setRate(e.target.value) }\r\n />\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    }\r\n \r\n );\r\n};\r\n\r\nPooledRatesModal.propTypes = {\r\n structureId: PropTypes.number.isRequired,\r\n accountId: PropTypes.number.isRequired,\r\n statementVersion: PropTypes.string,\r\n isShown: PropTypes.bool.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string).isRequired\r\n};\r\n\r\nPooledRatesModal.defaultProps = {\r\n statementVersion: null\r\n};\r\n\r\nexport default PooledRatesModal;\r\n","import React, { useState } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { toastr } from 'react-redux-toastr';\r\nimport moment from 'moment';\r\nimport valueOrEmpty from 'common/App/valueOrEmpty';\r\nimport StatementTypes from 'common/Forms/StatementTypes';\r\nimport WhdValidationSummary from 'components/WhdStatement/WhdValidationSummary';\r\nimport ValidationInspector from 'common/Validation/ValidationInspector';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport { RenderDatePicker } from 'components/Common/Inputs';\r\nimport HintButton from 'components/Common/Buttons/HintButton';\r\nimport ConfirmModal from 'components/Modals/ConfirmModal';\r\nimport DateTimes from 'components/Common/DateTimes';\r\n\r\nimport { updateStatement } from 'actions';\r\n\r\nconst StatementOptionsPanel = ({ statement, structure, accountId, permissions, dispatch, validationResult, showingVersion }) => {\r\n const specificValidationCodes = ['REJ600070'];\r\n const hasValidationItems = ValidationInspector.hasRejections(validationResult, specificValidationCodes);\r\n const canEdit = AccessControl.hasPermission(permissions, [ActivityPerms.multiTierMgrEditWhs]) && !showingVersion;\r\n const isDetailed = statement && statement.type === StatementTypes.DetailedWhdStatement;\r\n const isPooled = statement && statement.type === StatementTypes.PooledWhdStatement;\r\n const isJointAccountElected = statement?.jointAccountElection && statement.jointAccountElection.toLowerCase() === 'yes';\r\n const canConvertJointAccountElection = (!statement?.jointAccountElection\r\n || statement.jointAccountElection.toLowerCase() !== 'yes')\r\n && (structure.recipients && structure.recipients.filter(x => x.recipients && x.recipients.length > 0).length === 0);\r\n const [isEdit, setIsEdit] = useState(false);\r\n const [options, setOptions] = useState({\r\n statementEffectiveDate: statement.effectiveDate,\r\n statementEffectiveTo: statement.effectiveTo,\r\n jointAccountElection: statement.jointAccountElection,\r\n accountingMethod: statement.accountingMethod\r\n });\r\n const [showJointAccountModal, setShowJointAccountModal] = useState(false);\r\n const [jointAccountHintShown, setJointAccountHintShown] = useState(false);\r\n\r\n const sendUpdate = () => {\r\n setIsEdit(false);\r\n setShowJointAccountModal(false);\r\n dispatch(updateStatement(accountId, { options }));\r\n };\r\n\r\n const validateEffectiveDateRange = () => {\r\n if (!options.statementEffectiveDate) {\r\n return false;\r\n }\r\n\r\n if (!options.statementEffectiveTo) {\r\n return true;\r\n }\r\n\r\n const fromMoment = moment(options.statementEffectiveDate, 'MM-DD-YYYY');\r\n const toMoment = moment(options.statementEffectiveTo, 'MM-DD-YYYY');\r\n\r\n return fromMoment.isSameOrBefore(toMoment, 'day');\r\n };\r\n\r\n const submitData = () => {\r\n if (!options.statementEffectiveDate) {\r\n toastr.error(\r\n 'Error',\r\n 'An effective date must be set when updating the statement.'\r\n );\r\n } else if (!validateEffectiveDateRange()) {\r\n toastr.error(\r\n 'Error',\r\n 'The effective date range selected is invalid.'\r\n );\r\n } else if (options.jointAccountElection === 'Yes' && (statement.jointAccountElection === null || statement.jointAccountElection.toLowerCase() !== 'yes')) {\r\n setShowJointAccountModal(true);\r\n } else {\r\n sendUpdate();\r\n }\r\n };\r\n\r\n const dateEffectiveFromOnChange = (e) => {\r\n setOptions({ ...options, statementEffectiveDate: e });\r\n };\r\n\r\n const dateEffectiveToOnChange = (e) => {\r\n setOptions({ ...options, statementEffectiveTo: e });\r\n };\r\n\r\n return
    \r\n

    Statement Options

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Type\r\n
    \r\n
    \r\n { StatementTypes.getDescription(statement.type) }\r\n
    \r\n
    \r\n {!isPooled &&
    \r\n
    \r\n Accounting Method\r\n
    \r\n {!isEdit &&
    \r\n { valueOrEmpty(statement.accountingMethod) }\r\n
    }\r\n {isEdit &&
    \r\n setOptions({ ...options, accountingMethod: e.target.value }) }\r\n >\r\n \r\n \r\n \r\n \r\n
    }\r\n
    }\r\n
    \r\n
    \r\n { `Effective From${ (isEdit && ' (required)') || '' }` }\r\n
    \r\n { !isEdit &&
    \r\n { statement?.effectiveDate ? moment(statement.effectiveDate, 'MM-DD-YYYY').format('MMM DD, YYYY') : valueOrEmpty(statement.effectiveDate) }\r\n
    }\r\n { isEdit &&
    dateEffectiveFromOnChange(e), value: options.statementEffectiveDate && options.statementEffectiveDate.length > 0 ? options.statementEffectiveDate : '' } }\r\n placeholder=\"Please select a date\"\r\n className=\"form-input full-width\"\r\n dateFormat=\"MM-dd-yyyy\"\r\n maxDate={ options.statementEffectiveTo && new Date(Date.parse(options.statementEffectiveTo)) < DateTimes.today ? new Date(Date.parse(options.statementEffectiveTo)) : DateTimes.today }\r\n isClearable\r\n />
    }\r\n
    \r\n
    \r\n
    \r\n { `Effective To${ (isEdit && ' (optional)') || '' }` }\r\n
    \r\n { !isEdit &&
    \r\n { statement?.effectiveTo ? moment(statement.effectiveTo, 'MM-DD-YYYY').format('MMM DD, YYYY') : 'Effective until new version published' }\r\n
    }\r\n { isEdit &&
    dateEffectiveToOnChange(e), value: options.statementEffectiveTo && options.statementEffectiveTo.length > 0 ? options.statementEffectiveTo : '' } }\r\n placeholder=\"Please select a date\"\r\n className=\"form-input full-width\"\r\n dateFormat=\"MM-dd-yyyy\"\r\n minDate={ options.statementEffectiveDate && options.statementEffectiveDate.length > 0 ? new Date(Date.parse(options.statementEffectiveDate)) : new Date() }\r\n isClearable\r\n />
    }\r\n
    \r\n { (isDetailed || isPooled) &&
    \r\n
    \r\n Joint Account Election\r\n
    \r\n
    \r\n { !isEdit && valueOrEmpty(statement.jointAccountElection) }\r\n { isEdit && \r\n setOptions({ ...options, jointAccountElection: e.target.value }) }\r\n >\r\n \r\n \r\n \r\n \r\n { (isJointAccountElected || !canConvertJointAccountElection) && { setJointAccountHintShown(!jointAccountHintShown); } }\r\n /> }\r\n { jointAccountHintShown && isJointAccountElected && \r\n Structures already set with a Joint Account Election can not be changed\r\n }\r\n { jointAccountHintShown && !isJointAccountElected && !canConvertJointAccountElection && \r\n Structures with multiple layers of nesting cannot be converted into to joint account structures.\r\n }\r\n }\r\n
    \r\n
    }\r\n
    \r\n
    \r\n
    \r\n \r\n { canEdit &&
    \r\n { !isEdit && }\r\n { isEdit && }\r\n { isEdit && }\r\n
    }\r\n
    \r\n sendUpdate() }\r\n onCancel={ () => setShowJointAccountModal(false) }\r\n title=\"Joint Account Election\"\r\n message=\"Are you sure that the joint account election applies to this statement? This cannot be undone.\"\r\n />\r\n
    ;\r\n};\r\n\r\nStatementOptionsPanel.propTypes = {\r\n statement: PropTypes.shape({\r\n beneficialOwners: PropTypes.arrayOf(PropTypes.shape({})),\r\n accountingMethod: PropTypes.string,\r\n effectiveDate: PropTypes.string,\r\n effectiveTo: PropTypes.string,\r\n hybridStatus: PropTypes.string,\r\n jointAccountElection: PropTypes.string,\r\n type: PropTypes.number,\r\n }),\r\n structure: PropTypes.shape(),\r\n validationResult: PropTypes.shape({}),\r\n accountId: PropTypes.string.isRequired,\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n dispatch: PropTypes.func.isRequired,\r\n showingVersion: PropTypes.bool\r\n};\r\n\r\nStatementOptionsPanel.defaultProps = {\r\n permissions: null,\r\n statement: null,\r\n structure: null,\r\n validationResult: null,\r\n showingVersion: false\r\n};\r\n\r\nexport default StatementOptionsPanel;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport moment from 'moment';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport FormTypes from 'common/Forms/FormTypes';\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport { RenderDatePicker } from 'components/Common/Inputs';\r\nimport DateTimes from 'components/Common/DateTimes';\r\n\r\nconst EffectiveDateConfirmationModal = ({\r\n title,\r\n isShown,\r\n onConfirm,\r\n onCancel,\r\n error,\r\n structure,\r\n defaultEffectiveFrom,\r\n defaultEffectiveTo,\r\n versionWindows\r\n}) => {\r\n const [newEffectiveFromDate, setNewEffectiveFromDate] = useState(defaultEffectiveFrom ?? '');\r\n const [newEffectiveToDate, setNewEffectiveToDate] = useState(defaultEffectiveTo ?? '');\r\n const [showInfoMessage, setShowInfoMessage] = useState(false);\r\n const [isDisabled, setIsDisabled] = useState(false);\r\n\r\n const overlappingDateCheck = (newEffectiveFromDateMoment, newEffectiveToDateMoment, currentWindow) => (newEffectiveFromDateMoment <= moment(currentWindow.effectiveTo, 'YYYY-MM-DD') || currentWindow.effectiveTo === null)\r\n && (newEffectiveToDateMoment >= moment(currentWindow.effectiveFrom, 'YYYY-MM-DD') || newEffectiveToDateMoment === null);\r\n\r\n const disableConfirm = () => isDisabled;\r\n\r\n const formType = FormTypes.getByValue(structure?.basicDetails?.formType)?.code;\r\n\r\n useEffect(() => {\r\n if (!newEffectiveFromDate || newEffectiveFromDate.trim() === '') {\r\n setIsDisabled(true);\r\n setShowInfoMessage(false);\r\n return;\r\n }\r\n\r\n if (newEffectiveFromDate !== '') {\r\n const newEffectiveFromDateMoment = moment(newEffectiveFromDate, 'MM-DD-YYYY');\r\n const newEffectiveToDateMoment = moment(newEffectiveToDate, 'MM-DD-YYYY');\r\n\r\n if (versionWindows != null) {\r\n const filteredVersions = versionWindows.filter(version => overlappingDateCheck(newEffectiveFromDateMoment, newEffectiveToDateMoment, version));\r\n\r\n if (!newEffectiveFromDateMoment.isValid()) {\r\n setIsDisabled(true);\r\n setShowInfoMessage(false);\r\n return;\r\n }\r\n\r\n if (filteredVersions.length >= 2) {\r\n setShowInfoMessage(true);\r\n setIsDisabled(true);\r\n return;\r\n }\r\n setIsDisabled(false);\r\n if (filteredVersions.length === 1) {\r\n setShowInfoMessage(true);\r\n }\r\n if (filteredVersions.length === 0) {\r\n setShowInfoMessage(false);\r\n }\r\n }\r\n }\r\n }, [newEffectiveFromDate, newEffectiveToDate]);\r\n\r\n const onConfirmEffectiveDate = () => {\r\n onConfirm({ effectiveFromDate: newEffectiveFromDate, effectiveToDate: newEffectiveToDate });\r\n };\r\n\r\n return (\r\n \r\n {showInfoMessage && !isDisabled &&
    \r\n

    Previous Statements are effective on these dates. Publishing this Statement will overwrite pre-existing information on the specified days\r\n

    \r\n
    }\r\n {showInfoMessage && isDisabled &&

    Multiple Statements are effective on these dates. Change the Effective Dates of this Statement or \r\n \r\n edit\r\n the dates of pre-existing statements.\r\n

    }\r\n
    \r\n
    \r\n

    Effective From: (required)

    \r\n setNewEffectiveFromDate(e), value: newEffectiveFromDate && newEffectiveFromDate.length > 0 ? newEffectiveFromDate : '' } }\r\n placeholder=\"mm-dd-yyyy\"\r\n dateFormat=\"MM-dd-yyyy\"\r\n maxDate={ newEffectiveToDate && new Date(Date.parse(newEffectiveToDate)) < DateTimes.today ? new Date(Date.parse(newEffectiveToDate)) : DateTimes.today }\r\n isClearable\r\n />\r\n
    \r\n
    \r\n

    Effective To: (optional)

    \r\n setNewEffectiveToDate(e), value: newEffectiveToDate && newEffectiveToDate.length > 0 ? newEffectiveToDate : '' } }\r\n placeholder=\"mm-dd-yyyy\"\r\n dateFormat=\"MM-dd-yyyy\"\r\n isClearable\r\n minDate={ newEffectiveFromDate ? new Date(Date.parse(newEffectiveFromDate)) : new Date() }\r\n />\r\n

    Unless a date is set the statement will be published until a new statement provided

    \r\n
    \r\n
    \r\n {\r\n error\r\n &&
    \r\n { error }\r\n
    \r\n }\r\n \r\n );\r\n};\r\n\r\nEffectiveDateConfirmationModal.propTypes = {\r\n title: PropTypes.string,\r\n isShown: PropTypes.bool,\r\n onConfirm: PropTypes.func,\r\n onCancel: PropTypes.func,\r\n error: PropTypes.string,\r\n structure: PropTypes.shape(),\r\n defaultEffectiveFrom: PropTypes.string,\r\n defaultEffectiveTo: PropTypes.string,\r\n versionWindows: PropTypes.arrayOf(PropTypes.shape())\r\n};\r\n\r\nEffectiveDateConfirmationModal.defaultProps = {\r\n title: null,\r\n isShown: false,\r\n error: null,\r\n onConfirm: null,\r\n onCancel: null,\r\n structure: null,\r\n defaultEffectiveFrom: null,\r\n defaultEffectiveTo: null,\r\n versionWindows: null\r\n};\r\n\r\nexport default EffectiveDateConfirmationModal;\r\n","import React, { useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport { updateStatement, showImyTreeWithholding, getAllocationStatementFileByAccount, publishStatement,\r\n showEffectiveDateConfirmation, hideEffectiveDateConfirmation\r\n} from 'actions';\r\n\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport { FormViewButton } from 'components/Common/Buttons/FormViewButton';\r\nimport FormTypes from 'common/Forms/FormTypes';\r\nimport ValidationInspector from 'common/Validation/ValidationInspector';\r\nimport EffectiveDateConfirmationModal from 'components/Modals/EffectiveDateConfirmationModal';\r\n\r\nconst StatementActionsPanel = ({ accountId, statement, structure, validationResult, className, expandTier, statementVersion, versionWindows }) => {\r\n const fields = {\r\n name: 'Name',\r\n description: 'Description'\r\n };\r\n\r\n const [statementName, setStatementName] = useState(statement?.statementName);\r\n const [statementDescription, setStatementDescription] = useState(statement?.statementDescription);\r\n const [isSaveDisabled, setIsSaveDisabled] = useState(false);\r\n const [rejectionOwner, setRejectionOwner] = useState(null);\r\n const [warningOwner, setWarningOwner] = useState(null);\r\n const [formRef, setFormRef] = useState(null);\r\n const { isSavingStatement, isPublishingStatement, isShowingEffectiveDateConfirmation } = useSelector(state => state && state.withholdingStatement);\r\n const { permissions } = useSelector(state => state && state.auth);\r\n\r\n const showingVersion = statementVersion !== null && typeof statementVersion !== 'undefined';\r\n const statementRecipients = (statement && (statement.beneficialOwners || statement.accounts)) || [];\r\n const canEdit = AccessControl.hasPermission(permissions, [ActivityPerms.multiTierMgrEditWhs]) && !showingVersion;\r\n const canDownloadPermission = AccessControl.hasPermission(permissions, [ActivityPerms.multiTierMgrDownloadWhs]);\r\n\r\n const isValid = !validationResult || validationResult.valid;\r\n const hasWarnings = ValidationInspector.hasWarnings(validationResult) || (validationResult?.lines && validationResult.lines.some(x => ValidationInspector.hasWarnings(x)));\r\n const hasRejections = ValidationInspector.hasRejections(validationResult) || (validationResult?.lines && validationResult.lines.some(x => ValidationInspector.hasRejections(x)));\r\n\r\n const dispatch = useDispatch();\r\n\r\n const findNearestImy = (imyLayer, guid) => {\r\n if (imyLayer.guid === guid || (imyLayer.recipients && imyLayer.recipients.find(x => x.guid === guid && !(x.recipients?.length >= 0)))) {\r\n return imyLayer;\r\n }\r\n\r\n const layer = imyLayer.recipients.find(x => x.recipients && findNearestImy(x, guid));\r\n return layer && findNearestImy(layer, guid);\r\n };\r\n\r\n const findFirstInStructure = (item, lineArray) => {\r\n const rowDetails = item?.ownerDetails || item;\r\n if (rowDetails && Object.prototype.hasOwnProperty.call(rowDetails, 'lineNo') && lineArray.indexOf(rowDetails.lineNo) > -1) {\r\n return item;\r\n }\r\n\r\n return item.recipients && item.recipients.find(x => findFirstInStructure(x, lineArray));\r\n };\r\n\r\n const buildValidationLinesMap = (fnFilter, pValidationResult) => pValidationResult\r\n && !fnFilter(pValidationResult) && pValidationResult?.lines?.reduce((prev, curr) => { if (fnFilter(curr)) { prev.push(curr.lineNumber); } return prev; }, []);\r\n\r\n React.useEffect(() => () => dispatch(hideEffectiveDateConfirmation()), []);\r\n\r\n React.useEffect(() => {\r\n const statementNameChanged = statementName != null && statementName !== statement.statementName;\r\n const statementDescriptionChanged = statementDescription != null && statementDescription !== statement.statementDescription;\r\n setIsSaveDisabled(!statementNameChanged && !statementDescriptionChanged);\r\n }, [statementName, statementDescription, isSavingStatement]);\r\n\r\n React.useEffect(() => {\r\n const warningsMap = buildValidationLinesMap(ValidationInspector.hasWarnings, validationResult);\r\n const rejectionsMap = buildValidationLinesMap(ValidationInspector.hasRejections, validationResult);\r\n\r\n const firstWarning = warningsMap && findFirstInStructure(structure, warningsMap);\r\n const firstRejection = rejectionsMap && findFirstInStructure(structure, rejectionsMap);\r\n\r\n setRejectionOwner(firstRejection && findNearestImy(structure, firstRejection.guid));\r\n setWarningOwner(firstWarning && findNearestImy(structure, firstWarning.guid));\r\n }, [validationResult, structure]);\r\n\r\n const onFormSubmit = (event) => {\r\n event.preventDefault();\r\n if (!isSaveDisabled) {\r\n const obj = {\r\n description: {\r\n name: statementName,\r\n description: statementDescription\r\n }\r\n };\r\n\r\n dispatch(updateStatement(accountId, obj));\r\n }\r\n };\r\n\r\n const onFormReset = (event) => {\r\n setStatementName(statement.statementName);\r\n setStatementDescription(statement.statementDescription);\r\n formRef.reset();\r\n event.target.blur();\r\n };\r\n\r\n const displayImy = (formaccountId, versionNumber) => {\r\n dispatch(showImyTreeWithholding(formaccountId, versionNumber));\r\n };\r\n\r\n const getAllocationFile = (whdAccountId) => {\r\n dispatch(getAllocationStatementFileByAccount(whdAccountId));\r\n };\r\n\r\n const onFieldChange = (e, value, field) => {\r\n switch (field) {\r\n case fields.name:\r\n setStatementName(value.trim());\r\n break;\r\n case fields.description:\r\n setStatementDescription(value.trim());\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const onConfirmEffectiveDate = () => {\r\n dispatch(showEffectiveDateConfirmation());\r\n };\r\n\r\n const onPublishStatement = (versionWindow) => {\r\n dispatch(publishStatement(accountId, versionWindow));\r\n dispatch(hideEffectiveDateConfirmation());\r\n };\r\n\r\n const onCancelPublishStatement = () => {\r\n dispatch(hideEffectiveDateConfirmation());\r\n };\r\n\r\n const buildFormObject = (item) => {\r\n if (!item) {\r\n return null;\r\n }\r\n const formType = item && item.formType && FormTypes.getByValue(item.formType);\r\n const formObject = {\r\n accountId: item.accountId,\r\n formId: item.formId,\r\n formType: formType && formType.code,\r\n workflowStatus: item.workflowStatus,\r\n workflowUsername: item.workflowUsername ? item.workflowUsername : 'N/A',\r\n workflowUserFullName: item.workflowUserFullName\r\n };\r\n return formObject;\r\n };\r\n\r\n const checkPageForClass = classToFind => document.querySelector(`${ classToFind } .icon:not(.statement-panel):not(#statement-actions-panel)`);\r\n\r\n const findClosestWithId = (element) => {\r\n if (!element) {\r\n return null;\r\n }\r\n\r\n if (element.id && element.id !== '') {\r\n return element;\r\n }\r\n\r\n if (element.closest) {\r\n return element.closest('[id]');\r\n }\r\n\r\n return findClosestWithId(element.parentElement);\r\n };\r\n\r\n const getAncestorDivWithId = (classToFind) => {\r\n const div = checkPageForClass(classToFind);\r\n\r\n return (div && findClosestWithId(div)) || null;\r\n };\r\n\r\n const scrollIntoView = async (div) => {\r\n const navbarHeight = 90;\r\n if (!div) {\r\n return;\r\n }\r\n const scrollToY = div.offsetTop - navbarHeight;\r\n if (div.closest) {\r\n window.scrollTo({ top: scrollToY, behavior: 'smooth' });\r\n } else {\r\n let y = window.screenTop || 0;\r\n const direction = y < scrollToY ? 1 : -1;\r\n const smoothScroll = () => setTimeout(() => {\r\n y += 40 * direction;\r\n y = direction === 1 ? Math.min(y, scrollToY) : Math.max(y, scrollToY);\r\n window.scrollTo(0, y);\r\n if ((direction === 1 && y < scrollToY) || (direction === -1 && y > scrollToY)) {\r\n smoothScroll();\r\n }\r\n }, 30);\r\n\r\n smoothScroll();\r\n }\r\n };\r\n\r\n const scrollToValidationItem = async (validationClass, ownerObject) => {\r\n const identifier = ownerObject?.guid || ownerObject?.basicDetails?.name || ownerObject?.ownerDetails?.name;\r\n if (identifier) {\r\n await expandTier(identifier);\r\n }\r\n\r\n const div = getAncestorDivWithId(validationClass);\r\n scrollIntoView(div);\r\n };\r\n\r\n const scrollToFirstWarning = () => scrollToValidationItem('.validation-warning', warningOwner);\r\n const scrollToFirstRejection = () => scrollToValidationItem('.validation-error', rejectionOwner);\r\n\r\n return (
    \r\n
    \r\n
    \r\n

    Withholding Statement

    \r\n
    \r\n { canEdit &&
    setFormRef(el) }>\r\n onFieldChange(e, e.target.value, fields.name) } />\r\n onFieldChange(e, e.target.value, fields.description) }\r\n defaultValue={ statement.statementDescription || '' }\r\n />\r\n
    \r\n \r\n \r\n
    \r\n }\r\n { !canEdit && (statementName || statementDescription) &&
    \r\n

    { statementName || Statement Name Empty }

    \r\n

    { statementDescription || Statement Description Empty }

    \r\n
    }\r\n { (!isValid || hasRejections || hasWarnings) &&
    \r\n
    \r\n { (!isValid || hasRejections) && scrollToFirstRejection() }\r\n type=\"button\"\r\n >\r\n The statement contains errors.\r\n }\r\n { hasWarnings && scrollToFirstWarning() }\r\n type=\"button\"\r\n >\r\n The statement contains warnings.\r\n }\r\n
    \r\n
    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n { statement.formId > 0 && AccessControl.hasPermission(permissions, [ActivityPerms.scannedView, ActivityPerms.scannedEdit, ActivityPerms.scannedValidate]) && IMY Form }\r\n className=\"btn btn-secondary\"\r\n title=\"View IMY Form\"\r\n /> }\r\n
    \r\n
    \r\n { AccessControl.hasPermission(permissions, [ActivityPerms.scannedViewTree]) && displayImy(accountId, statementVersion) }\r\n >IMY Tree }\r\n
    \r\n
    \r\n { statement.hasOriginalStatement && canDownloadPermission && !showingVersion && getAllocationFile(accountId) }\r\n >Download Original }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Total Owners\r\n
    \r\n
    \r\n { statementRecipients.length }\r\n
    \r\n
    \r\n Total Tier Ownership\r\n
    \r\n
    \r\n { statementRecipients.reduce((p, c) => (p || 0) + (c.allocationIncomeRate * 100), 0).toFixed(statement.decimalPlacePrecision) }%\r\n
    \r\n { !showingVersion &&
    \r\n \r\n
    }\r\n
    \r\n
    \r\n
    \r\n { isShowingEffectiveDateConfirmation && onPublishStatement(versionWindow) }\r\n onCancel={ () => onCancelPublishStatement() }\r\n title=\"Publish Statement\"\r\n confirmTitle=\"Confirm Effective Date and Publish Statement\"\r\n structure={ structure }\r\n defaultEffectiveFrom={ statement?.effectiveDate && statement.effectiveDate }\r\n defaultEffectiveTo={ statement?.effectiveTo && statement.effectiveTo }\r\n versionWindows={ versionWindows }\r\n /> }\r\n
    );\r\n};\r\n\r\nStatementActionsPanel.propTypes = {\r\n statement: PropTypes.shape({\r\n beneficialOwners: PropTypes.arrayOf(PropTypes.shape({})),\r\n accounts: PropTypes.arrayOf(PropTypes.shape({})),\r\n decimalPlacePrecision: PropTypes.number,\r\n statementDescription: PropTypes.string,\r\n statementName: PropTypes.string,\r\n formId: PropTypes.number,\r\n hasOriginalStatement: PropTypes.bool,\r\n type: PropTypes.number,\r\n effectiveDate: PropTypes.string,\r\n effectiveTo: PropTypes.string\r\n }).isRequired,\r\n validationResult: PropTypes.shape({\r\n valid: PropTypes.bool,\r\n rejections: PropTypes.arrayOf(PropTypes.shape({ code: PropTypes.string })),\r\n warnings: PropTypes.arrayOf(PropTypes.shape({ code: PropTypes.string })),\r\n lines: PropTypes.arrayOf(PropTypes.shape({\r\n warnings: PropTypes.arrayOf(PropTypes.shape({ code: PropTypes.string })),\r\n rejections: PropTypes.arrayOf(PropTypes.shape({ code: PropTypes.string })),\r\n }))\r\n }),\r\n accountId: PropTypes.number.isRequired,\r\n className: PropTypes.string,\r\n structure: PropTypes.shape({\r\n basicDetails: PropTypes.shape({})\r\n }),\r\n expandTier: PropTypes.func.isRequired,\r\n statementVersion: PropTypes.string,\r\n versionWindows: PropTypes.arrayOf(PropTypes.shape()),\r\n};\r\n\r\nStatementActionsPanel.defaultProps = {\r\n className: null,\r\n structure: null,\r\n validationResult: null,\r\n statementVersion: null,\r\n versionWindows: null\r\n};\r\n\r\nexport default StatementActionsPanel;\r\n","import React, { useState, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Autosuggest from 'react-autosuggest';\r\n\r\nconst SimpleAutoComplete = ({ options, placeholder, onClickAction, className }) => {\r\n const [suggestions, setSuggestions] = useState([]);\r\n const [value, setValue] = useState('');\r\n\r\n const getSuggestions = valueItem => options.filter(option => (option.searchValue || option.display || option).toLowerCase().indexOf(valueItem.toLowerCase()) > -1 && valueItem.length >= 2);\r\n\r\n const onChange = (event, { newValue, method }) => {\r\n setValue(newValue);\r\n };\r\n\r\n const inputProps = {\r\n placeholder,\r\n value,\r\n onChange,\r\n type: 'search',\r\n className: `form-input ${ className }`,\r\n };\r\n\r\n const onSuggestionsFetchRequested = useCallback(({ value: newValue }) => setSuggestions(getSuggestions(newValue)), []);\r\n\r\n const onSuggestionsClearRequested = useCallback(() => setSuggestions([]), []);\r\n\r\n const getSuggestionValue = useCallback(suggestion => suggestion.display || suggestion, []);\r\n\r\n const renderSuggestion = useCallback(suggestion => ({ suggestion.display || suggestion }), []);\r\n\r\n const onSuggestionSelected = useCallback((event, { suggestion, suggestionValue, index, method }) => {\r\n event.preventDefault();\r\n onClickAction(suggestion);\r\n }, []);\r\n\r\n return ();\r\n};\r\n\r\nSimpleAutoComplete.propTypes = {\r\n options: PropTypes.instanceOf(Array).isRequired,\r\n onClickAction: PropTypes.func.isRequired,\r\n placeholder: PropTypes.string,\r\n className: PropTypes.string,\r\n};\r\n\r\nSimpleAutoComplete.defaultProps = {\r\n placeholder: '',\r\n className: ''\r\n};\r\n\r\nexport default SimpleAutoComplete;\r\n","import React from 'react';\r\nimport moment from 'moment';\r\nimport { withRouter } from 'react-router';\r\nimport { connect } from 'react-redux';\r\nimport { PropTypes } from 'prop-types';\r\nimport { getWhdStatement, changeImyTierParent, setStatementPosition, hideOwnershipModal,\r\n showAccountWithholdingModal, takeQueueItem,\r\n hideAccountWithholdingModal,\r\n addForm, showAddFormModal,\r\n hideAddFormModal, addNewBeneficialOwner, saveCollapsedTiers,\r\n hidePooledRatesModal, showPooledRatesModal } from 'actions';\r\nimport { history } from 'containers/App';\r\nimport StatementTypes from 'common/Forms/StatementTypes';\r\nimport ImyChapter3Status from 'common/Forms/ImyChapter3Status';\r\nimport Chapter3Status from 'common/Customers/Chapter3Status';\r\nimport Chapter4Status from 'common/Customers/Chapter4Status';\r\nimport ValidationInspector from 'common/Validation/ValidationInspector';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport withContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary';\r\nimport BeneficialOwner from 'components/WhdStatement/beneficialOwner';\r\nimport IntermediaryDetailsPanel from 'components/WhdStatement/intermediaryDetailsPanel';\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\nimport NotFoundPage from 'components/Errors/NotFoundPage';\r\nimport ChangeOwnershipModal from 'components/Modals/ChangeOwnershipModal';\r\nimport AddFormModal from 'components/Modals/AddFormModal';\r\nimport WithholdingRatesModal from 'components/Modals/WithholdingRatesModal';\r\nimport PooledRatesModal from 'components/Modals/PooledRatesModal';\r\nimport StatementOptionsPanel from 'components/WhdStatement/statementOptionsPanel';\r\nimport StatementActionsPanel from 'components/WhdStatement/statementActionsPanel';\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport SimpleAutoComplete from 'components/Common/Inputs/SimpleAutoComplete';\r\nimport LinkWhsAccountModal from 'components/Modals/LinkWhsAccountModal';\r\nimport Banner from 'components/Common/Banner';\r\n\r\nclass WhdStatement extends React.PureComponent {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n isGettingStatement: PropTypes.bool,\r\n isUpdatingStatement: PropTypes.bool,\r\n isStructureValid: PropTypes.bool,\r\n match: PropTypes.shape({\r\n params: PropTypes.shape({\r\n accountId: PropTypes.string.isRequired,\r\n versionNumber: PropTypes.string\r\n }).isRequired\r\n }).isRequired,\r\n beneficiaryList: PropTypes.arrayOf(PropTypes.shape({})),\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n settings: PropTypes.shape({\r\n showMultiTierManager: PropTypes.bool,\r\n showWithholding: PropTypes.bool,\r\n selectedClient: PropTypes.shape({\r\n isPiiProtectionEnabled: PropTypes.bool\r\n })\r\n }),\r\n statement: PropTypes.shape({\r\n beneficialOwners: PropTypes.arrayOf(PropTypes.shape({})),\r\n decimalPlacePrecision: PropTypes.number,\r\n intermediaryName: PropTypes.string,\r\n accounts: PropTypes.arrayOf(PropTypes.shape({})),\r\n type: PropTypes.number,\r\n formId: PropTypes.number,\r\n effectiveTo: PropTypes.string,\r\n }),\r\n structure: PropTypes.shape({\r\n basicDetails: PropTypes.shape({\r\n formId: PropTypes.number,\r\n accountId: PropTypes.number,\r\n name: PropTypes.string\r\n }),\r\n recipients: PropTypes.arrayOf(PropTypes.shape({})),\r\n }),\r\n statementPosition: PropTypes.shape({}),\r\n isOwnershipModalShown: PropTypes.bool,\r\n changeOwnershipItem: PropTypes.shape(),\r\n isAccountWithholdingShown: PropTypes.bool.isRequired,\r\n isAddFormModalShown: PropTypes.bool.isRequired,\r\n isSavingStatement: PropTypes.bool,\r\n validationResult: PropTypes.shape({ lines: PropTypes.arrayOf(PropTypes.shape({})) }),\r\n tierCollapseStructure: PropTypes.shape({}),\r\n isPooledRatesModalShown: PropTypes.bool.isRequired,\r\n isDeletingRow: PropTypes.bool,\r\n isAddingNewBeneficalOwner: PropTypes.bool,\r\n topAccount: PropTypes.shape({\r\n isWhsLinkingActive: PropTypes.bool\r\n }),\r\n versionWindows: PropTypes.arrayOf(PropTypes.shape({})),\r\n };\r\n\r\n static defaultProps = {\r\n isGettingStatement: false,\r\n beneficiaryList: null,\r\n isUpdatingStatement: false,\r\n isStructureValid: false,\r\n permissions: null,\r\n settings: null,\r\n statement: null,\r\n structure: null,\r\n isOwnershipModalShown: false,\r\n changeOwnershipItem: null,\r\n isSavingStatement: false,\r\n statementPosition: null,\r\n validationResult: null,\r\n tierCollapseStructure: null,\r\n isDeletingRow: false,\r\n isAddingNewBeneficalOwner: false,\r\n topAccount: null,\r\n versionWindows: null\r\n };\r\n\r\n static getChapter3DescriptionByName = (name, displayNumber = true) => {\r\n const item = Chapter3Status.findByName(name);\r\n return (item && `${ item.description }${ displayNumber ? ' - ' : '' }${ displayNumber ? item.value : '' }`) || null;\r\n };\r\n\r\n static getChapter4DescriptionByName = (name, displayNumber = true) => {\r\n const item = Chapter4Status.findByName(name);\r\n return (item && `${ item.description }${ displayNumber ? ' - ' : '' }${ displayNumber ? item.value : '' }`) || null;\r\n };\r\n\r\n static getImyChapter3DescriptionByName = (name, displayNumber = true) => {\r\n const item = ImyChapter3Status.findByName(name);\r\n return (item && `${ item.description }${ displayNumber ? ' - ' : '' }${ displayNumber ? item.value : '' }`) || null;\r\n };\r\n\r\n static buildElementId = name => (name && name.replace(/[^a-zA-Z0-9-_]/g, '')) || '';\r\n\r\n static scrollToLastPosition = (position) => {\r\n window.scrollTo({\r\n top: position,\r\n behavior: 'smooth'\r\n });\r\n };\r\n\r\n static getIsDirectBeneficialOwner(beneficialOwner) {\r\n if (beneficialOwner.ownerDetails && !beneficialOwner.ownerDetails.allocationIncomeRate && beneficialOwner.recipients) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n toggleState: {\r\n isTierExpanded: false,\r\n },\r\n isAllTiersExpanded: false,\r\n childAccountId: null,\r\n childOwnerGuid: null,\r\n childOwnerName: null,\r\n childParentId: null\r\n };\r\n\r\n this.handleChangeImyParentInputChange = this.handleChangeImyParentInputChange.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const {\r\n match: { params: { accountId } },\r\n statementPosition\r\n } = this.props;\r\n\r\n this.getWithholdingStatement();\r\n this.setExpandedTier();\r\n\r\n if (statementPosition && statementPosition[accountId]) {\r\n const position = statementPosition[parseInt(accountId, 10)];\r\n setTimeout(() => (\r\n WhdStatement.scrollToLastPosition(position)\r\n ), 2000);\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const {\r\n match: { params: { accountId } }, statement\r\n } = this.props;\r\n\r\n const {\r\n match: { params: { accountId: prevAccountId } }, statement: prevStatement\r\n } = prevProps;\r\n\r\n if (accountId !== prevAccountId) {\r\n this.getWithholdingStatement();\r\n }\r\n\r\n if (statement !== prevStatement) {\r\n this.setExpandedTier();\r\n }\r\n }\r\n\r\n onCloseWithholdingModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideAccountWithholdingModal());\r\n }\r\n\r\n onClosePooledRatesModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hidePooledRatesModal());\r\n }\r\n\r\n setExpandedTier() {\r\n const { match: { params: { accountId } }, statement, tierCollapseStructure } = this.props;\r\n\r\n if (tierCollapseStructure && tierCollapseStructure[accountId] && statement && statement.intermediaryName) {\r\n this.setState({ isAllTiersExpanded: tierCollapseStructure[accountId].allTiersExpanded });\r\n if (tierCollapseStructure[accountId][statement.intermediaryName]) {\r\n this.setState({ toggleState: tierCollapseStructure[accountId][statement.intermediaryName] });\r\n }\r\n }\r\n }\r\n\r\n getWithholdingStatement() {\r\n const {\r\n dispatch,\r\n match: { params: { accountId, versionNumber } },\r\n permissions\r\n } = this.props;\r\n\r\n if (accountId > 0 && AccessControl.hasPermission(permissions, [ActivityPerms.multiTierMgrEditWhs, ActivityPerms.multiTierMgrViewWhs])) {\r\n dispatch(getWhdStatement([accountId], versionNumber));\r\n }\r\n }\r\n\r\n getTierRecipientCount() {\r\n const { structure } = this.props;\r\n return structure?.recipients ? structure?.recipients.filter(r => !r.recipients).length : 0;\r\n }\r\n\r\n getTierIntermediaryCount() {\r\n const { structure } = this.props;\r\n return structure?.recipients ? structure?.recipients.filter(r => r.recipients).length : 0;\r\n }\r\n\r\n getOwners = (recipient, level, structureLocator, index) => {\r\n const structureLocation = `${ structureLocator && '-' }${ index }`;\r\n const owners = [{ level, structureLocation, accountId: recipient.basicDetails.accountId, name: recipient.basicDetails.name }];\r\n\r\n const items = recipient.recipients\r\n .map((item, idx) => item.recipients && this.getOwners(item, level + 1, structureLocation, idx));\r\n\r\n return items.reduce((p, c) => {\r\n if (!c) {\r\n return p;\r\n }\r\n\r\n if (Array.isArray(c)) {\r\n return [...p, ...c];\r\n }\r\n\r\n return [...p, c];\r\n }, owners);\r\n };\r\n\r\n getParent = (accountId) => {\r\n const { structure } = this.props;\r\n\r\n if (!accountId || !structure || !structure.basicDetails || !structure.basicDetails.accountId) {\r\n return null;\r\n }\r\n\r\n if (structure.basicDetails.accountId === accountId) {\r\n return structure.basicDetails;\r\n }\r\n\r\n return this.findInRecipients(accountId, structure.recipients);\r\n };\r\n\r\n getStatementImyLayers = (accountId, parentAccountId) => {\r\n const { structure } = this.props;\r\n\r\n if (!structure || !structure.basicDetails) {\r\n return [];\r\n }\r\n\r\n const imys = this.getImyLayers(0, accountId, parentAccountId, structure);\r\n\r\n return imys || [];\r\n };\r\n\r\n getImyLayers = (level, accountId, parentAccountId, recipient) => {\r\n if (!recipient || !recipient.basicDetails || !Array.isArray(recipient.recipients)) {\r\n return null;\r\n }\r\n\r\n const relation = this.getImyRelation(recipient, accountId, parentAccountId);\r\n\r\n const imys = [{ level, accountId: recipient.basicDetails.accountId, guid: recipient.guid, name: recipient.basicDetails.name, relation }];\r\n\r\n const items = recipient.recipients\r\n .map(item => item.recipients && this.getImyLayers(level + 1, accountId, parentAccountId, item));\r\n\r\n return items.reduce((p, c) => {\r\n if (!c) {\r\n return p;\r\n }\r\n\r\n if (Array.isArray(c)) {\r\n return [...p, ...c];\r\n }\r\n\r\n return [...p, c];\r\n }, imys);\r\n };\r\n\r\n findInRecipients = (accountId, recipientList) => {\r\n if (!recipientList || !Array.isArray(recipientList) || recipientList.length === 0) {\r\n return null;\r\n }\r\n\r\n let recipient = recipientList && Array.isArray(recipientList) && recipientList.find(x => x.basicDetails && x.basicDetails.accountId === accountId);\r\n if (recipient) {\r\n return recipient.basicDetails;\r\n }\r\n\r\n recipient = recipientList.find(x => x.recipients && this.findInRecipients(accountId, x.recipients) !== null);\r\n\r\n return null;\r\n };\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n getImyRelation = (imyRecipient, accountId, parentAccountId) => {\r\n const parentAccount = imyRecipient && imyRecipient.basicDetails.accountId === parentAccountId && 'parent';\r\n const backupIdentifer = imyRecipient && imyRecipient.basicDetails && `${ imyRecipient.basicDetails.parentAccountId }-${ imyRecipient.guid || '' }`;\r\n const selfAccount = imyRecipient && accountId && (imyRecipient.basicDetails.accountId === accountId || backupIdentifer === accountId) && 'self';\r\n\r\n return parentAccount || selfAccount || null;\r\n };\r\n\r\n getToggleState = (rowIdentifier) => {\r\n const { statement, tierCollapseStructure, match: { params: { accountId: pAccountId } } } = this.props;\r\n if (statement && statement.intermediaryName && statement.intermediaryName === rowIdentifier) {\r\n const { toggleState } = this.state;\r\n return toggleState;\r\n }\r\n\r\n const storedState = tierCollapseStructure && tierCollapseStructure[pAccountId] && tierCollapseStructure[pAccountId][rowIdentifier];\r\n\r\n return storedState?.toggleState || {\r\n isTierExpanded: false,\r\n isOverrideTopTier: false,\r\n isAdditionalExpanded: false\r\n };\r\n };\r\n\r\n handleChangeImyParentInputChange = (event) => {\r\n const { changeParentData } = this.state;\r\n const name = event.target && event.target.name;\r\n const value = event.target && event.target.value;\r\n\r\n const newData = {\r\n ...changeParentData,\r\n [name]: value\r\n };\r\n\r\n this.setState({ changeParentData: newData });\r\n };\r\n\r\n updateToggledCollapsibleTiers = (rowIdentifier, toggleOptions) => {\r\n const { tierCollapseStructure, match: { params: { accountId: pAccountId } }, dispatch } = this.props;\r\n const { isAllTiersExpanded } = this.state;\r\n const updatedStucture = Object.assign({}, tierCollapseStructure) || { [pAccountId]: null };\r\n\r\n if (!updatedStucture[pAccountId]) {\r\n updatedStucture[pAccountId] = { allTiersExpanded: isAllTiersExpanded };\r\n } else {\r\n updatedStucture[pAccountId].allTiersExpanded = isAllTiersExpanded;\r\n }\r\n\r\n updatedStucture[pAccountId][rowIdentifier] = toggleOptions;\r\n\r\n dispatch(saveCollapsedTiers(updatedStucture));\r\n };\r\n\r\n updateTierSetExpanded = (rowIdentifier) => {\r\n const { tierCollapseStructure, match: { params: { accountId: pAccountId } }, dispatch } = this.props;\r\n const { isAllTiersExpanded } = this.state;\r\n const updatedStucture = Object.assign({}, tierCollapseStructure) || { [pAccountId]: null };\r\n\r\n if (!updatedStucture[pAccountId]) {\r\n updatedStucture[pAccountId] = { allTiersExpanded: isAllTiersExpanded };\r\n }\r\n\r\n const toggleState = updatedStucture[pAccountId][rowIdentifier] || { isAdditionalExpanded: false };\r\n toggleState.isTierExpanded = true;\r\n toggleState.isOverrideTopTier = true;\r\n updatedStucture[pAccountId][rowIdentifier] = toggleState;\r\n\r\n dispatch(saveCollapsedTiers(updatedStucture));\r\n };\r\n\r\n setCollapsibleTier = (rowIdentifier, isToggled) => {\r\n const { statement } = this.props;\r\n const toggleState = this.getToggleState(rowIdentifier);\r\n\r\n toggleState.isTierExpanded = isToggled;\r\n if (statement && statement.intermediaryName && statement.intermediaryName === rowIdentifier) {\r\n this.setState({ toggleState });\r\n }\r\n\r\n this.updateToggledCollapsibleTiers(rowIdentifier, toggleState);\r\n };\r\n\r\n toggleCollapseAllTiers = (isToggled) => {\r\n const { toggleState, isAllTiersExpanded } = (isToggled === true || isToggled === false) ? { isAllTiersExpanded: !isToggled } : this.state;\r\n const { statement } = this.props;\r\n toggleState.isTierExpanded = !isAllTiersExpanded;\r\n this.setState({ toggleState, isAllTiersExpanded: !isAllTiersExpanded });\r\n this.updateToggledCollapsibleTiers(statement.intermediaryName, toggleState);\r\n };\r\n\r\n toggleCollapseTier = () => {\r\n const { toggleState } = this.state;\r\n const { statement } = this.props;\r\n toggleState.isTierExpanded = !toggleState.isTierExpanded;\r\n this.setState({ toggleState });\r\n this.updateToggledCollapsibleTiers(statement.intermediaryName, toggleState);\r\n };\r\n\r\n expandTier = () => {\r\n const { toggleState } = this.state;\r\n const { statement } = this.props;\r\n\r\n toggleState.isTierExpanded = true;\r\n\r\n this.setState({ toggleState });\r\n this.updateToggledCollapsibleTiers(statement.intermediaryName, toggleState);\r\n };\r\n\r\n getOwnersOptionsList = () => {\r\n const { beneficiaryList } = this.props;\r\n\r\n if (!beneficiaryList) {\r\n return [];\r\n }\r\n\r\n return beneficiaryList.map((owner) => {\r\n const parent = (owner.parents && owner.parents.length > 0 && ` - (${ owner.parents[owner.parents.length - 1] })`) || '';\r\n return {\r\n display: `${ owner.name ?? owner.accountName }${ parent }`,\r\n key: owner.guid || owner.name || owner.accountName,\r\n value: WhdStatement.buildElementId(owner.guid || owner.name || owner.accountName),\r\n searchValue: owner.name ?? owner.accountName,\r\n parentTier: owner.parents && owner.parents.length > 0 && owner.parents[owner.parents.length - 1],\r\n parentIdentifier: owner.parentIdentifier,\r\n isIMY: owner.isIMY\r\n };\r\n });\r\n };\r\n\r\n onChangeParentCancel = () => {\r\n this.setState({ isChangeParentOpen: false });\r\n };\r\n\r\n onChangeParentSubmit = () => {\r\n const { dispatch, structure: { basicDetails: { accountId } } } = this.props;\r\n const { changeParentData, childAccountId, childOwnerGuid, childParentId } = this.state;\r\n\r\n const changeParentDetails = {\r\n ...changeParentData,\r\n childAccountId,\r\n childOwnerGuid,\r\n currentParentAccountId: childParentId\r\n };\r\n\r\n this.setState({ isChangeParentOpen: false });\r\n\r\n dispatch(changeImyTierParent(accountId, changeParentDetails));\r\n };\r\n\r\n openChangeParentModal = (guid, item, index) => {\r\n const { isChangeParentOpen } = this.state;\r\n\r\n if (!isChangeParentOpen) {\r\n this.setState({ isChangeParentOpen: true });\r\n }\r\n\r\n this.setState({ childAccountId: item.accountId });\r\n this.setState({ childOwnerGuid: guid });\r\n this.setState({ childOwnerName: item.name });\r\n this.setState({ childParentId: item.parentAccountId });\r\n\r\n const currentParent = this.getParent(item.parentAccountId);\r\n\r\n this.setState({ childParentName: (currentParent && currentParent.name) || null });\r\n };\r\n\r\n tierHasValidationErrors = () => {\r\n const { structure, validationResult } = this.props;\r\n if (!structure.recipients || !validationResult?.lines || validationResult.lines.length === 0) {\r\n return false;\r\n }\r\n\r\n return structure.recipients.some((recipient) => {\r\n const lineNo = recipient && (recipient.lineNo || (recipient.ownerDetails && recipient.ownerDetails.lineNo > 0 && recipient.ownerDetails.lineNo));\r\n const lineValidation = lineNo > 0 && validationResult.lines.find(result => result.lineNumber === lineNo);\r\n\r\n return lineValidation\r\n && (ValidationInspector.hasRejections(lineValidation)\r\n || ValidationInspector.hasWarnings(lineValidation));\r\n });\r\n };\r\n\r\n reAssignItem = () => {\r\n const { dispatch, changeOwnershipItem } = this.props;\r\n if (changeOwnershipItem != null && changeOwnershipItem.id != null) {\r\n dispatch(takeQueueItem('form', changeOwnershipItem.id, changeOwnershipItem.accountId));\r\n dispatch(hideOwnershipModal());\r\n }\r\n };\r\n\r\n openAccountWithholdingModal = (formId) => {\r\n const { dispatch } = this.props;\r\n dispatch(showAccountWithholdingModal(formId, null, null));\r\n };\r\n\r\n openPooledRatesModal = (guid, rates) => {\r\n const { dispatch } = this.props;\r\n dispatch(showPooledRatesModal(guid, rates));\r\n };\r\n\r\n openAddFormModal(item) {\r\n const { dispatch } = this.props;\r\n dispatch(showAddFormModal(item, null));\r\n }\r\n\r\n addForms(parentForm, values, onlineForm) {\r\n const { dispatch } = this.props;\r\n dispatch(addForm(parentForm, values, onlineForm));\r\n }\r\n\r\n closeAddFormModal(item) {\r\n const { dispatch, match: { params: { accountId } } } = this.props;\r\n dispatch(hideAddFormModal(item));\r\n dispatch(getWhdStatement([accountId]));\r\n }\r\n\r\n closeFromOwnershipModal() {\r\n const { dispatch } = this.props;\r\n dispatch(hideOwnershipModal());\r\n }\r\n\r\n continueFromOwnershipModal() {\r\n const { dispatch, changeOwnershipItem } = this.props;\r\n dispatch(hideOwnershipModal());\r\n let redirectUrl = `/forms/${ changeOwnershipItem.formType.toLowerCase() }/${ changeOwnershipItem.id }`;\r\n if (changeOwnershipItem.accountId) {\r\n redirectUrl = `${ redirectUrl }?account=${ changeOwnershipItem.accountId }`;\r\n }\r\n history.push(redirectUrl);\r\n }\r\n\r\n addBeneficialOwner(accountId, parentGuid, isImyLayer, isPooled, preventExpand, ownerId) {\r\n const { dispatch } = this.props;\r\n const rowIdentifier = ownerId || parentGuid;\r\n if (!preventExpand && rowIdentifier) {\r\n this.updateTierSetExpanded(rowIdentifier);\r\n }\r\n dispatch(addNewBeneficialOwner(accountId, parentGuid, isImyLayer, isPooled, rowIdentifier));\r\n setTimeout(() => {\r\n dispatch(setStatementPosition(accountId, window.pageYOffset));\r\n }, 1000);\r\n }\r\n\r\n render() {\r\n const {\r\n isGettingStatement,\r\n isUpdatingStatement,\r\n isStructureValid,\r\n permissions,\r\n settings,\r\n statement,\r\n structure,\r\n validationResult,\r\n match: { params: { accountId: pAccountId, versionNumber } },\r\n isOwnershipModalShown,\r\n changeOwnershipItem,\r\n isAccountWithholdingShown,\r\n isAddFormModalShown,\r\n isSavingStatement,\r\n tierCollapseStructure,\r\n isPooledRatesModalShown,\r\n isDeletingRow,\r\n isAddingNewBeneficalOwner,\r\n dispatch,\r\n topAccount,\r\n versionWindows,\r\n } = this.props;\r\n\r\n const { toggleState: { isTierExpanded }, isAllTiersExpanded, isChangeParentOpen, childAccountId, childOwnerName, childOwnerGuid, childParentId, childParentName } = this.state;\r\n\r\n const hasPermission = AccessControl.hasPermission(permissions, [ActivityPerms.multiTierMgrEditWhs, ActivityPerms.multiTierMgrViewWhs]);\r\n const canEditPermission = AccessControl.hasPermission(permissions, [ActivityPerms.multiTierMgrEditWhs]);\r\n const canUploadPermission = AccessControl.hasPermission(permissions, [ActivityPerms.scannedUpload, ActivityPerms.scannedWhdStmtBoUpload], true);\r\n const isLicensed = settings.showMultiTierManager;\r\n const isPooled = statement && statement.type === StatementTypes.PooledWhdStatement;\r\n const accountId = parseInt(pAccountId, 10) || null;\r\n const showingVersion = versionNumber !== null && typeof versionNumber !== 'undefined';\r\n const imyLayerOptions = isChangeParentOpen && this.getStatementImyLayers(childAccountId || `${ childParentId }-${ childOwnerGuid }`, childParentId)\r\n .map(x => { x.level > 0 && [...Array(x.level - 1), '-\\u00A0\\u00A0\\u00A0'].map((e, i) => e || '\\u00A0\\u00A0\\u00A0') }{ x.name }{ x.relation && `\\u00A0\\u00A0\\u00A0(${ x.relation })` });\r\n const withholdingStruct = structure;\r\n const tierRecipients = this.getTierRecipientCount();\r\n const tierIntermediaries = this.getTierIntermediaryCount();\r\n const collapseStructure = tierCollapseStructure ? Object.assign({}, tierCollapseStructure[pAccountId]) : null;\r\n\r\n const buildImyTierObject = (item) => {\r\n if (!item) {\r\n return null;\r\n }\r\n const formObject = {\r\n accountId: item.accountId,\r\n accountName: item.name,\r\n accountNumber: item.accountNumber,\r\n customerDbId: item.customerDbId,\r\n customerId: item.customerIdentifier,\r\n customerName: item.customerName,\r\n };\r\n\r\n return formObject;\r\n };\r\n\r\n const ownerList = this.getOwnersOptionsList();\r\n\r\n const scrollToItem = (item) => {\r\n const id = WhdStatement.buildElementId(item.value);\r\n if (item.parentIdentifier && item.parentIdentifier !== statement.intermediaryName && !item.isIMY) {\r\n this.updateTierSetExpanded(item.parentIdentifier);\r\n } else if (item.parentIdentifier && item.parentIdentifier === statement.intermediaryName && !item.isIMY) {\r\n this.expandTier();\r\n }\r\n\r\n setTimeout(() => {\r\n const element = document.getElementById(id);\r\n if (element) {\r\n element.scrollIntoView({ behavior: 'smooth' });\r\n setTimeout(() => {\r\n dispatch(setStatementPosition(accountId, window.pageYOffset));\r\n }, 1000);\r\n }\r\n }, 100);\r\n };\r\n\r\n const versionExpired = statement && statement.effectiveTo && moment(statement.effectiveTo).isBefore(moment(), 'day');\r\n const versionExpiring = statement && statement.effectiveTo && moment(statement.effectiveTo).isSame(moment(), 'day');\r\n const versionCurrent = statement && statement.effectiveTo && moment(statement.effectiveTo).isAfter(moment(), 'day');\r\n const versionOpenEnded = statement && (!statement.effectiveTo || statement.effectiveTo.length === 0);\r\n\r\n return (\r\n
    this.scroll(e) }>\r\n { (!isLicensed || !hasPermission) &&
    \r\n { !isLicensed &&

    Your licence does not grant access to Multi-Tier Management

    }\r\n { isLicensed && !hasPermission &&

    You do not have permission to access the Digital Withholding Statement

    }\r\n

    Please contact your administrator for more details

    \r\n
    }\r\n { isLicensed && hasPermission && \r\n

    Digital Withholding Statement

    \r\n {versionNumber && versionExpiring && }\r\n {versionNumber && versionExpired && }\r\n {versionNumber && versionCurrent && }\r\n {versionNumber && versionOpenEnded && }\r\n {!versionNumber && }\r\n { isGettingStatement && }\r\n { !isGettingStatement && !statement && }\r\n { statement &&
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n this.setCollapsibleTier(tierName, true) }\r\n className=\"whs-top-level\"\r\n statementVersion={ versionNumber }\r\n versionWindows={ versionWindows }\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n / { statement.intermediaryName }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    { statement.intermediaryName }

    \r\n
    \r\n
    \r\n
    { tierRecipients } { isPooled ? 'Pooled Account' : 'Beneficial Owner' }{ tierRecipients === 0 || tierRecipients > 1 ? 's' : '' }
    \r\n { !isPooled &&
    / { tierIntermediaries } Intermediar{ tierIntermediaries === 0 || tierIntermediaries > 1 ? 'ies' : 'y' }
    }\r\n
    \r\n
    \r\n
    \r\n {!settings.selectedClient.isPiiProtectionEnabled && !isPooled && canUploadPermission && !showingVersion &&
    \r\n \r\n
    }\r\n { canEditPermission && !showingVersion &&
    \r\n this.addBeneficialOwner(accountId, null, false, isPooled, false, statement.intermediaryName) }\r\n >\r\n { isPooled ? 'Add Pool' : 'Add Beneficial Owner' }\r\n \r\n
    }\r\n { !isPooled && canEditPermission && !showingVersion &&
    \r\n this.addBeneficialOwner(accountId, null, true, isPooled, true, statement.intermediaryName) }\r\n >\r\n Add IMY Tier\r\n \r\n
    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { structure.recipients && structure.recipients.map((x, idx) => this.openAccountWithholdingModal(formId) }\r\n openAddFormModal={ node => this.openAddFormModal(node) }\r\n addBeneficialOwner={ (id, parentGuid, isImyLayer, preventExpand) => this.addBeneficialOwner(id, parentGuid, isImyLayer, isPooled, preventExpand, parentGuid) }\r\n topAccountId={ accountId }\r\n isSavingStatement={ isSavingStatement }\r\n updateToggledCollapsibleTiers={ (rowIdentifier, toggleState) => this.updateToggledCollapsibleTiers(rowIdentifier, toggleState) }\r\n tierCollapseStructure={ collapseStructure }\r\n validationResult={ validationResult }\r\n validationLineNo={ (x.ownerDetails || x).lineNo }\r\n openPooledRatesModal={ (guid, rates) => this.openPooledRatesModal(guid, rates) }\r\n parentAccountId={ accountId }\r\n isDeletingRow={ isDeletingRow }\r\n isStructureValid={ isStructureValid }\r\n isAddingNewBeneficalOwner={ isAddingNewBeneficalOwner }\r\n statementVersion={ versionNumber }\r\n parentTierTotalAllocation={ 100 }\r\n hideTierAllocationValue={ WhdStatement.getIsDirectBeneficialOwner(x) }\r\n />) }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    }\r\n \r\n

    Change Parent for { childOwnerName } ({ childAccountId })

    \r\n

    Current Parent: { childParentName } ({ childParentId })

    \r\n
    \r\n \r\n
    \r\n
    \r\n }\r\n { changeOwnershipItem != null && this.reAssignItem() }\r\n onContinueWithoutAssign={ () => this.continueFromOwnershipModal() }\r\n onCancel={ () => this.closeFromOwnershipModal() }\r\n workflowRecord={ changeOwnershipItem }\r\n /> }\r\n this.onCloseWithholdingModal() }\r\n />\r\n {!settings.selectedClient.isPiiProtectionEnabled && this.addForms(imyTier, values, false) }\r\n onCancel={ () => this.closeAddFormModal() }\r\n />}\r\n { isPooled && this.onClosePooledRatesModal() }\r\n permissions={ permissions }\r\n /> }\r\n { accountId > 0 && topAccount && topAccount.isWhsLinkingActive\r\n && }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n auth: {\r\n permissions,\r\n settings\r\n },\r\n withholdingStatement: {\r\n beneficiaryList,\r\n isGettingStatement,\r\n isSavingStatement,\r\n isUpdatingStatement,\r\n statement,\r\n structure,\r\n statementPosition,\r\n tierCollapseStructure,\r\n validationResult,\r\n isDeletingRow,\r\n isStructureValid,\r\n isAddingNewBeneficalOwner,\r\n topAccount,\r\n versionWindows\r\n },\r\n forms: {\r\n isAccountWithholdingShown,\r\n isAddFormModalShown,\r\n isPooledRatesModalShown\r\n },\r\n workflow: {\r\n isOwnershipModalShown,\r\n changeOwnershipItem\r\n }\r\n } = state;\r\n\r\n return {\r\n isGettingStatement,\r\n beneficiaryList,\r\n isSavingStatement,\r\n isUpdatingStatement,\r\n permissions,\r\n settings,\r\n statement,\r\n structure,\r\n statementPosition,\r\n isOwnershipModalShown,\r\n changeOwnershipItem,\r\n isAccountWithholdingShown,\r\n isAddFormModalShown,\r\n validationResult,\r\n tierCollapseStructure,\r\n isPooledRatesModalShown,\r\n isDeletingRow,\r\n isStructureValid,\r\n isAddingNewBeneficalOwner,\r\n topAccount,\r\n versionWindows\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withContainerErrorBoundary(WhdStatement, 'WhdStatement')));\r\n","const EntityType = [\r\n { value: 1, name: 'Bank', description: 'Bank' },\r\n { value: 2, name: 'Branch', description: 'Branch' },\r\n { value: 3, name: 'BrokerDealer', description: 'Broker-Dealer' },\r\n { value: 4, name: 'Fund', description: 'Fund' },\r\n { value: 5, name: 'InsuranceCompany', description: 'Insurance Company' },\r\n { value: 6, name: 'InvestmentAdvisor', description: 'Investment Advisor' },\r\n { value: 7, name: 'ManagedFund', description: 'Managed Fund' },\r\n { value: 8, name: 'NonBankFinancialInstitution', description: 'Non-Bank Financial Institution' },\r\n { value: 9, name: 'Spv', description: 'SPV' },\r\n { value: 10, name: 'InvestorFund', description: 'Investor Fund' },\r\n { value: 11, name: 'FundFamily', description: 'Fund Family' },\r\n { value: 12, name: 'CentralBank', description: 'Central Bank' },\r\n { value: 13, name: 'GovernmentEntity', description: 'Government Entity' },\r\n { value: 14, name: 'InternationalOrganization', description: 'International Organization' },\r\n { value: 15, name: 'OtherEntity', description: 'Other Entity' },\r\n { value: 16, name: 'OtherInvestmentEntity', description: 'Other Investment Entity' },\r\n { value: 17, name: 'PubliclyTradedEntity', description: 'Publicly Traded Entity' },\r\n { value: 100, name: 'Individual', description: 'Individual' },\r\n { value: 200, name: 'Other', description: 'Other' },\r\n\r\n];\r\n\r\nexport default EntityType;\r\n","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Field, reduxForm, isDirty } from 'redux-form';\r\nimport { Link, Prompt } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { toastr } from 'react-redux-toastr';\r\nimport moment from 'moment';\r\n\r\nimport { addCustomerAccount, getBasicCustomer, getBasicAccount, clearSelectedCustomer, clearSelectedAccount } from 'actions';\r\n\r\nimport withContainerErrorBoundary from 'components/ErrorBoundaries/ContainerErrorBoundary/withContainerErrorBoundary';\r\nimport AutoCompleteInput from 'components/Common/Inputs/AutoCompleteInput';\r\nimport Chapter3Status from 'common/Customers/Chapter3Status';\r\nimport Chapter4Status from 'common/Customers/Chapter4Status';\r\nimport EntityType from 'common/Customers/EntityType';\r\nimport { CheckboxInput, SelectInput, RenderDatePicker } from 'components/Common/Inputs';\r\nimport DateTimes from 'components/Common/DateTimes';\r\n\r\nconst ErrorItem = error => error &&
  • {error}
  • ;\r\n\r\nconst ErrorToastr = errorList => (
    \r\n

    Missing/incorrect data

    \r\n
    \r\n

    \r\n {/* eslint-disable-next-line react/destructuring-assignment */}\r\n {errorList && errorList.errorList && errorList.errorList.map(ErrorItem)}\r\n

    \r\n);\r\n\r\nconst ConfirmationToaster = () => (\r\n
    \r\n

    Are you sure?

    \r\n
    \r\n

    Any entered data will be replaced. Do you want to proceed?

    \r\n
    \r\n);\r\n\r\nconst CustomerSelectedToastr = () => (
    \r\n

    Customer selected

    \r\n
    \r\n

    Any entered presumption rule or additional data will be replaced. Are you sure you want to proceed?

    \r\n
    );\r\n\r\nconst ConfirmToastr = ({ form }) => {\r\n const ch3Match = Chapter3Status.find(e => e.name === form.chapter3Status);\r\n const ch4Match = Chapter4Status.find(e => e.name === form.chapter4Status);\r\n\r\n return (
    \r\n

    Review Customer & Account Details

    \r\n
    \r\n
    \r\n
    \r\n

    Customer Data

    \r\n
    \r\n {form.customerName}\r\n {form.customerId}\r\n {form.customerType === '0' ? 'Individual' : 'Entity'}\r\n
    \r\n
    \r\n
    \r\n

    Account Data

    \r\n
    \r\n {form.accountName}\r\n {form.accountNumber}\r\n {form.legalEntity}\r\n
    \r\n
    \r\n
    \r\n

    Presumption Rule Data

    \r\n
    \r\n {form.permanentAddressCountry ?? 'N/A'}\r\n {form.jurisdictionofTaxResidency ?? 'N/A'}\r\n {EntityType.find(e => !Number.isNaN(form.entityType) && e.value === parseInt(form.entityType, 10))?.description ?? 'N/A'}\r\n {form.isInvestor === 'true' ? 'Yes' : 'No'}\r\n
    \r\n
    \r\n
    \r\n

    Additional Data

    \r\n
    \r\n
    \r\n {form.dateOfBirth}\r\n
    \r\n
    \r\n
    \r\n {form.emailAddress}\r\n

    Permanent Address

    \r\n {form.permanentAddressLine1}\r\n {form.permanentAddressLine2}\r\n {form.permanentAddressLine3}\r\n {form.permanentAddressLine4}\r\n {form.permanentAddressCountry}\r\n {form.permanentPostCode}\r\n
    \r\n
    \r\n {form.phoneNumber}\r\n

    Mailing Address

    \r\n {form.mailingAddressLine1}\r\n {form.mailingAddressLine2}\r\n {form.mailingAddressLine3}\r\n {form.mailingAddressLine4}\r\n {form.mailingAddressCountry}\r\n {form.mailingPostCode}\r\n
    \r\n
    \r\n {ch3Match ? `${ ch3Match.description } - ${ ch3Match.value }` : 'N/A'}\r\n
    \r\n
    \r\n {ch4Match ? `${ ch4Match.description } - ${ ch4Match.value }` : 'N/A'}\r\n
    \r\n
    \r\n {form.usTin}\r\n
    \r\n
    \r\n {form.foreignTin}\r\n
    \r\n
    \r\n {form.giin}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nConfirmToastr.propTypes = {\r\n form: PropTypes.shape().isRequired\r\n};\r\n\r\nconst AddCustomerAccount = (props) => {\r\n const [legalEntity, setLegalEntity] = useState();\r\n const [existingCustomer, setExistingCustomer] = useState();\r\n const [existingAccount, setExistingAccount] = useState();\r\n\r\n /* eslint-disable react/no-unstable-nested-components */\r\n const MemoizedErrorToastr = errorList => React.useCallback(, [errorList]);\r\n const MemoizedConfirmToastr = form => React.useCallback(, [form]);\r\n /* eslint-enable react/no-unstable-nested-components */\r\n\r\n const { dirty, change, handleSubmit, dispatch, state: { form }, state: { common: { jurisdictions } }, disableCustomer, disableAccount, existingLegalEntity } = props;\r\n const values = form.addCustomerAccount && form.addCustomerAccount.values;\r\n const allowTogglingCustomerDetails = values?.customerSelection !== 'existing';\r\n\r\n const entityTypes = EntityType.sort((a, b) => {\r\n if (a.description > b.description) return 1;\r\n return (b.description > a.description) ? -1 : 0;\r\n });\r\n\r\n const clearConfirm = () => {\r\n const elements = document.getElementById('add-confirm')?.getElementsByClassName('rrt-ok-btn');\r\n if (elements && elements.length > 0) {\r\n elements[0].click();\r\n }\r\n };\r\n\r\n useEffect(() => () => {\r\n dispatch(clearSelectedAccount());\r\n dispatch(clearSelectedCustomer());\r\n setTimeout(() => clearConfirm(), 500);\r\n }, []);\r\n\r\n useEffect(() => {\r\n change('customerId', '');\r\n change('customerName', '');\r\n setExistingCustomer(null);\r\n dispatch(clearSelectedCustomer());\r\n }, [values?.customerSelection]);\r\n\r\n useEffect(() => {\r\n change('accountNumber', '');\r\n change('accountName', '');\r\n setExistingAccount(null);\r\n setLegalEntity(null);\r\n dispatch(clearSelectedAccount());\r\n }, [values?.accountSelection]);\r\n\r\n useEffect(() => {\r\n if (existingLegalEntity === null) {\r\n setLegalEntity(null);\r\n } else if (JSON.stringify(existingLegalEntity) !== JSON.stringify(legalEntity)) {\r\n setLegalEntity(existingLegalEntity);\r\n }\r\n }, [existingLegalEntity]);\r\n\r\n function getExistingCustomer(autocompleteCustomer) {\r\n if (dirty) {\r\n const toastOptions = {\r\n component: CustomerSelectedToastr,\r\n onOk: () => {\r\n setExistingCustomer(autocompleteCustomer);\r\n dispatch(getBasicCustomer(autocompleteCustomer.id));\r\n change('presumptionRuleDataSelected', true);\r\n change('additionalDataSelected', true);\r\n },\r\n onCancel: () => {\r\n setExistingCustomer(null);\r\n dispatch(clearSelectedCustomer());\r\n }\r\n };\r\n toastr.confirm(null, toastOptions);\r\n }\r\n }\r\n\r\n function getExistingAccount(autocompleteAccount) {\r\n setExistingAccount(autocompleteAccount);\r\n dispatch(getBasicAccount(autocompleteAccount.id));\r\n }\r\n\r\n function permanentAddressPresent(currentValues) {\r\n return currentValues && (currentValues.permanentAddressLine1 || currentValues.permanentAddressLine2 || currentValues.permanentPostCode);\r\n }\r\n\r\n function mailingAddressPresent(currentValues) {\r\n return currentValues && (currentValues.mailingAddressLine1 || currentValues.mailingAddressLine2 || currentValues.mailingPostCode);\r\n }\r\n\r\n function clearLegalEntity() {\r\n if (legalEntity) {\r\n setLegalEntity(null);\r\n }\r\n }\r\n\r\n function clearPresumptionData(checked) {\r\n if (!checked\r\n && ((values.entityType !== '' && values.entityType != null) || values.permanentAddressCountry != null || values.jurisdictionofTaxResidency != null || values.isInvestor !== 'false')\r\n ) {\r\n const toastConfirmOptions = {\r\n component: ConfirmationToaster,\r\n onOk: () => {\r\n if (!permanentAddressPresent(values)) {\r\n change('permanentAddressCountry', null);\r\n }\r\n change('jurisdictionofTaxResidency', null);\r\n change('entityType', null);\r\n change('isInvestor', 'false');\r\n },\r\n onCancel: () => {\r\n change('presumptionRuleDataSelected', true);\r\n }\r\n };\r\n toastr.confirm(null, toastConfirmOptions);\r\n }\r\n }\r\n\r\n function clearAdditionalData(checked) {\r\n if (!checked\r\n && (values.dateOfBirth != null || values.emailAddress != null || values.phoneNumber != null || values.permanentAddressLine1 != null\r\n || values.mailingAddressLine1 != null || values.permanentAddressLine2 != null || values.mailingAddressLine2 != null || values.permanentAddressCountry != null\r\n || values.mailingAddressCountry != null || values.mailingPostCode != null || values.permanentPostCode != null || values.chapter3Status != null || values.chapter4Status != null\r\n || values.giin != null || values.foreignTin != null || values.usTin != null)\r\n ) {\r\n const toastConfirmOptions = {\r\n component: ConfirmationToaster,\r\n onOk: () => {\r\n change('emailAddress', null);\r\n change('permanentAddressLine1', null);\r\n change('permanentAddressLine2', null);\r\n change('permanentAddressLine3', null);\r\n change('permanentAddressLine4', null);\r\n if (!values || !values.presumptionRuleDataSelected) {\r\n change('permanentAddressCountry', null);\r\n }\r\n change('permanentPostCode', null);\r\n change('mailingAddressLine1', null);\r\n change('mailingAddressLine2', null);\r\n change('mailingAddressLine3', null);\r\n change('mailingAddressLine4', null);\r\n change('mailingAddressCountry', null);\r\n change('mailingPostCode', null);\r\n change('dateOfBirth', null);\r\n change('chapter3Status', null);\r\n change('chapter4Status', null);\r\n change('usTin', null);\r\n change('foreignTin', null);\r\n change('giin', null);\r\n change('phoneNumber', null);\r\n },\r\n onCancel: () => {\r\n change('additionalDataSelected', true);\r\n }\r\n };\r\n toastr.confirm(null, toastConfirmOptions);\r\n }\r\n }\r\n\r\n function onSubmit(newValues) {\r\n const charRanges = [\r\n '\\u00a9',\r\n '\\u00ae',\r\n '[\\u2000-\\u3300]',\r\n '\\ud83c[\\ud000-\\udfff]',\r\n '\\ud83d[\\ud000-\\udfff]',\r\n '\\ud83e[\\ud000-\\udfff]'\r\n ];\r\n const charRegEx = new RegExp(charRanges.join('|'), 'g');\r\n\r\n const presumptionRuleDataRequired = newValues.presumptionRuleDataSelected === true && allowTogglingCustomerDetails;\r\n\r\n const errorList = [\r\n ...(!newValues.customerSelection ? ['Please select either New or Existing Customer.'] : []),\r\n ...(!newValues.accountSelection ? ['Please select either New, Existing or Generated Account.'] : []),\r\n ...(!newValues.customerId ? ['Customer Id is required.'] : []),\r\n ...(newValues?.customerId?.length > 100 ? ['Customer ID must not exceed 100 characters.'] : []),\r\n ...(charRegEx.test(newValues?.customerId) ? ['Customer ID contains invalid characters.'] : []),\r\n ...(!newValues.customerName ? ['Customer Name is required'] : []),\r\n ...(newValues?.customerName?.length > 200 ? ['Customer Name must not exceed 200 characters.'] : []),\r\n ...(charRegEx.test(newValues?.customerName) ? ['Customer Name contains invalid characters.'] : []),\r\n ...(!newValues.customerType ? ['Customer Type is required.'] : []),\r\n ...(!newValues.accountNumber && newValues.accountSelection !== 'generated' ? ['Account Number is required.'] : []),\r\n ...(newValues.accountNumber && newValues.accountNumber.length > 50 ? ['Account Number must not exceed 50 characters.'] : []),\r\n ...(newValues.accountNumber && charRegEx.test(newValues.accountNumber) ? ['Account Number contains invalid characters.'] : []),\r\n ...(!newValues.accountName && newValues.accountSelection !== 'generated' ? ['Account Name is required.'] : []),\r\n ...(newValues.accountSelection !== 'generated' && newValues.accountName && charRegEx.test(newValues.accountName) ? ['Account Name contains invalid characters.'] : []),\r\n ...(newValues.accountName && newValues.accountName.length > 200 ? ['Account Name must not exceed 200 characters.'] : []),\r\n ...(newValues.accountSelection !== 'existing' && !legalEntity?.id ? ['Please enter a Legal Entity'] : []),\r\n\r\n ...(presumptionRuleDataRequired\r\n && (!newValues.permanentAddressCountry\r\n || !newValues.jurisdictionofTaxResidency\r\n || !newValues.entityType) ? ['Data required to calculate presumption rules is missing'] : []),\r\n ...(((presumptionRuleDataRequired || permanentAddressPresent(newValues))\r\n && !newValues.permanentAddressCountry) ? ['Please enter a Permanent Address Country'] : []),\r\n ...(presumptionRuleDataRequired && !newValues.jurisdictionofTaxResidency ? ['Please select a Jurisdiction of Tax Residency'] : []),\r\n ...(presumptionRuleDataRequired && !newValues.entityType ? ['Please select an Entity Type'] : []),\r\n ...(newValues.emailAddress && newValues.emailAddress.length > 254 ? ['Email Address must not exceed 254 characters.'] : []),\r\n ...(newValues.permanentAddressLine1 && newValues.permanentAddressLine1.length > 300 ? ['Permanent Address Line 1 must not exceed 300 characters.'] : []),\r\n ...(newValues.permanentAddressLine1 && charRegEx.test(newValues.permanentAddressLine1) ? ['Permanent Address Line 1 contains invalid characters.'] : []),\r\n ...(newValues.permanentAddressLine2 && newValues.permanentAddressLine2.length > 300 ? ['Permanent Address Line 2 must not exceed 300 characters.'] : []),\r\n ...(newValues.permanentAddressLine2 && charRegEx.test(newValues.permanentAddressLine2) ? ['Permanent Address Line 2 contains invalid characters.'] : []),\r\n ...(newValues.permanentAddressLine3 && newValues.permanentAddressLine3.length > 300 ? ['Permanent Address Line 3 must not exceed 300 characters.'] : []),\r\n ...(newValues.permanentAddressLine3 && charRegEx.test(newValues.permanentAddressLine3) ? ['Permanent Address Line 3 contains invalid characters.'] : []),\r\n ...(newValues.permanentAddressLine4 && newValues.permanentAddressLine4.length > 300 ? ['Permanent Address Line 4 must not exceed 300 characters.'] : []),\r\n ...(newValues.permanentAddressLine4 && charRegEx.test(newValues.permanentAddressLine4) ? ['Permanent Address Line 4 contains invalid characters.'] : []),\r\n ...(newValues.permanentPostCode && newValues.permanentPostCode.length > 300 ? ['Permanent Address Post Code must not exceed 300 characters.'] : []),\r\n ...(newValues.permanentPostCode && charRegEx.test(newValues.permanentPostCode) ? ['Permanent Address Line 2 contains invalid characters.'] : []),\r\n ...(newValues.mailingAddressLine1 && newValues.mailingAddressLine1.length > 300 ? ['Mailing Address Line 1 must not exceed 300 characters.'] : []),\r\n ...(newValues.mailingAddressLine1 && charRegEx.test(newValues.mailingAddressLine1) ? ['Mailing Address Line 1 contains invalid characters.'] : []),\r\n ...(newValues.mailingAddressLine2 && newValues.mailingAddressLine2.length > 300 ? ['Mailing Address Line 2 must not exceed 300 characters.'] : []),\r\n ...(newValues.mailingAddressLine2 && charRegEx.test(newValues.mailingAddressLine2) ? ['Mailing Address Line 2 contains invalid characters.'] : []),\r\n ...(newValues.mailingAddressLine3 && newValues.mailingAddressLine3.length > 300 ? ['Mailing Address Line 3 must not exceed 300 characters.'] : []),\r\n ...(newValues.mailingAddressLine3 && charRegEx.test(newValues.mailingAddressLine3) ? ['Mailing Address Line 3 contains invalid characters.'] : []),\r\n ...(newValues.mailingAddressLine4 && newValues.mailingAddressLine4.length > 300 ? ['Mailing Address Line 4 must not exceed 300 characters.'] : []),\r\n ...(newValues.mailingAddressLine4 && charRegEx.test(newValues.mailingAddressLine4) ? ['Mailing Address Line 4 contains invalid characters.'] : []),\r\n ...(mailingAddressPresent(newValues) && !newValues.mailingAddressCountry ? ['Please enter a Mailing Address Country'] : []),\r\n ...(newValues.mailingPostCode && newValues.mailingPostCode.length > 300 ? ['Mailing Address Post Code must not exceed 300 characters.'] : []),\r\n ...(newValues.mailingPostCode && charRegEx.test(newValues.mailingPostCode) ? ['Mailing Address Post Code contains invalid characters.'] : []),\r\n ...(newValues.phoneNumber && newValues.phoneNumber.length > 30 ? ['Phone Number must not exceed 30 characters.'] : []),\r\n ...(newValues.phoneNumber && charRegEx.test(newValues.phoneNumber) ? ['Phone Number contains invalid characters.'] : []),\r\n\r\n ...(newValues.usTin && newValues.usTin.length > 40 ? ['US TIN must not exceed 40 characters.'] : []),\r\n ...(newValues.usTin && charRegEx.test(newValues.usTin) ? ['US TIN contains invalid characters.'] : []),\r\n ...(newValues.foreignTin && newValues.foreignTin.length > 40 ? ['Foreign TIN must not exceed 60 characters.'] : []),\r\n ...(newValues.foreignTin && charRegEx.test(newValues.foreignTin) ? ['Foreign TIN contains invalid characters.'] : []),\r\n ...(newValues.giin && newValues.giin.length > 60 ? ['GIIN must not exceed 60 characters.'] : []),\r\n ...(newValues.giin && charRegEx.test(newValues.giin) ? ['GIIN contains invalid characters.'] : []),\r\n ];\r\n\r\n /* eslint-disable react/no-unstable-nested-components */\r\n let toastOptions = null;\r\n if (errorList && errorList.length > 0) {\r\n toastOptions = {\r\n disableCancel: true,\r\n component: () => MemoizedErrorToastr(errorList)\r\n };\r\n } else {\r\n Object.assign(newValues, { legalEntityId: legalEntity?.id ?? 0, existingCustomerId: existingCustomer?.id ?? 0, existingAccountId: existingAccount?.id ?? 0 });\r\n toastOptions = {\r\n onOk: () => dispatch(addCustomerAccount(newValues)),\r\n component: () => MemoizedConfirmToastr(newValues)\r\n };\r\n }\r\n /* eslint-enable react/no-unstable-nested-components */\r\n\r\n toastr.confirm(null, toastOptions);\r\n }\r\n\r\n return (\r\n
    \r\n \r\n

    Create New Customer / Account

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Customer Data

    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n getExistingCustomer(lookupValue) }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Account Data

    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n clearLegalEntity() }\r\n onSelectedItem={ lookupValue => setLegalEntity(lookupValue) }\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n getExistingAccount(lookupValue) }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Presumption Rule Data

    \r\n {allowTogglingCustomerDetails &&
    \r\n tick to enter details\r\n clearPresumptionData(e.target.checked) }\r\n />\r\n
    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n {jurisdictions && jurisdictions.map(x => (\r\n \r\n ))}\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n {jurisdictions && jurisdictions.map(x => (\r\n \r\n ))}\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n {entityTypes.map(x => (\r\n \r\n ))}\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Additional Data

    \r\n {allowTogglingCustomerDetails &&
    \r\n tick to enter details\r\n clearAdditionalData(e.target.checked) }\r\n />\r\n
    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {!disableCustomer && }\r\n {disableCustomer && }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n {jurisdictions && jurisdictions.map(x => (\r\n \r\n ))}\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n {Chapter3Status.map(x => (\r\n \r\n ))}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n {jurisdictions && jurisdictions.map(x => (\r\n \r\n ))}\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n {Chapter4Status.map(x => (\r\n \r\n ))}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Cancel\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nAddCustomerAccount.propTypes = {\r\n change: PropTypes.func.isRequired,\r\n handleSubmit: PropTypes.func.isRequired,\r\n dispatch: PropTypes.func.isRequired,\r\n state: PropTypes.any.isRequired,\r\n disableCustomer: PropTypes.bool.isRequired,\r\n disableAccount: PropTypes.bool.isRequired,\r\n existingLegalEntity: PropTypes.any,\r\n dirty: PropTypes.bool.isRequired\r\n};\r\n\r\nAddCustomerAccount.defaultProps = {\r\n existingLegalEntity: null\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n let initialValues = {\r\n customerType: '1',\r\n presumptionRuleDataSelected: 'false',\r\n additionalDataSelected: 'false',\r\n isInvestor: 'false',\r\n legalEntity: '',\r\n entityType: ''\r\n };\r\n\r\n const disableCustomer = typeof state.form?.addCustomerAccount?.values?.customerSelection === 'undefined'\r\n || state.form?.addCustomerAccount?.values?.customerSelection === 'existing';\r\n const disableAccount = typeof state.form?.addCustomerAccount?.values?.accountSelection === 'undefined'\r\n || state.form?.addCustomerAccount?.values?.accountSelection === 'existing';\r\n let existingLegalEntity = null;\r\n const dirty = isDirty('addCustomerAccount')(state);\r\n\r\n if (state.form?.addCustomerAccount?.values?.customerSelection === 'existing' && state.customer?.basicCustomer) {\r\n initialValues = state.form.addCustomerAccount.values;\r\n\r\n const { customer: { basicCustomer } } = state;\r\n\r\n Object.assign(initialValues, {\r\n customerId: basicCustomer.customerId,\r\n customerName: basicCustomer.customerName,\r\n customerType: basicCustomer.customerType === 1 ? '1' : '0',\r\n permanentAddressCountry: basicCustomer.permanentAddressCountry,\r\n jurisdictionofTaxResidency: basicCustomer.jurisdictionofTaxResidency,\r\n entityType: basicCustomer.entityType,\r\n isInvestor: basicCustomer.isInvestor ? 'true' : 'false',\r\n emailAddress: basicCustomer.emailAddress,\r\n permanentAddressLine1: basicCustomer.permanentAddressLine1,\r\n permanentAddressLine2: basicCustomer.permanentAddressLine2,\r\n permanentPostCode: basicCustomer.permanentPostCode,\r\n mailingAddressLine1: basicCustomer.mailingAddressLine1,\r\n mailingAddressLine2: basicCustomer.mailingAddressLine2,\r\n mailingAddressCountry: basicCustomer.mailingAddressCountry,\r\n mailingPostCode: basicCustomer.mailingPostCode,\r\n dateOfBirth: basicCustomer.dateOfBirth ? moment(basicCustomer.dateOfBirth).format('MMM DD, YYYY') : '',\r\n phoneNumber: basicCustomer.phoneNumber,\r\n chapter3Status: basicCustomer.chapter3Status,\r\n chapter4Status: basicCustomer.chapter4Status,\r\n usTin: basicCustomer.usTin,\r\n foreignTin: basicCustomer.foreignTin,\r\n giin: basicCustomer.giin\r\n });\r\n }\r\n\r\n if (state.form?.addCustomerAccount?.values?.accountSelection === 'existing' && state.customer?.basicAccount) {\r\n initialValues = state.form.addCustomerAccount.values;\r\n\r\n const { customer: { basicAccount } } = state;\r\n\r\n Object.assign(initialValues, {\r\n accountNumber: basicAccount.accountNumber,\r\n accountName: basicAccount.accountName\r\n });\r\n\r\n const legalEntityValue = `${ basicAccount.legalEntity.identifier } ${ basicAccount.legalEntity.name }`;\r\n\r\n existingLegalEntity = {\r\n id: basicAccount.legalEntity.id,\r\n type: 'legalentity',\r\n value: legalEntityValue,\r\n chapter3Status: basicAccount.legalEntity.chapter3Status,\r\n chapter4Status: basicAccount.legalEntity.chapter4Status,\r\n crsParticipating: basicAccount.legalEntity.crsParticipating,\r\n chapter4StatusDescription: basicAccount.legalEntity.chapter4StatusDescription,\r\n chapter3StatusDescription: basicAccount.legalEntity.chapter3StatusDescription\r\n };\r\n }\r\n\r\n if (state?.form?.addCustomerAccount?.values) {\r\n const { values: { customerSelection, accountSelection } } = state.form.addCustomerAccount;\r\n if (customerSelection || accountSelection) {\r\n Object.assign(initialValues, { customerSelection, accountSelection });\r\n }\r\n }\r\n\r\n return {\r\n state,\r\n initialValues,\r\n disableCustomer,\r\n disableAccount,\r\n existingLegalEntity,\r\n dirty\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nconst AddCustomerAccountForm = reduxForm({\r\n form: 'addCustomerAccount'\r\n})(AddCustomerAccount);\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withContainerErrorBoundary(AddCustomerAccountForm, 'AddCustomerAccount'));\r\n","import React, { Component } from 'react';\r\nimport 'core-js/actual';\r\nimport 'regenerator-runtime/runtime';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { Route, Redirect, Switch } from 'react-router-dom';\r\nimport { ConnectedRouter } from 'connected-react-router';\r\nimport { createBrowserHistory } from 'history';\r\nimport ReduxToastr from 'react-redux-toastr';\r\nimport svgxuse from 'svgxuse';\r\n\r\nimport {\r\n getSiteConfig,\r\n proceedWithClient,\r\n rememberPathBeforeLogin,\r\n externalLogin,\r\n logoutUser,\r\n getSitePreload\r\n} from 'actions';\r\n\r\nimport { SiteReadyState, AuthMode, AuthState } from 'actions/auth/common';\r\n\r\nimport PreloadBrands from 'common/App/Preload';\r\nimport Login from 'containers/Login';\r\nimport Home from 'containers/Home';\r\nimport ConnectionStatus from 'components/Common/ConnectionStatus';\r\nimport ValidationResults from 'containers/ValidationResults';\r\nimport OnlineForms from 'containers/OnlineForms';\r\nimport Blank from 'containers/Blank';\r\nimport OriginalPdfForm from 'containers/OriginalPdfForm';\r\nimport MIDashboard from 'containers/MIDashboard';\r\nimport Questionnaire from 'containers/Questionnaire';\r\nimport SupportingDocumentViewer from 'containers/SupportingDocumentViewer';\r\nimport AccountPage from 'containers/Account';\r\nimport CustomerPage from 'containers/Customer';\r\nimport Monitoring from 'containers/Monitoring';\r\nimport BatchesContainer from 'containers/BatchesContainer';\r\nimport BatchFilesContainer from 'containers/BatchFilesContainer';\r\nimport BatchFormsContainer from 'containers/BatchFormsContainer';\r\nimport ClientSelect from 'containers/ClientSelect';\r\nimport UnauthorizedPage from 'components/Errors/UnauthorizedPage';\r\nimport UnlicensedPage from 'components/Errors/UnlicensedPage';\r\nimport NoInternetPage from 'components/Errors/NoInternetPage';\r\nimport NotFoundPage from 'components/Errors/NotFoundPage';\r\nimport AccessControl from 'components/AccessControl';\r\nimport ActivityPerms from 'components/AccessControl/permissions.json';\r\nimport Header from 'components/Header';\r\nimport VisualiseW8Imy from 'components/VisualiseW8Imy';\r\nimport WhdStatement from 'components/WhdStatement';\r\nimport SiteLoading from 'components/SiteLoading';\r\nimport withAppErrorBoundary from 'components/ErrorBoundaries/AppErrorBoundary/withAppErrorBoundary';\r\nimport AddCustomerAccount from 'containers/AddCustomerAccount';\r\n\r\nimport '../../scss/spectre/spectre.scss';\r\nimport '../../scss/spectre/spectre-icons.scss';\r\nimport '../../scss/app.global.scss';\r\nimport '../../scss/branding/taina.scss';\r\n\r\nconst history = createBrowserHistory();\r\nexport { history };\r\nexport { svgxuse };\r\n\r\nclass App extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n siteReady: PropTypes.string.isRequired,\r\n authMode: PropTypes.string.isRequired,\r\n sessionAuthMode: PropTypes.string.isRequired,\r\n authState: PropTypes.string,\r\n isAuthenticated: PropTypes.bool.isRequired,\r\n username: PropTypes.string,\r\n settings: PropTypes.shape(),\r\n permissions: PropTypes.arrayOf(PropTypes.string),\r\n isFetchingUserConfig: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n username: null,\r\n settings: null,\r\n permissions: null,\r\n isFetchingUserConfig: false,\r\n authState: AuthState.Unknown,\r\n };\r\n\r\n static Brand = process.env.brand;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.monitorRequests = this.monitorRequests.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const { dispatch } = this.props;\r\n\r\n if (PreloadBrands.includes(App.Brand)) {\r\n this.preloadCheck();\r\n } else {\r\n dispatch(getSiteConfig());\r\n }\r\n\r\n window.addEventListener('storage', this.monitorRequests);\r\n document.addEventListener('tainaSessionReset', this.monitorRequests);\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('storage', this.monitorRequests);\r\n document.removeEventListener('tainaSessionReset', this.monitorRequests);\r\n }\r\n\r\n get clientIsSet() {\r\n const { settings } = this.props;\r\n return settings != null && (settings.selectedClient != null || (settings.client == null && settings.clients.length <= 1));\r\n }\r\n\r\n get isSiteLoaded() {\r\n const { siteReady, authState } = this.props;\r\n return siteReady === SiteReadyState.Ready && (authState === AuthState.Known || authState === AuthState.LoggedOut || authState === AuthState.Unauthorised);\r\n }\r\n\r\n get isSiteDown() {\r\n const { siteReady } = this.props;\r\n return siteReady === SiteReadyState.Down;\r\n }\r\n\r\n get siteHasNoClients() {\r\n const { siteReady } = this.props;\r\n return siteReady === SiteReadyState.NoClients;\r\n }\r\n\r\n get isAuthenticatedUser() {\r\n const { isAuthenticated, authState } = this.props;\r\n return this.isSiteLoaded && isAuthenticated && authState === AuthState.Known;\r\n }\r\n\r\n get isUnauthorized() {\r\n const { authState } = this.props;\r\n const { location: { pathname } } = history;\r\n return authState === AuthState.Unauthorised || ['/unauthorized'].indexOf(pathname) !== -1;\r\n }\r\n\r\n get isUnlicensed() {\r\n const { siteReady } = this.props;\r\n return siteReady === SiteReadyState.Unlicensed;\r\n }\r\n\r\n monitorRequests(event) {\r\n if (event.key === 'taina.logout') {\r\n this.logout();\r\n }\r\n if (event.key === 'taina.reset') {\r\n this.reset();\r\n }\r\n }\r\n\r\n logout() {\r\n const { dispatch, settings, sessionAuthMode } = this.props;\r\n const switchClient = sessionAuthMode === AuthMode.SSO && settings && settings.clients && settings.clients.length !== 1;\r\n dispatch(logoutUser(switchClient, false));\r\n localStorage.removeItem('taina.logout');\r\n }\r\n\r\n reset() {\r\n const { dispatch } = this.props;\r\n\r\n dispatch(logoutUser(false, false));\r\n localStorage.removeItem('taina.reset');\r\n }\r\n\r\n proceedWithClientSelection() {\r\n const { dispatch, settings } = this.props;\r\n const { location: { pathname } } = history;\r\n if (!settings || !settings.clients) {\r\n return null;\r\n }\r\n\r\n if (!settings.selectedClient) {\r\n if (settings.clients.length === 1) {\r\n dispatch(proceedWithClient(settings.clients[0]));\r\n return ;\r\n }\r\n if (settings.clients.length > 1 && ['/client-select'].indexOf(pathname) === -1) {\r\n return ;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n redirectToLogin() {\r\n const { dispatch, authMode, authState } = this.props;\r\n const { location: { pathname } } = history;\r\n\r\n if (authMode !== AuthMode.Manual && authState === AuthState.LoggedOut) {\r\n return ;\r\n }\r\n\r\n if (['/sign-in', '/unauthorized'].indexOf(pathname) === -1) {\r\n if (pathname !== '/') {\r\n dispatch(rememberPathBeforeLogin(pathname));\r\n }\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n }\r\n\r\n redirectToSSO() {\r\n const { dispatch } = this.props;\r\n const { location: { pathname } } = history;\r\n if (['/sign-in', '/unauthorized'].indexOf(pathname) === -1) {\r\n if (pathname !== '/') {\r\n dispatch(rememberPathBeforeLogin(pathname));\r\n }\r\n externalLogin();\r\n }\r\n return null;\r\n }\r\n\r\n showHeader() {\r\n const { isAuthenticated, settings, authState } = this.props;\r\n const { location: { pathname } } = history;\r\n\r\n return authState !== AuthState.Unauthorised\r\n && isAuthenticated\r\n && settings && settings.clients && (settings.clients.length === 1 || (settings.selectedClient != null))\r\n && ['/unauthorized'].indexOf(pathname) === -1;\r\n }\r\n\r\n async preloadCheck() {\r\n const { dispatch } = this.props;\r\n try {\r\n const response = await fetch('./config/preload.json');\r\n if (!response.ok) {\r\n if (response.status === 404) {\r\n dispatch(getSiteConfig());\r\n } else {\r\n throw new Error(`Unexpected error getting preload.json. Status: ${ response.status }`);\r\n }\r\n }\r\n const jsonData = await response.json();\r\n dispatch(getSitePreload(jsonData));\r\n } catch (ex) {\r\n console.error('Unexpected error getting preload.json', ex);\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n dispatch,\r\n authMode,\r\n authState,\r\n isAuthenticated,\r\n username,\r\n permissions,\r\n settings,\r\n isFetchingUserConfig\r\n } = this.props;\r\n\r\n return (\r\n \r\n
    \r\n { this.showHeader() && }\r\n\r\n We have detected that your internet connection is unavailable.
    Please wait as we attempt to re-establish a connection.
    \r\n\r\n
    \r\n { !isAuthenticated && this.isUnauthorized && }\r\n { authState === AuthState.LoggedOut && this.redirectToLogin() }\r\n\r\n { !this.isSiteLoaded && !this.isSiteDown && !this.siteHasNoClients && !this.isUnlicensed && !this.isUnauthorized && }\r\n { this.isUnlicensed && }\r\n { this.isSiteDown && }\r\n { this.siteHasNoClients && }\r\n\r\n { this.isSiteLoaded && authMode === AuthMode.Manual && !isAuthenticated && this.redirectToLogin() }\r\n { this.isSiteLoaded && authMode !== AuthMode.Manual\r\n && authState !== AuthState.Unauthorised && authState !== AuthState.LoggedOut && !isAuthenticated && this.redirectToSSO() }\r\n\r\n { this.isSiteLoaded && !isAuthenticated && }\r\n\r\n { this.isAuthenticatedUser && this.proceedWithClientSelection() }\r\n\r\n { this.isAuthenticatedUser && settings && !settings.selectedClient && }\r\n\r\n { this.isAuthenticatedUser && isFetchingUserConfig && }\r\n\r\n { this.isAuthenticatedUser && settings && settings.selectedClient && !isFetchingUserConfig && \r\n \r\n \r\n { AccessControl.hasPermission(\r\n permissions,\r\n [ActivityPerms.scannedView,\r\n ActivityPerms.scannedEdit,\r\n ActivityPerms.scannedValidate,\r\n ActivityPerms.electronicView,\r\n ActivityPerms.electronicValidate]\r\n ) && this.clientIsSet\r\n ? \r\n : }\r\n { AccessControl.hasPermission(permissions, [ActivityPerms.scannedDownload])\r\n && this.clientIsSet\r\n ? \r\n : }\r\n (AccessControl.hasPermission(permissions, [ActivityPerms.scannedValidate, ActivityPerms.electronicValidate]) ? : ) } />\r\n {\r\n if (settings && !settings.showDigitalEntry) {\r\n return ;\r\n }\r\n if (AccessControl.hasPermission(permissions, [ActivityPerms.digitalEntryAccessPortal, ActivityPerms.fwfInitialReviewer], true)) {\r\n return ;\r\n }\r\n return ;\r\n } }\r\n />\r\n {\r\n if (AccessControl.hasPermission(permissions, [ActivityPerms.scannedViewTree]) && this.clientIsSet) {\r\n return ;\r\n }\r\n return ;\r\n } }\r\n />\r\n {\r\n if (AccessControl.hasPermission(permissions, [ActivityPerms.multiTierMgrViewWhs]) && this.clientIsSet) {\r\n return ;\r\n }\r\n return ;\r\n } }\r\n />\r\n } />\r\n (this.clientIsSet && AccessControl.hasPermission(permissions, [ActivityPerms.accountEdit, ActivityPerms.accountPageView]) ? : ) } />\r\n (this.clientIsSet && AccessControl.hasPermission(permissions, [ActivityPerms.customerEdit, ActivityPerms.accountEdit]) ? : ) } />\r\n (this.clientIsSet && AccessControl.hasPermission(permissions, [ActivityPerms.customerEdit, ActivityPerms.customerPageView]) ? : ) } />\r\n (AccessControl.hasPermission(permissions, [ActivityPerms.miView]) && this.clientIsSet ? : ) } />\r\n {\r\n if (settings && !settings.showBatches) {\r\n return ;\r\n }\r\n if (AccessControl.hasPermission(permissions, [ActivityPerms.scannedViewBatches]) && this.clientIsSet) {\r\n return ;\r\n }\r\n return ;\r\n } }\r\n />\r\n {\r\n if (settings && !settings.showBatches) {\r\n return ;\r\n }\r\n if (AccessControl.hasPermission(permissions, [ActivityPerms.scannedViewBatches]) && this.clientIsSet) {\r\n return ;\r\n }\r\n return ;\r\n } }\r\n />\r\n {\r\n if (settings && !settings.showBatches) {\r\n return ;\r\n }\r\n if (AccessControl.hasPermission(permissions, [ActivityPerms.scannedViewBatches]) && this.clientIsSet) {\r\n return ;\r\n }\r\n return ;\r\n } }\r\n />\r\n {\r\n if (settings && !settings.showBatches) {\r\n return ;\r\n }\r\n if (AccessControl.hasPermission(permissions, [ActivityPerms.scannedViewBatches]) && this.clientIsSet) {\r\n return ;\r\n }\r\n return ;\r\n } }\r\n />\r\n (settings && settings.showCustomerOnboarding && this.clientIsSet ? : ) } />\r\n (AccessControl.hasPermission(permissions, [ActivityPerms.scannedSupDocs, ActivityPerms.scannedDownload], true)\r\n && this.clientIsSet\r\n ? \r\n : ) }\r\n />\r\n {\r\n if (settings && !settings.showOngoingMonitoring) {\r\n return ;\r\n }\r\n if (AccessControl.hasPermission(permissions, [ActivityPerms.monitoringViewUnassigned, ActivityPerms.monitoringViewUnresolved,\r\n ActivityPerms.monitoringViewResolved, ActivityPerms.monitoringExpertReviewer, ActivityPerms.monitoringResolver]) && this.clientIsSet) {\r\n return ;\r\n }\r\n return ;\r\n } }\r\n />\r\n \r\n \r\n \r\n }\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n const { auth } = state;\r\n const { siteReady, authMode, authState, sessionAuthMode, isAuthenticated, username, permissions, settings, isFetchingUserConfig } = auth;\r\n\r\n return {\r\n siteReady,\r\n authMode,\r\n authState,\r\n sessionAuthMode,\r\n isAuthenticated,\r\n username,\r\n permissions,\r\n settings,\r\n isFetchingUserConfig\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withAppErrorBoundary(App, 'App'));\r\n","import {\r\n SITE_CONFIG_REQUEST,\r\n SITE_CONFIG_SUCCESS,\r\n SITE_CONFIG_FAILURE,\r\n SITE_CONFIG_UNLICENSED,\r\n AUTH_STATE_REQUEST,\r\n AUTH_STATE_SUCCESS,\r\n AUTH_STATE_FAILURE,\r\n AUTH_STATE_UNAUTHORISED,\r\n SET_AUTH_STATE,\r\n LOGIN_REQUEST,\r\n LOGIN_SUCCESS,\r\n LOGIN_FAILURE,\r\n REMEMBER_PATH_BEFORE_LOGIN,\r\n RESTORE_PATH_AFTER_LOGIN,\r\n RESET_AUTH_ERROR,\r\n LOGOUT_SUCCESS,\r\n USER_CONFIG_REQUEST,\r\n USER_CONFIG_SUCCESS,\r\n USER_CONFIG_FAILURE,\r\n CHANGE_PASSWORD_REQUEST,\r\n OPEN_PASSWORD_CHANGE_MODAL,\r\n CLOSE_PASSWORD_CHANGE_MODAL,\r\n FAILED_PASSWORD_CHANGE_MODAL,\r\n UPDATE_SELECTED_CLIENT,\r\n getStorageSetting,\r\n getStorageKey,\r\n GET_PII_VALIDATION_CODES_REQUEST,\r\n GET_PII_VALIDATION_CODES_SUCCESS,\r\n GET_PII_VALIDATION_CODES_FAILURE\r\n} from 'actions';\r\n\r\nimport { SiteReadyState, AuthMode, AuthState } from 'actions/auth/common';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction auth(state = {\r\n siteReady: SiteReadyState.Unknown,\r\n authMode: AuthMode.Manual,\r\n authState: AuthState.Unknown,\r\n sessionAuthMode: AuthMode.Manual,\r\n isFetching: false,\r\n isFetchingUserConfig: false,\r\n isAuthenticated: !!getStorageKey(),\r\n token: getStorageKey(),\r\n username: getStorageSetting('username'),\r\n settings: getStorageSetting(),\r\n permissions: getStorageSetting('permissions'),\r\n changePasswordError: null,\r\n piiValidationCodes: null\r\n}, action) {\r\n switch (action.type) {\r\n case SITE_CONFIG_REQUEST:\r\n return {\r\n ...state,\r\n siteReady: SiteReadyState.GettingState,\r\n authMode: AuthMode.Manual,\r\n };\r\n case SITE_CONFIG_SUCCESS:\r\n return {\r\n ...state,\r\n siteReady: SiteReadyState.Ready,\r\n authMode: action.authMode,\r\n authState: action.authState\r\n };\r\n case SITE_CONFIG_FAILURE:\r\n return {\r\n ...state,\r\n siteReady: SiteReadyState.Down,\r\n authMode: AuthMode.Manual,\r\n authState: AuthState.Unknown\r\n };\r\n case SITE_CONFIG_UNLICENSED:\r\n return {\r\n ...state,\r\n siteReady: SiteReadyState.Unlicensed,\r\n authMode: AuthMode.Manual,\r\n authState: AuthState.Unknown\r\n };\r\n case AUTH_STATE_REQUEST:\r\n return {\r\n ...state,\r\n authState: AuthState.Requesting\r\n };\r\n case AUTH_STATE_SUCCESS:\r\n return {\r\n ...state,\r\n authState: AuthState.Known,\r\n isFetching: action.isFetching,\r\n isAuthenticated: action.isAuthenticated,\r\n sessionAuthMode: action.sessionAuthMode,\r\n token: action.token\r\n };\r\n case AUTH_STATE_FAILURE:\r\n return {\r\n ...state,\r\n authState: AuthState.Known\r\n };\r\n case AUTH_STATE_UNAUTHORISED:\r\n return {\r\n ...state,\r\n authState: AuthState.Unauthorised\r\n };\r\n case SET_AUTH_STATE:\r\n return {\r\n ...state,\r\n authState: action.state\r\n };\r\n case UPDATE_SELECTED_CLIENT:\r\n return {\r\n ...state,\r\n settings: action.settings,\r\n permissions: action.permissions\r\n };\r\n case LOGIN_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: action.isFetching,\r\n isFetchingUserConfig: action.isFetchingUserConfig,\r\n isAuthenticated: action.isAuthenticated,\r\n username: action.username,\r\n errorMessage: action.errorMessage\r\n };\r\n case LOGIN_SUCCESS:\r\n return {\r\n ...state,\r\n isFetching: action.isFetching,\r\n isAuthenticated: action.isAuthenticated,\r\n sessionAuthMode: AuthMode.Manual,\r\n authState: AuthState.Known,\r\n token: action.token\r\n };\r\n case LOGIN_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: action.isFetching,\r\n isAuthenticated: action.isAuthenticated,\r\n username: action.username,\r\n token: action.token,\r\n errorMessage: action.errorMessage\r\n };\r\n case REMEMBER_PATH_BEFORE_LOGIN:\r\n return {\r\n ...state,\r\n restorePath: action.restorePath\r\n };\r\n case RESTORE_PATH_AFTER_LOGIN:\r\n return {\r\n ...state,\r\n restorePath: action.restorePath\r\n };\r\n case RESET_AUTH_ERROR:\r\n return {\r\n ...state,\r\n errorMessage: action.errorMessage\r\n };\r\n case LOGOUT_SUCCESS:\r\n return {\r\n ...state,\r\n isAuthenticated: false,\r\n token: null,\r\n permissions: null,\r\n settings: null,\r\n sessionAuthMode: AuthMode.Manual,\r\n authState: AuthState.LoggedOut\r\n };\r\n case USER_CONFIG_REQUEST:\r\n return {\r\n ...state,\r\n isFetchingUserConfig: true,\r\n };\r\n case USER_CONFIG_SUCCESS:\r\n return {\r\n ...state,\r\n isFetchingUserConfig: false,\r\n settings: action.settings,\r\n permissions: action.permissions,\r\n username: action.username,\r\n siteReady: action.noActiveClients ? SiteReadyState.NoClients : SiteReadyState.Ready,\r\n };\r\n case USER_CONFIG_FAILURE:\r\n return {\r\n ...state,\r\n isFetchingUserConfig: false,\r\n siteReady: SiteReadyState.Down,\r\n settings: {\r\n showBatches: false,\r\n showOngoingMonitoring: false,\r\n showCustomerOnboarding: false,\r\n showDigitalEntry: false,\r\n showJointAccounts: false,\r\n showScannedForms: false,\r\n showWithholding: false,\r\n },\r\n permissions: null\r\n };\r\n case CHANGE_PASSWORD_REQUEST:\r\n return {\r\n ...state,\r\n changePasswordError: null\r\n };\r\n case FAILED_PASSWORD_CHANGE_MODAL:\r\n return {\r\n ...state,\r\n isPasswordChangeModalShown: action.isPasswordChangeModalShown,\r\n changePasswordError: action.changePasswordError\r\n };\r\n case OPEN_PASSWORD_CHANGE_MODAL:\r\n return {\r\n ...state,\r\n isPasswordChangeModalShown: action.isPasswordChangeModalShown,\r\n changePasswordError: null\r\n };\r\n case CLOSE_PASSWORD_CHANGE_MODAL:\r\n return {\r\n ...state,\r\n isPasswordChangeModalShown: action.isPasswordChangeModalShown,\r\n changePasswordError: null\r\n };\r\n case GET_PII_VALIDATION_CODES_REQUEST:\r\n return {\r\n ...state,\r\n isLoadingPiiValidationCodes: true\r\n };\r\n case GET_PII_VALIDATION_CODES_SUCCESS:\r\n return {\r\n ...state,\r\n isLoadingPiiValidationCodes: false,\r\n piiValidationCodes: action.piiValidationCodes\r\n };\r\n case GET_PII_VALIDATION_CODES_FAILURE:\r\n return {\r\n ...state,\r\n isLoadingPiiValidationCodes: false\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default auth;\r\n","import {\r\n LOAD_ACCOUNT,\r\n LOAD_ACCOUNT_DATA,\r\n LOAD_ACCOUNT_DATA_FAILURE,\r\n CLOSE_ACCOUNT_NUMBER_CHANGE_FORM_ERROR,\r\n CLOSE_ACCOUNT_NUMBER_CHANGE_FORM_MODAL,\r\n OPEN_ACCOUNT_NUMBER_CHANGE_FORM_MODAL,\r\n ACCOUNT_NUMBER_CHANGE_CLEAR_REQUEST,\r\n GET_ACCOUNTS_REQUEST,\r\n GET_ACCOUNTS_SUCCESS,\r\n GET_ACCOUNTS_FAILURE,\r\n CLEAR_ACCOUNT_REQUEST,\r\n OPEN_UNLINK_FORM_MODAL,\r\n CLOSE_UNLINK_FORM_MODAL,\r\n UNLINK_ACCOUNT_FORM_REQUEST,\r\n UNLINK_ACCOUNT_FORM_SUCCESS,\r\n UNLINK_ACCOUNT_FORM_FAILURE,\r\n OPEN_UPDATE_DUAL_FORM_STATUS_MODAL,\r\n CLOSE_UPDATE_DUAL_FORM_STATUS_MODAL,\r\n REQUEST_UPDATE_DUAL_FORM_STATUS,\r\n RECIEVE_UPDATE_DUAL_FORM_STATUS,\r\n UPDATE_DUAL_FORM_STATUS_FAILURE,\r\n SAVE_ACCOUNT_COMMENTS_REQUEST,\r\n SAVE_ACCOUNT_COMMENTS_SUCCESS,\r\n SAVE_ACCOUNT_COMMENTS_FAILURE,\r\n EDIT_ACCOUNT_NAME,\r\n EDIT_ACCOUNT_NAME_CANCEL,\r\n UPDATE_ACCOUNT_NAME_REQUEST,\r\n UPDATE_ACCOUNT_NAME_SUCCESS,\r\n UPDATE_ACCOUNT_NAME_ERROR,\r\n GET_ALL_CONTROLLING_PERSONS_REQUEST,\r\n GET_ALL_CONTROLLING_PERSONS_SUCCESS,\r\n GET_ALL_CONTROLLING_PERSONS_FAILURE,\r\n ADD_CONTROLLING_PERSON_REQUEST,\r\n ADD_CONTROLLING_PERSON_SUCCESS,\r\n ADD_CONTROLLING_PERSON_FAILURE,\r\n EXPIRE_CONTROLLING_PERSON_REQUEST,\r\n EXPIRE_CONTROLLING_PERSON_SUCCESS,\r\n EXPIRE_CONTROLLING_PERSON_FAILURE,\r\n REMOVE_CONTROLLING_PERSON_REQUEST,\r\n REMOVE_CONTROLLING_PERSON_SUCCESS,\r\n REMOVE_CONTROLLING_PERSON_FAILURE,\r\n OPEN_LINK_IMY_STRUCTURE_CONFIRM_MODAL,\r\n CLOSE_LINK_IMY_STRUCTURE_CONFIRM_MODAL,\r\n LINK_ACCOUNT_TO_IMY_STRUCTURE_REQUEST,\r\n LINK_ACCOUNT_TO_IMY_STRUCTURE_SUCCESS,\r\n LINK_ACCOUNT_TO_IMY_STRUCTURE_FAILURE,\r\n WHS_LINK_OPERATION_STATUS_REQUEST,\r\n WHS_LINK_OPERATION_STATUS_SUCCESS,\r\n WHS_LINK_OPERATION_STATUS_FAILED,\r\n WHS_LINK_OPERATION_STATUS_RETRIES_FAILED,\r\n WHS_LINK_OPERATION_STATUS_LIST_REQUEST,\r\n WHS_LINK_OPERATION_STATUS_LIST_SUCCESS,\r\n WHS_LINK_OPERATION_STATUS_LIST_FAILED,\r\n GET_ACCOUNT_LINKED_IMY_STRUCTURE_REQUEST,\r\n GET_ACCOUNT_LINKED_IMY_STRUCTURE_SUCCESS,\r\n GET_ACCOUNT_LINKED_IMY_STRUCTURE_FAILURE,\r\n GET_ACCOUNT_LINKED_IMY_STRUCTURE_CLEAR\r\n} from 'actions';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction account(state = {\r\n storeAccount: null,\r\n isLoadingData: false,\r\n isAccountNumberChangeModalShown: false,\r\n isGettingAccounts: false,\r\n accounts: [],\r\n accountsCount: 0,\r\n isUnlinkFormModalShown: false,\r\n isUnlinkingForm: false,\r\n unlinkFormError: null,\r\n isUpdatingDualFormStatusShown: false,\r\n isSavingAccount: false,\r\n accountError: null,\r\n controllingPersons: null,\r\n isGettingControllingPersons: false,\r\n isLinkingControllingPerson: false,\r\n isLinkingControllingPersonComplete: false,\r\n isExpiringControllingPerson: false,\r\n isRemovingControllingPerson: false,\r\n isLinkWhsAccountConfirmModalShown: false,\r\n isGettingWhsLinkOperationStatus: false,\r\n accountWhsLinkStatus: null,\r\n accountWhsLinkMonitorFailed: false,\r\n isGettingWhsLinkStatuses: false,\r\n whsLinkStatuses: null,\r\n whsLinkMultiMonitorFailed: false,\r\n linkedImyStructure: null\r\n}, action) {\r\n switch (action.type) {\r\n case OPEN_UPDATE_DUAL_FORM_STATUS_MODAL:\r\n case CLOSE_UPDATE_DUAL_FORM_STATUS_MODAL:\r\n return {\r\n ...state,\r\n isUpdateDualFormStatusModalShown: action.showModal,\r\n dualFormCheckStatus: action.dualFormCheckStatus,\r\n dualFormSelectedAccountId: action.dualFormSelectedAccountId,\r\n dualFormSeletedAccountNumber: action.dualFormSeletedAccountNumber,\r\n updateDualFormStatusError: null\r\n };\r\n case REQUEST_UPDATE_DUAL_FORM_STATUS:\r\n return {\r\n ...state,\r\n isUpdatingDualFormStatus: true\r\n };\r\n case RECIEVE_UPDATE_DUAL_FORM_STATUS:\r\n case UPDATE_DUAL_FORM_STATUS_FAILURE:\r\n return {\r\n ...state,\r\n isUpdatingDualFormStatus: false,\r\n updateDualFormStatusError: action.updateDualFormStatusError,\r\n };\r\n case LOAD_ACCOUNT:\r\n return {\r\n ...state,\r\n isLoadingData: false,\r\n storeAccount: action.storeAccount\r\n };\r\n case LOAD_ACCOUNT_DATA:\r\n return {\r\n ...state,\r\n isLoadingData: true,\r\n storeAccount: null,\r\n accountDataLoadError: null\r\n };\r\n case LOAD_ACCOUNT_DATA_FAILURE:\r\n return {\r\n ...state,\r\n isLoadingData: false,\r\n accountDataLoadError: action.accountDataLoadError\r\n };\r\n case CLOSE_ACCOUNT_NUMBER_CHANGE_FORM_ERROR:\r\n return {\r\n ...state,\r\n isAccountNumberChangeModalShown: action.isAccountNumberChangeModalShown\r\n };\r\n case CLOSE_ACCOUNT_NUMBER_CHANGE_FORM_MODAL:\r\n return {\r\n ...state,\r\n isAccountNumberChangeModalShown: action.isAccountNumberChangeModalShown,\r\n returnedExistingAccountId: action.returnedExistingAccountId\r\n };\r\n case OPEN_ACCOUNT_NUMBER_CHANGE_FORM_MODAL:\r\n return {\r\n ...state,\r\n isAccountNumberChangeModalShown: action.isAccountNumberChangeModalShown\r\n };\r\n case ACCOUNT_NUMBER_CHANGE_CLEAR_REQUEST:\r\n return {\r\n ...state,\r\n returnedExistingAccountId: ''\r\n };\r\n case CLEAR_ACCOUNT_REQUEST:\r\n return {\r\n ...state,\r\n isLoadingData: false,\r\n storeAccount: null,\r\n isAccountNumberChangeModalShown: false\r\n };\r\n case GET_ACCOUNTS_REQUEST:\r\n return {\r\n ...state,\r\n isGettingAccounts: action.isGettingAccounts\r\n };\r\n case GET_ACCOUNTS_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingAccounts: action.isGettingAccounts,\r\n accounts: action.accounts,\r\n accountsCount: action.accountsCount\r\n };\r\n case GET_ACCOUNTS_FAILURE:\r\n return {\r\n ...state,\r\n isGettingAccounts: action.isGettingAccounts\r\n };\r\n case OPEN_UNLINK_FORM_MODAL:\r\n return {\r\n ...state,\r\n isUnlinkFormModalShown: true,\r\n isUnlinkingForm: false,\r\n unlinkFormError: null\r\n };\r\n case CLOSE_UNLINK_FORM_MODAL:\r\n return {\r\n ...state,\r\n isUnlinkFormModalShown: false,\r\n isUnlinkingForm: false,\r\n unlinkFormError: null\r\n };\r\n case UNLINK_ACCOUNT_FORM_REQUEST:\r\n return {\r\n ...state,\r\n isUnlinkingForm: true,\r\n unlinkFormError: null\r\n };\r\n case UNLINK_ACCOUNT_FORM_SUCCESS:\r\n return {\r\n ...state,\r\n isUnlinkFormModalShown: false,\r\n isUnlinkingForm: false,\r\n unlinkFormError: null\r\n };\r\n case UNLINK_ACCOUNT_FORM_FAILURE:\r\n return {\r\n ...state,\r\n isUnlinkingForm: false,\r\n unlinkFormError: action.unlinkFormError\r\n };\r\n case SAVE_ACCOUNT_COMMENTS_REQUEST:\r\n return {\r\n ...state,\r\n isSavingAccount: action.isSavingAccount\r\n };\r\n case SAVE_ACCOUNT_COMMENTS_SUCCESS:\r\n if (state.storeAccount) {\r\n if (!state.storeAccount.previousComments) {\r\n state.storeAccount.previousComments = [];\r\n }\r\n state.storeAccount.previousComments.push(action.savedComment);\r\n state.storeAccount.newComment = '';\r\n }\r\n\r\n return {\r\n ...state,\r\n isSavingAccount: action.isSavingAccount,\r\n account: Object.assign(state.storeAccount, {}),\r\n accountError: action.accountError\r\n };\r\n case SAVE_ACCOUNT_COMMENTS_FAILURE:\r\n return {\r\n ...state,\r\n isSavingAccount: action.isSavingAccount,\r\n accountError: action.accountError\r\n };\r\n case EDIT_ACCOUNT_NAME:\r\n return {\r\n ...state,\r\n isEditingAccount: true\r\n };\r\n case EDIT_ACCOUNT_NAME_CANCEL:\r\n return {\r\n ...state,\r\n isEditingAccount: false\r\n };\r\n case UPDATE_ACCOUNT_NAME_REQUEST:\r\n return {\r\n ...state,\r\n isEditingAccount: true\r\n };\r\n case UPDATE_ACCOUNT_NAME_SUCCESS:\r\n // eslint-disable-next-line no-case-declarations\r\n const { storeAccount } = state;\r\n storeAccount.accountName = action.accountName;\r\n\r\n return {\r\n ...state,\r\n storeAccount,\r\n isEditingAccount: false,\r\n isSubmittingAccount: false\r\n };\r\n case UPDATE_ACCOUNT_NAME_ERROR:\r\n return {\r\n ...state,\r\n isEditingAccount: true,\r\n isSubmittingAccount: false\r\n };\r\n case GET_ALL_CONTROLLING_PERSONS_REQUEST:\r\n return {\r\n ...state,\r\n isGettingControllingPersons: true\r\n };\r\n case GET_ALL_CONTROLLING_PERSONS_SUCCESS:\r\n return {\r\n ...state,\r\n controllingPersons: action.controllingPersons,\r\n isGettingControllingPersons: false,\r\n };\r\n case GET_ALL_CONTROLLING_PERSONS_FAILURE:\r\n return {\r\n ...state,\r\n isGettingControllingPersons: false,\r\n };\r\n case ADD_CONTROLLING_PERSON_REQUEST:\r\n return {\r\n ...state,\r\n isLinkingControllingPerson: true,\r\n isLinkingControllingPersonComplete: false,\r\n };\r\n case ADD_CONTROLLING_PERSON_SUCCESS:\r\n return {\r\n ...state,\r\n controllingPersons: action.controllingPersons,\r\n isLinkingControllingPerson: false,\r\n isLinkingControllingPersonComplete: true,\r\n };\r\n case ADD_CONTROLLING_PERSON_FAILURE:\r\n return {\r\n ...state,\r\n isLinkingControllingPerson: false,\r\n isLinkingControllingPersonComplete: false,\r\n };\r\n case EXPIRE_CONTROLLING_PERSON_REQUEST:\r\n return {\r\n ...state,\r\n isExpiringControllingPerson: true,\r\n };\r\n case EXPIRE_CONTROLLING_PERSON_SUCCESS:\r\n return {\r\n ...state,\r\n isExpiringControllingPerson: false,\r\n };\r\n case EXPIRE_CONTROLLING_PERSON_FAILURE:\r\n return {\r\n ...state,\r\n isExpiringControllingPerson: false,\r\n };\r\n case REMOVE_CONTROLLING_PERSON_REQUEST:\r\n return {\r\n ...state,\r\n isRemovingControllingPerson: true,\r\n };\r\n case REMOVE_CONTROLLING_PERSON_SUCCESS:\r\n return {\r\n ...state,\r\n isRemovingControllingPerson: false,\r\n };\r\n case REMOVE_CONTROLLING_PERSON_FAILURE:\r\n return {\r\n ...state,\r\n isRemovingControllingPerson: false,\r\n };\r\n case OPEN_LINK_IMY_STRUCTURE_CONFIRM_MODAL:\r\n return {\r\n ...state,\r\n isLinkToImyStructureConfirmModalShown: true,\r\n targetWhsLinkAccount: action.targetWhsLinkAccount\r\n };\r\n case CLOSE_LINK_IMY_STRUCTURE_CONFIRM_MODAL:\r\n return {\r\n ...state,\r\n isLinkToImyStructureConfirmModalShown: false,\r\n targetWhsLinkAccount: null\r\n };\r\n case LINK_ACCOUNT_TO_IMY_STRUCTURE_REQUEST:\r\n return {\r\n ...state,\r\n isLinkToImyStructureConfirmModalShown: false,\r\n isLinkingToImyStructureModalShown: true\r\n };\r\n case LINK_ACCOUNT_TO_IMY_STRUCTURE_SUCCESS:\r\n return {\r\n ...state,\r\n isLinkingToImyStructureModalShown: action.isLinkingToImyStructureModalShown,\r\n };\r\n case LINK_ACCOUNT_TO_IMY_STRUCTURE_FAILURE:\r\n return {\r\n ...state,\r\n isLinkingToImyStructureModalShown: false,\r\n targetWhsLinkAccount: null\r\n };\r\n case WHS_LINK_OPERATION_STATUS_REQUEST:\r\n return {\r\n ...state,\r\n isGettingWhsLinkOperationStatus: action.isGettingWhsLinkOperationStatus\r\n };\r\n case WHS_LINK_OPERATION_STATUS_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingWhsLinkOperationStatus: action.isGettingWhsLinkOperationStatus,\r\n accountWhsLinkStatus: action.accountWhsLinkStatus,\r\n isLinkingToImyStructureModalShown: action.isLinkingToImyStructureModalShown,\r\n targetWhsLinkAccount: { ...state.targetWhsLinkAccount, id: action.accountWhsLinkStatus.toAccountId },\r\n accountWhsLinkMonitorFailed: false\r\n };\r\n case WHS_LINK_OPERATION_STATUS_FAILED:\r\n return {\r\n ...state,\r\n isGettingWhsLinkOperationStatus: action.isGettingWhsLinkOperationStatus\r\n };\r\n case WHS_LINK_OPERATION_STATUS_RETRIES_FAILED:\r\n return {\r\n ...state,\r\n accountWhsLinkMonitorFailed: true\r\n };\r\n case WHS_LINK_OPERATION_STATUS_LIST_REQUEST:\r\n return {\r\n ...state,\r\n isGettingWhsLinkStatuses: false,\r\n whsLinkMultiMonitorFailed: false\r\n };\r\n case WHS_LINK_OPERATION_STATUS_LIST_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingWhsLinkStatuses: false,\r\n whsLinkStatuses: action.whsLinkStatuses,\r\n whsLinkMultiMonitorFailed: false\r\n };\r\n case WHS_LINK_OPERATION_STATUS_LIST_FAILED:\r\n return {\r\n ...state,\r\n isGettingWhsLinkStatuses: false,\r\n whsLinkStatuses: null,\r\n whsLinkMultiMonitorFailed: true\r\n };\r\n case GET_ACCOUNT_LINKED_IMY_STRUCTURE_REQUEST:\r\n return {\r\n ...state\r\n };\r\n case GET_ACCOUNT_LINKED_IMY_STRUCTURE_SUCCESS:\r\n return {\r\n ...state,\r\n linkedImyStructure: action.linkedImyStructure\r\n };\r\n case GET_ACCOUNT_LINKED_IMY_STRUCTURE_FAILURE:\r\n return {\r\n ...state,\r\n linkedImyStructure: null\r\n };\r\n case GET_ACCOUNT_LINKED_IMY_STRUCTURE_CLEAR:\r\n return {\r\n ...state,\r\n linkedImyStructure: null\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default account;\r\n","import {\r\n CONNECTION_STATUS,\r\n DOWNLOAD_FILE,\r\n GET_JURISDICTIONS_SUCCESS,\r\n GET_JURISDICTIONS_FAILURE,\r\n GET_SPECIALRATEPROVISIONS_SUCCESS,\r\n GET_SPECIALRATEPROVISIONS_CLEAR,\r\n OPEN_ABOUT,\r\n CLOSE_ABOUT,\r\n API_STATUS,\r\n GET_IGACOMBOS_SUCCESS,\r\n GET_IGACOMBOS_FAILURE,\r\n GET_STOCKMARKETS_SUCCESS,\r\n GET_STOCKMARKETS_FAILURE\r\n} from 'actions';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction common(state = {\r\n jurisdictions: null,\r\n specialRateProvisions: null,\r\n isAboutOpen: false,\r\n apiStatus: null\r\n}, action) {\r\n switch (action.type) {\r\n case CONNECTION_STATUS:\r\n return {\r\n ...state,\r\n connectionInfo: action.connectionInfo,\r\n isOnline: action.isOnline,\r\n retries: action.retries\r\n };\r\n case DOWNLOAD_FILE:\r\n return {\r\n ...state,\r\n downloadedFilename: action.downloadedFilename\r\n };\r\n case GET_JURISDICTIONS_SUCCESS:\r\n return {\r\n ...state,\r\n jurisdictions: action.jurisdictions\r\n };\r\n case GET_JURISDICTIONS_FAILURE:\r\n return {\r\n ...state,\r\n jurisdictions: null\r\n };\r\n case GET_SPECIALRATEPROVISIONS_SUCCESS:\r\n return {\r\n ...state,\r\n specialRateProvisions: action.specialRateProvisions\r\n };\r\n case GET_SPECIALRATEPROVISIONS_CLEAR:\r\n return {\r\n ...state,\r\n specialRateProvisions: null\r\n };\r\n case OPEN_ABOUT:\r\n return {\r\n ...state,\r\n isAboutOpen: true\r\n };\r\n case CLOSE_ABOUT:\r\n return {\r\n ...state,\r\n isAboutOpen: false\r\n };\r\n case API_STATUS:\r\n return {\r\n ...state,\r\n apiStatus: action.apiStatus\r\n };\r\n case GET_IGACOMBOS_SUCCESS:\r\n return {\r\n ...state,\r\n igaSubClassificationsCombos: action.igaSubClassificationsCombos\r\n };\r\n case GET_IGACOMBOS_FAILURE:\r\n return {\r\n ...state,\r\n igaSubClassificationsCombos: null\r\n };\r\n case GET_STOCKMARKETS_SUCCESS:\r\n return {\r\n ...state,\r\n stockMarkets: action.stockMarkets\r\n };\r\n case GET_STOCKMARKETS_FAILURE:\r\n return {\r\n ...state,\r\n stockMarkets: null\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default common;\r\n","import {\r\n LOAD_CUSTOMER,\r\n LOAD_CUSTOMER_DATA,\r\n LOAD_CUSTOMER_DATA_FAILURE,\r\n CLOSE_CUSTOMERID_CHANGE_FORM_ERROR,\r\n CLOSE_CUSTOMERID_CHANGE_FORM_MODAL,\r\n OPEN_CUSTOMERID_CHANGE_FORM_MODAL,\r\n CLEAR_CHANGECUSTOMERID_REQUEST,\r\n CLEAR_CUSTOMER_REQUEST,\r\n GET_CUSTOMERS_REQUEST,\r\n GET_CUSTOMERS_SUCCESS,\r\n GET_CUSTOMERS_FAILURE,\r\n GET_CUSTOMER_DETAILS_REQUEST,\r\n GET_CUSTOMER_DETAILS_SUCCESS,\r\n GET_CUSTOMER_DETAILS_FAILURE,\r\n GET_CUSTOMER_DETAILS_CLEAR,\r\n SUPPORTING_DOC_ADDED,\r\n SUPPORTING_DOC_DELETE_REQUEST,\r\n SUPPORTING_DOC_DELETE_SUCCESS,\r\n SUPPORTING_DOC_DELETE_FAILURE,\r\n ADD_CUSTOMER_ACCOUNT_REQUEST,\r\n ADD_CUSTOMER_ACCOUNT_SUCCESS,\r\n ADD_CUSTOMER_ACCOUNT_FAILURE,\r\n GET_BASIC_CUSTOMER_REQUEST,\r\n GET_BASIC_CUSTOMER_SUCCESS,\r\n GET_BASIC_CUSTOMER_FAILURE,\r\n GET_BASIC_ACCOUNT_REQUEST,\r\n GET_BASIC_ACCOUNT_SUCCESS,\r\n GET_BASIC_ACCOUNT_FAILURE,\r\n ADD_CUSTOMER_ACCOUNT_CLEAR_ACCOUNT,\r\n ADD_CUSTOMER_ACCOUNT_CLEAR_CUSTOMER,\r\n EDIT_CUSTOMER,\r\n EDIT_CUSTOMER_CANCEL,\r\n UPDATE_CUSTOMER_REQUEST,\r\n UPDATE_CUSTOMER_SUCCESS,\r\n UPDATE_CUSTOMER_ERROR,\r\n OPEN_CUSTOMER_ADDRESSES_MODAL,\r\n CLOSE_CUSTOMER_ADDRESSES_MODAL,\r\n OPEN_CUSTOMER_JOTRS_MODAL,\r\n CLOSE_CUSTOMER_JOTRS_MODAL,\r\n CHANGE_PRIMARY_ADDRESS_REQUEST,\r\n CHANGE_PRIMARY_ADDRESS_SUCCESS,\r\n CHANGE_PRIMARY_ADDRESS_FAILURE,\r\n CHANGE_PRIMARY_JOTR_REQUEST,\r\n CHANGE_PRIMARY_JOTR_SUCCESS,\r\n CHANGE_PRIMARY_JOTR_FAILURE,\r\n CHANGE_WHD_JOTR_REQUEST,\r\n CHANGE_WHD_JOTR_SUCCESS,\r\n CHANGE_WHD_JOTR_FAILURE\r\n} from 'actions';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction customer(state = {\r\n isLoadingData: false,\r\n storeCustomer: null,\r\n isCustomerIdChangeModalShown: false,\r\n returnedExistingCustomerId: '',\r\n isGettingCustomers: false,\r\n customers: [],\r\n customerSupportingDocs: [],\r\n isDeletingSupportingDocId: null,\r\n supportingDocError: null,\r\n customersCount: 0,\r\n getCustomerDetailsError: null,\r\n basicCustomer: null,\r\n basicAccount: null,\r\n basicCustomerError: null,\r\n basicAccountError: null,\r\n isGettingBasicAccount: false,\r\n isGettingBasicCustomer: false,\r\n isEditingCustomer: false,\r\n isSubmittingCustomer: false,\r\n isCustomerAddressesModalShown: null,\r\n isCustomerJotrsModalShown: false,\r\n isChangingPrimaryAddress: false,\r\n isChangingPrimaryJotr: false,\r\n isChangingWhdJotr: false\r\n}, action) {\r\n switch (action.type) {\r\n case LOAD_CUSTOMER:\r\n return {\r\n ...state,\r\n isLoadingData: false,\r\n storeCustomer: action.storeCustomer,\r\n customerSupportingDocs: [...action.storeCustomer.supportingDocs]\r\n };\r\n case SUPPORTING_DOC_ADDED:\r\n return {\r\n ...state,\r\n isLoadingData: false,\r\n customerSupportingDocs: [...state.customerSupportingDocs, ...action.newSupportingDoc],\r\n };\r\n case SUPPORTING_DOC_DELETE_REQUEST:\r\n return {\r\n ...state,\r\n isDeletingSupportingDocId: action.isDeletingSupportingDocId,\r\n };\r\n case SUPPORTING_DOC_DELETE_SUCCESS:\r\n return {\r\n ...state,\r\n isDeletingSupportingDocId: null,\r\n customerSupportingDocs: state.customerSupportingDocs ? state.customerSupportingDocs.filter(doc => doc.id !== action.isDeletingSupportingDocId) : state.customerSupportingDocs\r\n };\r\n case SUPPORTING_DOC_DELETE_FAILURE:\r\n return {\r\n ...state,\r\n isDeletingSupportingDocId: action.isDeletingSupportingDocId,\r\n supportingDocError: action.supportingDocError\r\n };\r\n case LOAD_CUSTOMER_DATA:\r\n return {\r\n ...state,\r\n isLoadingData: true,\r\n storeCustomer: null,\r\n customerDataLoadError: null\r\n };\r\n case LOAD_CUSTOMER_DATA_FAILURE:\r\n return {\r\n ...state,\r\n isLoadingData: false,\r\n customerDataLoadError: action.customerDataLoadError\r\n };\r\n case CLOSE_CUSTOMERID_CHANGE_FORM_ERROR:\r\n return {\r\n ...state,\r\n isCustomerIdChangeModalShown: action.isCustomerIdChangeModalShown\r\n };\r\n case CLOSE_CUSTOMERID_CHANGE_FORM_MODAL:\r\n return {\r\n ...state,\r\n isCustomerIdChangeModalShown: action.isCustomerIdChangeModalShown,\r\n returnedExistingCustomerId: action.returnedExistingCustomerId\r\n };\r\n case OPEN_CUSTOMERID_CHANGE_FORM_MODAL:\r\n return {\r\n ...state,\r\n isCustomerIdChangeModalShown: action.isCustomerIdChangeModalShown\r\n };\r\n case CLEAR_CHANGECUSTOMERID_REQUEST:\r\n return {\r\n ...state,\r\n returnedExistingCustomerId: ''\r\n };\r\n case CLEAR_CUSTOMER_REQUEST:\r\n return {\r\n ...state,\r\n isLoadingData: false,\r\n storeCustomer: null\r\n };\r\n case GET_CUSTOMERS_REQUEST:\r\n return {\r\n ...state,\r\n isGettingCustomers: action.isGettingCustomers\r\n };\r\n case GET_CUSTOMERS_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingCustomers: action.isGettingCustomers,\r\n customers: action.customers,\r\n customersCount: action.customersCount\r\n };\r\n case GET_CUSTOMERS_FAILURE:\r\n return {\r\n ...state,\r\n isGettingCustomers: action.isGettingCustomers,\r\n customers: [],\r\n customersCount: 0\r\n };\r\n case GET_CUSTOMER_DETAILS_REQUEST:\r\n // eslint-disable-next-line no-case-declarations\r\n const requestCustomers = state.customers.filter((c, i) => c.id === action.customerId && i === action.rowId);\r\n\r\n if (requestCustomers && requestCustomers.length === 1) {\r\n requestCustomers[0].isLoadingDetails = true;\r\n }\r\n\r\n return {\r\n ...state,\r\n getCustomerDetailsError: null,\r\n customers: state.customers.concat([])\r\n };\r\n case GET_CUSTOMER_DETAILS_SUCCESS:\r\n // eslint-disable-next-line no-case-declarations\r\n const matchedCustomers = state.customers.filter((c, i) => c.id === action.customerId && i === action.rowId);\r\n\r\n if (matchedCustomers && matchedCustomers.length === 1) {\r\n matchedCustomers[0].additionalData = action.customerDetails;\r\n matchedCustomers[0].isLoadingDetails = false;\r\n }\r\n\r\n return {\r\n ...state,\r\n getCustomerDetailsError: null,\r\n customers: state.customers.concat([])\r\n };\r\n case GET_CUSTOMER_DETAILS_FAILURE:\r\n // eslint-disable-next-line no-case-declarations\r\n const failureCustomers = state.customers.filter((c, i) => c.id === action.customerId && i === action.rowId);\r\n\r\n if (failureCustomers && failureCustomers.length === 1) {\r\n failureCustomers[0].additionalData = null;\r\n failureCustomers[0].isLoadingDetails = false;\r\n }\r\n\r\n return {\r\n ...state,\r\n getCustomerDetailsError: action.getCustomerDetailsError,\r\n customers: state.customers.concat([])\r\n };\r\n case GET_CUSTOMER_DETAILS_CLEAR:\r\n // eslint-disable-next-line no-case-declarations\r\n const clearCustomers = state.customers.filter((c, i) => c.id === action.customerId && i === action.rowId);\r\n\r\n if (clearCustomers && clearCustomers.length === 1) {\r\n clearCustomers[0].additionalData = null;\r\n clearCustomers[0].isLoadingDetails = false;\r\n }\r\n\r\n return {\r\n ...state,\r\n getCustomerDetailsError: null,\r\n customers: state.customers.concat([])\r\n };\r\n case ADD_CUSTOMER_ACCOUNT_REQUEST:\r\n return {\r\n ...state,\r\n isAddingCustomerAccount: action.isAddingCustomerAccount\r\n };\r\n case ADD_CUSTOMER_ACCOUNT_SUCCESS:\r\n return {\r\n ...state,\r\n isAddingCustomerAccount: action.isAddingCustomerAccount,\r\n AddingCustomerAccountSuccess: true,\r\n basicCustomer: null,\r\n basicAccount: null\r\n };\r\n case ADD_CUSTOMER_ACCOUNT_FAILURE:\r\n return {\r\n ...state,\r\n AddingCustomerAccountSuccess: false\r\n };\r\n case GET_BASIC_CUSTOMER_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingBasicCustomer: false,\r\n basicCustomer: action.basicCustomer\r\n };\r\n case GET_BASIC_CUSTOMER_REQUEST:\r\n return {\r\n ...state,\r\n isGettingBasicCustomer: true,\r\n basicCustomer: null,\r\n basicCustomerError: null\r\n };\r\n case GET_BASIC_CUSTOMER_FAILURE:\r\n return {\r\n ...state,\r\n isGettingBasicCustomer: false,\r\n basicCustomerError: action.basicCustomerError\r\n };\r\n case GET_BASIC_ACCOUNT_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingBasicAccount: false,\r\n basicAccount: action.basicAccount\r\n };\r\n case GET_BASIC_ACCOUNT_REQUEST:\r\n return {\r\n ...state,\r\n isGettingBasicAccount: true,\r\n basicAccount: null,\r\n basicAccountError: null\r\n };\r\n case GET_BASIC_ACCOUNT_FAILURE:\r\n return {\r\n ...state,\r\n isGettingBasicAccount: false,\r\n basicAccountError: action.basicAccountError\r\n };\r\n case ADD_CUSTOMER_ACCOUNT_CLEAR_ACCOUNT:\r\n return {\r\n ...state,\r\n basicAccount: null\r\n };\r\n case ADD_CUSTOMER_ACCOUNT_CLEAR_CUSTOMER:\r\n return {\r\n ...state,\r\n basicCustomer: null\r\n };\r\n case EDIT_CUSTOMER:\r\n return {\r\n ...state,\r\n isEditingCustomer: true\r\n };\r\n case EDIT_CUSTOMER_CANCEL:\r\n return {\r\n ...state,\r\n isEditingCustomer: false\r\n };\r\n case UPDATE_CUSTOMER_REQUEST:\r\n return {\r\n ...state,\r\n isEditingCustomer: true\r\n };\r\n case UPDATE_CUSTOMER_SUCCESS:\r\n {\r\n // eslint-disable-next-line no-case-declarations\r\n const { storeCustomer } = state;\r\n storeCustomer.emailAddress = action.emailAddress;\r\n\r\n return {\r\n ...state,\r\n storeCustomer,\r\n isEditingCustomer: false,\r\n isSubmittingCustomer: false\r\n };\r\n }\r\n case UPDATE_CUSTOMER_ERROR:\r\n return {\r\n ...state,\r\n isEditingCustomer: true,\r\n isSubmittingCustomer: false\r\n };\r\n case OPEN_CUSTOMER_ADDRESSES_MODAL:\r\n return {\r\n ...state,\r\n isCustomerAddressesModalShown: action.addressType,\r\n };\r\n case CLOSE_CUSTOMER_ADDRESSES_MODAL:\r\n return {\r\n ...state,\r\n isCustomerAddressesModalShown: null,\r\n isChangingPrimaryAddress: false\r\n };\r\n case OPEN_CUSTOMER_JOTRS_MODAL:\r\n return {\r\n ...state,\r\n isCustomerJotrsModalShown: true\r\n };\r\n case CLOSE_CUSTOMER_JOTRS_MODAL:\r\n return {\r\n ...state,\r\n isCustomerJotrsModalShown: false,\r\n isChangingPrimaryJotr: false,\r\n isChangingWhdJotr: false,\r\n };\r\n case CHANGE_PRIMARY_ADDRESS_REQUEST:\r\n return {\r\n ...state,\r\n isChangingPrimaryAddress: true,\r\n };\r\n case CHANGE_PRIMARY_ADDRESS_SUCCESS:\r\n {\r\n // eslint-disable-next-line no-case-declarations\r\n const { storeCustomer } = state;\r\n\r\n if (storeCustomer && action.addresses) {\r\n storeCustomer.addresses = action.addresses;\r\n storeCustomer.permanentAddresses = action.addresses.filter(x => x.addressType === 1);\r\n storeCustomer.mailingAddresses = action.addresses.filter(x => x.addressType === 2);\r\n }\r\n\r\n return {\r\n ...state,\r\n storeCustomer: { ...storeCustomer },\r\n isChangingPrimaryAddress: false,\r\n };\r\n }\r\n case CHANGE_PRIMARY_ADDRESS_FAILURE:\r\n return {\r\n ...state,\r\n isChangingPrimaryAddress: false,\r\n };\r\n case CHANGE_PRIMARY_JOTR_REQUEST:\r\n return {\r\n ...state,\r\n isChangingPrimaryJotr: true,\r\n };\r\n case CHANGE_PRIMARY_JOTR_SUCCESS:\r\n {\r\n // eslint-disable-next-line no-case-declarations\r\n const { storeCustomer } = state;\r\n\r\n if (storeCustomer && action.jotrs) {\r\n storeCustomer.taxResidencies = action.jotrs;\r\n }\r\n\r\n return {\r\n ...state,\r\n storeCustomer: { ...storeCustomer },\r\n isChangingPrimaryJotr: false,\r\n };\r\n }\r\n case CHANGE_PRIMARY_JOTR_FAILURE:\r\n return {\r\n ...state,\r\n isChangingPrimaryJotr: false,\r\n };\r\n case CHANGE_WHD_JOTR_REQUEST:\r\n return {\r\n ...state,\r\n isChangingWhdJotr: true,\r\n };\r\n case CHANGE_WHD_JOTR_SUCCESS:\r\n {\r\n // eslint-disable-next-line no-case-declarations\r\n const { storeCustomer } = state;\r\n\r\n if (storeCustomer && action.jotrs) {\r\n storeCustomer.taxResidencies = action.jotrs;\r\n }\r\n\r\n return {\r\n ...state,\r\n storeCustomer: { ...storeCustomer },\r\n isChangingWhdJotr: false,\r\n };\r\n }\r\n case CHANGE_WHD_JOTR_FAILURE:\r\n return {\r\n ...state,\r\n isChangingWhdJotr: false,\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default customer;\r\n","import { HANDLE_UNCAUGHT_EXCEPTION } from 'actions/exceptions/handleUncaughtException';\r\nimport { HANDLE_CONNECTION_EXCEPTION } from 'actions/exceptions/handleConnectionException';\r\nimport { HANDLE_SERVER_EXCEPTION } from 'actions/exceptions/handleServerException';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction exceptions(state = {}, action) {\r\n switch (action.type) {\r\n case HANDLE_UNCAUGHT_EXCEPTION:\r\n return {\r\n ...state,\r\n code: action.code,\r\n message: action.message\r\n };\r\n case HANDLE_CONNECTION_EXCEPTION:\r\n return {\r\n ...state,\r\n code: action.code,\r\n message: action.message\r\n };\r\n case HANDLE_SERVER_EXCEPTION:\r\n return {\r\n ...state,\r\n code: action.code,\r\n message: action.message,\r\n id: action.id\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default exceptions;\r\n","/* eslint-disable no-debugger */\r\nimport {\r\n GET_FORMS_REQUEST,\r\n GET_FORMS_SUCCESS,\r\n GET_FORMS_FAILURE,\r\n GET_FORM_DETAILS_REQUEST,\r\n GET_FORM_DETAILS_SUCCESS,\r\n GET_FORM_DETAILS_FAILURE,\r\n GET_FORM_DETAILS_CLEAR,\r\n GET_WHD_FORMS_REQUEST,\r\n GET_WHD_FORMS_SUCCESS,\r\n GET_WHD_FORMS_FAILURE,\r\n SEARCH_FORMS_REQUEST,\r\n SEARCH_FORMS_SUCCESS,\r\n SEARCH_FORMS_FAILURE,\r\n OPEN_ADD_FORM_MODAL,\r\n CLOSE_ADD_FORM_MODAL,\r\n OPEN_ADD_WHD_FORM_MODAL,\r\n CLOSE_ADD_WHD_FORM_MODAL,\r\n ADD_FORM_REQUEST,\r\n ADD_FORM_SUCCESS,\r\n ADD_FORM_FAILURE,\r\n RESET_ADDING_FORM,\r\n ADD_WHD_FORM_REQUEST,\r\n ADD_WHD_FORM_SUCCESS,\r\n ADD_WHD_FORM_FAILURE,\r\n RESET_ADDING_WHD_FORM,\r\n ADD_BENE_FORM_REQUEST,\r\n ADD_BENE_FORM_SUCCESS,\r\n ADD_BENE_FORM_FAILURE,\r\n RESET_BENE_ADDING_FORM,\r\n VALIDATE_FORM_REQUEST,\r\n VALIDATE_FORM_SUCCESS,\r\n VALIDATE_FORM_FAILURE,\r\n OPEN_DELETE_FORM_MODAL,\r\n CLOSE_DELETE_FORM_MODAL,\r\n DELETE_FORM_REQUEST,\r\n DELETE_FORM_SUCCESS,\r\n DELETE_FORM_FAILURE,\r\n DELETE_FORMS_REQUEST,\r\n DELETE_FORMS_SUCCESS,\r\n DELETE_FORMS_FAILURE,\r\n GET_FORM_BY_ID_REQUEST,\r\n GET_FORM_BY_ID_SUCCESS,\r\n GET_FORM_BY_ID_FAILURE,\r\n GET_FORM_PDF_REQUEST,\r\n GET_FORM_PDF_SUCCESS,\r\n GET_FORM_PDF_FAILURE,\r\n GET_FORM_PDF_RESET,\r\n GET_PDF_VIEW_REQUEST,\r\n GET_PDF_VIEW_SUCCESS,\r\n GET_PDF_VIEW_FAILURE,\r\n CHECK_FORM_PDF_EXISTENCE_REQUEST,\r\n CHECK_FORM_PDF_EXISTENCE_SUCCESS,\r\n CHECK_FORM_PDF_EXISTENCE_FAILURE,\r\n GET_VALIDATION_RESULTS_REQUEST,\r\n GET_VALIDATION_RESULTS_SUCCESS,\r\n GET_VALIDATION_RESULTS_FAILURE,\r\n SEARCH_VALIDATION_RESULTS_REQUEST,\r\n SEARCH_VALIDATION_RESULTS_SUCCESS,\r\n SEARCH_VALIDATION_RESULTS_FAILURE,\r\n EXPORT_TO_EXCEL_REQUEST,\r\n EXPORT_TO_EXCEL_SUCCESS,\r\n EXPORT_TO_EXCEL_FAILURE,\r\n OPEN_ADD_BENEFICIARY_FORM_MODAL,\r\n CLOSE_ADD_BENEFICIARY_FORM_MODAL,\r\n CHANGE_LAYER_BENEFICIARY_FORM_MODAL,\r\n CLOSE_PAYMENT_MODEL,\r\n OPEN_PAYMENT_MODEL,\r\n OPEN_DID_YOU_MEAN_MODAL,\r\n CLOSE_DID_YOU_MEAN_MODAL,\r\n UPDATE_FIELD_FROM_DID_YOU_MEAN,\r\n OPEN_PRIVACY_NOTICE_MODAL,\r\n CLOSE_PRIVACY_NOTICE_MODAL,\r\n TOGGLE_INSTRUCTION,\r\n SUPPORTING_DOC_ADDED,\r\n SUPPORTING_DOC_DELETE_REQUEST,\r\n SUPPORTING_DOC_DELETE_SUCCESS,\r\n SUPPORTING_DOC_DELETE_FAILURE,\r\n GET_SUPPORTING_DOC_REQUEST,\r\n GET_SUPPORTING_DOC_SUCCESS,\r\n GET_SUPPORTING_DOC_FAILURE,\r\n SAVE_FORM_REVIEW_STATE_REQUEST,\r\n SAVE_FORM_REVIEW_STATE_SUCCESS,\r\n SAVE_FORM_REVIEW_STATE_USER_ASSIGNMENT_SUCCESS,\r\n SAVE_FORM_REVIEW_STATE_FAILURE,\r\n SAVE_ACCOUNT_REVIEW_COMMENTS_REQUEST,\r\n SAVE_ACCOUNT_REVIEW_COMMENTS_SUCCESS,\r\n SAVE_ACCOUNT_REVIEW_COMMENTS_FAILURE,\r\n SAVE_DRAFT_OVERRIDES_REQUEST,\r\n SAVE_DRAFT_OVERRIDES_SUCCESS,\r\n SAVE_DRAFT_OVERRIDES_FAILURE,\r\n ACCEPT_OVERRIDES_REQUEST,\r\n ACCEPT_OVERRIDES_SUCCESS,\r\n ACCEPT_OVERRIDES_FAILURE,\r\n ACCEPT_FORM_OVERRIDE_REQUEST,\r\n ACCEPT_FORM_OVERRIDE_SUCCESS,\r\n ACCEPT_FORM_OVERRIDE_FAILURE,\r\n OPEN_FORM_OVERRIDE_MODAL,\r\n CLOSE_FORM_OVERRIDE_MODAL,\r\n OPEN_CANCEL_FORM_OVERRIDE_MODAL,\r\n CLOSE_CANCEL_FORM_OVERRIDE_MODAL,\r\n ACCOUNT_WITHHOLDING_OPEN_MODAL,\r\n ACCOUNT_WITHHOLDING_CLOSE_MODAL,\r\n ACCOUNT_WITHHOLDING_REQUEST,\r\n ACCOUNT_WITHHOLDING_SUCCESS,\r\n ACCOUNT_WITHHOLDING_FAILURE,\r\n IMYTREE_WITHHOLDING_FLAG,\r\n OPEN_EDIT_CUSTOMER_LEGAL_ENTITIES_MODAL,\r\n CLOSE_EDIT_CUSTOMER_LEGAL_ENTITIES_MODAL,\r\n CLOSE_EDIT_CUSTOMER_LEGAL_ENTITIES_ERROR,\r\n GET_CUSTOMER_LEGAL_ENTITIES_REQUEST,\r\n GET_CUSTOMER_LEGAL_ENTITIES_SUCCESS,\r\n GET_CUSTOMER_LEGAL_ENTITIES_ERROR,\r\n OPEN_EDIT_FORM_REFERENCE_MODAL,\r\n CLOSE_EDIT_FORM_REFERENCE_MODAL,\r\n CLOSE_EDIT_FORM_REFERENCE_ERROR,\r\n GET_FORM_REFERENCE_REQUEST,\r\n GET_FORM_REFERENCE_SUCCESS,\r\n GET_FORM_REFERENCE_ERROR,\r\n OPEN_ASSIGN_TO_USER_MODAL,\r\n CLOSE_ASSIGN_TO_USER_MODAL,\r\n CLOSE_ASSIGN_TO_USER_ERROR,\r\n EDIT_CUSTOMER_LEGAL_ENTITIES_SUCCESS,\r\n EDIT_CUSTOMER_LEGAL_ENTITIES_ERROR,\r\n EDIT_FORM_REFERENCE_REQUEST,\r\n EDIT_FORM_REFERENCE_SUCCESS,\r\n EDIT_FORM_REFERENCE_ERROR,\r\n ASSIGN_TO_USER_SUCCESS,\r\n ASSIGN_TO_USER_ERROR,\r\n OPEN_EDIT_FORM_ASSOCIATIONS_MODAL,\r\n CLOSE_EDIT_FORM_ASSOCIATIONS_MODAL,\r\n CLOSE_EDIT_FORM_ASSOCIATIONS_ERROR,\r\n EDIT_FORM_ASSOCIATIONS_REQUEST,\r\n EDIT_FORM_ASSOCIATIONS_SUCCESS,\r\n EDIT_FORM_ASSOCIATIONS_ERROR,\r\n OPEN_UNASSIGN_FORM_MODAL,\r\n CLOSE_UNASSIGN_FORM_MODAL,\r\n CLOSE_UNASSIGN_TO_USER_ERROR,\r\n UNASSIGN_TO_USER_SUCCESS,\r\n UNASSIGN_TO_USER_ERROR,\r\n PARENT_IMYFORMS_OPEN_MODAL,\r\n PARENT_IMYFORMS_CLOSE_MODAL,\r\n PARENT_IMYFORMS_REQUEST,\r\n PARENT_IMYFORMS_SUCCESS,\r\n PARENT_IMYFORMS_FAILURE,\r\n SAVE_IMY_TREEVIEW_OPTIONS,\r\n CLONE_FORM_REQUEST,\r\n CLONE_FORM_SUCCESS,\r\n CLONE_FORM_FAILURE,\r\n MOVE_FORM_REQUEST,\r\n MOVE_FORM_SUCCESS,\r\n MOVE_FORM_FAILURE,\r\n SET_PAYMENT_TYPES,\r\n UPDATE_AVAILABLE_PAYMENT_TYPES,\r\n SET_STRUCTURE_ID,\r\n POOLED_RATES_OPEN_MODAL,\r\n POOLED_RATES_CLOSE_MODAL,\r\n ADD_STATEMENT_REQUEST,\r\n ADD_STATEMENT_SUCCESS,\r\n ADD_STATEMENT_FAILURE,\r\n CREATE_WHD_REQUEST,\r\n CREATE_WHD_FAILURE,\r\n CREATE_WHD_SUCCESS,\r\n GET_WHD_FORMS_ACCOUNT_SUCCESS,\r\n GET_WHD_FORMS_ACCOUNT_REQUEST,\r\n GET_WHD_FORMS_ACCOUNT_FAILURE,\r\n GET_WHD_VERSIONS_REQUEST,\r\n GET_WHD_VERSIONS_SUCCESS,\r\n GET_WHD_VERSIONS_FAILURE,\r\n OPEN_SPECIAL_RATE_ADDITION_MODAL,\r\n CLOSE_SPECIAL_RATE_ADDITION_MODAL,\r\n OPEN_PUBLISHED_DATE_UPDATE_MODAL,\r\n CLOSE_PUBLISHED_DATE_UPDATE_MODAL,\r\n UPDATE_VERSION_STMT_SUCCESS,\r\n CHECK_TIN_REQUEST,\r\n CHECK_TIN_SUCCESS,\r\n CHECK_TIN_FAILURE,\r\n OPEN_EDIT_ADDRESS_MODAL,\r\n CLOSE_EDIT_ADDRESS_MODAL,\r\n UPDATE_GRID_TOTAL_LIMIT,\r\n DOWNLOAD_FORM_SUMMARY_REQUEST,\r\n DOWNLOAD_FORM_SUMMARY_SUCCESS,\r\n DOWNLOAD_FORM_SUMMARY_FAILURE,\r\n GET_FORM_SUMMARY_PDF_CLEAR\r\n} from 'actions';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction forms(state = {\r\n isGettingForms: false,\r\n isGettingWhdForms: false,\r\n isAddFormModalShown: false,\r\n isAddWhdCalcModalShown: false,\r\n isAddingForm: false,\r\n addingFormResults: null,\r\n isAddingWhdForm: false,\r\n forms: [],\r\n formsCount: 0,\r\n gridTotalLimit: 0,\r\n additionalRowDict: null,\r\n getFormDetailsError: null,\r\n whdForms: [],\r\n isValidatingForm: false,\r\n isGettingFormById: false,\r\n formByIdResponse: null,\r\n formByIdError: null,\r\n supportingDocs: [],\r\n isCheckingFormPdfExistence: false,\r\n formPdfExists: false,\r\n isGettingReporting: false,\r\n reportingResponse: { results: [], totalCount: 0 },\r\n isExportingToExcel: false,\r\n isDownloadingFormSummary: false,\r\n isAddBeneficiarFormModalShown: false,\r\n isAddingImyToExistingLayer: false,\r\n imyTier: null,\r\n addImyLayer: null,\r\n isPaymentModalShown: false,\r\n isDidYouMeanModalShown: false,\r\n isPrivacyNoticeModalShown: false,\r\n instructionToggled: null,\r\n filteredValues: [],\r\n paymentValues: {},\r\n isDeletingSupportingDocId: null,\r\n supportingDocError: null,\r\n isFetchingSupportingDoc: false,\r\n supportingDocData: null,\r\n supportingDocFilename: null,\r\n supportingDocContentType: 'application/octet-stream',\r\n getSupportingDocError: null,\r\n isSavingFormReviewState: false,\r\n formReviewState: null,\r\n workflowState: null,\r\n formReviewStateError: null,\r\n isSavingOverrides: false,\r\n validationOverridesError: null,\r\n isFormOverrideModalShown: false,\r\n isCancelFormOverrideModalShown: false,\r\n isAccountWithholdingShown: false,\r\n accountWithholding: null,\r\n showRate: false,\r\n currentForm: null,\r\n isAssignToUserModalShown: false,\r\n isEditCustomerLegalEntitiesModalShown: false,\r\n deleteFormError: null,\r\n newFormReference: null,\r\n formsList: [],\r\n isUnassignModalShown: false,\r\n currentStructureId: 0,\r\n imyTreeViewOptions: [{\r\n structureId: 0,\r\n displayMode: 'all',\r\n showWithholdingRates: false,\r\n selectedPaymentTypes: [],\r\n availablePaymentTypes: []\r\n }],\r\n isParentImyFormsShown: false,\r\n isGettingParentImyForms: false,\r\n isMovingForm: false,\r\n moveFormComplete: false,\r\n isCloningForm: false,\r\n cloneFormComplete: false,\r\n addStatementResults: null,\r\n isAddingStatement: false,\r\n isCreatingNewWhd: false,\r\n accountWithholdingStatement: null,\r\n isGettingWhdForAccount: false,\r\n isPooledRatesModalShown: false,\r\n statementVersions: null,\r\n isLoadingStatementVersions: false,\r\n isSpecialRatesModalShown: false,\r\n specialRatesModalError: null,\r\n isEditAddressModalShown: false,\r\n addressProps: null,\r\n pdfFile: null,\r\n pdfDownloads: [],\r\n isShowingPublishedVersionsUpdate: false,\r\n publishedVersionIndex: -1,\r\n refreshVersions: false,\r\n ignoreDirtyTaxForm: false,\r\n isCheckingTin: false\r\n}, action) {\r\n switch (action.type) {\r\n case IMYTREE_WITHHOLDING_FLAG:\r\n return {\r\n ...state,\r\n showRate: action.showRate\r\n };\r\n case GET_FORMS_REQUEST:\r\n return {\r\n ...state,\r\n isGettingForms: action.isGettingForms\r\n };\r\n case GET_FORMS_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingForms: action.isGettingForms,\r\n forms: action.forms,\r\n formsCount: action.formsCount,\r\n gridTotalLimit: action.gridTotalLimit,\r\n };\r\n case GET_FORMS_FAILURE:\r\n return {\r\n ...state,\r\n isGettingForms: action.isGettingForms,\r\n getFormsError: action.getFormsError,\r\n forms: [],\r\n formsCount: 0,\r\n gridTotalLimit: 0\r\n };\r\n case GET_FORM_DETAILS_REQUEST:\r\n // eslint-disable-next-line no-case-declarations\r\n const requestForms = state.forms.filter((f, i) => f.id === action.formId && i === action.rowId);\r\n\r\n if (requestForms && requestForms.length === 1) {\r\n requestForms[0].isLoadingDetails = true;\r\n }\r\n\r\n return {\r\n ...state,\r\n getFormDetailsError: null,\r\n forms: state.forms.concat([])\r\n };\r\n case GET_FORM_DETAILS_SUCCESS:\r\n // eslint-disable-next-line no-case-declarations\r\n const matchedForms = state.forms.filter((f, i) => f.id === action.formId && i === action.rowId);\r\n\r\n if (matchedForms && matchedForms.length === 1) {\r\n matchedForms[0].additionalData = action.formDetails;\r\n matchedForms[0].isLoadingDetails = false;\r\n }\r\n\r\n return {\r\n ...state,\r\n getFormDetailsError: null,\r\n forms: state.forms.concat([])\r\n };\r\n case GET_FORM_DETAILS_CLEAR:\r\n // eslint-disable-next-line no-case-declarations\r\n const clearForms = state.forms.filter((f, i) => f.id === action.formId && i === action.rowId);\r\n\r\n if (clearForms && clearForms.length === 1) {\r\n clearForms[0].additionalData = null;\r\n clearForms[0].isLoadingDetails = false;\r\n }\r\n\r\n return {\r\n ...state,\r\n getFormDetailsError: null,\r\n forms: state.forms.concat([])\r\n };\r\n case GET_FORM_DETAILS_FAILURE:\r\n // eslint-disable-next-line no-case-declarations\r\n const failureForms = state.forms.filter((f, i) => f.id === action.formId && i === action.rowId);\r\n\r\n if (failureForms && failureForms.length === 1) {\r\n failureForms[0].additionalData = null;\r\n failureForms[0].isLoadingDetails = false;\r\n }\r\n\r\n return {\r\n ...state,\r\n getFormDetailsError: action.getFormDetailsError,\r\n forms: state.forms.concat([])\r\n };\r\n case UPDATE_GRID_TOTAL_LIMIT:\r\n return {\r\n ...state,\r\n gridTotalLimit: action.gridTotalLimit\r\n };\r\n case GET_WHD_FORMS_REQUEST:\r\n return {\r\n ...state,\r\n isGettingWhdForms: action.isGettingWhdForms\r\n };\r\n case GET_WHD_FORMS_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingWhdForms: action.isGettingWhdForms,\r\n whdForms: action.whdForms\r\n };\r\n case SEARCH_FORMS_REQUEST:\r\n return {\r\n ...state,\r\n isGettingForms: action.isGettingForms\r\n };\r\n case SEARCH_FORMS_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingForms: action.isGettingForms,\r\n forms: action.forms,\r\n formsCount: action.formsCount,\r\n gridTotalLimit: action.gridTotalLimit,\r\n };\r\n case SEARCH_FORMS_FAILURE:\r\n return {\r\n ...state,\r\n isGettingForms: action.isGettingForms,\r\n getFormsError: action.getFormsError\r\n };\r\n case GET_WHD_FORMS_FAILURE:\r\n return {\r\n ...state,\r\n isGettingWhdForms: action.isGettingWhdForms,\r\n getFormsError: action.getFormsError\r\n };\r\n case OPEN_ADD_FORM_MODAL:\r\n return {\r\n ...state,\r\n isAddFormModalShown: action.isAddFormModalShown,\r\n imyTier: action.imyTier,\r\n addImyLayer: action.addImyLayer\r\n };\r\n case CLOSE_ADD_FORM_MODAL:\r\n return {\r\n ...state,\r\n isAddFormModalShown: action.isAddFormModalShown,\r\n imyTier: action.imyTier,\r\n addImyLayer: action.addImyLayer,\r\n isAddingForm: action.isAddingForm,\r\n addingFormResults: action.addingFormResults\r\n };\r\n case OPEN_ADD_WHD_FORM_MODAL:\r\n return {\r\n ...state,\r\n isAddWhdCalcModalShown: action.isAddWhdCalcModalShown\r\n };\r\n case CLOSE_ADD_WHD_FORM_MODAL:\r\n return {\r\n ...state,\r\n isAddWhdCalcModalShown: action.isAddWhdCalcModalShown,\r\n isAddingWhdForm: action.isAddingWhdForm,\r\n addingWhdFormError: action.addingWhdFormError\r\n };\r\n case ADD_FORM_REQUEST:\r\n return {\r\n ...state,\r\n isAddingForm: action.isAddingForm\r\n };\r\n case ADD_FORM_SUCCESS:\r\n return {\r\n ...state,\r\n isAddingForm: action.isAddingForm,\r\n addingFormResults: action.addingFormResults\r\n };\r\n case ADD_FORM_FAILURE:\r\n return {\r\n ...state,\r\n isAddingForm: action.isAddingForm,\r\n addingFormResults: action.addingFormResults\r\n };\r\n case RESET_ADDING_FORM:\r\n return {\r\n ...state,\r\n addingFormResults: action.addingFormResults\r\n };\r\n case ADD_WHD_FORM_REQUEST:\r\n return {\r\n ...state,\r\n isAddingWhdForm: action.isAddingWhdForm\r\n };\r\n case ADD_WHD_FORM_SUCCESS:\r\n return {\r\n ...state,\r\n isAddingWhdForm: action.isAddingWhdForm,\r\n addingWhdFormResponse: action.addingWhdFormResponse\r\n };\r\n case ADD_WHD_FORM_FAILURE:\r\n return {\r\n ...state,\r\n isAddingWhdForm: action.isAddingWhdForm,\r\n addingWhdFormError: action.addingWhdFormError\r\n };\r\n case RESET_ADDING_WHD_FORM:\r\n return {\r\n ...state,\r\n addingWhdFormError: action.addingWhdFormError\r\n };\r\n case ADD_BENE_FORM_REQUEST:\r\n return {\r\n ...state,\r\n isAddingBeneForm: action.isAddingBeneForm\r\n };\r\n case ADD_BENE_FORM_SUCCESS:\r\n return {\r\n ...state,\r\n isAddingBeneForm: action.isAddingBeneForm,\r\n addingBeneFormResponse: action.addingBeneFormResponse\r\n };\r\n case ADD_BENE_FORM_FAILURE:\r\n return {\r\n ...state,\r\n isAddingBeneForm: action.isAddingBeneForm,\r\n addingBeneFormError: action.addingBeneFormError\r\n };\r\n case RESET_BENE_ADDING_FORM:\r\n return {\r\n ...state,\r\n addingBeneFormError: action.addingBeneFormError\r\n };\r\n case VALIDATE_FORM_REQUEST:\r\n return {\r\n ...state,\r\n isValidatingForm: action.isValidatingForm,\r\n formId: action.formId\r\n };\r\n case VALIDATE_FORM_SUCCESS: {\r\n const newFormByIdResponse = state.formByIdResponse;\r\n let currentResults = state.formByIdResponse?.tinMatchResult ?? [];\r\n const indexOfTinMatchResult = currentResults?.findIndex(result => result.formId === action.validationResult.tinMatchResult[0]?.formId);\r\n\r\n if (currentResults && action.validationResult.tinMatchResult?.length > 0) {\r\n if (indexOfTinMatchResult >= 0) {\r\n currentResults.splice(indexOfTinMatchResult, 1, action.validationResult.tinMatchResult[0]);\r\n } else if (indexOfTinMatchResult === -1) {\r\n currentResults.push(action.validationResult.tinMatchResult[0]);\r\n } else {\r\n currentResults = action.validationResult.tinMatchResult;\r\n }\r\n\r\n newFormByIdResponse.tinMatchResult = currentResults;\r\n }\r\n\r\n return {\r\n ...state,\r\n formByIdResponse: newFormByIdResponse,\r\n isValidatingForm: action.isValidatingForm,\r\n validationResult: action.validationResult,\r\n validationFormError: action.validationFormError\r\n };\r\n }\r\n case VALIDATE_FORM_FAILURE:\r\n return {\r\n ...state,\r\n isValidatingForm: action.isValidatingForm,\r\n validationFormError: action.validationFormError\r\n };\r\n case OPEN_DELETE_FORM_MODAL:\r\n return {\r\n ...state,\r\n isDeleteFormModalShown: action.isDeleteFormModalShown,\r\n formsToDelete: action.formsToDelete,\r\n deleteFormResponse: null,\r\n deleteFormError: null\r\n };\r\n case CLOSE_DELETE_FORM_MODAL:\r\n return {\r\n ...state,\r\n isDeleteFormModalShown: action.isDeleteFormModalShown,\r\n };\r\n case DELETE_FORM_REQUEST:\r\n return {\r\n ...state,\r\n isDeletingForm: action.isDeletingForm\r\n };\r\n case DELETE_FORM_SUCCESS:\r\n return {\r\n ...state,\r\n isDeletingForm: action.isDeletingForm,\r\n deleteFormResponse: action.deleteFormResponse,\r\n deleteFormError: action.deleteFormError\r\n };\r\n case DELETE_FORM_FAILURE:\r\n return {\r\n ...state,\r\n isDeletingForm: action.isDeletingForm,\r\n deleteFormError: action.deleteFormError\r\n };\r\n case DELETE_FORMS_REQUEST:\r\n return {\r\n ...state,\r\n isDeletingForms: action.isDeletingForms,\r\n deleteFormsResponse: action.deleteFormsResponse\r\n };\r\n case DELETE_FORMS_SUCCESS:\r\n return {\r\n ...state,\r\n isDeletingForms: action.isDeletingForms,\r\n deleteFormsResponse: action.deleteFormsResponse,\r\n deleteFormsError: action.deleteFormsError\r\n };\r\n case DELETE_FORMS_FAILURE:\r\n return {\r\n ...state,\r\n isDeletingForms: action.isDeletingForms,\r\n deleteFormsResponse: action.deleteFormsResponse,\r\n deleteFormsError: action.deleteFormsError\r\n };\r\n case GET_FORM_BY_ID_REQUEST:\r\n return {\r\n ...state,\r\n isGettingFormById: action.isGettingFormById,\r\n formByIdResponse: action.formByIdResponse,\r\n validationResult: action.validationResult,\r\n supportingDocs: action.supportingDocs,\r\n formReviewState: action.formReviewState,\r\n workflowState: action.workflowState,\r\n viewPdfData: action.viewPdfData,\r\n formByIdError: action.formByIdError,\r\n accountWithholdingStatement: null\r\n };\r\n case GET_FORM_BY_ID_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingFormById: action.isGettingFormById,\r\n formByIdResponse: action.formByIdResponse,\r\n validationResult: action.validationResult,\r\n supportingDocs: action.supportingDocs,\r\n formReviewState: action.formReviewState,\r\n workflowState: action.workflowState,\r\n formByIdError: action.formByIdError,\r\n ignoreDirtyTaxForm: false\r\n };\r\n case GET_FORM_BY_ID_FAILURE:\r\n return {\r\n ...state,\r\n isGettingFormById: action.isGettingFormById,\r\n formByIdError: action.formByIdError,\r\n ignoreDirtyTaxForm: false\r\n };\r\n case GET_FORM_PDF_REQUEST:\r\n return {\r\n ...state,\r\n isFetchingPdfForm: action.isFetchingPdfForm,\r\n pdfFile: null\r\n };\r\n case GET_FORM_PDF_SUCCESS:\r\n // eslint-disable-next-line no-case-declarations\r\n const matchingDownloads = state.pdfDownloads.filter(x => x.id === action.pdfFile.id);\r\n if (matchingDownloads?.length === 0 && action.pdfFile) {\r\n state.pdfDownloads.push(action.pdfFile);\r\n }\r\n\r\n return {\r\n ...state,\r\n isFetchingPdfForm: action.isFetchingPdfForm,\r\n pdfFile: action.pdfFile,\r\n getFormPdfError: action.getFormPdfError\r\n };\r\n case GET_FORM_PDF_FAILURE:\r\n return {\r\n ...state,\r\n isFetchingPdfForm: action.isFetchingPdfForm,\r\n pdfFile: null,\r\n getFormPdfError: action.getFormPdfError\r\n };\r\n case GET_FORM_PDF_RESET:\r\n for (let f = 0; f < state.pdfDownloads.length; f += 1) {\r\n URL.revokeObjectURL(state.pdfDownloads[f].blob);\r\n }\r\n\r\n return {\r\n ...state,\r\n pdfFile: null,\r\n pdfDownloads: []\r\n };\r\n case GET_PDF_VIEW_REQUEST:\r\n return {\r\n ...state,\r\n isFetchingPdfView: action.isFetchingPdfView\r\n };\r\n case GET_PDF_VIEW_SUCCESS:\r\n // eslint-disable-next-line no-case-declarations\r\n const matchingViewDownloads = state.pdfDownloads.filter(x => x.id === action.pdfFile.id);\r\n if (matchingViewDownloads?.length === 0 && action.pdfFile) {\r\n state.pdfDownloads.push(action.pdfFile);\r\n }\r\n\r\n return {\r\n ...state,\r\n isFetchingPdfView: action.isFetchingPdfView,\r\n viewPdfData: action.pdfFile.blob,\r\n getPdfViewError: action.getPdfViewError\r\n };\r\n case GET_PDF_VIEW_FAILURE:\r\n return {\r\n ...state,\r\n isFetchingPdfView: action.isFetchingPdfView,\r\n getPdfViewError: action.getPdfViewError\r\n };\r\n case CHECK_FORM_PDF_EXISTENCE_REQUEST:\r\n return {\r\n ...state,\r\n isCheckingFormPdfExistence: action.isCheckingFormPdfExistence,\r\n formPdfExists: action.formPdfExists\r\n };\r\n case CHECK_FORM_PDF_EXISTENCE_SUCCESS:\r\n return {\r\n ...state,\r\n isCheckingFormPdfExistence: action.isCheckingFormPdfExistence,\r\n formPdfExists: action.formPdfExists\r\n };\r\n case CHECK_FORM_PDF_EXISTENCE_FAILURE:\r\n return {\r\n ...state,\r\n isCheckingFormPdfExistence: action.isCheckingFormPdfExistence,\r\n formPdfExists: action.formPdfExists,\r\n formPdfExistenceError: action.formPdfExistenceError\r\n };\r\n case GET_VALIDATION_RESULTS_REQUEST:\r\n return {\r\n ...state,\r\n isGettingReporting: action.isGettingReporting\r\n };\r\n case GET_VALIDATION_RESULTS_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingReporting: action.isGettingReporting,\r\n reportingResponse: action.reportingResponse,\r\n reportingError: action.reportingError\r\n };\r\n case GET_VALIDATION_RESULTS_FAILURE:\r\n return {\r\n ...state,\r\n isGettingReporting: action.isGettingReporting,\r\n reportingError: action.reportingError\r\n };\r\n case SEARCH_VALIDATION_RESULTS_REQUEST:\r\n return {\r\n ...state,\r\n isGettingReporting: action.isGettingReporting\r\n };\r\n case SEARCH_VALIDATION_RESULTS_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingReporting: action.isGettingReporting,\r\n reportingResponse: action.reportingResponse,\r\n reportingError: action.reportingError\r\n };\r\n case SEARCH_VALIDATION_RESULTS_FAILURE:\r\n return {\r\n ...state,\r\n isGettingReporting: action.isGettingReporting,\r\n reportingError: action.reportingError\r\n };\r\n case EXPORT_TO_EXCEL_REQUEST:\r\n return {\r\n ...state,\r\n isExportingToExcel: action.isExportingToExcel\r\n };\r\n case EXPORT_TO_EXCEL_SUCCESS:\r\n return {\r\n ...state,\r\n isExportingToExcel: action.isExportingToExcel,\r\n excelData: action.excelData,\r\n exportToExcelError: action.exportToExcelError\r\n };\r\n case EXPORT_TO_EXCEL_FAILURE:\r\n return {\r\n ...state,\r\n isExportingToExcel: action.isExportingToExcel,\r\n exportToExcelError: action.exportToExcelError\r\n };\r\n case DOWNLOAD_FORM_SUMMARY_REQUEST:\r\n return {\r\n ...state,\r\n isDownloadingFormSummary: action.isDownloadingFormSummary\r\n };\r\n case DOWNLOAD_FORM_SUMMARY_SUCCESS:\r\n return {\r\n ...state,\r\n isDownloadingFormSummary: action.isDownloadingFormSummary,\r\n formSummaryData: action.formSummaryData,\r\n dowloadFormSummaryError: action.dowloadFormSummaryError\r\n };\r\n case DOWNLOAD_FORM_SUMMARY_FAILURE:\r\n return {\r\n ...state,\r\n isDownloadingFormSummary: action.isDownloadingFormSummary,\r\n dowloadFormSummaryError: action.dowloadFormSummaryError\r\n };\r\n case GET_FORM_SUMMARY_PDF_CLEAR:\r\n if (state.formSummaryData) {\r\n URL.revokeObjectURL(state.formSummaryData);\r\n }\r\n return {\r\n ...state,\r\n formSummaryData: null\r\n };\r\n case OPEN_ADD_BENEFICIARY_FORM_MODAL:\r\n return {\r\n ...state,\r\n isAddBeneficiarFormModalShown: action.isAddBeneficiarFormModalShown,\r\n isAddingImyToExistingLayer: action.isAddingImyToExistingLayer,\r\n parentW8ImyForm: action.parentW8ImyForm\r\n };\r\n case CLOSE_ADD_BENEFICIARY_FORM_MODAL:\r\n return {\r\n ...state,\r\n isAddBeneficiarFormModalShown: action.isAddBeneficiarFormModalShown,\r\n isAddingImyToExistingLayer: action.isAddingImyToExistingLayer\r\n };\r\n case CHANGE_LAYER_BENEFICIARY_FORM_MODAL:\r\n return {\r\n ...state,\r\n isAddingImyToExistingLayer: action.isAddingImyToExistingLayer\r\n };\r\n case CLOSE_PAYMENT_MODEL:\r\n return {\r\n ...state,\r\n isPaymentModalShown: action.isPaymentModalShown\r\n };\r\n case OPEN_PAYMENT_MODEL:\r\n return {\r\n ...state,\r\n isPaymentModalShown: action.isPaymentModalShown,\r\n paymentValues: action.paymentValues\r\n };\r\n case OPEN_DID_YOU_MEAN_MODAL:\r\n return {\r\n ...state,\r\n isDidYouMeanModalShown: action.isDidYouMeanModalShown,\r\n filteredValues: action.filteredValues,\r\n renderedfieldName: action.renderedfieldName,\r\n modalId: action.modalId\r\n };\r\n case CLOSE_DID_YOU_MEAN_MODAL:\r\n return {\r\n ...state,\r\n isDidYouMeanModalShown: action.isDidYouMeanModalShown,\r\n renderedfieldName: action.renderedfieldName,\r\n modalId: action.modalId\r\n };\r\n case UPDATE_FIELD_FROM_DID_YOU_MEAN:\r\n return {\r\n ...state,\r\n isDidYouMeanModalShown: action.isDidYouMeanModalShown,\r\n renderedfieldName: action.renderedfieldName,\r\n modalId: action.modalId\r\n };\r\n case OPEN_PRIVACY_NOTICE_MODAL:\r\n return {\r\n ...state,\r\n isPrivacyNoticeModalShown: action.isPrivacyNoticeModalShown\r\n };\r\n case CLOSE_PRIVACY_NOTICE_MODAL:\r\n return {\r\n ...state,\r\n isPrivacyNoticeModalShown: action.isPrivacyNoticeModalShown\r\n };\r\n case TOGGLE_INSTRUCTION:\r\n return {\r\n ...state,\r\n instructionToggled: action.instructionToggled\r\n };\r\n case SUPPORTING_DOC_ADDED:\r\n return {\r\n ...state,\r\n supportingDocs: action.newSupportingDoc ? state.supportingDocs.concat(action.newSupportingDoc) : state.supportingDocs\r\n };\r\n case SUPPORTING_DOC_DELETE_REQUEST:\r\n return {\r\n ...state,\r\n isDeletingSupportingDocId: action.isDeletingSupportingDocId,\r\n };\r\n case SUPPORTING_DOC_DELETE_SUCCESS:\r\n return {\r\n ...state,\r\n isDeletingSupportingDocId: null,\r\n supportingDocs: state.supportingDocs ? state.supportingDocs.filter(doc => doc.id !== action.isDeletingSupportingDocId) : state.supportingDocs\r\n };\r\n case SUPPORTING_DOC_DELETE_FAILURE:\r\n return {\r\n ...state,\r\n isDeletingSupportingDocId: action.isDeletingSupportingDocId,\r\n supportingDocError: action.supportingDocError\r\n };\r\n case GET_SUPPORTING_DOC_REQUEST:\r\n return {\r\n ...state,\r\n isFetchingSupportingDoc: action.isFetchingSupportingDoc\r\n };\r\n case GET_SUPPORTING_DOC_SUCCESS:\r\n return {\r\n ...state,\r\n isFetchingSupportingDoc: action.isFetchingSupportingDoc,\r\n supportingDocData: action.supportingDocData,\r\n supportingDocFilename: action.supportingDocFilename,\r\n supportingDocContentType: action.supportingDocContentType,\r\n getSupportingDocError: action.getSupportingDocError\r\n };\r\n case GET_SUPPORTING_DOC_FAILURE:\r\n return {\r\n ...state,\r\n isFetchingSupportingDoc: action.isFetchingSupportingDoc,\r\n getSupportingDocError: action.getSupportingDocError\r\n };\r\n case SAVE_FORM_REVIEW_STATE_REQUEST:\r\n return {\r\n ...state,\r\n isSavingFormReviewState: action.isSavingFormReviewState,\r\n ignoreDirtyTaxForm: true\r\n };\r\n case SAVE_FORM_REVIEW_STATE_SUCCESS:\r\n return {\r\n ...state,\r\n isSavingFormReviewState: action.isSavingFormReviewState,\r\n formReviewState: action.formReviewState,\r\n formReviewStateError: action.formReviewStateError\r\n };\r\n case SAVE_FORM_REVIEW_STATE_USER_ASSIGNMENT_SUCCESS:\r\n return {\r\n ...state,\r\n isSavingFormReviewState: action.isSavingFormReviewState,\r\n formReviewState: action.formReviewState,\r\n formReviewStateError: action.formReviewStateError\r\n };\r\n case SAVE_FORM_REVIEW_STATE_FAILURE:\r\n return {\r\n ...state,\r\n isSavingFormReviewState: action.isSavingFormReviewState,\r\n formReviewStateError: action.formReviewStateError\r\n };\r\n case SAVE_ACCOUNT_REVIEW_COMMENTS_REQUEST:\r\n return {\r\n ...state,\r\n isSavingFormReviewState: action.isSavingFormReviewState\r\n };\r\n case SAVE_ACCOUNT_REVIEW_COMMENTS_SUCCESS:\r\n if (state.formReviewState && action.accountReview) {\r\n let newReviewComments = state.formReviewState.accountComments ? Object.assign(state.formReviewState.accountComments, {}) : [];\r\n const matchedAccount = newReviewComments.filter(a => a.accountId === action.accountReview.accountId);\r\n if (matchedAccount && matchedAccount.length > 0) {\r\n matchedAccount[0].draftComments = action.accountReview.draftComments;\r\n newReviewComments = newReviewComments.map(a => (a.accountId === matchedAccount[0].accountId ? matchedAccount[0] : a));\r\n state.formReviewState.accountComments = newReviewComments;\r\n } else if (state.formReviewState.accountComments) {\r\n state.formReviewState.accountComments.push({ accountId: action.accountReview.accountId, draftComments: action.accountReview.draftComments });\r\n } else {\r\n state.formReviewState.accountComments = [{ accountId: action.accountReview.accountId, draftComments: action.accountReview.draftComments }];\r\n }\r\n }\r\n\r\n return {\r\n ...state,\r\n isSavingFormReviewState: action.isSavingFormReviewState,\r\n formReviewState: Object.assign(state.formReviewState, {}),\r\n formReviewStateError: action.formReviewStateError\r\n };\r\n case SAVE_ACCOUNT_REVIEW_COMMENTS_FAILURE:\r\n return {\r\n ...state,\r\n isSavingFormReviewState: action.isSavingFormReviewState,\r\n formReviewStateError: action.formReviewStateError\r\n };\r\n case SAVE_DRAFT_OVERRIDES_REQUEST:\r\n return {\r\n ...state,\r\n isSavingOverrides: action.isSavingOverrides,\r\n };\r\n case SAVE_DRAFT_OVERRIDES_SUCCESS:\r\n return {\r\n ...state,\r\n isSavingOverrides: action.isSavingOverrides,\r\n validationResult: {\r\n ...state.validationResult,\r\n result: [\r\n ...(state.validationResult.result.map(item => (item.accountId === action.accountId && item.formId === action.formId\r\n ? { ...item, overrides: { ...item.overrides, draft: action.draftOverrides } }\r\n : item)))\r\n ]\r\n },\r\n validationOverridesError: action.validationOverridesError\r\n };\r\n case SAVE_DRAFT_OVERRIDES_FAILURE:\r\n return {\r\n ...state,\r\n isSavingOverrides: action.isSavingOverrides,\r\n validationOverridesError: action.validationOverridesError\r\n };\r\n case ACCEPT_OVERRIDES_REQUEST:\r\n case ACCEPT_FORM_OVERRIDE_REQUEST:\r\n return {\r\n ...state,\r\n isSavingOverrides: action.isSavingOverrides,\r\n isFormOverrideModalShown: false\r\n };\r\n case ACCEPT_OVERRIDES_SUCCESS:\r\n case ACCEPT_FORM_OVERRIDE_SUCCESS:\r\n return {\r\n ...state,\r\n isSavingOverrides: action.isSavingOverrides,\r\n isFormOverrideModalShown: false,\r\n validationResult: action.validationResult,\r\n validationOverridesError: action.validationOverridesError\r\n };\r\n case ACCEPT_OVERRIDES_FAILURE:\r\n case ACCEPT_FORM_OVERRIDE_FAILURE:\r\n return {\r\n ...state,\r\n isSavingOverrides: action.isSavingOverrides,\r\n validationOverridesError: action.validationOverridesError\r\n };\r\n case OPEN_FORM_OVERRIDE_MODAL:\r\n return {\r\n ...state,\r\n isFormOverrideModalShown: true,\r\n };\r\n case CLOSE_FORM_OVERRIDE_MODAL:\r\n return {\r\n ...state,\r\n isFormOverrideModalShown: false,\r\n };\r\n case OPEN_CANCEL_FORM_OVERRIDE_MODAL:\r\n return {\r\n ...state,\r\n isCancelFormOverrideModalShown: true,\r\n };\r\n case CLOSE_CANCEL_FORM_OVERRIDE_MODAL:\r\n return {\r\n ...state,\r\n isCancelFormOverrideModalShown: false,\r\n };\r\n case ACCOUNT_WITHHOLDING_OPEN_MODAL:\r\n return {\r\n ...state,\r\n isAccountWithholdingShown: true\r\n };\r\n case ACCOUNT_WITHHOLDING_CLOSE_MODAL:\r\n return {\r\n ...state,\r\n isAccountWithholdingShown: false,\r\n accountWithholding: null\r\n };\r\n case ACCOUNT_WITHHOLDING_REQUEST:\r\n return {\r\n ...state,\r\n isGettingAccountWithholding: true,\r\n accountWithholding: null\r\n };\r\n case ACCOUNT_WITHHOLDING_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingAccountWithholding: false,\r\n accountWithholding: action.accountWithholding\r\n };\r\n case ACCOUNT_WITHHOLDING_FAILURE:\r\n return {\r\n ...state,\r\n isAccountWithholdingShown: false,\r\n isGettingAccountWithholding: false,\r\n accountWithholding: null\r\n };\r\n case OPEN_EDIT_CUSTOMER_LEGAL_ENTITIES_MODAL:\r\n return {\r\n ...state,\r\n isEditCustomerLegalEntitiesModalShown: action.isEditCustomerLegalEntitiesModalShown,\r\n currentForm: action.currentForm,\r\n isTaskSuccess: false\r\n };\r\n case CLOSE_EDIT_CUSTOMER_LEGAL_ENTITIES_MODAL:\r\n return {\r\n ...state,\r\n isEditCustomerLegalEntitiesModalShown: action.isEditCustomerLegalEntitiesModalShown,\r\n editCustomerLegalEntitiesResponse: action.editCustomerLegalEntitiesResponse,\r\n editCustomerLegalEntitiesError: action.editCustomerLegalEntitiesError,\r\n legalEntityList: null,\r\n isTaskSuccess: false\r\n };\r\n case CLOSE_EDIT_CUSTOMER_LEGAL_ENTITIES_ERROR:\r\n return {\r\n ...state,\r\n isEditCustomerLegalEntitiesModalShown: action.isEditCustomerLegalEntitiesModalShown,\r\n isTaskSuccess: false\r\n };\r\n case GET_CUSTOMER_LEGAL_ENTITIES_REQUEST:\r\n return {\r\n ...state,\r\n isGettingCustomerLegalEntities: true,\r\n legalEntityList: null,\r\n isTaskSuccess: false\r\n };\r\n case GET_CUSTOMER_LEGAL_ENTITIES_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingCustomerLegalEntities: false,\r\n legalEntityList: action.legalEntityList,\r\n isTaskSuccess: false\r\n };\r\n case GET_CUSTOMER_LEGAL_ENTITIES_ERROR:\r\n return {\r\n ...state,\r\n isGettingCustomerLegalEntities: false,\r\n legalEntityList: null,\r\n };\r\n case EDIT_CUSTOMER_LEGAL_ENTITIES_SUCCESS:\r\n return {\r\n ...state,\r\n isTaskSuccess: true\r\n };\r\n case EDIT_CUSTOMER_LEGAL_ENTITIES_ERROR:\r\n return {\r\n ...state,\r\n isTaskSuccess: false\r\n };\r\n case OPEN_EDIT_FORM_REFERENCE_MODAL:\r\n return {\r\n ...state,\r\n isEditFormReferenceModalShown: action.isEditFormReferenceModalShown,\r\n currentForm: action.currentForm,\r\n isTaskSuccess: false\r\n };\r\n case CLOSE_EDIT_FORM_REFERENCE_MODAL:\r\n return {\r\n ...state,\r\n isEditFormReferenceModalShown: action.isEditFormReferenceModalShown,\r\n editFormReferenceResponse: action.editFormReferenceResponse,\r\n editFormReferenceError: action.editFormReferenceError,\r\n isTaskSuccess: false\r\n };\r\n case CLOSE_EDIT_FORM_REFERENCE_ERROR:\r\n return {\r\n ...state,\r\n isEditFormReferenceModalShown: action.isEditFormReferenceModalShown,\r\n isTaskSuccess: false\r\n };\r\n case GET_FORM_REFERENCE_REQUEST:\r\n return {\r\n ...state,\r\n isGettingFormReference: true,\r\n isTaskSuccess: false\r\n };\r\n case GET_FORM_REFERENCE_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingFormReference: false,\r\n formData: action.formData,\r\n isTaskSuccess: false\r\n };\r\n case GET_FORM_REFERENCE_ERROR:\r\n return {\r\n ...state,\r\n isGettingFormReference: false,\r\n };\r\n case EDIT_FORM_REFERENCE_REQUEST:\r\n return {\r\n ...state,\r\n newFormReference: action.newFormReference\r\n };\r\n case EDIT_FORM_REFERENCE_SUCCESS:\r\n if (state.currentForm && state.currentForm.length === 1 && state.currentForm[0].id) {\r\n const refForms = state.forms.filter(f => f.id === state.currentForm[0].id);\r\n\r\n if (refForms && refForms.length === 1 && refForms[0].additionalData) {\r\n refForms[0].additionalData.reference = state.newFormReference;\r\n refForms[0].isLoadingDetails = false;\r\n }\r\n\r\n return {\r\n ...state,\r\n getFormDetailsError: null,\r\n newFormReference: null,\r\n forms: state.forms.concat([]),\r\n isTaskSuccess: true\r\n };\r\n }\r\n return { ...state };\r\n case EDIT_FORM_REFERENCE_ERROR:\r\n return {\r\n ...state,\r\n newFormReference: null,\r\n isTaskSuccess: false\r\n };\r\n case OPEN_ASSIGN_TO_USER_MODAL:\r\n return {\r\n ...state,\r\n isAssignToUserModalShown: action.isAssignToUserModalShown,\r\n formsList: action.formsList,\r\n isTaskSuccess: false\r\n };\r\n case CLOSE_ASSIGN_TO_USER_MODAL:\r\n return {\r\n ...state,\r\n isAssignToUserModalShown: action.isAssignToUserModalShown,\r\n isTaskSuccess: false\r\n };\r\n case CLOSE_ASSIGN_TO_USER_ERROR:\r\n return {\r\n ...state,\r\n isAssignToUserModalShown: action.isAssignToUserModalShown,\r\n isTaskSuccess: false\r\n };\r\n case ASSIGN_TO_USER_SUCCESS:\r\n return {\r\n ...state,\r\n isTaskSuccess: true\r\n };\r\n case ASSIGN_TO_USER_ERROR:\r\n return {\r\n ...state,\r\n isTaskSuccess: false\r\n };\r\n case OPEN_EDIT_FORM_ASSOCIATIONS_MODAL:\r\n return {\r\n ...state,\r\n isEditFormAssociationsModalShown: action.isEditFormAssociationsModalShown,\r\n currentForm: action.currentForm,\r\n isTaskSuccess: false\r\n };\r\n case CLOSE_EDIT_FORM_ASSOCIATIONS_MODAL:\r\n return {\r\n ...state,\r\n isEditFormAssociationsModalShown: action.isEditFormAssociationsModalShown,\r\n editFormAssociationsResponse: action.editFormAssociationsResponse,\r\n editFormAssociationsError: action.editFormAssociationsError,\r\n isTaskSuccess: false\r\n };\r\n case CLOSE_EDIT_FORM_ASSOCIATIONS_ERROR:\r\n return {\r\n ...state,\r\n isEditFormAssociationsModalShown: action.isEditFormAssociationsModalShown,\r\n isTaskSuccess: false\r\n };\r\n case EDIT_FORM_ASSOCIATIONS_REQUEST:\r\n return {\r\n ...state,\r\n isRequestingEditFormAssociations: action.isRequestingEditFormAssociations\r\n };\r\n case EDIT_FORM_ASSOCIATIONS_SUCCESS:\r\n return {\r\n ...state,\r\n isRequestingEditFormAssociations: action.isRequestingEditFormAssociations\r\n };\r\n case EDIT_FORM_ASSOCIATIONS_ERROR:\r\n return {\r\n ...state,\r\n isRequestingEditFormAssociations: action.isRequestingEditFormAssociations\r\n };\r\n case OPEN_UNASSIGN_FORM_MODAL:\r\n return {\r\n ...state,\r\n isUnassignModalShown: action.isUnassignModalShown,\r\n forms: action.forms,\r\n isTaskSuccess: false\r\n };\r\n case CLOSE_UNASSIGN_FORM_MODAL:\r\n return {\r\n ...state,\r\n isUnassignModalShown: action.isUnassignModalShown,\r\n isTaskSuccess: false\r\n };\r\n case CLOSE_UNASSIGN_TO_USER_ERROR:\r\n return {\r\n ...state,\r\n isAssignToUserModalShown: action.isAssignToUserModalShown,\r\n isTaskSuccess: false\r\n };\r\n case UNASSIGN_TO_USER_SUCCESS:\r\n return {\r\n ...state,\r\n isTaskSuccess: true\r\n };\r\n case UNASSIGN_TO_USER_ERROR:\r\n return {\r\n ...state,\r\n isTaskSuccess: false\r\n };\r\n case PARENT_IMYFORMS_OPEN_MODAL:\r\n return {\r\n ...state,\r\n isParentImyFormsShown: true\r\n };\r\n case PARENT_IMYFORMS_CLOSE_MODAL:\r\n return {\r\n ...state,\r\n isParentImyFormsShown: false,\r\n parentImyForms: null\r\n };\r\n case PARENT_IMYFORMS_REQUEST:\r\n return {\r\n ...state,\r\n isGettingParentImyForms: true,\r\n parentImyForms: null\r\n };\r\n case PARENT_IMYFORMS_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingParentImyForms: false,\r\n parentImyForms: action.parentImyForms\r\n };\r\n case PARENT_IMYFORMS_FAILURE:\r\n return {\r\n ...state,\r\n isParentImyFormsShown: false,\r\n isGettingParentImyForms: false,\r\n parentImyForms: null\r\n };\r\n case SAVE_IMY_TREEVIEW_OPTIONS:\r\n if (!action.id || action.id === 0) {\r\n return { ...state };\r\n }\r\n\r\n // eslint-disable-next-line no-case-declarations\r\n const elIndex = state.imyTreeViewOptions.findIndex(f => f.structureId === parseInt(action.id, 10));\r\n\r\n if (elIndex && elIndex !== -1) {\r\n state.imyTreeViewOptions[elIndex] = action.options;\r\n } else {\r\n state.imyTreeViewOptions.push(action.options);\r\n }\r\n\r\n return {\r\n ...state,\r\n };\r\n\r\n case CLONE_FORM_REQUEST:\r\n return {\r\n ...state,\r\n isCloningForm: true,\r\n cloneFormComplete: false\r\n };\r\n case CLONE_FORM_SUCCESS:\r\n return {\r\n ...state,\r\n isCloningForm: false,\r\n cloneFormComplete: true\r\n };\r\n case CLONE_FORM_FAILURE:\r\n return {\r\n ...state,\r\n isCloningForm: false,\r\n cloneFormComplete: false\r\n };\r\n case MOVE_FORM_REQUEST:\r\n return {\r\n ...state,\r\n isMovingForm: true,\r\n moveFormComplete: false\r\n };\r\n case MOVE_FORM_SUCCESS:\r\n return {\r\n ...state,\r\n isMovingForm: false,\r\n moveFormComplete: true\r\n };\r\n case MOVE_FORM_FAILURE:\r\n return {\r\n ...state,\r\n isMovingForm: false,\r\n moveFormComplete: false\r\n };\r\n case SET_PAYMENT_TYPES:\r\n if (action.structureId === 0) {\r\n return { ...state };\r\n }\r\n\r\n // eslint-disable-next-line no-case-declarations\r\n const imyTreeIndex = state.imyTreeViewOptions.findIndex(f => f.structureId === parseInt(action.structureId, 10));\r\n\r\n if (imyTreeIndex && imyTreeIndex !== -1) {\r\n return { ...state };\r\n }\r\n\r\n state.imyTreeViewOptions.push(action.options);\r\n return {\r\n ...state,\r\n currentStructureId: action.structureId,\r\n };\r\n case UPDATE_AVAILABLE_PAYMENT_TYPES:\r\n if (!action.structureId || action.structureId === 0 || !action.paymentTypes || action.paymentTypes.length === 0) {\r\n return { ...state };\r\n }\r\n\r\n // eslint-disable-next-line no-case-declarations\r\n const oIndex = state.imyTreeViewOptions.findIndex(f => f.structureId === parseInt(action.structureId, 10));\r\n\r\n if (oIndex && oIndex !== -1) {\r\n const toDelete = state.imyTreeViewOptions[oIndex].selectedPaymentTypes;\r\n const existing = state.imyTreeViewOptions[oIndex].availablePaymentTypes;\r\n action.paymentTypes = action.paymentTypes.filter(p => !toDelete.includes(p));\r\n state.imyTreeViewOptions[oIndex].availablePaymentTypes = [...new Set([...existing, ...action.paymentTypes])];\r\n }\r\n return { ...state };\r\n case SET_STRUCTURE_ID:\r\n return {\r\n ...state,\r\n currentStructureId: action.id\r\n };\r\n case ADD_STATEMENT_REQUEST:\r\n return {\r\n ...state,\r\n isAddingStatement: action.isAddingStatement\r\n };\r\n case ADD_STATEMENT_SUCCESS:\r\n return {\r\n ...state,\r\n isAddingStatement: action.isAddingStatement,\r\n addStatementResults: action.addStatementResults\r\n };\r\n case ADD_STATEMENT_FAILURE:\r\n return {\r\n ...state,\r\n isAddingStatement: action.isAddingStatement,\r\n addStatementResults: action.addStatementResults\r\n };\r\n case CREATE_WHD_REQUEST:\r\n return {\r\n ...state,\r\n isCreatingNewWhd: true\r\n };\r\n case CREATE_WHD_FAILURE:\r\n return {\r\n ...state,\r\n isCreatingNewWhd: false\r\n };\r\n case CREATE_WHD_SUCCESS:\r\n return {\r\n ...state,\r\n isCreatingNewWhd: false\r\n };\r\n case GET_WHD_FORMS_ACCOUNT_SUCCESS:\r\n return {\r\n ...state,\r\n accountWithholdingStatement: action.withholdingStatement,\r\n isGettingWhdForAccount: action.isGettingWhdForAccount\r\n };\r\n case GET_WHD_FORMS_ACCOUNT_REQUEST:\r\n return {\r\n ...state,\r\n isGettingWhdForAccount: action.isGettingWhdForAccount\r\n };\r\n case GET_WHD_FORMS_ACCOUNT_FAILURE:\r\n return {\r\n ...state,\r\n isGettingWhdForAccount: action.isGettingWhdForAccount\r\n };\r\n case POOLED_RATES_OPEN_MODAL:\r\n return {\r\n ...state,\r\n isPooledRatesModalShown: true,\r\n pooledRates: action.pooledRates,\r\n selectedPooledAccount: action.selectedPooledAccount\r\n };\r\n case POOLED_RATES_CLOSE_MODAL:\r\n return {\r\n ...state,\r\n isPooledRatesModalShown: false,\r\n pooledRates: null\r\n };\r\n case GET_WHD_VERSIONS_REQUEST:\r\n return {\r\n ...state,\r\n statementVersions: null,\r\n isLoadingStatementVersions: true\r\n };\r\n case GET_WHD_VERSIONS_SUCCESS:\r\n return {\r\n ...state,\r\n statementVersions: action.versions,\r\n isLoadingStatementVersions: false,\r\n refreshVersions: false\r\n };\r\n case GET_WHD_VERSIONS_FAILURE:\r\n return {\r\n ...state,\r\n statementVersions: null,\r\n isLoadingStatementVersions: false\r\n };\r\n case OPEN_SPECIAL_RATE_ADDITION_MODAL:\r\n case CLOSE_SPECIAL_RATE_ADDITION_MODAL:\r\n return {\r\n ...state,\r\n specialRatesModalError: null,\r\n isSpecialRatesModalShown: action.isSpecialRatesModalShown,\r\n };\r\n case OPEN_PUBLISHED_DATE_UPDATE_MODAL:\r\n return {\r\n ...state,\r\n isShowingPublishedVersionsUpdate: true,\r\n publishedVersionIndex: action.index,\r\n version: action.version\r\n };\r\n case CLOSE_PUBLISHED_DATE_UPDATE_MODAL:\r\n return {\r\n ...state,\r\n isShowingPublishedVersionsUpdate: false\r\n };\r\n case UPDATE_VERSION_STMT_SUCCESS:\r\n state.statementVersions.versions[action.index].effectiveFrom = action.effectiveDate;\r\n state.statementVersions.versions[action.index].effectiveTo = action.effectiveToDate;\r\n return {\r\n ...state,\r\n isSavingStatement: false,\r\n isPublishingStatement: false,\r\n refreshVersions: true\r\n };\r\n case CHECK_TIN_REQUEST:\r\n return {\r\n ...state,\r\n isCheckingTin: true\r\n };\r\n case CHECK_TIN_SUCCESS: {\r\n const newFormByIdResponse = state.formByIdResponse;\r\n let currentResults = state.formByIdResponse?.tinMatchResult ?? [];\r\n const indexOfTinMatchResult = currentResults.findIndex(result => result.formId === action.tinMatchResult[0]?.formId);\r\n\r\n if (indexOfTinMatchResult >= 0) {\r\n currentResults.splice(indexOfTinMatchResult, 1, action.tinMatchResult[0]);\r\n } else if (indexOfTinMatchResult === -1) {\r\n currentResults.push(action.tinMatchResult[0]);\r\n } else {\r\n currentResults = action.tinMatchResult;\r\n }\r\n\r\n newFormByIdResponse.tinMatchResult = currentResults;\r\n\r\n return {\r\n ...state,\r\n formByIdResponse: newFormByIdResponse,\r\n isCheckingTin: false\r\n };\r\n }\r\n case CHECK_TIN_FAILURE:\r\n return {\r\n ...state,\r\n formByIdResponse: state.formByIdResponse,\r\n isCheckingTin: false\r\n };\r\n case OPEN_EDIT_ADDRESS_MODAL:\r\n return {\r\n ...state,\r\n isEditAddressModalShown: action.isEditAddressModalShown,\r\n addressProps: action.addressProps\r\n };\r\n case CLOSE_EDIT_ADDRESS_MODAL:\r\n return {\r\n ...state,\r\n isEditAddressModalShown: action.isEditAddressModalShown,\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default forms;\r\n","import {\r\n UPDATE_FIELD_FROM_DID_YOU_MEAN\r\n} from 'actions';\r\n\r\nfunction getFormName() {\r\n let fullPath = window.location.pathname;\r\n while (fullPath.endsWith('/')) {\r\n fullPath = fullPath.slice(0, -1);\r\n }\r\n const pathLevels = fullPath.split('/');\r\n const formNameLevel = Math.max(0, pathLevels.length - 2);\r\n return `${ pathLevels[formNameLevel] }-form`;\r\n}\r\n\r\n/**\r\n * The form reducer\r\n */\r\n// eslint-disable-next-line\r\nfunction form(state = { ...state }, action) {\r\n switch (action.type) {\r\n case UPDATE_FIELD_FROM_DID_YOU_MEAN:\r\n // eslint-disable-next-line\r\n let formName = getFormName();\r\n if (formName != null) {\r\n formName = formName.replace('_2023', '');// short term fix whilst 2023 forms map to one type\r\n formName = formName.replace('_2022', '');// short term fix whilst 2022 forms map to one type\r\n formName = formName.replace('_2021', '');// short term fix whilst 2021 forms map to one type\r\n formName = formName.replace('_2018', '');// short term fix whilst 2018 forms map to one type\r\n formName = formName.replace('_2017', '');// short term fix whilst 2017 forms map to one type\r\n formName = formName.replace('_2016', '');// short term fix whilst 2016 forms map to one type\r\n formName = formName.replace('_2014', '');// short term fix whilst 2014 forms map to one type\r\n formName = formName.replace('dt_', '');// short term fix whilst dt forms map to one type\r\n }\r\n\r\n if (action.stateFieldName != null) {\r\n const items = action.stateFieldName.split('.');\r\n const newForm = Object.assign({}, state[formName]);\r\n if (newForm != null && newForm.values !== undefined && items != null) {\r\n let ref = newForm.values;\r\n for (let i = 0; i < items.length - 1; i += 1) {\r\n const arrayIndexStart = items[i].indexOf('[');\r\n const arrayIndexEnd = items[i].indexOf(']');\r\n if (arrayIndexStart > -1 && arrayIndexEnd > -1) {\r\n const arrayIndex = items[i].substring(arrayIndexStart + 1, arrayIndexEnd);\r\n if (!Number.isNaN(arrayIndex)) {\r\n const iArrayIndex = parseInt(arrayIndex, 10);\r\n ref = ref[items[i].substring(0, arrayIndexStart)];\r\n if (ref && Array.isArray(ref) && iArrayIndex < ref.length) {\r\n ref = ref[iArrayIndex];\r\n } else {\r\n ref = ref[items[i]];\r\n }\r\n } else {\r\n ref = ref[items[i]];\r\n }\r\n } else {\r\n ref = ref[items[i]];\r\n }\r\n }\r\n const fieldName = items[items.length - 1];\r\n ref[fieldName] = action.stateFieldValue;\r\n const newState = {\r\n ...state,\r\n [formName]: newForm\r\n };\r\n return newState;\r\n }\r\n }\r\n return state;\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default form;\r\n","import {\r\n SAVE_CRITERIA,\r\n SAVE_SEARCH_CRITERIA,\r\n SAVE_GRID_CRITERIA\r\n} from 'actions';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction home(state = {\r\n searchCriteria: null,\r\n gridCriteria: null\r\n}, action) {\r\n switch (action.type) {\r\n case SAVE_SEARCH_CRITERIA:\r\n return {\r\n ...state,\r\n searchCriteria: action.searchCriteria\r\n };\r\n case SAVE_GRID_CRITERIA:\r\n return {\r\n ...state,\r\n gridCriteria: action.gridCriteria\r\n };\r\n case SAVE_CRITERIA:\r\n return {\r\n ...state,\r\n searchCriteria: action.searchCriteria,\r\n gridCriteria: action.gridCriteria\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default home;\r\n","import {\r\n OPEN_MI_CUSTOM_DATE_RANGE_MODAL,\r\n CLOSE_MI_CUSTOM_DATE_RANGE_MODAL,\r\n OPEN_MI_DETAILS_MODAL,\r\n CLOSE_MI_DETAILS_MODAL,\r\n GET_MI_DASHBOARD_REQUEST,\r\n GET_MI_DASHBOARD_SUCCESS,\r\n GET_MI_DASHBOARD_FAILURE,\r\n GET_MI_DASHBOARD_XLS_REQUEST,\r\n GET_MI_DASHBOARD_XLS_SUCCESS,\r\n GET_MI_DASHBOARD_XLS_FAILURE,\r\n RESET_MI_DASHBOARD\r\n} from 'actions';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction reports(state = {\r\n isDateRangePickerShown: false,\r\n isGettingMiDashboard: false,\r\n isGettingMiDashboardXls: false,\r\n isMiDetailsModalShown: false,\r\n dateRangeFrom: '',\r\n dateRangeTo: '',\r\n miData: null\r\n}, action) {\r\n switch (action.type) {\r\n case OPEN_MI_CUSTOM_DATE_RANGE_MODAL:\r\n return {\r\n ...state,\r\n isDateRangePickerShown: action.isDateRangePickerShown\r\n };\r\n case CLOSE_MI_CUSTOM_DATE_RANGE_MODAL:\r\n return {\r\n ...state,\r\n isDateRangePickerShown: action.isDateRangePickerShown,\r\n dateRangeFrom: action.dateRangeFrom,\r\n dateRangeTo: action.dateRangeTo\r\n };\r\n case OPEN_MI_DETAILS_MODAL:\r\n return {\r\n ...state,\r\n isMiDetailsModalShown: action.isMiDetailsModalShown\r\n };\r\n case CLOSE_MI_DETAILS_MODAL:\r\n return {\r\n ...state,\r\n isMiDetailsModalShown: action.isMiDetailsModalShown\r\n };\r\n case GET_MI_DASHBOARD_REQUEST:\r\n return {\r\n ...state,\r\n isGettingMiDashboard: action.isGettingMiDashboard,\r\n miData: action.miData,\r\n error: action.error\r\n };\r\n case GET_MI_DASHBOARD_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingMiDashboard: action.isGettingMiDashboard,\r\n miData: action.miData\r\n };\r\n case GET_MI_DASHBOARD_FAILURE:\r\n return {\r\n ...state,\r\n isGettingMiDashboard: action.isGettingMiDashboard,\r\n error: action.error\r\n };\r\n case GET_MI_DASHBOARD_XLS_REQUEST:\r\n return {\r\n ...state,\r\n isGettingMiDashboardXls: action.isGettingMiDashboardXls\r\n };\r\n case GET_MI_DASHBOARD_XLS_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingMiDashboardXls: action.isGettingMiDashboardXls\r\n };\r\n case GET_MI_DASHBOARD_XLS_FAILURE:\r\n return {\r\n ...state,\r\n isGettingMiDashboardXls: action.isGettingMiDashboardXls,\r\n };\r\n case RESET_MI_DASHBOARD:\r\n return {\r\n ...state,\r\n isDateRangePickerShown: action.isDateRangePickerShown,\r\n isGettingMiDashboard: action.isGettingMiDashboard,\r\n isGettingMiDashboardXls: action.isGettingMiDashboardXls,\r\n dateRangeFrom: action.dateRangeFrom,\r\n dateRangeTo: action.dateRangeTo,\r\n miData: action.miData,\r\n error: action.error\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default reports;\r\n","import {\r\n SUBMIT_ANSWERS_REQUEST,\r\n SUBMIT_ANSWERS_SUCCESS,\r\n SUBMIT_ANSWERS_FAILURE\r\n} from 'actions';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction questionnaire(state = {\r\n isSubmittingAnswers: false,\r\n redirectUrl: '',\r\n data: { usPassport: undefined }\r\n}, action) {\r\n switch (action.type) {\r\n case SUBMIT_ANSWERS_REQUEST:\r\n return {\r\n ...state,\r\n isSubmittingAnswers: action.isSubmittingAnswers,\r\n redirectUrl: action.redirectUrl\r\n };\r\n case SUBMIT_ANSWERS_SUCCESS:\r\n return {\r\n ...state,\r\n isSubmittingAnswers: action.isSubmittingAnswers,\r\n redirectUrl: action.redirectUrl\r\n };\r\n case SUBMIT_ANSWERS_FAILURE:\r\n return {\r\n ...state,\r\n isSubmittingAnswers: action.isSubmittingAnswers,\r\n redirectUrl: action.redirectUrl\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default questionnaire;\r\n","import {\r\n GET_WORKFLOW_QUEUES_REQUEST,\r\n GET_WORKFLOW_QUEUES_SUCCESS,\r\n GET_WORKFLOW_QUEUES_FAILURE,\r\n GET_WORKFLOW_QUEUE_REQUEST,\r\n GET_WORKFLOW_INITIAL_QUEUE_SUCCESS,\r\n GET_WORKFLOW_SECONDARY_QUEUE_SUCCESS,\r\n GET_WORKFLOW_EXPERT_QUEUE_SUCCESS,\r\n GET_WORKFLOW_COMPLETE_QUEUE_SUCCESS,\r\n GET_WORKFLOW_QUEUE_FAILURE,\r\n GET_USER_QUEUE_REQUEST,\r\n GET_USER_QUEUE_SUCCESS,\r\n GET_USER_QUEUE_FAILURE,\r\n TAKE_QUEUE_ITEM_REQUEST,\r\n TAKE_QUEUE_ITEM_SUCCESS,\r\n TAKE_QUEUE_ITEM_FAILURE,\r\n OPEN_OWNERSHIP_MODAL,\r\n CLOSE_OWNERSHIP_MODAL,\r\n} from 'actions';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction workflow(state = {\r\n isFetchingQueues: false,\r\n isTakingQueueItem: false,\r\n userQueue: null,\r\n initialReviewQueue: null,\r\n secondaryReviewQueue: null,\r\n expertReviewQueue: null,\r\n completeQueue: null,\r\n allQueue: null,\r\n isOwnershipModalShown: false,\r\n changeOwnershipItem: null,\r\n refreshPage: false,\r\n}, action) {\r\n switch (action.type) {\r\n case GET_WORKFLOW_QUEUES_REQUEST:\r\n return {\r\n ...state,\r\n isFetchingQueues: true,\r\n isTakingQueueItem: false,\r\n refreshPage: false,\r\n };\r\n case GET_WORKFLOW_QUEUES_SUCCESS:\r\n return {\r\n ...state,\r\n isFetchingQueues: false,\r\n isTakingQueueItem: false,\r\n refreshPage: false,\r\n userQueue: action.userQueue,\r\n initialReviewQueue: action.initialReviewQueue,\r\n secondaryReviewQueue: action.secondaryReviewQueue,\r\n expertReviewQueue: action.expertReviewQueue\r\n };\r\n case GET_WORKFLOW_QUEUES_FAILURE:\r\n return {\r\n ...state,\r\n isFetchingQueues: false,\r\n isTakingQueueItem: false,\r\n refreshPage: false,\r\n userQueue: action.userQueue,\r\n initialReviewQueue: action.initialReviewQueue,\r\n secondaryReviewQueue: action.secondaryReviewQueue,\r\n expertReviewQueue: action.expertReviewQueue\r\n };\r\n case GET_WORKFLOW_QUEUE_REQUEST:\r\n return {\r\n ...state,\r\n isFetchingQueues: true,\r\n isTakingQueueItem: false,\r\n refreshPage: false,\r\n\r\n };\r\n case GET_WORKFLOW_INITIAL_QUEUE_SUCCESS:\r\n return {\r\n ...state,\r\n isFetchingQueues: false,\r\n isTakingQueueItem: false,\r\n refreshPage: false,\r\n initialReviewQueue: action.initialReviewQueue\r\n };\r\n case GET_WORKFLOW_SECONDARY_QUEUE_SUCCESS:\r\n return {\r\n ...state,\r\n isFetchingQueues: false,\r\n isTakingQueueItem: false,\r\n refreshPage: false,\r\n secondaryReviewQueue: action.secondaryReviewQueue\r\n };\r\n case GET_WORKFLOW_EXPERT_QUEUE_SUCCESS:\r\n return {\r\n ...state,\r\n isFetchingQueues: false,\r\n isTakingQueueItem: false,\r\n refreshPage: false,\r\n expertReviewQueue: action.expertReviewQueue\r\n };\r\n case GET_WORKFLOW_COMPLETE_QUEUE_SUCCESS:\r\n return {\r\n ...state,\r\n isFetchingQueues: false,\r\n isTakingQueueItem: false,\r\n refreshPage: false,\r\n completeQueue: action.completeQueue\r\n };\r\n case GET_WORKFLOW_QUEUE_FAILURE:\r\n return {\r\n ...state,\r\n isFetchingQueues: false,\r\n isTakingQueueItem: false,\r\n refreshPage: false,\r\n };\r\n case GET_USER_QUEUE_REQUEST:\r\n return {\r\n ...state,\r\n isFetchingQueues: true,\r\n isTakingQueueItem: false,\r\n refreshPage: false,\r\n };\r\n case GET_USER_QUEUE_SUCCESS:\r\n return {\r\n ...state,\r\n isFetchingQueues: false,\r\n isTakingQueueItem: false,\r\n refreshPage: false,\r\n userQueue: action.userQueue\r\n };\r\n case GET_USER_QUEUE_FAILURE:\r\n return {\r\n ...state,\r\n isFetchingQueues: false,\r\n isTakingQueueItem: false,\r\n refreshPage: false,\r\n };\r\n case TAKE_QUEUE_ITEM_REQUEST:\r\n return {\r\n ...state,\r\n isFetchingQueues: false,\r\n isTakingQueueItem: true,\r\n refreshPage: false,\r\n };\r\n case TAKE_QUEUE_ITEM_SUCCESS:\r\n return {\r\n ...state,\r\n isFetchingQueues: false,\r\n isTakingQueueItem: false,\r\n refreshPage: false,\r\n };\r\n case TAKE_QUEUE_ITEM_FAILURE:\r\n return {\r\n ...state,\r\n isFetchingQueues: false,\r\n isTakingQueueItem: false,\r\n refreshPage: false,\r\n };\r\n case OPEN_OWNERSHIP_MODAL:\r\n return {\r\n ...state,\r\n isOwnershipModalShown: action.isOwnershipModalShown,\r\n changeOwnershipItem: action.changeOwnershipItem\r\n };\r\n case CLOSE_OWNERSHIP_MODAL:\r\n return {\r\n ...state,\r\n isOwnershipModalShown: action.isOwnershipModalShown,\r\n changeOwnershipItem: null\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default workflow;\r\n","import {\r\n GET_CIC_ALERTS_REQUEST,\r\n GET_CIC_ALERTS_SUCCESS,\r\n GET_CIC_ALERTS_FAILURE,\r\n GET_CIC_ALERT_REQUEST,\r\n GET_CIC_ALERT_SUCCESS,\r\n GET_CIC_ALERT_FAILURE,\r\n OPEN_CIC_ALERT_MODAL,\r\n CLOSE_CIC_ALERT_MODAL,\r\n SAVE_CIC_ALERT_REVIEW_STATE_REQUEST,\r\n SAVE_CIC_ALERT_REVIEW_STATE_SUCCESS,\r\n SAVE_CIC_ALERT_REVIEW_STATE_FAILURE,\r\n SAVE_CIC_ALERT_CRITERIA,\r\n SAVE_CIC_ALERT_SEARCH_CRITERIA,\r\n SAVE_CIC_ALERT_GRID_CRITERIA,\r\n GET_CIC_ALERT_COUNTS_REQUEST,\r\n GET_CIC_ALERT_COUNTS_SUCCESS,\r\n GET_CIC_ALERT_COUNTS_FAILURE,\r\n OPEN_ASSIGN_CIC_TO_USER_MODAL,\r\n CLOSE_ASSIGN_CIC_TO_USER_MODAL,\r\n CLOSE_ASSIGN_CIC_TO_USER_ERROR,\r\n GET_CIC_ALERT_DETAILS_REQUEST,\r\n GET_CIC_ALERT_DETAILS_SUCCESS,\r\n GET_CIC_ALERT_DETAILS_FAILURE,\r\n GET_CIC_ALERT_DETAILS_CLEAR\r\n} from 'actions';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction monitoring(state = {\r\n isCicAlertsListLoading: false,\r\n cicAlertsList: [],\r\n cicAlertsListCount: 0,\r\n cicAlertsListError: null,\r\n isCicAlertLoading: false,\r\n cicAlertId: null,\r\n isCicAlertModalShown: false,\r\n cicAlert: null,\r\n cicAlertError: null,\r\n isSavingCicReviewState: false,\r\n cicReviewState: null,\r\n cicReviewStateError: null,\r\n workflowState: null,\r\n isGettingCicAlertXls: false,\r\n userCicAlerts: null,\r\n searchCriteria: null,\r\n gridCriteria: null,\r\n refreshPage: false\r\n}, action) {\r\n switch (action.type) {\r\n case GET_CIC_ALERTS_REQUEST:\r\n return {\r\n ...state,\r\n isCicAlertsListLoading: action.isCicAlertsListLoading,\r\n cicAlertsListError: null,\r\n refreshPage: false,\r\n };\r\n case GET_CIC_ALERTS_SUCCESS:\r\n return {\r\n ...state,\r\n isCicAlertsListLoading: action.isCicAlertsListLoading,\r\n cicAlertsList: action.cicAlertsList,\r\n cicAlertsListCount: action.cicAlertsListCount,\r\n refreshPage: false,\r\n cicAlertsListError: null\r\n };\r\n case GET_CIC_ALERTS_FAILURE:\r\n return {\r\n ...state,\r\n isCicAlertsListLoading: action.isCicAlertsListLoading,\r\n cicAlertsList: [],\r\n cicAlertsListCount: 0,\r\n cicAlertsListError: action.cicAlertsListError,\r\n refreshPage: false\r\n };\r\n case GET_CIC_ALERT_REQUEST:\r\n return {\r\n ...state,\r\n isCicAlertLoading: action.isCicAlertLoading,\r\n cicAlert: null,\r\n cicReviewState: null,\r\n workflowState: null,\r\n cicAlertError: null\r\n };\r\n case GET_CIC_ALERT_SUCCESS:\r\n return {\r\n ...state,\r\n isCicAlertLoading: action.isCicAlertLoading,\r\n cicAlert: action.cicAlert,\r\n cicReviewState: action.cicReviewState,\r\n workflowState: action.workflowState,\r\n cicAlertError: null\r\n };\r\n case GET_CIC_ALERT_FAILURE:\r\n return {\r\n ...state,\r\n isCicAlertLoading: action.isCicAlertLoading,\r\n cicAlert: null,\r\n cicReviewState: null,\r\n workflowState: null,\r\n cicAlertError: action.cicAlertError\r\n };\r\n case OPEN_CIC_ALERT_MODAL:\r\n return {\r\n ...state,\r\n isCicAlertModalShown: action.isCicAlertModalShown,\r\n cicAlertId: action.cicAlertId,\r\n cicAlert: null,\r\n cicReviewState: null,\r\n workflowState: null,\r\n cicAlertError: null\r\n };\r\n case CLOSE_CIC_ALERT_MODAL:\r\n return {\r\n ...state,\r\n isCicAlertModalShown: action.isCicAlertModalShown,\r\n refreshPage: action.refreshPage,\r\n cicAlertId: null,\r\n cicAlert: null,\r\n cicReviewState: null,\r\n workflowState: null,\r\n cicAlertError: null\r\n };\r\n case SAVE_CIC_ALERT_REVIEW_STATE_REQUEST:\r\n return {\r\n ...state,\r\n isSavingCicReviewState: action.isSavingCicReviewState\r\n };\r\n case SAVE_CIC_ALERT_REVIEW_STATE_SUCCESS:\r\n return {\r\n ...state,\r\n isSavingCicReviewState: action.isSavingCicReviewState,\r\n cicReviewState: action.cicReviewState,\r\n cicReviewStateError: action.cicReviewStateError\r\n };\r\n case SAVE_CIC_ALERT_REVIEW_STATE_FAILURE:\r\n return {\r\n ...state,\r\n isSavingCicReviewState: action.isSavingCicReviewState,\r\n cicReviewStateError: action.cicReviewStateError\r\n };\r\n // case GET_CIC_ALERT_XLS_REQUEST:\r\n // return {\r\n // ...state,\r\n // isGettingCicAlertXls: action.isGettingCicAlertXls\r\n // };\r\n // case GET_CIC_ALERT_XLS_ALL_SUCCESS:\r\n // return {\r\n // ...state,\r\n // isGettingCicAlertXls: action.isGettingCicAlertXls,\r\n // userCicAlerts: action.userCicAlerts\r\n // };\r\n // case GET_CIC_ALERT_XLS_FAILURE:\r\n // return {\r\n // ...state,\r\n // isGettingCicAlertXls: action.isGettingCicAlertXls\r\n // };\r\n case SAVE_CIC_ALERT_SEARCH_CRITERIA:\r\n return {\r\n ...state,\r\n searchCriteria: action.searchCriteria\r\n };\r\n case SAVE_CIC_ALERT_GRID_CRITERIA:\r\n return {\r\n ...state,\r\n gridCriteria: action.gridCriteria\r\n };\r\n case SAVE_CIC_ALERT_CRITERIA:\r\n return {\r\n ...state,\r\n searchCriteria: action.searchCriteria,\r\n gridCriteria: action.gridCriteria\r\n };\r\n case GET_CIC_ALERT_COUNTS_REQUEST:\r\n return {\r\n ...state,\r\n isCicAlertCountsLoading: action.isCicAlertCountsLoading,\r\n cicAlertsCountsError: null,\r\n refreshPage: false,\r\n };\r\n case GET_CIC_ALERT_COUNTS_SUCCESS:\r\n return {\r\n ...state,\r\n isCicAlertCountsLoading: action.isCicAlertCountsLoading,\r\n cicAlertsUnassignedCount: action.cicAlertsUnassignedCount,\r\n cicAlertsAssignedCount: action.cicAlertsAssignedCount,\r\n refreshPage: false,\r\n cicAlertsCountsError: null\r\n };\r\n case GET_CIC_ALERT_COUNTS_FAILURE:\r\n return {\r\n ...state,\r\n isCicAlertCountsLoading: action.isCicAlertCountsLoading,\r\n cicAlertsUnassignedCount: 0,\r\n cicAlertsAssignedCount: 0,\r\n cicAlertsCountsError: action.cicAlertsCountsError,\r\n refreshPage: false\r\n };\r\n case OPEN_ASSIGN_CIC_TO_USER_MODAL:\r\n return {\r\n ...state,\r\n isAssignCicToUserModalShown: action.isAssignCicToUserModalShown,\r\n cicAlertList: action.cicAlertList,\r\n isTaskSuccess: false\r\n };\r\n case CLOSE_ASSIGN_CIC_TO_USER_MODAL:\r\n return {\r\n ...state,\r\n isAssignCicToUserModalShown: action.isAssignCicToUserModalShown,\r\n isTaskSuccess: false\r\n };\r\n case CLOSE_ASSIGN_CIC_TO_USER_ERROR:\r\n return {\r\n ...state,\r\n isAssignCicToUserModalShown: action.isAssignCicToUserModalShown,\r\n isTaskSuccess: false\r\n };\r\n case GET_CIC_ALERT_DETAILS_REQUEST:\r\n // eslint-disable-next-line no-case-declarations\r\n const requestCicAlerts = state.cicAlertsList.filter((c, i) => c.id === action.cicAlertId && i === action.rowId);\r\n\r\n if (requestCicAlerts && requestCicAlerts.length === 1) {\r\n requestCicAlerts[0].isLoadingDetails = true;\r\n }\r\n\r\n return {\r\n ...state,\r\n getCicAlertDetailsError: null,\r\n cicAlertsList: state.cicAlertsList.concat([])\r\n };\r\n case GET_CIC_ALERT_DETAILS_SUCCESS:\r\n // eslint-disable-next-line no-case-declarations\r\n const matchedCicAlerts = state.cicAlertsList.filter((c, i) => c.id === action.cicAlertId && i === action.rowId);\r\n\r\n if (matchedCicAlerts && matchedCicAlerts.length === 1) {\r\n matchedCicAlerts[0].additionalData = action.cicAlertDetails;\r\n matchedCicAlerts[0].isLoadingDetails = false;\r\n }\r\n\r\n return {\r\n ...state,\r\n getCicAlertDetailsError: null,\r\n cicAlertsList: state.cicAlertsList.concat([])\r\n };\r\n case GET_CIC_ALERT_DETAILS_FAILURE:\r\n // eslint-disable-next-line no-case-declarations\r\n const failureCicAlerts = state.cicAlertsList.filter((c, i) => c.id === action.cicAlertId && i === action.rowId);\r\n\r\n if (failureCicAlerts && failureCicAlerts.length === 1) {\r\n failureCicAlerts[0].additionalData = null;\r\n failureCicAlerts[0].isLoadingDetails = false;\r\n }\r\n\r\n return {\r\n ...state,\r\n getCicAlertDetailsError: action.getCicAlertDetailsError,\r\n cicAlertsList: state.cicAlertsList.concat([])\r\n };\r\n case GET_CIC_ALERT_DETAILS_CLEAR:\r\n // eslint-disable-next-line no-case-declarations\r\n const clearCicAlerts = state.cicAlertsList.filter((c, i) => c.id === action.cicAlertId && i === action.rowId);\r\n\r\n if (clearCicAlerts && clearCicAlerts.length === 1) {\r\n clearCicAlerts[0].additionalData = null;\r\n clearCicAlerts[0].isLoadingDetails = false;\r\n }\r\n\r\n return {\r\n ...state,\r\n getCicAlertDetailsError: null,\r\n cicAlertsList: state.cicAlertsList.concat([])\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default monitoring;\r\n","import {\r\n COMPLETE_BATCH_REQUEST,\r\n COMPLETE_BATCH_SUCCESS,\r\n COMPLETE_BATCH_FAILURE,\r\n GET_BATCH_REQUEST,\r\n GET_BATCH_SUCCESS,\r\n GET_BATCH_FAILURE,\r\n GET_BATCHES_REQUEST,\r\n GET_BATCHES_SUCCESS,\r\n GET_BATCHES_FAILURE,\r\n SEARCH_BATCHES_REQUEST,\r\n SEARCH_BATCHES_SUCCESS,\r\n SEARCH_BATCHES_FAILURE,\r\n OPEN_DELETE_BATCH_MODAL,\r\n CLOSE_DELETE_BATCH_MODAL,\r\n DELETE_BATCH_FAILURE,\r\n DELETE_BATCH_SUCCESS,\r\n DELETE_BATCH_REQUEST\r\n} from 'actions';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction batches(state = {\r\n isGettingBatches: false,\r\n batches: [],\r\n batchesCount: 0,\r\n filteredValues: [],\r\n isDeleteBatchModalShown: false,\r\n batchToDelete: null,\r\n deleteBatchResponse: null,\r\n deleteBatchError: null,\r\n isDeletingBatch: false\r\n}, action) {\r\n switch (action.type) {\r\n case COMPLETE_BATCH_REQUEST:\r\n return {\r\n ...state,\r\n isCompletingBatch: action.isCompletingBatch,\r\n };\r\n case COMPLETE_BATCH_SUCCESS:\r\n return {\r\n ...state,\r\n isCompletingBatch: action.isCompletingBatch,\r\n success: action.success\r\n };\r\n case COMPLETE_BATCH_FAILURE:\r\n return {\r\n ...state,\r\n isCompletingBatch: action.isCompletingBatch,\r\n };\r\n case GET_BATCH_REQUEST:\r\n return {\r\n ...state,\r\n isGettingBatch: action.isGettingBatch,\r\n };\r\n case GET_BATCH_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingBatch: action.isGettingBatch,\r\n batchItem: action.batchItem\r\n };\r\n case GET_BATCH_FAILURE:\r\n return {\r\n ...state,\r\n isGettingBatch: action.isGettingBatch,\r\n };\r\n case GET_BATCHES_REQUEST:\r\n return {\r\n ...state,\r\n isGettingBatches: action.isGettingBatches\r\n };\r\n case GET_BATCHES_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingBatches: action.isGettingBatches,\r\n batches: action.batches,\r\n batchesCount: action.batchesCount\r\n };\r\n case GET_BATCHES_FAILURE:\r\n return {\r\n ...state,\r\n isGettingBatches: action.isGettingBatches,\r\n getBatchesError: action.getBatchesError\r\n };\r\n case SEARCH_BATCHES_REQUEST:\r\n return {\r\n ...state,\r\n isGettingBatches: action.isGettingBatches\r\n };\r\n case SEARCH_BATCHES_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingBatches: action.isGettingBatches,\r\n batches: action.batches,\r\n batchesCount: action.batchesCount\r\n };\r\n case SEARCH_BATCHES_FAILURE:\r\n return {\r\n ...state,\r\n isGettingBatches: action.isGettingBatches,\r\n getBatchesError: action.getBatchesError\r\n };\r\n case OPEN_DELETE_BATCH_MODAL:\r\n return {\r\n ...state,\r\n isDeleteBatchModalShown: action.isDeleteBatchModalShown,\r\n batchToDelete: action.batchToDelete\r\n };\r\n\r\n case CLOSE_DELETE_BATCH_MODAL:\r\n return {\r\n ...state,\r\n isDeleteBatchModalShown: action.isDeleteBatchModalShown,\r\n deleteBatchResponse: action.deleteBatchResponse,\r\n deleteBatchError: action.deleteBatchError\r\n };\r\n\r\n case DELETE_BATCH_REQUEST:\r\n return {\r\n ...state,\r\n isDeletingBatch: action.isDeletingBatch\r\n };\r\n\r\n case DELETE_BATCH_FAILURE:\r\n return {\r\n ...state,\r\n isDeletingBatch: action.isDeletingBatch\r\n };\r\n\r\n case DELETE_BATCH_SUCCESS:\r\n return {\r\n ...state,\r\n isDeletingBatch: action.isDeletingBatch,\r\n deleteBatchResponse: action.deleteBatchResponse\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default batches;\r\n","import {\r\n GET_BATCH_FILES_REQUEST,\r\n GET_BATCH_FILES_SUCCESS,\r\n GET_BATCH_FILES_FAILURE,\r\n SEARCH_BATCH_FILES_REQUEST,\r\n SEARCH_BATCH_FILES_SUCCESS,\r\n SEARCH_BATCH_FILES_FAILURE,\r\n GET_BATCH_FILE_PDF_REQUEST,\r\n GET_BATCH_FILE_PDF_SUCCESS,\r\n GET_BATCH_FILE_PDF_FAILURE,\r\n OPEN_DELETE_FILE_MODAL,\r\n CLOSE_DELETE_FILE_MODAL,\r\n DELETE_FILE_REQUEST,\r\n DELETE_FILE_SUCCESS,\r\n DELETE_FILE_FAILURE\r\n} from 'actions';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction batchFiles(state = {\r\n isGettingBatchFiles: false,\r\n isFetchingBatchFilePdf: false,\r\n batchFiles: [],\r\n batchFilesCount: 0,\r\n filteredValues: [],\r\n batchFilePdfData: null,\r\n batchFilePdfError: null\r\n}, action) {\r\n switch (action.type) {\r\n case DELETE_FILE_REQUEST:\r\n return {\r\n ...state,\r\n isDeletingFile: action.isDeletingFile\r\n };\r\n case DELETE_FILE_SUCCESS:\r\n return {\r\n ...state,\r\n isDeletingFile: action.isDeletingFile,\r\n deleteFileResponse: action.deleteFileResponse,\r\n deleteFileError: action.deleteFileError\r\n };\r\n case DELETE_FILE_FAILURE:\r\n return {\r\n ...state,\r\n isDeletingFile: action.isDeletingFile,\r\n deleteFileError: action.deleteFileError\r\n };\r\n case CLOSE_DELETE_FILE_MODAL:\r\n return {\r\n ...state,\r\n isDeleteFileModalShown: action.isDeleteFileModalShown,\r\n deleteFileResponse: action.deleteFileResponse,\r\n deleteFileError: action.deleteFileError\r\n };\r\n case OPEN_DELETE_FILE_MODAL:\r\n return {\r\n ...state,\r\n isDeleteFileModalShown: action.isDeleteFileModalShown,\r\n fileId: action.fileId\r\n };\r\n case GET_BATCH_FILES_REQUEST:\r\n return {\r\n ...state,\r\n isGettingBatchFiles: action.isGettingBatchFiles\r\n };\r\n case GET_BATCH_FILES_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingBatchFiles: action.isGettingBatchFiles,\r\n batchFiles: action.batchFiles,\r\n batchFilesCount: action.batchFilesCount\r\n };\r\n case GET_BATCH_FILES_FAILURE:\r\n return {\r\n ...state,\r\n isGettingBatchFiles: action.isGettingBatchFiles,\r\n getBatchFilesError: action.getBatchFilesError\r\n };\r\n case SEARCH_BATCH_FILES_REQUEST:\r\n return {\r\n ...state,\r\n isGettingBatchFiles: action.isGettingBatchFiles\r\n };\r\n case SEARCH_BATCH_FILES_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingBatchFiles: action.isGettingBatchFiles,\r\n batchFiles: action.batchFiles,\r\n batchFilesCount: action.batchFilesCount\r\n };\r\n case SEARCH_BATCH_FILES_FAILURE:\r\n return {\r\n ...state,\r\n isGettingBatchFiles: action.isGettingBatchFiles,\r\n getBatchFilesError: action.getBatchFilesError\r\n };\r\n case GET_BATCH_FILE_PDF_REQUEST:\r\n return {\r\n ...state,\r\n isFetchingBatchFilePdf: action.isFetchingBatchFilePdf,\r\n batchFileOriginalFileName: null,\r\n batchFilePdfData: null,\r\n batchFilePdfError: null\r\n };\r\n case GET_BATCH_FILE_PDF_SUCCESS:\r\n return {\r\n ...state,\r\n isFetchingBatchFilePdf: action.isFetchingBatchFilePdf,\r\n batchFilePdfData: action.batchFilePdfData,\r\n batchFileOriginalFileName: action.batchFileOriginalFileName,\r\n batchFilePdfError: null\r\n };\r\n case GET_BATCH_FILE_PDF_FAILURE:\r\n return {\r\n ...state,\r\n isFetchingBatchFilePdf: action.isFetchingBatchFilePdf,\r\n batchFileOriginalFileName: null,\r\n batchFilePdfData: null,\r\n batchFilePdfError: action.batchFilePdfError\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default batchFiles;\r\n","import {\r\n GET_BATCH_FORMS_REQUEST,\r\n GET_BATCH_FORMS_SUCCESS,\r\n GET_BATCH_FORMS_FAILURE,\r\n SEARCH_BATCH_FORMS_REQUEST,\r\n SEARCH_BATCH_FORMS_SUCCESS,\r\n SEARCH_BATCH_FORMS_FAILURE\r\n} from 'actions';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction batchForms(state = {\r\n isGettingBatchForms: false,\r\n batchForms: [],\r\n batchFormsCount: 0,\r\n filteredValues: []\r\n}, action) {\r\n switch (action.type) {\r\n case GET_BATCH_FORMS_REQUEST:\r\n return {\r\n ...state,\r\n isGettingBatchForms: action.isGettingBatchForms\r\n };\r\n case GET_BATCH_FORMS_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingBatchForms: action.isGettingBatchForms,\r\n batchItem: action.batchItem,\r\n batchFileItem: action.batchFileItem,\r\n batchForms: action.batchForms,\r\n batchFormsCount: action.batchFormsCount\r\n };\r\n case GET_BATCH_FORMS_FAILURE:\r\n return {\r\n ...state,\r\n isGettingBatchForms: action.isGettingBatchForms,\r\n getBatchFormsError: action.getBatchFormsError\r\n };\r\n case SEARCH_BATCH_FORMS_REQUEST:\r\n return {\r\n ...state,\r\n isGettingBatchForms: action.isGettingBatchForms\r\n };\r\n case SEARCH_BATCH_FORMS_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingBatchForms: action.isGettingBatchForms,\r\n batchForms: action.batchForms,\r\n batchFormsCount: action.batchFormsCount\r\n };\r\n case SEARCH_BATCH_FORMS_FAILURE:\r\n return {\r\n ...state,\r\n isGettingBatchForms: action.isGettingBatchForms,\r\n getBatchFormsError: action.getBatchFormsError\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default batchForms;\r\n","import { GET_CUSTOMER_WHD_REQUEST, GET_CUSTOMER_WHD_SUCCESS, GET_CUSTOMER_WHD_FAILURE, RESET_WHD_RATES } from 'actions';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction withholding(state = {\r\n isGettingWhd: false,\r\n accountId: null,\r\n customerId: null,\r\n accountWithholdingRates: null\r\n}, action) {\r\n switch (action.type) {\r\n case GET_CUSTOMER_WHD_REQUEST:\r\n return {\r\n ...state,\r\n isGettingWhd: true,\r\n accountId: action.accountId,\r\n customerId: action.customerId,\r\n accountWithholdingRates: null\r\n };\r\n case GET_CUSTOMER_WHD_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingWhd: false,\r\n accountId: action.accountId,\r\n customerId: action.customerId,\r\n accountWithholdingRates: action.accountWithholdingRates\r\n };\r\n case GET_CUSTOMER_WHD_FAILURE:\r\n return {\r\n ...state,\r\n isGettingWhd: false,\r\n accountId: action.accountId,\r\n customerId: action.customerId,\r\n accountWithholdingRates: null\r\n };\r\n case RESET_WHD_RATES:\r\n return {\r\n ...state,\r\n accountWithholdingRates: null\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default withholding;\r\n","import {\r\n GET_LEGAL_ENTITIES_REQUEST,\r\n GET_LEGAL_ENTITIES_SUCCESS,\r\n GET_LEGAL_ENTITIES_FAILURE\r\n} from 'actions';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction legalEntities(state = {\r\n isGettingLegalEntities: false,\r\n legalEntities: [],\r\n legalEntitiesCount: 0\r\n}, action) {\r\n switch (action.type) {\r\n case GET_LEGAL_ENTITIES_REQUEST:\r\n return {\r\n ...state,\r\n isGettingLegalEntities: action.isGettingLegalEntities\r\n };\r\n case GET_LEGAL_ENTITIES_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingLegalEntities: action.isGettingLegalEntities,\r\n legalEntities: action.legalEntities,\r\n legalEntitiesCount: action.legalEntitiesCount\r\n };\r\n case GET_LEGAL_ENTITIES_FAILURE:\r\n return {\r\n ...state,\r\n isGettingLegalEntities: action.isGettingLegalEntities,\r\n getFormsError: action.getFormsError,\r\n legalEntities: [],\r\n legalEntitiesCount: 0\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default legalEntities;\r\n","import {\r\n GET_WHD_STMT_SUCCESS, GET_WHD_STMT_REQUEST, GET_WHD_STMT_FAILURE, RESET_WHD_STMT_LIST,\r\n UPDATE_POOLED_RATES_REQUEST, UPDATE_POOLED_RATES_SUCCESS, UPDATE_POOLED_RATES_FAILURE,\r\n UPDATE_WHD_STMT_REQUEST, UPDATE_WHD_STMT_SUCCESS, UPDATE_WHD_STMT_FAILURE,\r\n UPDATE_WHD_STMT_ROW_REQUEST, UPDATE_WHD_STMT_ROW_SUCCESS, UPDATE_WHD_STMT_ROW_FAILURE,\r\n ADD_NEW_BO_REQUEST, ADD_NEW_BO_SUCCESS, ADD_NEW_BO_FAILURE, SAVE_WHD_COLLAPSED_TIERS,\r\n DELETE_WHD_STMT_ROW_REQUEST, DELETE_WHD_STMT_ROW_SUCCESS, DELETE_WHD_STMT_ROW_FAILURE,\r\n CHANGE_IMY_PARENT_ACCOUNT_REQUEST, CHANGE_IMY_PARENT_ACCOUNT_SUCCESS, CHANGE_IMY_PARENT_ACCOUNT_FAILURE,\r\n SET_WHD_SCROLL_POSITION,\r\n PUBLISH_WHD_STMT_REQUEST, PUBLISH_WHD_STMT_SUCCESS, PUBLISH_WHD_STMT_FAILURE,\r\n OPEN_EFFECTIVE_DATE_CONFIRM_MODAL, CLOSE_EFFECTIVE_DATE_CONFIRM_MODAL, RESET_ACCOUNT_WHS_LINKING\r\n} from 'actions';\r\n\r\nfunction getOwners(recipient, level, structureLocator, index, parents, parentIdentifier) {\r\n const structureLocation = (structureLocator && `${ structureLocator }-${ index }`) || `${ index }`;\r\n const accountId = (recipient.basicDetails && recipient.basicDetails.accountId) || recipient.accountId;\r\n const name = (recipient.ownerDetails && recipient.ownerDetails.name) || ((recipient.basicDetails && recipient.basicDetails.name) ?? recipient.accountName);\r\n const guid = (recipient.ownerDetails && recipient.ownerDetails.guid) || recipient.guid || '';\r\n const owners = [{ level, structureLocation, accountId, name, guid, parents, isIMY: Array.isArray(recipient.recipients), parentIdentifier: parentIdentifier ?? null }];\r\n const items = recipient.recipients && recipient.recipients\r\n .map((item, idx) => getOwners(item, level + 1, structureLocation, idx, [...parents, name], guid || name));\r\n\r\n if (items && items.length > 0) {\r\n return items.reduce((p, c) => {\r\n if (!c) {\r\n return p;\r\n }\r\n\r\n if (Array.isArray(c)) {\r\n return [...p, ...c];\r\n }\r\n\r\n return [...p, c];\r\n }, owners);\r\n }\r\n\r\n return owners;\r\n}\r\n\r\nfunction deriveStatementOwners(structure) {\r\n if (structure === null) {\r\n return null;\r\n }\r\n\r\n if (!structure) {\r\n return [];\r\n }\r\n\r\n return getOwners(structure, 0, null, 0, []);\r\n}\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction withholdingStatement(state = {\r\n accountId: null,\r\n isGettingStatement: false,\r\n isStructureValid: false,\r\n beneficiaryList: null,\r\n statement: null,\r\n structure: null,\r\n isSavingStatement: false,\r\n isSaveFailed: false,\r\n isUpdatingStatement: false,\r\n statementPosition: {},\r\n tierCollapseStructure: null,\r\n validationResult: null,\r\n isDeletingRow: false,\r\n isShowingEffectiveDateConfirmation: false,\r\n isPublishingStatement: false,\r\n topAccount: null,\r\n isWhsLinkingActive: false\r\n}, action) {\r\n const { accountId } = state;\r\n const actionAccountId = action.accountId && Array.isArray(accountId) && accountId.length > 0 ? accountId[0] : accountId;\r\n\r\n switch (action.type) {\r\n case CHANGE_IMY_PARENT_ACCOUNT_REQUEST:\r\n return {\r\n ...state,\r\n isUpdatingStatement: true,\r\n accountId: action.accountId,\r\n changeDetails: action.statement\r\n };\r\n case CHANGE_IMY_PARENT_ACCOUNT_SUCCESS:\r\n return {\r\n ...state,\r\n isUpdatingStatement: false,\r\n accountId: (actionAccountId && parseInt(actionAccountId, 10)) || null,\r\n statement: action.statementContainer.statement,\r\n structure: action.statementContainer.structure,\r\n topAccount: action.statementContainer.topAccount\r\n };\r\n case CHANGE_IMY_PARENT_ACCOUNT_FAILURE:\r\n return {\r\n ...state,\r\n isUpdatingStatement: false,\r\n accountId: action.accountId\r\n };\r\n case GET_WHD_STMT_REQUEST:\r\n return {\r\n ...state,\r\n isGettingStatement: true,\r\n accountId: action.accountId,\r\n statement: action.statement\r\n };\r\n case GET_WHD_STMT_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingStatement: false,\r\n isStructureValid: action.statementContainer.isStructureValid,\r\n accountId: (actionAccountId && parseInt(actionAccountId, 10)) || null,\r\n beneficiaryList: (action.statementContainer && deriveStatementOwners(action.statementContainer.structure)) || null,\r\n statement: action.statementContainer.statement,\r\n structure: action.statementContainer.structure,\r\n validationResult: action.statementContainer.validationResult,\r\n topAccount: { ...action.statementContainer.topAccount, isWhsLinkingActive: action.statementContainer.isWhsLinkingActive },\r\n versionWindows: action.statementContainer.versionWindows\r\n };\r\n case GET_WHD_STMT_FAILURE:\r\n return {\r\n ...state,\r\n isGettingStatement: false,\r\n accountId: action.accountId\r\n };\r\n case RESET_WHD_STMT_LIST:\r\n return {\r\n ...state,\r\n accountId: null,\r\n statement: null,\r\n structure: null,\r\n topAccount: null\r\n };\r\n case SET_WHD_SCROLL_POSITION:\r\n // eslint-disable-next-line no-case-declarations\r\n const statementPositionList = state.statementPosition;\r\n statementPositionList[action.accountId] = action.scrollPosition;\r\n\r\n return {\r\n ...state,\r\n statementPosition: statementPositionList\r\n };\r\n case ADD_NEW_BO_REQUEST:\r\n return {\r\n ...state,\r\n isAddingNewBeneficalOwner: true,\r\n };\r\n case ADD_NEW_BO_SUCCESS:\r\n return {\r\n ...state,\r\n isAddingNewBeneficalOwner: false,\r\n statement: action.statementContainer.statement,\r\n structure: action.statementContainer.structure,\r\n validationResult: action.statementContainer.validationResult || state.validationResult,\r\n beneficiaryList: (action.statementContainer && deriveStatementOwners(action.statementContainer.structure)) || null,\r\n topAccount: action.statementContainer.topAccount\r\n };\r\n case ADD_NEW_BO_FAILURE:\r\n return {\r\n ...state,\r\n isAddingNewBeneficalOwner: false,\r\n };\r\n case UPDATE_POOLED_RATES_REQUEST:\r\n return {\r\n ...state,\r\n };\r\n case UPDATE_POOLED_RATES_SUCCESS:\r\n return {\r\n ...state,\r\n structure: action.structure,\r\n validationResult: action.validationResult,\r\n topAccount: action.topAccount\r\n };\r\n case UPDATE_POOLED_RATES_FAILURE:\r\n return {\r\n ...state,\r\n };\r\n case SAVE_WHD_COLLAPSED_TIERS:\r\n return {\r\n ...state,\r\n tierCollapseStructure: action.tiersObject\r\n };\r\n case UPDATE_WHD_STMT_REQUEST:\r\n return {\r\n ...state,\r\n isSavingStatement: true\r\n };\r\n case UPDATE_WHD_STMT_SUCCESS:\r\n return {\r\n ...state,\r\n statement: action.statement,\r\n structure: action.structure,\r\n validationResult: action.validationResult,\r\n isSavingStatement: false,\r\n topAccount: action.topAccount\r\n };\r\n case UPDATE_WHD_STMT_FAILURE:\r\n return {\r\n ...state,\r\n isSavingStatement: false\r\n };\r\n case UPDATE_WHD_STMT_ROW_SUCCESS:\r\n return {\r\n ...state,\r\n isSavingStatement: false,\r\n isStructureValid: action.isStructureValid,\r\n structure: action.structure,\r\n statement: action.statement,\r\n validationResult: action.validationResult || state.validationResult,\r\n beneficiaryList: (action.structure && deriveStatementOwners(action.structure)) || null,\r\n topAccount: action.topAccount\r\n };\r\n case UPDATE_WHD_STMT_ROW_REQUEST:\r\n return {\r\n ...state,\r\n isSavingStatement: true\r\n };\r\n case UPDATE_WHD_STMT_ROW_FAILURE:\r\n return {\r\n ...state,\r\n isSavingStatement: false\r\n };\r\n case DELETE_WHD_STMT_ROW_REQUEST:\r\n return {\r\n ...state,\r\n isDeletingRow: true\r\n };\r\n case DELETE_WHD_STMT_ROW_SUCCESS:\r\n return {\r\n ...state,\r\n isStructureValid: action.isStructureValid,\r\n structure: action.structure,\r\n statement: action.statement,\r\n validationResult: action.validationResult || state.validationResult,\r\n beneficiaryList: (action.structure && deriveStatementOwners(action.structure)) || null,\r\n isDeletingRow: false,\r\n topAccount: action.topAccount\r\n };\r\n case DELETE_WHD_STMT_ROW_FAILURE:\r\n return {\r\n ...state,\r\n isDeletingRow: false\r\n };\r\n case PUBLISH_WHD_STMT_REQUEST:\r\n return {\r\n ...state,\r\n isSavingStatement: true,\r\n isPublishingStatement: true\r\n };\r\n case PUBLISH_WHD_STMT_SUCCESS:\r\n state.statement.effectiveDate = action.effectiveDate;\r\n state.statement.effectiveTo = action.effectiveToDate;\r\n\r\n return {\r\n ...state,\r\n isSavingStatement: false,\r\n isPublishingStatement: false\r\n };\r\n case PUBLISH_WHD_STMT_FAILURE:\r\n return {\r\n ...state,\r\n isSavingStatement: false,\r\n isPublishingStatement: false\r\n };\r\n case OPEN_EFFECTIVE_DATE_CONFIRM_MODAL:\r\n return {\r\n ...state,\r\n isShowingEffectiveDateConfirmation: true\r\n };\r\n case CLOSE_EFFECTIVE_DATE_CONFIRM_MODAL:\r\n return {\r\n ...state,\r\n isShowingEffectiveDateConfirmation: false\r\n };\r\n case RESET_ACCOUNT_WHS_LINKING:\r\n return {\r\n ...state,\r\n topAccount: {\r\n ...state.topAccount,\r\n isWhsLinkingActive: action.isWhsLinkingActive\r\n }\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default withholdingStatement;\r\n","import { combineReducers } from 'redux';\r\nimport { reducer as formReducer } from 'redux-form';\r\nimport { connectRouter } from 'connected-react-router';\r\nimport { reducer as toastrReducer } from 'react-redux-toastr';\r\nimport auth from './auth';\r\nimport account from './account';\r\nimport common from './common';\r\nimport customer from './customer';\r\nimport exceptions from './exceptions';\r\nimport forms from './forms';\r\nimport taxForm from './form';\r\nimport home from './home';\r\nimport reports from './reports';\r\nimport questionnaire from './questionnaire';\r\nimport workflow from './workflow';\r\nimport monitoring from './monitoring';\r\nimport batches from './batches';\r\nimport batchFiles from './batchFiles';\r\nimport batchForms from './batchForms';\r\nimport withholding from './withholding';\r\nimport legalEntities from './legalEntities';\r\nimport withholdingStatement from './withholdingStatement';\r\n\r\nfunction reduceReducers(...reducers) {\r\n return (previous, current) => reducers.reduce((p, r) => r(p, current), previous);\r\n}\r\n\r\nconst combinedFormReducer = reduceReducers(taxForm, formReducer);\r\n\r\nconst createRootReducer = history => combineReducers({\r\n auth,\r\n account,\r\n common,\r\n customer,\r\n exceptions,\r\n forms,\r\n home,\r\n batches,\r\n batchFiles,\r\n batchForms,\r\n reports,\r\n questionnaire,\r\n workflow,\r\n withholding,\r\n monitoring,\r\n withholdingStatement,\r\n legalEntities,\r\n form: combinedFormReducer,\r\n router: connectRouter(history),\r\n toastr: toastrReducer\r\n});\r\n\r\nexport default createRootReducer;\r\n","import { createStore, applyMiddleware } from 'redux';\r\nimport { composeWithDevTools } from '@redux-devtools/extension';\r\nimport { routerMiddleware } from 'connected-react-router';\r\nimport thunk from 'redux-thunk';\r\n\r\nimport createRootReducer from 'reducers';\r\nimport { history } from 'containers/App';\r\n\r\nconst store = createStore(\r\n createRootReducer(history),\r\n process.env.NODE_ENV === 'production'\r\n ? applyMiddleware(thunk, routerMiddleware(history))\r\n : composeWithDevTools(\r\n applyMiddleware(thunk, routerMiddleware(history))\r\n )\r\n);\r\n\r\nexport default store;\r\n","import React from 'react';\r\nimport { createRoot } from 'react-dom/client';\r\nimport { Provider } from 'react-redux';\r\nimport { DndProvider } from 'react-dnd';\r\nimport { HTML5Backend } from 'react-dnd-html5-backend';\r\n\r\nimport App from 'containers/App';\r\nimport store from 'store';\r\n\r\nconst container = document.getElementById('root');\r\nconst root = createRoot(container);\r\nroot.render(\r\n \r\n \r\n \r\n \r\n \r\n);\r\n","import EnvConfig from './env.config';\r\n\r\nexport default class Logger {\r\n static DEBUG = 'DEBUG';\r\n\r\n static INFO = 'INFO';\r\n\r\n static WARNING = 'WARNING';\r\n\r\n static ERROR = 'ERROR';\r\n\r\n static send(event) {\r\n if (EnvConfig.loggly.enabled) {\r\n // eslint-disable-next-line\r\n var _LTracker = window._LTracker || [];\r\n _LTracker.push({\r\n ...event,\r\n location: {\r\n URL: window.location.href\r\n }\r\n });\r\n }\r\n }\r\n\r\n static debug(trace) {\r\n Logger.send({\r\n ...trace,\r\n level: Logger.DEBUG\r\n });\r\n }\r\n\r\n static info(trace) {\r\n Logger.send({\r\n ...trace,\r\n level: Logger.INFO,\r\n });\r\n }\r\n\r\n static warning(trace) {\r\n Logger.send({\r\n ...trace,\r\n level: Logger.WARNING\r\n });\r\n }\r\n\r\n static error(trace) {\r\n Logger.send({\r\n ...trace,\r\n level: Logger.ERROR\r\n });\r\n }\r\n}\r\n","import axios from 'axios';\r\nimport { getStorageSetting } from 'actions/storage';\r\nimport { updateConnectionStatus } from 'actions/common';\r\nimport { triggerSessionReset } from 'actions/auth';\r\nimport EnvConfig from 'env.config';\r\n\r\nconst {\r\n baseApiUrl,\r\n tokenName,\r\n apiEndpoints: {\r\n config: configUri,\r\n token: tokenUri,\r\n forms: formsUri,\r\n account: accountUri,\r\n customer: customerUri,\r\n details: detailsUri,\r\n formPdf: formPdfUri,\r\n viewPdf: viewPdfUri,\r\n bulkDelete: bulkDeleteUri,\r\n validation: validationUri,\r\n reporting: reportingUri,\r\n reportingXls: reportingXlsUri,\r\n customerExportXls: customerExportXlsUri,\r\n auditTrail: auditTrailUri,\r\n allocationStmnts: allocationStmntsUri,\r\n w8imystructure: w8imystructureUri,\r\n miDashboard: miDashboardUri,\r\n miDashboardXls: miDashboardXlsUri,\r\n WhdCalculatedResults: WhdCalculatedResultsUri,\r\n workflow: workflowUri,\r\n withholding: withholdingUri,\r\n cicalert: cicalertUri,\r\n batches: batchesUri,\r\n legalEntities: legalEntitiesUri,\r\n activityPermissions: activitypermissionsUri,\r\n whdStatement: whdStatementUri,\r\n controllingPersons: controllingPersonsUri,\r\n tinMatchApi: tinMatchApiUri,\r\n staticData: staticDataUri\r\n }\r\n} = EnvConfig;\r\n\r\n// const HTTP_400_BADREQUEST = 400;\r\nconst HTTP_401_UNAUTHORIZED = 401;\r\n// const HTTP_FORBIDDEN = 403;\r\n// const HTTP_NOTFOUND = 404;\r\nconst HTTP_408_REQUESTTIMEOUT = 408;\r\nconst HTTP_429_TOOMANYREQUESTS = 429;\r\n// const HTTP_501_NOTIMPLEMENTED = 501;\r\nconst HTTP_502_BADGATEWAY = 502;\r\nconst HTTP_503_SERVICEUNAVAILABLE = 503;\r\n// const HTTP_GATEWAYTIMEOUT = 504;\r\n\r\nconst getDefaultConfig = () => {\r\n const selectedClient = getStorageSetting('selectedClient');\r\n let clientId = null;\r\n\r\n if (selectedClient) {\r\n clientId = selectedClient.key;\r\n }\r\n\r\n return ({\r\n headers: {\r\n Authorization: `Bearer ${ sessionStorage.getItem(tokenName) }`,\r\n 'Content-Type': 'application/json',\r\n 'TT-CLIENT': clientId\r\n },\r\n withCredentials: false\r\n });\r\n};\r\n\r\nconst getFormDataConfig = () => {\r\n const config = Object.assign({}, getDefaultConfig());\r\n config.headers['Content-Type'] = 'multipart/form-data';\r\n return config;\r\n};\r\n\r\nconst getPreventRetriesConfig = () => {\r\n const config = Object.assign({}, getDefaultConfig());\r\n config.preventRetries = true;\r\n return config;\r\n};\r\n\r\nconst getDspConfig = (headers) => {\r\n const config = { headers, withCredentials: true };\r\n config.headers['Content-Type'] = 'application/json';\r\n return config;\r\n};\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport class ApiService {\r\n static axios = axios.create({\r\n baseUrl: baseApiUrl\r\n });\r\n\r\n static signIn(creds) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ tokenUri }`,\r\n creds\r\n )\r\n .then((response) => {\r\n getDefaultConfig().Authorization = `Bearer ${ response.data.token }`;\r\n return response;\r\n });\r\n }\r\n\r\n static getAccessTokenName() {\r\n return `${ tokenName }`;\r\n }\r\n\r\n static getFileUploadUrl() {\r\n return `${ baseApiUrl }/file/upload`;\r\n }\r\n\r\n static getApiStatus() {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }/system/status/json`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getDspConsole(url, headers) {\r\n const config = getDspConfig(headers);\r\n return ApiService.axios\r\n .post(\r\n `${ url }`,\r\n null,\r\n config\r\n );\r\n }\r\n\r\n static getSiteConfig() {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ configUri }/site`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getPaymentTypes() {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ configUri }/payment-types`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getJurisdictions() {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ configUri }/jurisdictions`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getSpecialRateProvisions(treatyCountry, hasPensionClaim) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ configUri }/specialrateprovisions/${ treatyCountry }?hasPensionClaim=${ hasPensionClaim }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getAuthState() {\r\n const config = Object.assign({}, getDefaultConfig(), { withCredentials: true });\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }/auth/state`,\r\n config\r\n );\r\n }\r\n\r\n static getLogoutUrl() {\r\n return `${ baseApiUrl }/auth/logout`;\r\n }\r\n\r\n static getExternalLoginUrl() {\r\n return `${ baseApiUrl }/auth/external/login`;\r\n }\r\n\r\n static getUserConfig() {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ configUri }/user`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getActivityPermissions() {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ activitypermissionsUri }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static addForm(formData) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ formsUri }/new`,\r\n formData,\r\n getPreventRetriesConfig()\r\n );\r\n }\r\n\r\n static addWhdStatement(accountId, formData) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ whdStatementUri }/${ accountId }/add`,\r\n formData,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static addWhdForm(formType, formData) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ WhdCalculatedResultsUri }/calc`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static createWhdStatement(formId, accountId, statementType) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ whdStatementUri }/${ accountId }/create`,\r\n {\r\n formId,\r\n type: statementType\r\n },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static addBeneficiaryForm(formType, formData) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ formsUri }/${ formType }/pdf`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static deleteForm(formType, formId) {\r\n return ApiService.axios\r\n .delete(\r\n `${ baseApiUrl }${ formsUri }/${ formType && formType.toLowerCase() }/${ formId }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static deleteBatch(batchId) {\r\n return ApiService.axios\r\n .delete(\r\n `${ baseApiUrl }${ batchesUri }/${ batchId }/harddelete`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static changeLegalEntity(batchId, legalEntityId) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ batchesUri }/changele`,\r\n { batchId, legalEntityId },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static assignFormToUser(formsList, userId) {\r\n const formData = new FormData();\r\n formsList.map(item => formData.append('formsList', item));\r\n formData.append('userId', userId);\r\n\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }/forms/assignforms`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static unassignFormToUser(forms) {\r\n const formData = new FormData();\r\n formData.append('formId', forms);\r\n\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }/forms/unassignforms`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static deleteForms(formsIds) {\r\n const formData = new FormData();\r\n formsIds.map(item => formData.append('idsToDelete', item));\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ formsUri }${ bulkDeleteUri }`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static getForms(pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected, formFamilies) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ formsUri }/page`,\r\n { pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected, formFamilies },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getCustomers(pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, searchQuery, legalEntity, legalEntitySelected, accountNumberSelected, accountNumber, customer, customerSelected) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ customerUri }/page`,\r\n { pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, searchQuery, legalEntity, legalEntitySelected, accountNumberSelected, accountNumber, customer, customerSelected },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getAccounts(pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ accountUri }/page`,\r\n { pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getLegalEntities(pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ legalEntitiesUri }/page`,\r\n { pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getFormDetails(formId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ formsUri }/${ formId }${ detailsUri }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getFormStatement(accountId, tierOwnersOnly) {\r\n const ownersOnlyStem = tierOwnersOnly ? '/1' : '';\r\n\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ whdStatementUri }/${ accountId }/analyse${ ownersOnlyStem }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getFormStatementLayerOwners(accountId, tierAccountName) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ whdStatementUri }/${ accountId }/owners`,\r\n { value: tierAccountName },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getCustomerDetails(customerId, accountId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ customerUri }/${ customerId }${ detailsUri }/${ accountId }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getCicAlertDetails(cicAlertId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ cicalertUri }/${ cicAlertId }${ detailsUri }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getCompleteBatch(batchId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ batchesUri }/${ batchId }/complete`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getBatch(batchId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ batchesUri }/${ batchId }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getBatches(pageNumber, pageSize, sortBy, sortDirection, filters) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ batchesUri }/page`,\r\n { pageNumber, pageSize, sortByField: sortBy, sortDirection, filters },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static searchBatches(pageNumber, pageSize, sortBy, sortDirection, filters, searchQuery) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ batchesUri }/page`,\r\n { pageNumber, pageSize, sortByField: sortBy, sortDirection, filters, searchQuery },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getBatchFiles(batchId, pageNumber, pageSize, sortBy, sortDirection, filters) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ batchesUri }/${ batchId }/files`,\r\n { batchId, pageNumber, pageSize, sortByField: sortBy, sortDirection, filters },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static searchBatchFiles(batchId, pageNumber, pageSize, sortBy, sortDirection, filters, searchQuery) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ batchesUri }/${ batchId }/files`,\r\n { batchId, pageNumber, pageSize, sortByField: sortBy, sortDirection, filters, searchQuery },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static deleteBatchFile(batchId, fileId) {\r\n return ApiService.axios\r\n .delete(\r\n `${ baseApiUrl }${ batchesUri }/${ batchId }/files/${ fileId }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getBatchForms(batchId, batchFileId, pageNumber, pageSize, sortBy, sortDirection, filters) {\r\n let batchFormsPath = 'forms';\r\n if (batchFileId && batchFileId > 0) {\r\n batchFormsPath = `files/${ batchFileId }`;\r\n }\r\n\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ batchesUri }/${ batchId }/${ batchFormsPath }`,\r\n { pageNumber, pageSize, sortByField: sortBy, sortDirection, filters },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static searchBatchForms(batchId, batchFileId, pageNumber, pageSize, sortBy, sortDirection, filters, searchQuery) {\r\n let batchFormsPath = 'forms';\r\n if (batchFileId && batchFileId > 0) {\r\n batchFormsPath = `files/${ batchFileId }`;\r\n }\r\n\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ batchesUri }/${ batchId }/${ batchFormsPath }`,\r\n { pageNumber, pageSize, sortByField: sortBy, sortDirection, filters, searchQuery },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getBatchFilePdf(batchId, batchFileId, config) {\r\n return ApiService.axios({\r\n url: `${ baseApiUrl }${ batchesUri }/${ batchId }/files/${ batchFileId }/download`,\r\n method: 'get',\r\n transformResponse: (data, headers) => {\r\n const blob = new Blob([data], { type: 'application/pdf' });\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob && config) {\r\n window.navigator.msSaveOrOpenBlob(blob, this.getFileNameFromHeaders(headers));\r\n return null;\r\n }\r\n return (window.URL || window.webkitURL).createObjectURL(blob);\r\n },\r\n ...Object.assign({}, getDefaultConfig(), config)\r\n });\r\n }\r\n\r\n static getWhdPaymentCalculations(accountNo) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ WhdCalculatedResultsUri }/search?query=${ encodeURIComponent(accountNo).replace(/'/g, '%27').replace(/\"/g, '%22') }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getFormById(formType, formId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ formsUri }/${ formType }/${ formId }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getValidationResults(pageNumber, pageSize, totalLimit, sortBy, sortDirection, filterList, activeTab) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ validationUri }/page`,\r\n { pageNumber, pageSize, totalLimit, sortByField: sortBy, sortDirection, filterList, activeTab },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getPiiValidationCodes() {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }/piivalidationcodes`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getFormPdf(file, config) {\r\n return ApiService.axios({\r\n url: `${ baseApiUrl }${ formPdfUri }/${ file.id }?additional=${ file.isAdditional }`,\r\n method: 'get',\r\n transformResponse: (data, headers) => {\r\n const blob = new Blob([data], { type: 'application/pdf' });\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob && config) {\r\n window.navigator.msSaveOrOpenBlob(blob, file.originalFileName);\r\n return null;\r\n }\r\n return (window.URL || window.webkitURL).createObjectURL(blob);\r\n },\r\n ...Object.assign({}, getDefaultConfig(), config)\r\n });\r\n }\r\n\r\n static getPdfView(file, config) {\r\n return ApiService.axios({\r\n url: `${ baseApiUrl }${ viewPdfUri }/${ file.id }?additional=${ file.isAdditional }`,\r\n method: 'get',\r\n transformResponse: (data) => {\r\n if (data.byteLength === 0) {\r\n return null;\r\n }\r\n const blob = new Blob([data], { type: 'application/pdf' });\r\n if (window.URL || window.webkitURL) {\r\n return (window.URL || window.webkitURL).createObjectURL(blob);\r\n }\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob && config) {\r\n return window.navigator.msSaveOrOpenBlob(blob);\r\n }\r\n return null;\r\n },\r\n ...Object.assign({}, getDefaultConfig(), config)\r\n });\r\n }\r\n\r\n static getExcelReporting(config) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ reportingUri }${ reportingXlsUri }`,\r\n Object.assign({}, getDefaultConfig(), config)\r\n );\r\n }\r\n\r\n static getCustomerExport(pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, searchQuery, legalEntity, legalEntitySelected, accountNumberSelected, accountNumber, customer, customerSelected, config) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ reportingUri }${ customerExportXlsUri }`,\r\n { pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, searchQuery, legalEntity, legalEntitySelected, accountNumberSelected, accountNumber, customer, customerSelected },\r\n Object.assign({}, getDefaultConfig(), config)\r\n );\r\n }\r\n\r\n static getAuditTrailFile(formId, config) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ auditTrailUri }/${ formId }`,\r\n Object.assign({}, getDefaultConfig(), config)\r\n );\r\n }\r\n\r\n static getAllocationStatementFile(formId, config) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ formsUri }${ allocationStmntsUri }/${ formId }`,\r\n Object.assign({}, getDefaultConfig(), config)\r\n );\r\n }\r\n\r\n static getAllocationStatementFileByAccount(accountId, config) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ whdStatementUri }/${ accountId }/downloadoriginal`,\r\n Object.assign({}, getDefaultConfig(), config)\r\n );\r\n }\r\n\r\n static getW8ImyTreeStructure(accountId, versionNumber) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ w8imystructureUri }/${ accountId }${ versionNumber ? '/versions/' : '' }${ versionNumber ?? '' }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static validateForm(formType, formId, formData) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ formsUri }/${ formType }/${ formId }`,\r\n formData,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getMiDashboard(clientId, from, to, trendAnalysis, includeDeletedForms) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ reportingUri }${ miDashboardUri }`,\r\n { clientId, from, to, trendAnalysis, includeDeletedForms },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getMiDashboardXls(clientId, from, to, trendAnalysis, includeDeletedForms, config) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ reportingUri }${ miDashboardXlsUri }`,\r\n { clientId, from, to, trendAnalysis, includeDeletedForms },\r\n Object.assign({}, getDefaultConfig(), config)\r\n );\r\n }\r\n\r\n static searchForms(pageNumber, pageSize, sortBy, sortDirection, filters, accountNumber, clientId, customer, legalEntity, searchQuery) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ formsUri }/search`,\r\n { pageNumber, pageSize, sortByField: sortBy, sortDirection, filters, accountNumber, clientId, customer, legalEntity, searchQuery },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static searchValidationResults(\r\n pageNumber,\r\n pageSize,\r\n totalLimit,\r\n sortBy,\r\n sortDirection,\r\n filterList,\r\n searchQuery,\r\n dateFrom,\r\n dateTo,\r\n activeTab\r\n ) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ validationUri }/search`,\r\n { pageNumber, pageSize, totalLimit, sortByField: sortBy, sortDirection, filterList, searchQuery, dateFrom, dateTo, activeTab },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static cloneForm(formId, sourceCustomerId, sourceAccountId, customerId, accountId, cloneCollectableSupportingDocs) {\r\n const formData = new FormData();\r\n\r\n formData.append('sourceCustomerId', sourceCustomerId);\r\n formData.append('sourceAccountId', sourceAccountId);\r\n formData.append('customerId', customerId);\r\n formData.append('accountId', accountId);\r\n formData.append('cloneCollectableSupportingDocs', cloneCollectableSupportingDocs);\r\n\r\n return ApiService.axios\r\n .put(\r\n `${ baseApiUrl }${ formsUri }/clone/${ formId }`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static moveForm(formId, sourceCustomerId, sourceAccountId, customerId, accountId, deleteCollectableSupportingDocs) {\r\n const formData = new FormData();\r\n\r\n formData.append('sourceCustomerId', sourceCustomerId);\r\n formData.append('sourceAccountId', sourceAccountId);\r\n formData.append('customerId', customerId);\r\n formData.append('accountId', accountId);\r\n formData.append('deleteCollectableSupportingDocs', deleteCollectableSupportingDocs);\r\n\r\n return ApiService.axios\r\n .put(\r\n `${ baseApiUrl }${ formsUri }/move/${ formId }`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static submitAnswers(data) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ customerUri }/new`,\r\n data,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static lookup(data) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }/autocomplete`,\r\n data,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static deleteTempUpload(guid) {\r\n return ApiService.axios\r\n .delete(\r\n `${ baseApiUrl }/file/upload/${ guid }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static deleteSupportingDoc(id) {\r\n return ApiService.axios\r\n .delete(\r\n `${ baseApiUrl }/customers/supporting-docs/${ id }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getSupportingDoc(id, config) {\r\n return ApiService.axios({\r\n url: `${ baseApiUrl }/customers/supporting-docs/${ id }`,\r\n method: 'get',\r\n transformResponse: (data, headers) => {\r\n const blob = new Blob([data], { type: headers['content-type'] });\r\n\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob && config) {\r\n window.navigator.msSaveOrOpenBlob(blob, this.getFileNameFromHeaders(headers));\r\n return null;\r\n }\r\n return (window.URL || window.webkitURL).createObjectURL(blob);\r\n },\r\n ...Object.assign({}, getDefaultConfig(), config)\r\n });\r\n }\r\n\r\n static getFormReviewState(formId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ formsUri }/reviewstate/${ formId }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static saveFormReviewState(formId, formData) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ formsUri }/reviewstate/${ formId }`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static saveAccountReviewComments(formId, accountId, formData) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ formsUri }/reviewcomments/${ formId }/account/${ accountId }`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static saveAccountComments(accountId, formData) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }/accounts/${ accountId }/comment`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static getUserQueue(workflow, pageNumber, pageSize, totalLimit, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected, formFamilies, sortByField, sortDirection, filterList) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ workflowUri }/user/current`,\r\n { workflow, pageNumber, pageSize, totalLimit, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected, formFamilies, sortByField, sortDirection, filterList },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getWorkflowQueues(workflow, pageNumber, pageSize) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ workflowUri }/user/queues`,\r\n { workflow, pageNumber, pageSize },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getWorkflowQueue(workflow, pageNumber, pageSize, totalLimit, stage, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected, formFamilies, sortByField, sortDirection, filterList) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ workflowUri }/queue/${ stage }`,\r\n { workflow, pageNumber, pageSize, totalLimit, searchQuery, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected, formFamilies, sortByField, sortDirection, filterList },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static takeQueueItem(workflow, id) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ workflowUri }/${ workflow }/take/${ id }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static saveDraftValidationOverrides(id, accountId, data) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ validationUri }/overrides/${ id }/draft/${ accountId }`,\r\n data,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static acceptValidationOverrides(id, accountId, data) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ validationUri }/overrides/${ id }/current/${ accountId }`,\r\n data,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static acceptFormOverride(id, data) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ validationUri }/overrides/${ id }/form`,\r\n data,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getCustomerData(customerId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ customerUri }/${ customerId }/getwithdata`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getBasicCustomer(customerId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ customerUri }/${ customerId }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getBasicAccount(accountId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }/accounts/${ accountId }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static linkCustomerAccount(customerId, accounts) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ customerUri }/${ customerId }/accounts/link`,\r\n accounts,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static unLinkCustomerAccount(customerId, accountIds) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ customerUri }/${ customerId }/accounts/unlink`,\r\n accountIds,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static updateCustomerId(customerId, newCustomerId) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ customerUri }/${ customerId }/updateId`,\r\n newCustomerId,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static updateCustomer(customerId, emailAddress) {\r\n const formData = new FormData();\r\n\r\n formData.append('emailAddress', emailAddress ?? '');\r\n\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ customerUri }/${ customerId }/update`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static getCustomerLegalEntities(customerId) {\r\n const uri = `${ customerId || -1 }`;\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ customerUri }/${ uri }${ legalEntitiesUri }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static editCustomerLegalEntityLinks(customerIdList, newLegalEntityId, batchId) {\r\n const formData = new FormData();\r\n customerIdList.map(item => formData.append('customerIdList', item));\r\n formData.append('newLegalEntityId', newLegalEntityId);\r\n formData.append('batchId', batchId);\r\n\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ customerUri }${ legalEntitiesUri }/update`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static addCustomerAccount(data) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ customerUri }/add`,\r\n data,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static updateFormReference(formId, newFormRef) {\r\n const formData = new FormData();\r\n formData.append('newFormRef', newFormRef);\r\n\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ formsUri }/${ formId }/updateformref`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static editFormAssociations(formId, changes) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ formsUri }/${ formId }/reassign`,\r\n changes,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getAccountData(accountId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ accountUri }/${ accountId }/getwithdata`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static unLinkAccountForm(accountId, formIds) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ accountUri }/${ accountId }/forms/unlink`,\r\n formIds,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static linkAccountForm(accountId, formId) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ accountUri }/${ accountId }/forms/link`,\r\n formId,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static updateDualFormStatus(accountId, status) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ accountUri }/${ accountId }/updatedualformstatus`,\r\n status.toString(),\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static updateAccountNumber(accountId, formData) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ accountUri }/${ accountId }/updateaccountnumber`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static updateAccountName(accountId, formData) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ accountUri }/${ accountId }/update`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static getDetectedWithholdingRates(formId, customerId, accountId) {\r\n const normalisedAccountId = accountId != null ? accountId : '0';\r\n if (customerId) {\r\n return this.getCustomerWithholdingRates(customerId, normalisedAccountId);\r\n }\r\n\r\n if (formId) {\r\n return this.getFormWithholdingRates(formId, normalisedAccountId);\r\n }\r\n\r\n return this.getAccountWithholdingRates(accountId);\r\n }\r\n\r\n static getCustomerAccountWithholdingRates(customerId, accountId) {\r\n const normalisedAccountId = accountId || 0;\r\n if (normalisedAccountId === 0) {\r\n return this.getCustomerWithholdingRates(customerId, normalisedAccountId);\r\n }\r\n\r\n return this.getAccountWithholdingRates(accountId);\r\n }\r\n\r\n static getFormWithholdingRates(formId, accountId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ withholdingUri }/rates/${ formId }/${ accountId }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getAccountWithholdingRates(accountId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ withholdingUri }/rates/account/${ accountId }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getCustomerWithholdingRates(customerId, accountId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ withholdingUri }/rates/customer/${ customerId }/${ accountId }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getAccountWithholdingStatements(accountIds) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ accountUri }/withholdingstatements`,\r\n accountIds,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getAccountWithholdingStatement(accountId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ whdStatementUri }/${ accountId }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getAccountWithholdingStatementVersion(accountId, versionNumber) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ whdStatementUri }/${ accountId }/versions/${ versionNumber }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static updateWithholdingStatementImyParent(accountId, changeDetails) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ whdStatementUri }/${ accountId }/changeparent`,\r\n changeDetails,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getParentImyForms(customerId, accountId) {\r\n const recordType = customerId > 0 ? 'customer' : 'account';\r\n const recordId = customerId > 0 ? customerId : accountId || 0;\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ formsUri }/imyforms/${ recordType }/${ recordId }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static addBeneficialOwner(accountId, parentGuid, addImyLayer) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ whdStatementUri }/${ accountId }/addrow`,\r\n {\r\n parentGuid,\r\n addImyLayer\r\n },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static updateStatement(accountId, updates) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ whdStatementUri }/${ accountId }/update`,\r\n updates,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static updateStatementRow(accountId, rowItem) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ whdStatementUri }/${ accountId }/updaterow`,\r\n rowItem,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static deleteStatementRow(accountId, rowToDelete) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ whdStatementUri }/${ accountId }/deleterow`,\r\n rowToDelete,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static publishStatement(accountId, versionWindow) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ whdStatementUri }/${ accountId }/publish`,\r\n {\r\n effectiveFromDate: versionWindow.effectiveFromDate,\r\n effectiveToDate: versionWindow.effectiveToDate\r\n },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static updateStatementEffectiveDates(accountId, versionWindow) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ whdStatementUri }/${ accountId }/editversion/${ versionWindow.version }`,\r\n {\r\n effectiveFromDate: versionWindow.effectiveFromDate,\r\n effectiveToDate: versionWindow.effectiveToDate\r\n },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getStatementVersions(accountId, pageNumber) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ whdStatementUri }/${ accountId }/versions`,\r\n { pageNumber },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static updatePassword(updateData) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }/updateUserPassword`,\r\n updateData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static getWorkflowCicAlerts(\r\n workflowStage,\r\n pageNumber,\r\n pageSize,\r\n totalLimit,\r\n sortByField,\r\n sortDirection,\r\n filterList,\r\n raisedWithin,\r\n legalEntity,\r\n legalEntitySelected,\r\n accountNumber,\r\n accountNumberSelected,\r\n customer,\r\n customerSelected\r\n ) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ cicalertUri }/queue/${ workflowStage }`,\r\n { pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, raisedWithin, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getUserCicAlerts(\r\n pageNumber,\r\n pageSize,\r\n totalLimit,\r\n sortByField,\r\n sortDirection,\r\n filterList,\r\n raisedWithin,\r\n legalEntity,\r\n legalEntitySelected,\r\n accountNumber,\r\n accountNumberSelected,\r\n customer,\r\n customerSelected\r\n ) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ cicalertUri }/user/current`,\r\n { pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, raisedWithin, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getCicAlerts(\r\n resolved,\r\n pageNumber,\r\n pageSize,\r\n totalLimit,\r\n sortByField,\r\n sortDirection,\r\n filterList,\r\n raisedWithin,\r\n legalEntity,\r\n legalEntitySelected,\r\n accountNumber,\r\n accountNumberSelected,\r\n customer,\r\n customerSelected\r\n ) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ cicalertUri }/list`,\r\n { resolved, pageNumber, pageSize, totalLimit, sortByField, sortDirection, filterList, raisedWithin, legalEntity, legalEntitySelected, accountNumber, accountNumberSelected, customer, customerSelected },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getCicAlert(id) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ cicalertUri }/${ id }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static takeCicAlert(id) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ cicalertUri }/take/${ id }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static assignCicToUser(cicsList, userID) {\r\n const formData = new FormData();\r\n cicsList.map(item => formData.append('cicsList', item));\r\n formData.append('userId', userID);\r\n\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ cicalertUri }/assigntouser`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static saveCicReviewState(id, formData) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ cicalertUri }/reviewstate/${ id }`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static getCicAlertCounts() {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ cicalertUri }/alert-counts`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static switchClientRefreshToken() {\r\n return axios.get(\r\n `${ baseApiUrl }/switchClientRefreshToken`,\r\n getDefaultConfig()\r\n ).then((response) => {\r\n if (typeof response.data.code !== 'undefined' && response.data.code === '401') {\r\n window.location.reload();\r\n } else if (response.data.token != null) {\r\n getDefaultConfig().headers.Authorization = `Bearer ${ response.data.token }`;\r\n\r\n const originalToken = sessionStorage.getItem(EnvConfig.firstTokenName);\r\n if (!originalToken) {\r\n sessionStorage.setItem(EnvConfig.firstTokenName, sessionStorage.getItem(EnvConfig.tokenName));\r\n }\r\n\r\n sessionStorage.setItem(EnvConfig.tokenName, response.data.token);\r\n }\r\n }).catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n static getFileNameFromHeaders(headers) {\r\n const disposition = headers && headers['content-disposition'];\r\n\r\n if (disposition && disposition.indexOf('attachment') !== -1) {\r\n const filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n const matches = filenameRegex.exec(disposition);\r\n if (matches != null && matches[1]) {\r\n const filename = matches[1].replace(/['\"]/g, '');\r\n return (filename || 'form.pdf');\r\n }\r\n }\r\n return 'form.pdf';\r\n }\r\n\r\n static getAllControllingPersons(accountId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ controllingPersonsUri }/${ accountId }/controllingpersons`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static addControllingPerson(accountId, entityFormId, cpFormId, personType) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ controllingPersonsUri }/${ accountId }/controllingpersons`,\r\n { entityFormId, cpFormId, personType },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static expireControllingPerson(controllingPersonId, accountId, effectiveDate) {\r\n return ApiService.axios\r\n .put(\r\n `${ baseApiUrl }${ controllingPersonsUri }/${ accountId }/controllingpersons/${ controllingPersonId }/expire`,\r\n { effectiveDate },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static removeControllingPerson(controllingPersonId, accountId) {\r\n return ApiService.axios\r\n .delete(\r\n `${ baseApiUrl }${ controllingPersonsUri }/${ accountId }/controllingpersons/${ controllingPersonId }/remove`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static linkAccountToImyStructure(accountId, accountIdToLinkTo) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ accountUri }/${ accountId }/linkImyStructure`,\r\n accountIdToLinkTo,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getLinkOperationStatus(accountId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ accountUri }/${ accountId }/linkoperationstatus`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getLinkOperationStatuses(accountIds) {\r\n let idQueryString = '';\r\n if (accountIds && accountIds.length > 0) {\r\n idQueryString = `ids=${ accountIds.join('&ids=') }`;\r\n }\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ accountUri }/linkoperationstatus?${ idQueryString }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getAccountLinkedImyStructure(accountId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ accountUri }/${ accountId }/imystructure`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static checkTin(formId, updateExisting) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ tinMatchApiUri }/checktin/${ formId }?updateExisting=${ updateExisting }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getIgaSubClassificationCombos() {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ configUri }/igasubclassifications`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getStockMarkets() {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ staticDataUri }/getstockmarkets`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static changePrimaryAddress(customerId, newAddressId) {\r\n const formData = new FormData();\r\n formData.append('newPrimaryAddressId', newAddressId);\r\n\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ customerUri }/${ customerId }/addresses/changeprimary`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static changePrimaryJotr(customerId, newJotrId) {\r\n const formData = new FormData();\r\n formData.append('newPrimaryTaxResidenceId', newJotrId);\r\n\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ customerUri }/${ customerId }/jotrs/changeprimary`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static changeWhdJotr(customerId, newJotrId) {\r\n const formData = new FormData();\r\n formData.append('newWhdTaxResidenceId', newJotrId);\r\n\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ customerUri }/${ customerId }/jotrs/changewhd`,\r\n formData,\r\n getFormDataConfig()\r\n );\r\n }\r\n\r\n static downloadFormSummary(formId, config) {\r\n return ApiService.axios({\r\n url: `${ baseApiUrl }${ formsUri }/${ formId }/report`,\r\n method: 'get',\r\n transformResponse: (data, headers) => {\r\n const blob = new Blob([data], { type: 'application/pdf' });\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob && config) {\r\n window.navigator.msSaveOrOpenBlob(blob, 'validationresult');\r\n return null;\r\n }\r\n return (window.URL || window.webkitURL).createObjectURL(blob);\r\n },\r\n ...Object.assign({}, getDefaultConfig(), config)\r\n });\r\n }\r\n\r\n /* Retry Code */\r\n static queuedPromises = [];\r\n\r\n static isProcessingQueue = false;\r\n\r\n static startQueuedRequestRetryTimeout = 0;\r\n\r\n static globalRetryCount = 0;\r\n\r\n static insertQueuedPromise(promise) {\r\n if (promise != null) {\r\n if (typeof promise.priority === 'undefined') {\r\n promise.priority = 99;\r\n }\r\n\r\n const idx = ApiService.queuedPromises.findIndex(x => !x.priority || x.priority < promise.priority);\r\n ApiService.queuedPromises.splice(idx, 0, promise);\r\n }\r\n }\r\n\r\n static addQueuedPromise(promise, error) {\r\n if (promise != null) {\r\n ApiService.queuedPromises.push(promise);\r\n }\r\n }\r\n\r\n static retryPromise(promise) {\r\n if (!promise) {\r\n return Promise.reject(new Error('Empty promise'));\r\n }\r\n\r\n ApiService.globalRetryCount += 1;\r\n return Promise.resolve(promise());\r\n }\r\n\r\n static retryRequest(request) {\r\n if (!request) {\r\n return Promise.reject(new Error('Empty promise'));\r\n }\r\n if (request.preventRetries) {\r\n return Promise.reject(new Error('Requests set not to retry'));\r\n }\r\n\r\n const requestConfig = { ...request, retries: (request.retries || 0) + 1 };\r\n ApiService.globalRetryCount += 1;\r\n return Promise.resolve(ApiService.axios.request(requestConfig));\r\n }\r\n\r\n static delayRetryRequest(ms, requestConfig) {\r\n return new Promise((resolve) => { setTimeout(resolve, ms); }).then(() => ApiService.retryRequest(requestConfig));\r\n }\r\n\r\n static processQueuedPromises(bypassCheck) {\r\n if (!bypassCheck && ApiService.isProcessingQueue) {\r\n return;\r\n }\r\n\r\n ApiService.isProcessingQueue = true;\r\n ApiService.startQueuedRequestRetryTimeout = 0;\r\n clearTimeout(ApiService.startQueuedRequestRetryTimeout);\r\n\r\n if (ApiService.queuedPromises && ApiService.queuedPromises.length > 0) {\r\n const request = ApiService.queuedPromises.shift();\r\n ApiService.retryPromise(\r\n request\r\n ).then(() => {\r\n // Should only hit here if successful?\r\n ApiService.startQueuedRequestRetryTimeout = 0;\r\n clearTimeout(ApiService.startQueuedRequestRetryTimeout);\r\n ApiService.isProcessingQueue = false;\r\n if (ApiService.globalRetryCount < 2) {\r\n ApiService.processQueuedPromises(false);\r\n }\r\n }).catch((error) => {\r\n ApiService.isProcessingQueue = false;\r\n Promise.reject(error);\r\n });\r\n } else {\r\n ApiService.isProcessingQueue = false;\r\n }\r\n }\r\n}\r\n\r\nApiService.axios.interceptors.response.use(\r\n (response) => {\r\n ApiService.processQueuedPromises(false);\r\n ApiService.globalRetryCount = 0;\r\n updateConnectionStatus(true, 0);\r\n return response;\r\n },\r\n (error) => {\r\n if (error.response) {\r\n if (error.response.status === HTTP_401_UNAUTHORIZED) {\r\n const url = error.response.config && error.response.config.url;\r\n if (url !== `${ baseApiUrl }${ tokenUri }` && url !== `${ baseApiUrl }/auth/state`) {\r\n localStorage.setItem('taina.reset', Date.now());\r\n triggerSessionReset();\r\n return new Promise(() => {});\r\n }\r\n }\r\n\r\n if ([HTTP_408_REQUESTTIMEOUT, HTTP_429_TOOMANYREQUESTS, HTTP_502_BADGATEWAY, HTTP_503_SERVICEUNAVAILABLE].indexOf(error.response.status) > -1 && error.response.config) {\r\n if (error.response.config.retries >= 1) {\r\n error = { ...error, retries: error.response.config.retries };\r\n if (error.response.status === HTTP_429_TOOMANYREQUESTS || error.response.config.retries === 1) {\r\n return ApiService.delayRetryRequest(3 * 1000, error.response.config);\r\n }\r\n } else {\r\n return ApiService.retryRequest(error.response.config);\r\n }\r\n }\r\n } else if (error.message === 'Network Error') {\r\n updateConnectionStatus(false, ApiService.globalRetryCount);\r\n if (error.config && ApiService.globalRetryCount >= 1) {\r\n error = { ...error, retries: ApiService.globalRetryCount };\r\n if (error.config.retries === 1) {\r\n return ApiService.delayRetryRequest(3 * 1000, error.config);\r\n }\r\n } else {\r\n return ApiService.retryRequest(error.config);\r\n }\r\n }\r\n\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nfunction refreshToken() {\r\n if (getDefaultConfig().headers.Authorization.length > 15) {\r\n axios.get(\r\n `${ baseApiUrl }/refreshToken`,\r\n getDefaultConfig()\r\n ).then((response) => {\r\n if (typeof response.data.code !== 'undefined' && response.data.code === HTTP_401_UNAUTHORIZED) {\r\n localStorage.setItem('taina.reset', Date.now());\r\n triggerSessionReset();\r\n } else if (response.data.token != null) {\r\n getDefaultConfig().headers.Authorization = `Bearer ${ response.data.token }`;\r\n\r\n const originalToken = sessionStorage.getItem(EnvConfig.firstTokenName);\r\n if (!originalToken) {\r\n sessionStorage.setItem(EnvConfig.firstTokenName, sessionStorage.getItem(EnvConfig.tokenName));\r\n }\r\n\r\n sessionStorage.setItem(EnvConfig.tokenName, response.data.token);\r\n }\r\n }).catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n setTimeout(refreshToken, 300000);\r\n}\r\n\r\nsetTimeout(refreshToken, 300000);\r\n","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + {\"5\":\"blank.w8imy\",\"83\":\"blank.fatcacrse2023\",\"88\":\"blank.w8exp2023\",\"121\":\"blank.ucrse2019\",\"181\":\"blank.rc518\",\"192\":\"pdf\",\"203\":\"blank.w8imy2017\",\"206\":\"blank.w8exp2017\",\"240\":\"blank.w9\",\"318\":\"ag-grid-react\",\"329\":\"blank.w8exp\",\"351\":\"blank.ucrscp2019\",\"370\":\"blank.crsi\",\"417\":\"blank.w8ben\",\"426\":\"blank.w8eci2017\",\"430\":\"blank.crsi2024\",\"509\":\"blank.fatcacrsi2023\",\"515\":\"blank.w8bene2017\",\"529\":\"blank.w8eci2021\",\"544\":\"blank.w8eci\",\"601\":\"blank.w92024\",\"653\":\"blank.w8ben2021\",\"707\":\"blank.crsebba\",\"742\":\"blank.w8bene2021\",\"838\":\"blank.rc519\",\"864\":\"blank.fatcacrsi2022\",\"890\":\"blank.w92018\",\"900\":\"blank.w8bene\",\"904\":\"blank.w8imy2021\",\"922\":\"blank.crscp\",\"976\":\"blank.w92017\",\"978\":\"blank.crse\",\"990\":\"blank.w8ben2014\",\"996\":\"blank.fatcacrse2022\"}[chunkId] + \".bundle.js?\" + {\"5\":\"d43ba22837181774944d\",\"83\":\"6dceaf2707497412169e\",\"88\":\"02f91b120c8fc49d50a4\",\"121\":\"8745261b25b531cdb1fd\",\"181\":\"8dce2a32c50371d3c8df\",\"192\":\"a776a6452235ae0a1f67\",\"203\":\"5a62652a66e060f3dcfa\",\"206\":\"dc113df4bdd0a525f5e1\",\"240\":\"8c5cd47c2a44e61651c1\",\"318\":\"aa3666d88282becadc5f\",\"329\":\"c7c52906e8d20922ecb9\",\"351\":\"696081bb80be9717f88c\",\"370\":\"735c3023cf379da1512f\",\"417\":\"02eec7b416e387dc806e\",\"426\":\"36ffbfcd09601f567271\",\"430\":\"049ae5e9d0584c88b870\",\"509\":\"690f5911f6accda25dec\",\"515\":\"0480610b267e05bae28d\",\"529\":\"0af483803cab6bb9835e\",\"544\":\"1071d96ab55880b88182\",\"601\":\"03e3634cd94c1f778200\",\"653\":\"f706f60cc85d3b1de6bd\",\"707\":\"738a9877412b6cda33ee\",\"742\":\"729eee18318db7f1a5d7\",\"838\":\"22a58b7b285f60cc5959\",\"864\":\"307e2ee3b63b6b6ef341\",\"890\":\"f5be7b9005da6fe7f5de\",\"900\":\"971e2b97828a1503696f\",\"904\":\"3fd4d087f8b85d50a9ff\",\"922\":\"206a8619f346d7d95010\",\"976\":\"b6e4999c25f63dd72278\",\"978\":\"de13f2cd0dc21c981e58\",\"990\":\"4c43a9102c7b2cc42f5d\",\"996\":\"92b6ff50c349ef6d981a\"}[chunkId] + \"\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunktaina_validator_web_app\"] = self[\"webpackChunktaina_validator_web_app\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [940,577,102,736], function() { return __webpack_require__(32416); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","GET_PII_VALIDATION_CODES_REQUEST","GET_PII_VALIDATION_CODES_SUCCESS","GET_PII_VALIDATION_CODES_FAILURE","receiveGetPiiValidationCodes","piiValidationCodes","type","rejectGetPiiValidationCodes","getPiiValidationCodes","dispatch","selectedClient","getStorageSetting","isPiiProtectionEnabled","promise","ApiService","then","response","data","catch","error","retries","handleException","USER_CONFIG_REQUEST","USER_CONFIG_SUCCESS","USER_CONFIG_FAILURE","reject","getUserConfig","decryptedData","permissions","noActiveClients","jsonObject","key","sessionStorage","getItem","EnvConfig","decryptedText","CryptoJS","substring","toString","JSON","parse","clients","length","currentSettings","newSelectedClient","filter","x","stringify","setItem","username","settings","receive","AUTH_STATE_REQUEST","AUTH_STATE_SUCCESS","AUTH_STATE_FAILURE","AUTH_STATE_UNAUTHORISED","SET_AUTH_STATE","unauthorised","getAuthState","_response$data","token","sessionAuthMode","isFetching","isAuthenticated","code","status","SITE_CONFIG_REQUEST","SITE_CONFIG_SUCCESS","SITE_CONFIG_FAILURE","SITE_CONFIG_UNLICENSED","unlicensed","getSiteConfig","_response$data$gridTo","authMode","supportingDocTypes","updateGridSettings","gridTotalLimit","getJurisdictions","getIgaSubClassificationCombos","LOGIN_REQUEST","LOGIN_SUCCESS","LOGIN_FAILURE","REMEMBER_PATH_BEFORE_LOGIN","RESTORE_PATH_AFTER_LOGIN","RESET_AUTH_ERROR","loginError","errorMessage","loginUser","creds","login","isFetchingUserConfig","receiveLogin","externalLogin","window","location","rememberPathBeforeLogin","path","restorePath","resetRestorePath","resetAuthError","LOGOUT_SUCCESS","logoutUser","switchClient","useExtenalLogout","clearSelectedClient","clear","url","triggerSessionReset","e","Event","document","dispatchEvent","OPEN_PASSWORD_CHANGE_MODAL","CLOSE_PASSWORD_CHANGE_MODAL","FAILED_PASSWORD_CHANGE_MODAL","showPasswordChangeModal","isPasswordChangeModalShown","hidePasswordChangeModal","changePasswordError","showFailedPasswordChangeModal","failedPasswordChangeModal","closeFailedPasswordChangeModalError","CHANGE_PASSWORD_REQUEST","userPasswordChange","updateData","FormData","append","newPwd","confirmPwd","_regeneratorRuntime","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","UPDATE_SELECTED_CLIENT","updateSelectedClient","decryptSettings","getStorageKey","options","encryptSettings","getActivityPermissions","encryptedData","proceedWithClient","client","localStorage","Date","now","_ref","_callee","_context","_x","_ref2","_callee2","_context2","_x2","UPDATE_GRID_TOTAL_LIMIT","limit","GET_IGACOMBOS_SUCCESS","GET_IGACOMBOS_FAILURE","igaSubClassificationsCombos","GET_JURISDICTIONS_SUCCESS","GET_JURISDICTIONS_FAILURE","jurisdictions","CONNECTION_STATUS","pushUpdatedConnectionStatus","isOnline","connectionInfo","updateConnectionStatus","navigator","connection","mozConnection","webkitConnection","rtt","DOWNLOAD_FILE","downloadFile","filename","mimeType","blob","Blob","msSaveBlob","blobUrl","URL","createObjectURL","tempLink","createElement","href","setAttribute","body","appendChild","click","removeChild","downloadedFilename","requestDownloadFile","GET_SPECIALRATEPROVISIONS_SUCCESS","GET_SPECIALRATEPROVISIONS_CLEAR","getSpecialRateProvisions","treatCountry","lobProvisions","hasPensionClaim","includes","specialRateProvisions","OPEN_ABOUT","CLOSE_ABOUT","API_STATUS","apiStatus","openAboutModal","closeAboutModal","getApiStatus","assemblies","GET_STOCKMARKETS_SUCCESS","GET_STOCKMARKETS_FAILURE","getStockMarkets","stockMarkets","HANDLE_CONNECTION_EXCEPTION","connectionException","title","message","handleConnectionException","exception","callbackActionCreator","showNetworkErrorAlert","_exception$errorMessa","console","Logger","request","config","toastr","HANDLE_SERVER_EXCEPTION","handleServerException","exceptionResponse","showAlert","concat","_objectSpread","requestHandleServerException","HANDLE_UNCAUGHT_EXCEPTION","handleUncaughtException","stack","colno","lineno","requestHandleUncaughtException","undefined","ErrorEvent","CHANGE_IMY_PARENT_ACCOUNT_REQUEST","CHANGE_IMY_PARENT_ACCOUNT_SUCCESS","CHANGE_IMY_PARENT_ACCOUNT_FAILURE","changeImyTierParent","accountId","changeDetails","requestChangeImyParentAccount","statementContainer","receiveChangeImyParentAccount","rejectChangeImyParentAccount","GET_CUSTOMER_WHD_REQUEST","GET_CUSTOMER_WHD_SUCCESS","GET_CUSTOMER_WHD_FAILURE","RESET_WHD_RATES","getWhdDetails","customerId","isGettingWhd","requestGetWhd","accountWithholdingRates","receiveGetWhd","rejectGetWhd","resetWithholdingRates","GET_WHD_STMT_REQUEST","GET_WHD_STMT_SUCCESS","GET_WHD_STMT_FAILURE","RESET_WHD_STMT_LIST","RESET_ACCOUNT_WHS_LINKING","getWhdStatement","versionNumber","isGettingStatement","requestGetWhdStatement","apiCall","receiveGetWhdStatement","rejectGetWhdStatement","SET_WHD_SCROLL_POSITION","setStatementPosition","scrollPosition","storeStatementPosition","ScrollIntoView","elementId","attempt","setTimeout","element","getElementById","scrollToY","offsetTop","closest","scrollTo","top","behavior","pageYOffset","screenTop","direction","smoothScroll","Math","min","max","nextAttempt","ADD_NEW_BO_REQUEST","ADD_NEW_BO_SUCCESS","ADD_NEW_BO_FAILURE","addNewBeneficialOwner","parentGuid","isImylayer","isPooled","isAddingNewBeneficalOwner","addNewRowContainer","newRowGuid","RowGuid","rowGuid","UPDATE_POOLED_RATES_REQUEST","UPDATE_POOLED_RATES_SUCCESS","UPDATE_POOLED_RATES_FAILURE","SAVE_IMY_TREEVIEW_OPTIONS","SET_PAYMENT_TYPES","UPDATE_AVAILABLE_PAYMENT_TYPES","SET_STRUCTURE_ID","saveImyTreeViewOptions","id","processSave","setPaymentTypes","structureId","setStructureId","UPDATE_WHD_STMT_REQUEST","UPDATE_WHD_STMT_SUCCESS","UPDATE_WHD_STMT_FAILURE","UPDATE_WHD_STMT_ROW_REQUEST","UPDATE_WHD_STMT_ROW_SUCCESS","UPDATE_WHD_STMT_ROW_FAILURE","updateStatement","statement","newPaymentTypeOptions","paymentTypes","validationResult","structure","topAccount","receiveUpdateWhdStatement","rejectUpdateWhdStatement","updateStatementRow","rowUpdate","isStructureValid","rejectUpdateWhdStatementRow","SAVE_WHD_COLLAPSED_TIERS","saveCollapsedTiers","tiersObject","saveWhdCollapsedTiers","DELETE_WHD_STMT_ROW_REQUEST","DELETE_WHD_STMT_ROW_SUCCESS","DELETE_WHD_STMT_ROW_FAILURE","deleteStatementRow","rowToDelete","PUBLISH_WHD_STMT_REQUEST","PUBLISH_WHD_STMT_SUCCESS","PUBLISH_WHD_STMT_FAILURE","publishStatement","versionWindow","effectiveDate","effectiveFromDate","effectiveToDate","version","isRepublish","OPEN_EFFECTIVE_DATE_CONFIRM_MODAL","CLOSE_EFFECTIVE_DATE_CONFIRM_MODAL","showEffectiveDateConfirmation","hideEffectiveDateConfirmation","GET_WHD_VERSIONS_REQUEST","GET_WHD_VERSIONS_SUCCESS","GET_WHD_VERSIONS_FAILURE","getStatementVersions","pageNumber","versions","LOAD_ACCOUNT","LOAD_ACCOUNT_DATA","LOAD_ACCOUNT_DATA_FAILURE","LINK_ACCOUNT_CUSTOMER","UNLINK_ACCOUNT_CUSTOMER","UNLINK_ACCOUNT_FORM_REQUEST","UNLINK_ACCOUNT_FORM_SUCCESS","UNLINK_ACCOUNT_FORM_FAILURE","CLEAR_ACCOUNT_REQUEST","OPEN_UNLINK_FORM_MODAL","CLOSE_UNLINK_FORM_MODAL","OPEN_ACCOUNT_NUMBER_CHANGE_FORM_MODAL","CLOSE_ACCOUNT_NUMBER_CHANGE_FORM_MODAL","CLOSE_ACCOUNT_NUMBER_CHANGE_FORM_ERROR","ACCOUNT_NUMBER_CHANGE_CLEAR_REQUEST","OPEN_LINK_IMY_STRUCTURE_CONFIRM_MODAL","CLOSE_LINK_IMY_STRUCTURE_CONFIRM_MODAL","LINK_ACCOUNT_TO_IMY_STRUCTURE_REQUEST","LINK_ACCOUNT_TO_IMY_STRUCTURE_SUCCESS","LINK_ACCOUNT_TO_IMY_STRUCTURE_FAILURE","WHS_LINK_OPERATION_STATUS_REQUEST","WHS_LINK_OPERATION_STATUS_SUCCESS","WHS_LINK_OPERATION_STATUS_FAILED","WHS_LINK_OPERATION_STATUS_RETRIES_FAILED","WHS_LINK_OPERATION_STATUS_LIST_REQUEST","WHS_LINK_OPERATION_STATUS_LIST_SUCCESS","WHS_LINK_OPERATION_STATUS_LIST_FAILED","rejectUnlinkAccountForm","unlinkFormError","rejectAccountDataLoad","accountDataLoadError","rejectLinkAccountToImyStructure","getWhsLinkOperationStatusReceived","accountWhsLinkStatus","isWhsLinkingActive","isGettingWhsLinkOperationStatus","isLinkingToImyStructureModalShown","getLinkOperationStatusRetriesFailed","getLinkOperationStatusFailed","getLinkOperationStatusesFailed","GetLinkOperationStatus","reloadOnComplete","WhsLinkOperationStatus","reload","GetLinkOperationStatuses","accountIds","whsLinkStatuses","accountDataLoad","account","storeAccount","clearAccountData","accountCustomerLink","addedCustomerData","customerAccount","CustomerId","Capacity","capacity","ValidFrom","validFrom","ValidUntil","validUntil","Account","showAccountNumberChangeModal","isAccountNumberChangeModalShown","hideAccountNumberChangeModal","returnedExistingAccountId","closeAccountNumberChangeModal","accountCustomerUnlink","accountCustomer","accountFormUnlink","formId","formIds","showUnlinkFormModal","hideUnlinkFormModal","processAccountNumberChange","formData","newNumber","showLinkToImyStructureConfirmModal","targetWhsLinkAccount","openLinkToImyStructureConfirmModal","hideLinkToImyStructureConfirmModal","linkAccountToImyStructure","accountIdToLinkTo","GET_ACCOUNTS_REQUEST","GET_ACCOUNTS_SUCCESS","GET_ACCOUNTS_FAILURE","rejectGetAccounts","isGettingAccounts","getAccounts","pageSize","totalLimit","sortByField","sortDirection","filterList","searchQuery","legalEntity","legalEntitySelected","accountNumber","accountNumberSelected","accounts","accountsCount","items","totalCount","getAccountsByObject","requestObject","OPEN_UPDATE_DUAL_FORM_STATUS_MODAL","CLOSE_UPDATE_DUAL_FORM_STATUS_MODAL","REQUEST_UPDATE_DUAL_FORM_STATUS","RECIEVE_UPDATE_DUAL_FORM_STATUS","UPDATE_DUAL_FORM_STATUS_FAILURE","closeUpdateDualFormStatusModal","showModal","updateDualFormStatusError","showUpdateDualFormStatusModal","checkStatus","dualFormCheckStatus","dualFormSelectedAccountId","dualFormSeletedAccountNumber","openUpdateDualFormStatusModal","hideUpdateDualFormStatusModal","updateDualFormStatus","SAVE_ACCOUNT_COMMENTS_REQUEST","SAVE_ACCOUNT_COMMENTS_SUCCESS","SAVE_ACCOUNT_COMMENTS_FAILURE","accountError","isSavingAccount","saveAccountComments","newComment","savedComment","EDIT_ACCOUNT_NAME","EDIT_ACCOUNT_NAME_CANCEL","UPDATE_ACCOUNT_NAME_REQUEST","UPDATE_ACCOUNT_NAME_SUCCESS","UPDATE_ACCOUNT_NAME_ERROR","editAccountName","cancelEditAccountName","updateAccountName","accountName","GET_ACCOUNT_LINKED_IMY_STRUCTURE_REQUEST","GET_ACCOUNT_LINKED_IMY_STRUCTURE_SUCCESS","GET_ACCOUNT_LINKED_IMY_STRUCTURE_FAILURE","GET_ACCOUNT_LINKED_IMY_STRUCTURE_CLEAR","clearAccountLinkedImyStructure","getAccountLinkedImyStructure","linkedImyStructure","LOAD_CUSTOMER","LOAD_CUSTOMER_DATA","LOAD_CUSTOMER_DATA_FAILURE","LINK_CUSTOMER_ACCOUNT","UNLINK_CUSTOMER_ACCOUNT","OPEN_CUSTOMERID_CHANGE_FORM_MODAL","CLOSE_CUSTOMERID_CHANGE_FORM_MODAL","CLOSE_CUSTOMERID_CHANGE_FORM_ERROR","CLEAR_CHANGECUSTOMERID_REQUEST","CLEAR_CUSTOMER_REQUEST","clearCompletedCustomerIdChange","rejectCustomerDataLoad","customerDataLoadError","customerDataLoad","customer","storeCustomer","clearCustomerData","customerAccountLink","addedAccountData","customerAccounts","customerAccountUnlink","showCustomerIdChangeModal","isCustomerIdChangeModalShown","hideCustomerIdChangeModal","returnedExistingCustomerId","closeCustomerIdChangeModal","processCustomerIdChange","newId","GET_CUSTOMERS_REQUEST","GET_CUSTOMERS_SUCCESS","GET_CUSTOMERS_FAILURE","rejectGetCustomers","isGettingCustomers","getCustomers","customerSelected","customers","customersCount","getCustomersByObject","GET_CUSTOMER_DETAILS_REQUEST","GET_CUSTOMER_DETAILS_SUCCESS","GET_CUSTOMER_DETAILS_FAILURE","GET_CUSTOMER_DETAILS_CLEAR","getCustomerDetails","rowId","customerDetails","getCustomerDetailsError","clearCustomerDetails","ADD_CUSTOMER_ACCOUNT_REQUEST","ADD_CUSTOMER_ACCOUNT_SUCCESS","ADD_CUSTOMER_ACCOUNT_FAILURE","ADD_CUSTOMER_ACCOUNT_CLEAR_CUSTOMER","ADD_CUSTOMER_ACCOUNT_CLEAR_ACCOUNT","addCustomerAccountErrors","isAddingCustomerAccount","ErrorItem","React","ResultToastr","result","success","errors","customerDbId","accountDbId","newCustomer","newAccount","idsGiven","className","Link","to","split","map","clearForm","selectionValue","clearSelectedCustomer","clearSelectedAccount","addCustomerAccount","toastOptions","disableCancel","component","GET_BASIC_CUSTOMER_REQUEST","GET_BASIC_CUSTOMER_SUCCESS","GET_BASIC_CUSTOMER_FAILURE","rejectGetBasicCustomer","isGettingBasicCustomer","getBasicCustomer","basicCustomer","GET_BASIC_ACCOUNT_REQUEST","GET_BASIC_ACCOUNT_SUCCESS","GET_BASIC_ACCOUNT_FAILURE","isGettingBasicAccount","getBasicAccount","basicAccount","EDIT_CUSTOMER","EDIT_CUSTOMER_CANCEL","UPDATE_CUSTOMER_REQUEST","UPDATE_CUSTOMER_SUCCESS","UPDATE_CUSTOMER_ERROR","editCustomer","cancelEditCustomer","updateCustomer","emailAddress","OPEN_CUSTOMER_ADDRESSES_MODAL","CLOSE_CUSTOMER_ADDRESSES_MODAL","CHANGE_PRIMARY_ADDRESS_REQUEST","CHANGE_PRIMARY_ADDRESS_SUCCESS","CHANGE_PRIMARY_ADDRESS_FAILURE","openCustomerAddressesModal","addressType","open","closeCustomerAddressesModal","changePrimaryAddress","addressId","addresses","OPEN_CUSTOMER_JOTRS_MODAL","CLOSE_CUSTOMER_JOTRS_MODAL","CHANGE_PRIMARY_JOTR_REQUEST","CHANGE_PRIMARY_JOTR_SUCCESS","CHANGE_PRIMARY_JOTR_FAILURE","CHANGE_WHD_JOTR_REQUEST","CHANGE_WHD_JOTR_SUCCESS","CHANGE_WHD_JOTR_FAILURE","rejectPrimary","rejectWhd","openCustomerJotrsModal","closeCustomerJotrsModal","changePrimaryJotr","jotrId","jotrs","changeWhdJotr","ACCEPT_OVERRIDES_REQUEST","ACCEPT_OVERRIDES_SUCCESS","ACCEPT_OVERRIDES_FAILURE","validationOverridesError","isSavingValidationOverrides","acceptValidationOverrides","ACCOUNT_WITHHOLDING_OPEN_MODAL","ACCOUNT_WITHHOLDING_CLOSE_MODAL","ACCOUNT_WITHHOLDING_REQUEST","ACCOUNT_WITHHOLDING_SUCCESS","ACCOUNT_WITHHOLDING_FAILURE","IMYTREE_WITHHOLDING_FLAG","POOLED_RATES_OPEN_MODAL","POOLED_RATES_CLOSE_MODAL","setImyTreeWithholdingFlag","flag","showRate","rejectAccountWithholding","getWithholdingRates","accountWithholding","showImyTreeWithholding","hideImyTreeWithholding","showAccountWithholdingModal","hideAccountWithholdingModal","switchAccountForWithholding","showPooledRatesModal","guid","rates","pooledRates","selectedPooledAccount","openPooledRatesModal","hidePooledRatesModal","OPEN_ADD_FORM_MODAL","CLOSE_ADD_FORM_MODAL","showAddFormModal","imyTier","addImyLayer","isAddFormModalShown","results","openAddFormModal","hideAddFormModal","isAddingForm","addingFormResults","ADD_FORM_REQUEST","ADD_FORM_SUCCESS","ADD_FORM_FAILURE","RESET_ADDING_FORM","rejectAddForm","addForm","onlineForm","postData","parentAccountId","clientId","legalEntities","customerObject","le","wFormReference","crsFormReference","fatcaCrsFormReference","imyParentCustomer","isNewAccount","isNewCustomer","customerType","usNonUs","wForm","wForms","formType","forms","date","wFormDate","crsForm","crsForms","crsFormType","crsFormDate","fatcaCrsForm","fatcaCrsForms","fatcaCrsFormType","fatcaCrsFormDate","imy","indexOf","statementType","whdStatementType","whdStatement","file","accountGuid","imyAccountGuid","beneficiaryForms","benefForms","imyReplacement","customerName","supportingDocs","documents","originEmail","redirectUrl","hideAddFormResults","ADD_ONLINE_FORM_REQUEST","ADD_ONLINE_FORM_SUCCESS","addOnlineForm","formReference","formCategory","startsWith","isAddingOnlineForm","_error$response","_error$response$data","_error$response$data$","SUPPORTING_DOC_ADDED","addSupportingDoc","newSupportingDoc","supportingDocAdded","SUPPORTING_DOC_DELETE_REQUEST","SUPPORTING_DOC_DELETE_SUCCESS","SUPPORTING_DOC_DELETE_FAILURE","rejectSupportingDocDelete","supportingDocError","isDeletingSupportingDocId","deleteSupportingDoc","docId","receiveSupportingDocDelete","GET_SUPPORTING_DOC_REQUEST","GET_SUPPORTING_DOC_SUCCESS","GET_SUPPORTING_DOC_FAILURE","rejectGetSupportingDoc","getSupportingDocError","isFetchingSupportingDoc","getSupportingDoc","responseType","supportingDocData","supportingDocContentType","disposition","headers","matches","exec","replace","supportingDocFilename","GET_WHD_FORMS_REQUEST","GET_WHD_FORMS_SUCCESS","GET_WHD_FORMS_FAILURE","ADD_WHD_FORM_REQUEST","ADD_WHD_FORM_SUCCESS","ADD_WHD_FORM_FAILURE","RESET_ADDING_WHD_FORM","OPEN_ADD_WHD_FORM_MODAL","CLOSE_ADD_WHD_FORM_MODAL","GET_FORMS_REQUEST","GET_FORMS_SUCCESS","GET_FORMS_FAILURE","rejectGetForms","isGettingForms","getForms","formTypes","formsCount","getFormsByObject","SEARCH_FORMS_REQUEST","SEARCH_FORMS_SUCCESS","SEARCH_FORMS_FAILURE","VALIDATE_FORM_REQUEST","VALIDATE_FORM_SUCCESS","VALIDATE_FORM_FAILURE","rejectValidateForm","validationFormError","isValidatingForm","validateForm","requestValidateForm","initialize","reduxFormName","formName","splitIndex","lastIndexOf","getFormName","reponse","OPEN_DELETE_FORM_MODAL","CLOSE_DELETE_FORM_MODAL","showDeleteFormModal","formsToDelete","isDeleteFormModalShown","openDeleteFormModal","hideDeleteFormModal","deleteFormResponse","deleteFormError","COMPLETE_BATCH_REQUEST","COMPLETE_BATCH_SUCCESS","COMPLETE_BATCH_FAILURE","rejectCompleteBatch","isCompletingBatch","completeBatch","batchId","completeCallback","callbackParameters","_toConsumableArray","batchCompleteSuccessful","GET_BATCH_REQUEST","GET_BATCH_SUCCESS","GET_BATCH_FAILURE","rejectGetBatch","isGettingBatch","getBatch","batchItem","GET_BATCHES_REQUEST","GET_BATCHES_SUCCESS","GET_BATCHES_FAILURE","rejectGetBatches","isGettingBatches","getBatches","sortBy","filters","batches","batchesCount","SEARCH_BATCHES_REQUEST","SEARCH_BATCHES_SUCCESS","SEARCH_BATCHES_FAILURE","rejectSearchBatches","searchBatches","GET_BATCH_FILES_REQUEST","GET_BATCH_FILES_SUCCESS","GET_BATCH_FILES_FAILURE","rejectGetBatchFiles","isGettingBatchFiles","getBatchFiles","batchFiles","batchFilesCount","SEARCH_BATCH_FILES_REQUEST","SEARCH_BATCH_FILES_SUCCESS","SEARCH_BATCH_FILES_FAILURE","rejectSearchBatchFiles","searchBatchFiles","GET_BATCH_FORMS_REQUEST","GET_BATCH_FORMS_SUCCESS","GET_BATCH_FORMS_FAILURE","rejectGetBatchForms","isGettingBatchForms","getBatchForms","batchFileId","batchFileItem","batchForms","batchFormsCount","batch","batchFile","SEARCH_BATCH_FORMS_REQUEST","SEARCH_BATCH_FORMS_SUCCESS","SEARCH_BATCH_FORMS_FAILURE","rejectSearchBatchForms","searchBatchForms","GET_BATCH_FILE_PDF_REQUEST","GET_BATCH_FILE_PDF_SUCCESS","GET_BATCH_FILE_PDF_FAILURE","batchFilePdfError","isFetchingBatchFilePdf","getBatchFilePdf","originalFileName","batchFilePdfData","batchFileOriginalFileName","OPEN_DELETE_BATCH_MODAL","CLOSE_DELETE_BATCH_MODAL","showDeleteBatchModal","batchToDelete","isDeleteBatchModalShown","openDeleteBatchModal","hideDeleteBatchModal","deleteBatchResponse","deleteBatchError","DELETE_BATCH_REQUEST","DELETE_BATCH_SUCCESS","DELETE_BATCH_FAILURE","rejectDeleteBatch","isDeletingBatch","deleteBatch","batchDisplayId","refreshAction","DELETE_FORM_REQUEST","DELETE_FORM_SUCCESS","DELETE_FORM_FAILURE","requestDeleteForm","isDeletingForm","receiveDeleteForm","rejectDeleteForm","deleteFormFromTree","redirectAfterDelete","toLowerCase","deleteBatchForm","DELETE_FORMS_REQUEST","DELETE_FORMS_SUCCESS","DELETE_FORMS_FAILURE","rejectDeleteForms","deleteFormsError","isDeletingForms","deleteFormsResponse","deleteForms","callback","ACCEPT_FORM_OVERRIDE_REQUEST","ACCEPT_FORM_OVERRIDE_SUCCESS","ACCEPT_FORM_OVERRIDE_FAILURE","OPEN_FORM_OVERRIDE_MODAL","CLOSE_FORM_OVERRIDE_MODAL","OPEN_CANCEL_FORM_OVERRIDE_MODAL","CLOSE_CANCEL_FORM_OVERRIDE_MODAL","showFormOverrideModal","hideFormOverrideModal","showCancelFormOverrideModal","hideCancelFormOverrideModal","acceptFormOverride","cancelFormOverride","isDraft","override","valid","GET_FORM_BY_ID_REQUEST","GET_FORM_BY_ID_SUCCESS","GET_FORM_BY_ID_FAILURE","rejectGetFormById","formByIdError","isGettingFormById","getFormById","formByIdResponse","formReviewState","workflowState","viewPdfData","form","ocrIssues","hasParentAccount","hasAllocationStatement","hasImyTopLevelAccount","hasSavedPdf","tinMatchResult","collectableSupportingDocs","validationResults","review","workflow","GET_FORM_PDF_REQUEST","GET_FORM_PDF_SUCCESS","GET_FORM_PDF_FAILURE","GET_FORM_PDF_RESET","requestGetFormPdf","isFetchingPdfForm","receiveGetFormPdf","pdfFile","getFormPdfError","rejectGetFormPdf","getFormPdf","resetPdfDownloads","GET_PDF_VIEW_REQUEST","GET_PDF_VIEW_SUCCESS","GET_PDF_VIEW_FAILURE","rejectGetPdfView","getPdfViewError","isFetchingPdfView","getPdfView","CHECK_FORM_PDF_EXISTENCE_REQUEST","CHECK_FORM_PDF_EXISTENCE_SUCCESS","CHECK_FORM_PDF_EXISTENCE_FAILURE","GET_VALIDATION_RESULTS_REQUEST","GET_VALIDATION_RESULTS_SUCCESS","GET_VALIDATION_RESULTS_FAILURE","rejectGetValidationResults","reportingError","isGettingReporting","getValidationResults","activeTab","reportingResponse","SEARCH_VALIDATION_RESULTS_REQUEST","SEARCH_VALIDATION_RESULTS_SUCCESS","SEARCH_VALIDATION_RESULTS_FAILURE","rejectSearchValidationResults","searchValidationResults","dateFrom","dateTo","EXPORT_TO_EXCEL_REQUEST","EXPORT_TO_EXCEL_SUCCESS","EXPORT_TO_EXCEL_FAILURE","requestExportToExcel","isExportingToExcel","receiveExportToExcel","excelData","exportToExcelError","rejectExportToExcel","exportToExcel","moment","format","getCustomerExportFile","getAllocationStatementFile","fileName","getAllocationStatementFileByAccount","OPEN_ADD_BENEFICIARY_FORM_MODAL","CLOSE_ADD_BENEFICIARY_FORM_MODAL","CHANGE_LAYER_BENEFICIARY_FORM_MODAL","hideAddBeneficiaryFormModal","isAddBeneficiarFormModalShown","isAddingImyToExistingLayer","addBeneficiaryFormResponse","addBeneficiaryFormError","changeImyBeneficiaryFormModal","changeImyChoiceOnBeneficiaryFormModal","ADD_BENE_FORM_REQUEST","ADD_BENE_FORM_SUCCESS","ADD_BENE_FORM_FAILURE","RESET_BENE_ADDING_FORM","CLOSE_PAYMENT_MODEL","OPEN_PAYMENT_MODEL","rejectAddBeneForm","addingBeneFormError","isAddingBeneForm","addBeneficiaryForm","parentW8ImyForm","addImyToLayer","formFile","beneficiaryFormsOfW8BeneType","fileStore","arr","Array","from","beneficiaryFormsOfW8Bene2017Type","beneficiaryFormsOfW8BenType","beneficiaryFormsOfW8Ben2014Type","beneficiaryFormsOfW9Type","beneficiaryFormsOfW92017Type","beneficiaryFormsOfW92018Type","beneficiaryFormsOfW8ExpType","beneficiaryFormsOfW8Exp2016Type","taxRegimeType","isFFI","addingBeneFormResponse","hideAddBeneFormError","OPEN_DID_YOU_MEAN_MODAL","CLOSE_DID_YOU_MEAN_MODAL","UPDATE_FIELD_FROM_DID_YOU_MEAN","showDidYouMeanModal","renderedfieldName","modalId","isDidYouMeanModalShown","filteredValues","openDidYouMeanModal","hideDidYouMeanModal","selectFromDidYouMeanModal","stateFieldName","stateFieldValue","updateFromDidYouMean","OPEN_PRIVACY_NOTICE_MODAL","CLOSE_PRIVACY_NOTICE_MODAL","SAVE_DRAFT_OVERRIDES_REQUEST","SAVE_DRAFT_OVERRIDES_SUCCESS","SAVE_DRAFT_OVERRIDES_FAILURE","saveDraftValidationOverrides","draftOverrides","SAVE_FORM_REVIEW_STATE_REQUEST","SAVE_FORM_REVIEW_STATE_SUCCESS","SAVE_FORM_REVIEW_STATE_USER_ASSIGNMENT_SUCCESS","SAVE_FORM_REVIEW_STATE_FAILURE","rejectSaveFormReviewState","formReviewStateError","isSavingFormReviewState","saveFormReviewState","preventRedirect","assignedUser","actionId","assignToUser","isKycReviewed","receiveSaveFormReviewState","SAVE_ACCOUNT_REVIEW_COMMENTS_REQUEST","SAVE_ACCOUNT_REVIEW_COMMENTS_SUCCESS","SAVE_ACCOUNT_REVIEW_COMMENTS_FAILURE","rejectSaveAccountReviewComments","saveAccountReviewComments","draftComments","accountReview","TOGGLE_INSTRUCTION","S4","random","toggleInstruction","instructionToggled","substr","OPEN_EDIT_CUSTOMER_LEGAL_ENTITIES_MODAL","CLOSE_EDIT_CUSTOMER_LEGAL_ENTITIES_MODAL","CLOSE_EDIT_CUSTOMER_LEGAL_ENTITIES_ERROR","GET_CUSTOMER_LEGAL_ENTITIES_REQUEST","GET_CUSTOMER_LEGAL_ENTITIES_SUCCESS","GET_CUSTOMER_LEGAL_ENTITIES_ERROR","rejectGetCustomerLegalEntities","getCustomerLegalEntities","legalEntityList","showEditCustomerLegalEntitiesModal","currentForm","isEditCustomerLegalEntitiesModalShown","openEditCustomerLegalEntitiesModal","hideEditCustomerLegalEntitiesModal","editCustomerLegalEntitiesResponse","editCustomerLegalEntities","EDIT_CUSTOMER_LEGAL_ENTITIES_REQUEST","EDIT_CUSTOMER_LEGAL_ENTITIES_SUCCESS","EDIT_CUSTOMER_LEGAL_ENTITIES_ERROR","requestEditCustomerLegalEntities","receiveEditCustomerLegalEntities","rejectEditCustomerLegalEntitiesError","customerList","newLegalEntityId","refreshParameters","customerIdList","item","OPEN_EDIT_FORM_REFERENCE_MODAL","CLOSE_EDIT_FORM_REFERENCE_MODAL","CLOSE_EDIT_FORM_REFERENCE_ERROR","GET_FORM_REFERENCE_REQUEST","GET_FORM_REFERENCE_SUCCESS","GET_FORM_REFERENCE_ERROR","getFormReference","showEditFormReferenceModal","isEditFormReferenceModalShown","hideEditFormReferenceModal","editFormReferenceResponse","editFormReference","EDIT_FORM_REFERENCE_REQUEST","EDIT_FORM_REFERENCE_SUCCESS","EDIT_FORM_REFERENCE_ERROR","newFormRef","newFormReference","OPEN_ASSIGN_TO_USER_MODAL","CLOSE_ASSIGN_TO_USER_MODAL","CLOSE_ASSIGN_TO_USER_ERROR","showAssignToUserModal","formsList","isAssignToUserModalShown","openAssignToUserModal","hideAssignToUserModal","ASSIGN_TO_USER_REQUEST","ASSIGN_TO_USER_SUCCESS","ASSIGN_TO_USER_ERROR","requestAssignToUser","receiveAssignToUser","rejectAssignToUser","assignFormsToUserWithCallback","formIdlist","user","OPEN_EDIT_FORM_ASSOCIATIONS_MODAL","CLOSE_EDIT_FORM_ASSOCIATIONS_MODAL","CLOSE_EDIT_FORM_ASSOCIATIONS_ERROR","showEditFormAssociationsModal","isEditFormAssociationsModalShown","openEditFormAssociationsModal","hideEditFormAssociationsModal","editFormAssociationsResponse","editFormAssociationsError","EDIT_FORM_ASSOCIATIONS_REQUEST","EDIT_FORM_ASSOCIATIONS_SUCCESS","EDIT_FORM_ASSOCIATIONS_ERROR","rejectEditFormAssociationsError","isRequestingEditFormAssociations","editBatchFormAssociations","changes","currentPageNumber","currentPageSize","assign","Number","isInteger","receiveEditFormAssociations","GET_FORM_DETAILS_REQUEST","GET_FORM_DETAILS_SUCCESS","GET_FORM_DETAILS_FAILURE","GET_FORM_DETAILS_CLEAR","getFormDetails","formDetails","getFormDetailsDataError","getFormDetailsError","clearFormDetails","OPEN_UNASSIGN_FORM_MODAL","CLOSE_UNASSIGN_FORM_MODAL","CLOSE_UNASSIGN_TO_USER_ERROR","showUnassignFormModal","isUnassignModalShown","openUnassignFormModal","hideUnassignFormModal","UNASSIGN_TO_USER_REQUEST","UNASSIGN_TO_USER_SUCCESS","UNASSIGN_TO_USER_ERROR","requestUnassignToUser","receiveUnassignToUser","rejectUnassignToUser","unassignFormsToUserWithCallback","PARENT_IMYFORMS_OPEN_MODAL","PARENT_IMYFORMS_CLOSE_MODAL","PARENT_IMYFORMS_REQUEST","PARENT_IMYFORMS_SUCCESS","PARENT_IMYFORMS_FAILURE","rejectParentImyForms","getParentImyForms","parentImyForms","showParentImyFormsModal","hideParentImyFormsModal","CLONE_FORM_REQUEST","CLONE_FORM_SUCCESS","CLONE_FORM_FAILURE","cloneForm","sourceCustomerId","sourceAccountId","onSuccess","cloneCollectableSupportingDocs","MOVE_FORM_REQUEST","MOVE_FORM_SUCCESS","MOVE_FORM_FAILURE","moveForm","deleteCollectableSupportingDocs","ADD_STATEMENT_REQUEST","ADD_STATEMENT_SUCCESS","ADD_STATEMENT_FAILURE","rejectAddStatement","addStatementResults","isAddingStatement","addWhdStatement","category","CREATE_WHD_REQUEST","CREATE_WHD_FAILURE","CREATE_WHD_SUCCESS","rejectCreateWhd","isCreatingNewWhd","createWhdStatement","GET_WHD_FORMS_ACCOUNT_SUCCESS","GET_WHD_FORMS_ACCOUNT_REQUEST","GET_WHD_FORMS_ACCOUNT_FAILURE","rejectGetWhdForAccount","isGettingWhdForAccount","getWhdStatementFromAccount","withholdingStatement","OPEN_SPECIAL_RATE_ADDITION_MODAL","CLOSE_SPECIAL_RATE_ADDITION_MODAL","showSpecialRateAdditionModal","isSpecialRatesModalShown","hideSpecialRateAdditionModal","UPDATE_VERSION_STMT_REQUEST","UPDATE_VERSION_STMT_SUCCESS","UPDATE_VERSION_STMT_FAILURE","updateVersion","index","OPEN_PUBLISHED_DATE_UPDATE_MODAL","CLOSE_PUBLISHED_DATE_UPDATE_MODAL","showPublishedDateUpdate","openModal","hidePublishedDateUpdate","CHECK_TIN_REQUEST","CHECK_TIN_SUCCESS","CHECK_TIN_FAILURE","checkTinFailure","isCheckingTin","checkTin","updateExisting","OPEN_EDIT_ADDRESS_MODAL","CLOSE_EDIT_ADDRESS_MODAL","showEditAddressModal","addressProps","isEditAddressModalShown","openEditAddressModal","hideEditAddressModal","DOWNLOAD_FORM_SUMMARY_REQUEST","DOWNLOAD_FORM_SUMMARY_SUCCESS","DOWNLOAD_FORM_SUMMARY_FAILURE","GET_FORM_SUMMARY_PDF_CLEAR","dowloadFormSummaryError","isDownloadingFormSummary","downloadFormSummary","formSummaryData","clearPdfSummaryDownload","SAVE_CRITERIA","SAVE_SEARCH_CRITERIA","SAVE_GRID_CRITERIA","saveCriteria","searchCriteria","gridCriteria","OPEN_MI_CUSTOM_DATE_RANGE_MODAL","CLOSE_MI_CUSTOM_DATE_RANGE_MODAL","showCustomDateRangeModal","isDateRangePickerShown","hideCustomDateRangeModal","fromDate","toDate","dateRangeFrom","dateRangeTo","closeCustomDateRangeModal","OPEN_MI_DETAILS_MODAL","CLOSE_MI_DETAILS_MODAL","showMiDetailsModal","isMiDetailsModalShown","hideMiDetailsModal","GET_MI_DASHBOARD_REQUEST","GET_MI_DASHBOARD_SUCCESS","GET_MI_DASHBOARD_FAILURE","rejectMiDashboard","isGettingMiDashboard","miData","getMiDashboard","trend","includeDeletedForms","RESET_MI_DASHBOARD","resetMiDashboard","isGettingMiDashboardXls","GET_MI_DASHBOARD_XLS_REQUEST","GET_MI_DASHBOARD_XLS_SUCCESS","GET_MI_DASHBOARD_XLS_FAILURE","rejectMiDashboardXls","getMiDashboardXls","SUBMIT_ANSWERS_REQUEST","SUBMIT_ANSWERS_SUCCESS","SUBMIT_ANSWERS_FAILURE","rejectSubmitAnswers","isSubmittingAnswers","submitAnswers","GET_USER_QUEUE_REQUEST","GET_USER_QUEUE_SUCCESS","GET_USER_QUEUE_FAILURE","userQueue","getUserQueueByObject","myWork","GET_WORKFLOW_QUEUE_REQUEST","GET_WORKFLOW_INITIAL_QUEUE_SUCCESS","GET_WORKFLOW_SECONDARY_QUEUE_SUCCESS","GET_WORKFLOW_EXPERT_QUEUE_SUCCESS","GET_WORKFLOW_COMPLETE_QUEUE_SUCCESS","GET_WORKFLOW_QUEUE_FAILURE","stage","initialReviewQueue","secondaryReviewQueue","expertReviewQueue","completeQueue","getWorkflowQueueByObject","queues","GET_WORKFLOW_QUEUES_REQUEST","GET_WORKFLOW_QUEUES_SUCCESS","GET_WORKFLOW_QUEUES_FAILURE","TAKE_QUEUE_ITEM_REQUEST","TAKE_QUEUE_ITEM_SUCCESS","TAKE_QUEUE_ITEM_FAILURE","takeQueueItem","OPEN_OWNERSHIP_MODAL","CLOSE_OWNERSHIP_MODAL","showOwnershipModal","isOwnershipModalShown","changeOwnershipItem","hideOwnershipModal","OPEN_DELETE_FILE_MODAL","CLOSE_DELETE_FILE_MODAL","showDeleteFileModal","fileId","isDeleteFileModalShown","openDeleteFileModal","hideDeleteFileModal","deleteFileResponse","deleteFileError","DELETE_FILE_REQUEST","DELETE_FILE_SUCCESS","DELETE_FILE_FAILURE","rejectDeleteFile","isDeletingFile","deleteBatchFile","GET_LEGAL_ENTITIES_REQUEST","GET_LEGAL_ENTITIES_SUCCESS","GET_LEGAL_ENTITIES_FAILURE","rejectGetLegalEntities","isGettingLegalEntities","getLegalEntities","legalEntitiesCount","getLegalEntitiesByObject","GET_CIC_ALERT_COUNTS_REQUEST","GET_CIC_ALERT_COUNTS_SUCCESS","GET_CIC_ALERT_COUNTS_FAILURE","rejectGetCicAlertCounts","cicAlertsCountsError","isCicAlertCountsLoading","getCicAlertCounts","cicAlertsAssignedCount","cicAlertsUnassignedCount","assignedCount","unassignedCount","cicAlertsListError","GET_CIC_ALERTS_REQUEST","GET_CIC_ALERTS_SUCCESS","GET_CIC_ALERTS_FAILURE","requestGetCicAlerts","isCicAlertsListLoading","receiveGetCicAlerts","cicAlertsList","cicAlertsListCount","rejectGetCicAlerts","getCicAlertsByObject","resolved","raisedWithin","getUserCicAlertsByObject","getWorkflowCicAlertsByObject","workflowStage","OPEN_CIC_ALERT_MODAL","CLOSE_CIC_ALERT_MODAL","showCicAlertModal","cicAlertId","isCicAlertModalShown","openCicAlertModal","hideCicAlertModal","refreshPage","closeCicAlertModal","GET_CIC_ALERT_REQUEST","GET_CIC_ALERT_SUCCESS","GET_CIC_ALERT_FAILURE","isCicAlertLoading","cicAlert","cicAlertError","cicReviewState","getCicAlert","takeCicAlert","SAVE_CIC_ALERT_CRITERIA","SAVE_CIC_ALERT_SEARCH_CRITERIA","SAVE_CIC_ALERT_GRID_CRITERIA","saveCicAlertCriteria","SAVE_CIC_ALERT_REVIEW_STATE_REQUEST","SAVE_CIC_ALERT_REVIEW_STATE_SUCCESS","SAVE_CIC_ALERT_REVIEW_STATE_FAILURE","rejectSaveCicAlertReviewState","cicReviewStateError","isSavingCicReviewState","saveCicAlertReviewState","isCic","hasCuringDocs","curingDocs","OPEN_ASSIGN_CIC_TO_USER_MODAL","CLOSE_ASSIGN_CIC_TO_USER_MODAL","CLOSE_ASSIGN_CIC_TO_USER_ERROR","showAssignCicToUserModal","cicAlertList","isAssignCicToUserModalShown","openAssignCicToUserModal","hideAssignCicToUserModal","ASSIGN_CIC_TO_USER_REQUEST","ASSIGN_CIC_TO_USER_SUCCESS","ASSIGN_CIC_TO_USER_ERROR","requestAssignCicToUser","receiveAssignCicToUser","rejectAssignCicToUser","assignCicsToUserWithCallback","GET_CIC_ALERT_DETAILS_REQUEST","GET_CIC_ALERT_DETAILS_SUCCESS","GET_CIC_ALERT_DETAILS_FAILURE","GET_CIC_ALERT_DETAILS_CLEAR","getCicAlertDetails","cicAlertDetails","getCicAlertDetailsError","clearCicAlertDetails","GET_ALL_CONTROLLING_PERSONS_REQUEST","GET_ALL_CONTROLLING_PERSONS_SUCCESS","GET_ALL_CONTROLLING_PERSONS_FAILURE","getAllControllingPersonsFailed","getAllControllingPersons","controllingPersons","ADD_CONTROLLING_PERSON_REQUEST","ADD_CONTROLLING_PERSON_SUCCESS","ADD_CONTROLLING_PERSON_FAILURE","addControllingPersonFailed","addControllingPerson","entityFormId","cpFormId","cpType","EXPIRE_CONTROLLING_PERSON_REQUEST","EXPIRE_CONTROLLING_PERSON_SUCCESS","EXPIRE_CONTROLLING_PERSON_FAILURE","fail","expireControllingPerson","controllingPersonId","REMOVE_CONTROLLING_PERSON_REQUEST","REMOVE_CONTROLLING_PERSON_SUCCESS","REMOVE_CONTROLLING_PERSON_FAILURE","removeControllingPersonFailed","removeControllingPerson","SITE_PRELOAD_REQUEST","SITE_PRELOAD_SUCCESS","failed","getSitePreload","json","option","controllingPersonTypes","rcFormValue","findByKey","find","mapRcFormValueToCpValue","New","Ready","Linking","Completed","AddressTypes","Permanent","Mailing","SubstantialOwner","ControllingPersonMailing","ControllingPersonPermanent","W9Address","Business","BusinessEci2014","Current","getDescription","hasCountry","BlankPage","children","propTypes","PropTypes","isRequired","HintButtonComponent","hintType","active","onClick","buttonBackground","buttonBackgroundPressed","buttonBackgroundHovered","iconColour","iconColourPressed","_useState2","_slicedToArray","useState","hovered","setHovered","buttonStyle","backgroundColor","style","onMouseEnter","onMouseLeave","fill","xlinkHref","defaultProps","DateTimes","_classCallCheck","get","dt","setDate","getDate","FileUpload","_Component","props","_this","_callSuper","files","state","timeout","uploadTimeout","maxUploadFiles","maxFilesize","maxFileSize","maxParellelUploads","maxParallelUploads","initCallback","bind","onTimeout","_inherits","this","clearFiles","dropzone","removeAllFiles","onFileQueued","accepted","onFileRemoved","onFileUploadCancel","removeFileAfterUpload","removeFile","onFileUploadSuccess","xhr","onFileUploadError","onFileSending","timeoutHandler","ontimeout","on","querySelector","css","color","display","_this2","_this$props","postUrl","docCategory","docType","linkType","acceptedFiles","accessTokenName","defaultMessage","_this$state","componentConfig","Authorization","djsConfig","addRemoveLinks","autoProcessQueue","maxFiles","accept","parallelUploads","dictDefaultMessage","params","previewTemplate","ReactDOMServer","eventHandlers","init","addedfile","onAddedFile","removedfile","onRemovedFile","onComplete","canceled","onCancel","onError","sending","onSending","DropzoneComponent","el","styles","mergedStyles","k","join","Component","HintPanel","isCloseButtonVisible","panelElement","onSelectDefinition","current","definitions","querySelectorAll","definition","addEventListener","handleClickOnDefinition","_this3","removeEventListener","target","dataset","onClose","_this4","highlightClass","clearTimeout","classList","remove","offsetWidth","add","_this4$panelElement","_this5","hintText","partNumber","lineNumber","fontStyle","ref","setState","opacity","handleClose","RadioInput","isReset","modelValue","inputValue","isChecked","event","input","meta","iValue","onChange","_this$props2","reverseInput","_extends","checked","handleChanges","onBlur","hasWrongCheck","RadioTableGroup","defRefs","instructions","itemInstructions","instruction","text","visible","rowIndex","cellIndex","initialItemInstructions","_defineProperty","defIndex","findIndex","def","defInstance","highlight","_ref3","_ref4","_ref5","_ref6","normalize","preventReset","hint","tip","caution","activatedInstructions","activatedInstructionTypes","row","cell","rowSpan","colSpan","beforeLabel","HintButton","showInstruction","Field","enableInstructions","FormsInstructions","showItemInstruction","inputName","change","Collapse","isOpened","marginLeft","showItemDefinition","hideItemInstruction","j","InstructionDefinition","hideItemDefinition","showDefinition","hideInstruction","hideDefinition","connect","RenderDatePicker","placeholder","popperPlacement","popperModifiers","isClearable","dateFormat","maxDate","minDate","_React$useState2","isValid","toUpperCase","startDate","setStartDate","placeholderClass","applicablePlaceholder","DatePicker","fixedHeight","showMonthDropdown","placeholderText","preventOverflow","enabled","escapeWithReference","boundariesElement","autoComplete","showYearDropdown","dropdownMode","selected","onKeyDown","keyCode","onHandleKeyDown","defaultMaskConfig","acceptedCharacters","containsInvalidatedCharacters","_","numericAsterixMaskConfig","test","StrictInput","mask","maskChar","maskConfigAfterValueChange","maskConfig","InputMask","beforeMaskedValueChange","newState","oldState","userInput","_userInput","selection","start","end","re","RegExp","newValue","oldValue","oldValueValid","newValueValid","newInput","formatChars","alwaysShowMask","TextAreaInput","_ref$meta","touched","warning","required","hideHints","preventEmptyStringInitialization","prevValue","preventDefault","preventInvalidDateInitialization","TextInput","BoxInputDotDivider","width","height","radius","strokeColor","xmlns","cx","cy","stroke","BoxInput","boxLength","cellWidth","cellHeight","fillColor","strokeWidth","letterSpacing","svgTemplate","preceedingText","divClassName","fontSize","lineHeight","marginRight","FileInputComponent","onFileChange","changeFileValue","inputEl","role","tabIndex","FileInput","MultiFileInputComponent","beneficiaryFilesList","fileStore1","filenames","multiple","MultiFileInput","SelectInput","disabled","size","getSingleCheckboxState","getCheckboxValue","CheckboxInput","resolveObjPath","obj","reduce","curr","self","NestedArrayObjectFieldInput","maxLength","NestedArrayObjectFieldComponent","rootField","custom","newVal","prevVal","allValues","prevAllValues","rootFieldValue","isEachChildNull","itemIndex","rootFieldItem","arrayRemove","NestedArrayObjectField","NestedArrayStringFieldInput","_this$props$input","_this$props$meta","initValue","NestedArrayStringFieldComponent","NestedArrayStringField","getOwnPropertyNames","NestedArraySelectFieldInput","NestedArraySelectFieldComponent","NestedArraySelectField","NestedArrayBooleanFieldComponent","formValueSelector","selector","NestedArrayBooleanField","w8bene","line1","label","line2","line3","line4","line5","rel","line6","line7","line8","line9a","line9b","line10","partII","line11","line12","line13","line14a","line14b","line14c","line15","partIV","line16","line17","line18","line19","line20","line21","line22","line23","line24a","line24b","line24c","line24d","line25a","line25b","line25c","line26","line27","line28a","line28b","line29","line30","line31","line32","line33","line34","line35","line36","line37a","line37b","line38","line39","line40a","line40b","line40c","line41","line42","partXXIX","partXXX","w8bene2021","line9c","w8ben","partIII","w8ben2021","line6a","line6b","lineCertification","w8imy","line9","line14d","line14e","line14f","line14g","line14h","line15a","line15b","line15c","line15d","partV","partVI","partVII","partVIII","partIX","partX","partXI","partXII","partXIII","partXIV","partXV","partXVI","partXVII","partXVIII","partXIX","partXX","partXXI","partXXII","partXXIII","partXXIV","partXXV","partXXVI","partXXVII","partXXVIII","w8imy2017","line14","line15f","line15g","line16a","line16b","line17a","line17b","line17c","line17d","w8imy2021","line15e","line15h","line15i","line17e","line21a","line21b","line21c","line21e","line21f","w9","elem","scrollIntoView","block","partI","w92017","w92018","w92024","line3a","line3b","w8eci","w8eci2021","line8a","line8b","w8exp","w8exp2023","fatcacrsi","line1a","line1b","line1c","line1d","line1e","line2a","fatcacrse","lineCountryOfTaxResidence","lineResidenceAddress","lineTIN","line4a1","line4a2","line4b","fatcacrsi2023","fatcacrse2023","allDefinitions","GIIN","Payee","FFI","string","ModalWrapper","isOpen","onAfterOpen","onRequestClose","modalSize","shouldCloseOnOverlayClick","headerClose","onConfirm","subTitle","showFooter","showCancel","disableConfirm","btnConfirmClass","btnConfirmTitle","btnCancelClass","btnCancelTitle","useDummySubmit","Modal","contentLabel","hideError","logglyConfig","require","env","process","urlParts","hostname","baseSiteUrl","protocol","shift","baseApiUrl","tokenName","optionsName","firstTokenName","apiEndpoints","details","validation","reporting","reportingXls","customerExportXls","auditTrail","formPdf","viewPdf","bulkDelete","feoption","allocationStmnts","w8imystructure","WhdCalculatedResults","miDashboard","miDashboardXls","withholding","cicalert","activityPermissions","tinMatchApi","staticData","showAnyError","loggly","src","SiteReadyState","AuthMode","AuthState","LoadingWrapper","loaded","SiteLoading","caption","isLoaded","EXCEPTION_TYPE","AppErrorBoundary","logError","info","origin","componentStack","hasError","WrappedComponent","trim","LoginForm","handleSubmit","onCloseErrorMessage","showSSOLogin","onSubmit","PoweredBy","validate","reduxForm","Login","checkAndRedirectToHome","nextProps","nextState","resetErrorMessage","auth","withAppErrorBoundary","Draft","PendingSignature","BatchStaging","PendingReview","UnderInitialReview","PendingSecondaryReview","UnderSecondaryReview","PendingExpertReview","UnderExpertReview","Complete","WorkflowStages","AccessControl","allowedPermissions","matchAll","renderNoAccess","hasPermission","every","permission","some","IndeterminateCheckbox","indeterminate","rest","_objectWithoutProperties","_excluded","defaultRef","resolvedRef","FreeTextFilter","_ref$column","column","setFilter","filterValue","preFilteredRows","setInputValue","_React$useState4","showFilter","setShowFilter","node","handleClickOutside","contains","onKeyUp","filterType","keyHit","reducer","action","actions","useInstance","instance","columns","plugins","_instance$autoResetSo","autoResetSortBy","ensurePluginOrder","resetSortBy","getAutoResetSortBy","useGetLatest","useMountedLayoutEffect","useResetSortBy","hooks","stateReducers","pluginName","Pager","page","pageCount","itemCount","onPageChanged","onPageSizeChanged","pageDescription","useMemo","minRowNumber","lastRow","maxRowNumber","totalRowNumber","pages","pagesArray","show","extend","previousPageindex","nextPageindex","canPreviousPage","canNextPage","ReactTable","_gridCriteria$filters","onGridCriteriaChanged","onRowSelectionChanged","onRowExpandedStateChanged","enableExpandCollapse","enableSelection","childRowPropertyName","getChildRowLayout","initialLoaded","loading","collapseHeight","enablePagination","expandCollapse","Header","Cell","original","isLoadingDetails","defaultColumn","Filter","rowsFound","_useTable","useTable","columnDefs","initialState","pageIndex","hiddenColumns","isVisible","accessor","selectedRowIds","selectedItems","selectedIds","itemId","selectedData","getPreSelectedRows","manualPagination","manualFilters","manualGlobalFilter","manualSortBy","useFilters","useSortBy","usePagination","useRowSelect","allColumns","cols","combinedCols","getToggleAllRowsSelectedProps","getToggleRowSelectedProps","getTableProps","getTableBodyProps","headerGroups","prepareRow","gotoPage","setHiddenColumns","_useTable$state","setAllFilters","selectedFlatRows","toggleAllRowsSelected","rows","newGridCriteria","headerGroup","getHeaderGroupProps","getHeaderProps","col","_col$className","render","canSort","getSortByToggleProps","isSorted","isSortedDesc","getSortIcon","canFilter","getRowProps","cells","_col$className2","getCellProps","isLinkToAccount","wordCharacterRegex","whitespacesRegex","escapeRegexCharacters","str","findMatchesToHighlight","query","subject","baseObject","insideWords","findAllOccurrences","requireMatchAll","word","occurrence","wordLen","prefix","regex","sort","match1","match2","renderSuggestion","suggestion","suggestionText","parts","AutosuggestHighlightParse","part","AutoSuggestWrapper","Autosuggest","getSuggestionValue","AutoCompleteInput","_initialiseProps","currentValue","_props$value","currentSelection","currentContext","context","suggestions","setSuggestionsState","exclude","filtered","inputProps","onSuggestionSelected","onSuggestionsFetchRequested","onSuggestionsClearRequested","_props$value$value","_props$value2","_props$value$value2","_props$value3","minCharacters","onSelectedItem","activeOnly","suggestionValue","suggestionIndex","sectionIndex","getAutoCompleteText","chapter3Status","chapter4Status","crsParticipating","chapter4StatusDescription","chapter3StatusDescription","withholdingStatementId","collectableSupportingDocumentTypes","topLevelCustomerName","attributes","timer","_this2$state","_this2$props","suggestionsCallback","valueEntered","err","getSuggestions","description","family","SearchPanel","onSearchCriteriaChanged","onSearchClicked","actionButton","onSearchClick","onGridChange","newSearchCriteria","gridType","onAutoCompleteChange","lookupValue","propertyName","String","ActivityPerms","onSearchQueryChanged","onInputKeyUp","onFormTypeChange","SearchPanelForm","hasPermissionsForForms","areOnlineForms","hasCompletePermission","hasReviewPermission","completeForms","_f$workflowStatus","workflowStatus","underReviewForms","_f$workflowStatus2","ActionSelect","openEditFormReferenceModal","hasDeleteOnlineCompletePermission","hasDeleteOnlineReviewPermission","hasDeleteScannedCompletePermission","hasDeleteScannedReviewPermission","onlineForms","isOnlineForm","scannedForms","hasOnlinePermissions","hasScannedPermissions","CanDeleteAllFormsInSelection","MultiSelectFilter","formtypes","useSelector","baseOptions","opts","Set","ft","filterInput","ops","WorkflowStageFilter","_filterValue$options","showStpOnly","_React$useState6","stpOnly","setStpOnly","_filterValue$options2","onStpClick","CustomerLinkCell","dataKey","AccountLinkCell","cellInfo","disableFilters","disableSortBy","SelectFilter","filterName","filterTitles","GetOptions","Chapter3Status","whsPooledStatus","pooledStatus","findByName","statusName","Chapter4Status","DateRangeFilter","overflow","setOverflow","GetDate","dateString","_React$useMemo2","minVal","maxVal","baseDate","rowDate","onCalendarOpen","onCalendarClose","val","oldMax","oldMin","b","CRSClassificationStatus","CertificationStatus","classNameInitialReview","classNameWorkflow","FormViewRedirectButton","loggedOnUser","history","workflowStageDescription","workflowUsername","wfStatus","formUrl","isUserFormOwner","currentUser","currentUserFullName","workflowUserFullName","content","Route","hasHigherPermission","FormViewButton","openAccountWithholdingModal","navigateToImyStructure","navigateToWithholdingStatement","_settings$selectedCli","_row$original$workflo","_row$original$workflo2","_row$original$workflo3","_row$original$workflo4","hasAllocationStmt","allocationStmtType","allocationStmtName","showMultiTierManager","showWithholding","workflowType","onTakeQueueItem","openAccountImyFormsModal","isDirect","hasImyStructure","openCustomerImyFormsModal","FormTypeSelect","optionFormType","showAllForms","entity","individual","showCrsFormTypes","showFatcaCrsFormTypes","showWFormTypes","usNonUsGiven","usPerson","licensed","CustomerAccountInputLayout","CustomerAccountInput","onSelectionChange","layout","initialSelections","accountExclusions","accountsPartOfAnImyStructure","setCustomer","_useState4","setLegalEntities","_useState6","legalEntityOptions","setLegalEntityOptions","_useState8","legalEntityInputValue","setLegalEntityInputValue","_useState10","excluded","setExcluded","_useState12","selectionValid","selections","setSelections","_useState14","leChapter3Shown","setLeChapter3Shown","_useState16","leChapter4Shown","setLeChapter4Shown","_useState18","setCustomerAccounts","_useState20","customerAccountOptions","setCustomerAccountOptions","_useState22","customerAccountInputValue","setCustomerAccountInputValue","_useState24","searchTimer","setSearchTimer","fieldHasErrors","field","isHorizonalLayout","convertLegalEntity","identifier","convertCustomerAccount","selectedAccount","updateCustomerAccount","newCustomerAccountObj","_value$accounts","filteredAccounts","_customer$accounts","uniqueIds","LEs","equals","originalArr","_loop","removeDuplicates","left","right","selectedCustomerAccounts","excludedLegalEntites","getTopLevelImyAccountId","_account$parentAccoun","htmlFor","onCustomerChange","AsyncSelect","classNamePrefix","isMulti","closeOnSelect","closeMenuOnSelect","cacheOptions","loadOptions","parseInt","defaultOptions","isDisabled","noOptionsMessage","onInputChange","leValues","padStart","EvidentiaryDocs","showCollectableSupportingDocs","documentTypes","doc","localeCompare","formFamily","crse","crsi","crscp","rc518","rc519","getFamily","entries","formTypeDefinition","getFamilyName","familyDescription","crsebba","crsi_2024","w8imy_2017","w8bene_2017","w8eci_2014","w8exp_2016","w8ben_2014","w9_2017","w9_2018","w9_2024","ucrscp_2019","ucrse_2019","dt_crscp","dt_crse","dt_crsi","w8ben_2021","w8eci_2021","w8bene_2021","w8imy_2021","fatca_crsi_2022","fatca_crse_2022","ucrsi_2023","fatca_crsi_2023","fatca_crse_2023","w8exp_2023","getByValue","getByCode","_ref7","_ref8","_ref9","_ref10","_ref11","BeneficialOwnerFormsUpload","onBeneficiaryFormTypeChange","benefFormType","onImyBeneficiarySelected","onBeneficiarySelected","fileSettings","disableToasters","_this$props3","onFileDeleteError","onFileDeleteSuccess","formErrors","_this$props4","hasUnassignedOwners","owners","whdStatementOwnerOptions","ownerIndex","getOwnerFormType","onBeneficiaryFormFileUploadCancel","onBeneficiaryFormFileUploadSuccess","onBeneficiaryFormFileUploadError","typeDescription","onDeleteBeneficiaryForm","FormTypes","hasWhdStatement","witholdingStmnt","WithholdingStatementUploadForm","whdStatementError","whdStatementUploading","prevProps","resetStatement","onStatementTypeChange","fileDetails","lastModified","whdError","resultCode","disableToastr","_this$props5","_this$props6","ddLabelText","existingStatements","singleColumnLayout","intermediaryName","intermediaryCountry","onWhdStatementTypeChange","onWhdStatementFileSending","onWhdStatementFileUploadCancel","onWhdStatementFileUploadSuccess","onWhdStatementFileUploadError","onDeleteWhdStatement","isPooledStatement","listOfAccounts","_item$identifier","codeDescription","WhdStmtUploadReduxForm","LinkWhsOperationStatus","accountWhsLinkMonitorFailed","showExplanation","createdBy","fullName","linkedBos","totalBos","alignItems","justifyContent","goBack","withRouter","LinkWhsOperationMultiMonitor","_accounts$map","interval","onActiveMonitorsChange","isGettingWhsLinkStatuses","whsLinkMultiMonitorFailed","useDispatch","getStatus","useEffect","setInterval","clearInterval","activeMonitors","fromAccountId","_account","toAccountId","_state$account","isEmailAddress","AddFormsPopupForm","filterClientList","clientKey","canUploadStmtBos","showBeneficiaryTab","crsCustomer","tabs","supportingDocType","showBeneficiaryFileUpload","isImyParentCreateNewCustomerChecked","initialStatement","whsLinkAccounts","showImyOverwriteWarning","showImyOverwriteWarningCombined","onSetModalSize","setDisableConfirm","clearStateForSessionResend","prevParentAccountId","getWhdStatementOwners","isSubmitting","joined","matched","beneForm","onDeleteSupportingDocument","_this6","_customerObject$accou","_this7","accountsWhereImyTopLevel","accountList","newAccounts","_this$state2","onSelectTab","_this8","imyOwners","_this9","newStatement","crsEnabled","combinedAllowed","fatcaCrsFormsLicensed","_this$state3","parsedDate","match","missingBeneficiaries","duplicatedBeneficiaries","duplicateBenef","getDuplicateValues","idx","subAccountName","subAccountId","_customerObject$accou2","_customerObject$accou3","_this10","_this$state4","resultAccount","accountsPartOfAnImy","displayAddFormTabs","isTopLevelImy","onFormSubmit","noValidate","setCustomerObjectCallback","onCustomerType","onUsNonUsChange","onImyChoiceChange","onImyAccountSelectedItem","onImyAccountChange","isDuped","tab","onWFormDateChange","onFormReferenceChange","onWFormFileUploadSuccess","onDeleteWForm","onCrsFormDateChange","onCrsFormReferenceChange","onCrsFormTypeChange","onCrsFormFileUploadSuccess","onDeleteCrsForm","onFatcaCrsFormDateChange","onFatcaCrsFormReferenceChange","onFatcaCrsFormTypeChange","onFatcaCrsFormFileUploadSuccess","onDeleteFatcaCrsForm","WithholdingStatementUpload","onBenefFormFileUploadSuccess","onDeleteBeneficiaryFormSuccess","onOriginEmailChange","onSupportingDocTypeChange","onSupportingDocFileUploadSuccess","customerIds","cust","_doc$file$processedId","processedId","paddingleft","onTakeForm","onActiveWhsLinkMonitorsChange","arrayItems","keyName","arraySummary","_this11","_this11$state","newFormType","newCrsFormType","newfatcaCrsFormType","_this11$state2","_this11$props","getWhdStatementLayerOwners","_this11$props2","_customerObject$accou4","_this11$state3","owner","subAccountGuid","_this11$state4","filteredClientList","UploadPdfReduxForm","UploadPdfForm","initialValues","AddFormModal","disableConfirmButton","isShown","onConfirmUpload","getParentCustomerName","onCloseModal","setModalSize","_state$forms","UploadPdfFormW8Imy","handleImyChange","addImyToExistingLayer","AddFormModalW8Imy","onImyChange","UploadPdfFormW8imy","DeleteFormModal","onConfirmDelete","ChangeOwnershipModal","onAssign","onContinueWithoutAssign","workflowRecord","btnAssignToMeClass","btnAssignToMeTitle","btnContinueWithoutAssignClass","btnContinueWithoutAssignTitle","QDD","DisregardedEntity","HybridEntities","WithholdingTable","hasRates","rate","whdCategory","getRate","parseFloat","toFixed","isDualFormSatisfied","dualFormRequirement","DualFormRequirement","hasQddElection","hasWithholdingStatement","hasFatcaExemptions","hasExemptPayeeCodes","_rate$exemptPayeeCode","paymentTypeDescription","whdTypeDescription","appliedRate","reportingTypeDescription","chapter3Exemption","ch3ExemptionCode","ch3ExemptionDescription","chapter4Exemption","ch4ExemptionCode","ch4ExemptionDescription","exemptPayeeCodeString","_rate$exemptPayeeCode2","stateDescription","WithholdingRatesModal","setAccountList","isGettingAccountWithholding","withholdingContainer","closeModal","onAccountValueChanged","dateCalculated","getDateCalculated","ImyFormTable","topLevelAccountId","isGettingImyForms","ImyForms","getEffectiveDate","uploadedDate","lastUpdatedDate","textAlign","imyforms","align","topLevelCustomer","topLevelAccount","CustomerImyFormsModal","_nextProps$parentImyF","_nextProps$parentImyF2","isGettingParentImyForms","AssignToUserModalForm","onAssignToUserSelectedItem","onAssignToUserChange","onConfirmAssign","getItemsList","itemsList","cancelAssign","AssignToUserModalReduxForm","UnassignToUserModal","onConfirmUnassign","EditFormReferenceModalForm","onConfirmFormReferenceChange","isGettingFormReference","EditFormReferenceModalReduxForm","xmlnsXlink","viewBox","xmlSpace","offset","stopColor","UnexpectedErrorPage","ErrorGraphic","ContainerErrorBoundary","certificationStatus","statuses","expiredStatuses","isFatca","isChapter61","isCrs","isFatcaExpired","isCrsExpired","activeStatus","expiredStatus","Home","initGridCriteria","initSearchCriteria","getClassNameInitialReview","getClassNameWorkflow","workflowColumnDefs","selectedItem","showWorkflowButtons","loadingTime","updateGridCriteriaState","sendDataRequest","_this$state$searchCri","userCount","initialReviewCount","secondaryReviewCount","expertReviewCount","completeCount","processData","hideLoadingAnimation","isAccountWithholdingShown","isParentImyFormsShown","selectionEnabled","getIsSelectionEnabled","showScannedForms","fetchData","downloadCustomerExport","onWorkflowTypeChanged","childData","getActions","getIsExpandCollapseEnabled","addFormAction","closeAddFormModal","processDeleteForms","closeDeleteFormModal","closeAccountWithholdingModal","closeParentImyFormsModal","AddBeneficiaryFormModal","addBeneficiaryForms","imyChange","closeAddBeneficiaryFormModal","reAssignItem","continueFromOwnershipModal","closeFromOwnershipModal","EditFormReferenceModal","closeEditFormReferenceModal","processEditFormReference","AssignToUserModal","closeAssignToUserModal","processAssignToUsers","closeUnassignFormModal","processUnassignToUsers","isFetchingQueues","isSearchCriteriaValid","_searchCriteria$searc","_searchCriteria$searc2","_searchCriteria$custo","_searchCriteria$legal","_searchCriteria$accou","isEmpty","_this3$props","loadingInterval","_this3$state","_this3$state$searchCr","colDefs","getWorkflowColumns","formColumnDefs","customerColumnDefs","accountColumnDefs","legalEntityColumnDefs","_item$formTypeDescrip","_item$additionalData","isActive","isFinancialAccount","formTypeString","legalEntityIsActive","accountIsActive","customerIsActive","getCertifictionStatus","datum","legalEntityName","parentAccountName","crsClassificationDescription","openDate","legalEntityClientIdentifier","formTypeDescription","workflowPreviousUsername","formSourceDescription","lastActionDate","validationDate","uploadedBy","formCreatedByUsername","validityDescription","additionalData","ceil","generateRequest","_gridCriteria$sortBy$3","_searchCriteria$searc3","_searchCriteria$legal2","_searchCriteria$accou2","_searchCriteria$custo2","_gridCriteria$sortBy$","_gridCriteria$sortBy$2","_this3$state2","formTypeArray","desc","workflowColumns","len","_this3$state3","gridChanged","criteria","rowSelections","expand","multipleItems","selectedItemIds","selectedObjects","listItem","tableType","_this3$props2","_loop2","openUnassignToUserModal","_this3$props3","_this3$props4","_this3$props5","FormWorkflowStages","_this3$state4","_gridCriteria$sortBy$6","_searchCriteria$legal3","_searchCriteria$accou3","_searchCriteria$custo3","_gridCriteria$sortBy$4","_gridCriteria$sortBy$5","workflowRequest","_this3$state5","_this3$state$searchCr2","_this3$props6","FormsActions","WorkflowActions","CustomersActions","AccountsActions","_this3$state$searchCr3","_this3$state$searchCr4","_childData$reference","uploadDate","reference","expiryReason","expiryReasonDescription","permAddressLine1","permAddressLine2","permAddrPostalCode","permAddrCountry","treatyCountry","dob","_workflow$userQueue","_workflow$userQueue2","_workflow$initialRevi","_workflow$initialRevi2","_workflow$secondaryRe","_workflow$secondaryRe2","_workflow$expertRevie","_workflow$expertRevie2","_workflow$completeQue","_workflow$completeQue2","_state$auth","_state$home","home","_state$customer","_state$legalEntities","_state$workflow","withContainerErrorBoundary","NoInternetPage","buttonText","ConnectionStatus","_len","args","_key","_possibleConstructorReturn","handleConnectionChanged","_assertThisInitialized","handleConnectionStateChanged","createEvent","initCustomEvent","CONNECTION_STATE_CHANGED","createConnectionStateEvent","setEventListeners","removeEventListeners","onConnectionChanged","detail","networkInfo","downlink","lockKey","pow","eventListenersLock","eventListenersSet","handleOnlineOfflineEvent","showFullScreen","fullScreenOnly","getCssClass","_state$common","common","checkedWithinLast48Hours","lastChecked","diff","checkedWithinLast12Months","tinCheckSentRecently","tinCheckDetails","checkedWithin48Hours","checkedWithin12Months","tinMatched","TinValidationStatusChip","nameOrTinChanged","responseCode","TinCheckStatus","onCheckTin","hasValidation","isIndividualValidation","isImyChildResult","tinMatchFormProps","isFormDirty","tinMatchResultById","requestTime","getTinCheckDetails","irsRequestSucess","_tinMatchResultById$n","_tinMatchFormProps$na","_tinMatchFormProps$ti","_tinMatchFormProps$ti2","nameChanged","tinChanged","tinType","tin","ssn","ein","CheckNameOrTinChangedOnForm","checkMade","isTinMatchedNull","matchedOver12MonthsAgo","showCheckTinButton","getValidationStatusText","SupportingDocumentCuresComponent","supportingDocuments","onModalOpen","onModalClose","activeModal","setShowModal","modalVisible","sortedSupportingDocuments","buildDescription","interpolationParts","template","contextField","isOverridden","overrides","rejections","calculateValidity","formOverride","overrideCodes","hasOverriddenRejection","numericCode","isInRejections","isInOverrides","overriddenToInvalid","overriddenToInvalidText","comments","validityDisplayText","treaty","locked","statusText","isExpired","expiryDate","formatedDate","m","set","hour","minute","second","millisecond","isPiiValidationCode","validationCode","formTypeFamily","PiiValidationResults","isOverriddenToInvalid","validationCodes","headerName","setIsVisible","rejection","draft","IndividualValidationResult","showValidity","warnings","isWithTreaty","isLocked","expiryReasonDesc","showTinMatching","activeSupportingDocsModal","setActiveSupportingDocsModal","handleSupportingDocsModalOpen","handleSupportingDocsModalClose","w","isPiiInstruction","getDisplayTextForName","expiryDisplayText","tinIsAppliedForOrEmpty","appliedForTin","tinIsComplete","showTinCheckStatus","_rejection$clearingDo","clearingDocuments","SupportingDocumentCures","_rejection$clearingDo2","_rejection$clearingDo3","fontWeight","marginBottom","_warning$clearingDocu","ValidationResultCell","getItemClass","rejectionsAndWarnings","_cellInfo$row$origina","validationData","_cellInfo$row$origina2","GridHelper","gridOptions","defaultGridOptions","gridApi","setImmediate","sizeColumnsToFit","resetRowHeights","rowNodeSelector","rowHeight","clientHeight","defaultColDef","headerHeight","icons","menu","sortAscending","sortDescending","overlayLoadingTemplate","suppressCellFocus","suppressMovableColumns","suppressTouch","cacheQuickFilter","pagination","paginationPageSize","pageNavigationSteps","first","last","previous","dateFormatter","getOriginalPdfFileCallback","getAllocationStatementFileCallback","_row$original$formTyp","msSaveOrOpenBlob","hasPdfFile","hasAllocationStmnts","hasOriginalStmnt","controlId","padding","originalFilename","ValidationResults","RejectedFormsColDefs","fetchAllocationStatementFile","fetchOriginalPdfFile","ValidFormsColDefs","ExpiredFormsColDefs","fetchReporting","nextTabs","_searchCriteria$dateT","_reportingResponse$re","isNoData","selectTab","dateFromInGridEvent","dateToInGridEvent","searchInGridEvent","searchChanged","downloadExcel","_this5$state","_this5$state2","_this5$state2$searchC","endsWith","toLocaleString","month","day","year","isAdditional","ConfirmModal","isPerformingAction","confirmTitle","cancelTitle","OnlineForm","handleClick","isProcessing","OnlineForms","showImyWarning","_customerAccount$acco","_customerAccount$acco2","getParentAccountId","onCustomerAccountChange","warnAboutImyStructure","OnlineReduxForm","ConcatAddressLine","GetCommonWFormWellFormedAddress","formAddress","_formAddress$street$s","_formAddress$street","_formAddress$street$s2","_formAddress$street$s3","_formAddress$cityCoun","_formAddress$cityCoun2","_formAddress$cityCoun3","_formAddress$cityCoun4","wellFormedAddress","postalCode","country","splitLine1","street","splitLine2","cityCountyStateProvince","_splitLine","_toArray","_splitLine2","_splitLine3","_splitLine4","_splitLine5","CheckValidPostalCodeAndLine3And4Combination","GetCommonWFormFieldPathValueMap","addressPath","validPostalCodeAndLine3And4Combination","addressPostalCode","addressLine3","addressLine4","addressLine1","addressLine2","addressCountry","GetCommonCrsFormWellFormedAddress","_formAddress$street$s4","_formAddress$street2","_formAddress$street2$","_formAddress$street2$2","_formAddress$cityCoun5","_formAddress$cityCoun6","_formAddress$cityCoun7","_formAddress$cityCoun8","_splitLine6","_splitLine7","_splitLine8","_splitLine9","GetCommonCrsFormFieldPathValueMap","GetCommonCombinedFormWellFormedAddress","_formAddress$line1$sp","_formAddress$line","_formAddress$line$spl","_formAddress$line$spl2","_splitLine10","_splitLine11","GetCommonCombinedFormFieldPathValueMap","GetFieldPathValueMap","GetW9FieldPathValueMap","GetWellFormedAddress","addressValues","_formAddress$numberSt","_formAddress$numberSt2","_formAddress$numberSt3","_formAddress$numberSt4","_formAddress$cityStat","_formAddress$cityStat2","_formAddress$cityStat3","_formAddress$cityStat4","numberStreet","cityStateAndZipCode","GetW9WellFormedAddress","address","GetSubstantialOwnerFieldPathValueMap","substantialOwnerIndex","_addressValues$part","_addressValues$part2","part1","permanentAddress","mailingAddress","_formAddress$ownerAdd","_formAddress$ownerAdd2","_formAddress$ownerAdd3","splitLine","ownerAddress","GetSubstantialOwnerWellFormedAddress","part29Owners","GetBusinessAddressFieldPathValueMap","GetWellFormedBusinessAddress","businessAddress","GetW8Eci2014FieldPathValueMap","GetW8Eci2014WellFormedAddress","_addressValues$part3","_addressValues$part4","currentAddress","GetControllingPersonFieldPathValueMap","GetControllingPersonWellFormedAddress","_formAddress$line2","_formAddress$line3","_formAddress$line4","_formAddress$postalCo","_formAddress$country","GetFatcaCrsFieldPathValueMap","controllingPersonIndex","_addressValues$part5$","_addressValues$part5$2","GetFatcaCrsWellFormedAddress","part5","residenceAddress","currentResidenceAddress","InputId","AddressLine1","AddressLine2","AddressLine3","AddressLine4","AddressPostalCode","AddressCountry","EditAddressModal","formAddressValues","addressFormatter","GetW8BenEFieldPathValueMap","GetW8BenEWellFormedAddress","GetW8ExpFieldPathValueMap","GetW8ExpWellFormedAddress","GetW8ImyFieldPathValueMap","GetW8ImyWellFormedAddress","GetW8EciFieldPathValueMap","GetW8EciWellFormedAddress","GetW8BenFieldPathValueMap","GetW8BenWellFormedAddress","GetCrsiFieldPathValueMap","GetCrsiWellFormedAddress","GetFatcaCrsiFieldPathValueMap","GetFatcaCrsiWellFormedAddress","GetFatcaCrseFieldPathValueMap","GetFatcaCrseWellFormedAddress","GetCrseFieldPathValueMap","GetCrseWellFormedAddress","GetCrsCpFieldPathValueMap","GetCrsCpWellFormedAddress","AddressFormatterFactory","setAddressValues","errorMessages","setErrorMessages","_addressFormatter$Get","dispatchAddress","onChangeHandler","_e$target","_state$form$formName","useParams","blankType","RedirectButton","tooltip","redirectBack","NotFoundPage","Document","module","default","Page","Repeat","numTimes","ScrollPdfViewer","onDocumentLoadSuccess","numPages","onDocumentLoadError","pdfjs","fallback","noData","onLoadSuccess","onLoadError","renderTextLayer","renderAnnotationLayer","FormReviewWorkflowSection","onKycChecked","hasValidationResult","confirm","validReviewer","hasReviewerPermission","isCompleted","canComment","availableActions","formReviewForm","WhdStatementLineValidationResult","WhdStatementValidationResult","lines","ValidationResultsSection","onDownloadResultsClick","isFormValid","isCompletedForm","childResult","isValidated","whdResult","showWitholdingValidation","isImy","overallValidity","isSummaryDownloadEnabled","getFormValidityStatus","flexDirection","paddingBottom","childResults","getChildTinMatchFormProps","SupportingDocsSection","groupDocuments","Map","collection","groupedDocs","canUpload","group","onViewSupportingDocument","supportingDocForm","FormReviewerCommentsSection","previousComments","accountComments","comm","onCopyComment","getReviewerStage","onCopyAllPreviousComments","onDraftCommentsChange","copiedComments","comment","OverrideReasonDropdown","onOverrideReasonChange","canOverride","defaultValue","reason","IndividualValidationOverridesSection","existingOverrides","overrideEntries","existingOverride","onRejectionsUpdated","newRejections","currentCodes","changeFound","newOverrideEntries","selectedEntries","hasOverridePermission","overrideExceptedRejection","overrideReasons","piiOverrideReasons","defaultOverrideReasons","onFormOverrideSelected","onFormOverrideCommentChange","onOverrideSelected","onOverrideCommentChange","onSaveOverrides","getOverriddenRejections","onAcceptOverrides","StatementTypes","Unknown","NqiPayeeSpecificFixed","NqiPayeeSpecificVariable","QiPayeeSpecificVariable","QiPooled","NqiPooled","SimpleWhdStatement","DetailedWhdStatement","AltWhdStatement","PooledWhdStatement","PublishedVersionsUpdateModal","versionWindows","publishedVersionIndex","defaultEffectiveFrom","effectiveFrom","defaultEffectiveTo","effectiveTo","newEffectiveFromDate","setNewEffectiveFromDate","newEffectiveToDate","setNewEffectiveToDate","showInfoMessage","setShowInfoMessage","setIsDisabled","newEffectiveFromDateMoment","newEffectiveToDateMoment","filteredVersions","currentWindow","overlappingDateCheck","overlappingVersions","fullOverlappingDateCheck","WhdStatementVersions","_statementVersions$ve","totalItems","remainder","getVersionsCallback","refreshVersions","_useSelector","statementVersions","isLoadingStatementVersions","isShowingPublishedVersionsUpdate","currentPage","setCurrentPage","changePage","_version$data$name","_version$data","_version$data$descrip","_version$data2","isLatestStatement","onConfirmUpdatedDate","onUpdateStatement","trunc","UploadWithholdingSection","_withholdingStatement","_withholdingStatement2","topAccountId","whdValidationResult","setWhdStatement","createWhdStatementType","setCreateWhdStatementType","addWhdStatementType","setAddWhdStatementType","modalStatementType","setModalStatementType","setDisabled","showNewWhdModal","setShowNewWhdModal","newUploadType","setNewUploadType","line1Name","_state$form$w8imyFor","_state$form$w8imyFor$","_state$form$w8imyFor$2","_state$form$w8imyFor$3","entityName","name1","canViewDigitalWhs","canCreateDigitalWhs","valueOrEmpty","selectedStatement","selectedStatementText","selectedIndex","displayCreateWhdModal","statementName","statementDescription","onAddWhdStatementTypeChange","FormOverrideModal","onOverrideConfirm","setComments","FormReviewHeader","selectedResultId","onResultSelect","isCopiedMessageVisible","setIsCopiedMessageVisible","getAccountDescription","textField","innerText","select","execCommand","copyAccountNumber","Summary","SupportingDocs","ReviewerComments","Overrides","WithholdingStatement","FormReviewPanel","_validationResult$res","_accountWithholdingSt","isEnabled","isCollapsed","viewImyTree","viewWithholding","onOpenWithholdingModal","onCloseWithholdingModal","onCollapseExpand","isLoading","isFormOverrideModalShown","onConfirmFormOverride","onOpenFormOverrideModal","onCloseFormOverrideModal","onOpenCancelFormOverrideModal","onCloseCancelFormOverrideModal","isCancelFormOverrideModalShown","isSavingOverrides","accountWithholdingStatement","downloadFormSummaryError","selectedAccountId","setSelectedAccountId","selectedResult","setSelectedResult","FormReviewPanelSections","selectedSection","setSelectedSection","sectionShown","setSectionShown","contextInfoShown","setContextInfoShown","pdfSummaryDownload","setPdfSummaryDownload","prevSelectedResult","piiEnabled","hasSupportingDocsPermission","hasWithholdingPermission","hasViewTreePermission","canApplyFormOverride","formOverrideApplied","hasIntermediaryToolsPermission","canShowWithholdingStatementSection","getSectionClass","getAccountIconCssClass","cssClass","validStatus","endOf","navigateToAccountValidationResult","onHeaderResultSelect","_formId","revokeObjectURL","link","docCount","badgeCount","badgeClass","accountSelected","workflowDescription","FormReviewWorkflow","FormReviewerComments","IndividualValidationOverrides","accountWithholdingStatementList","QueryParams","rawParams","extractedParams","SplitButton","icon","isItemActioning","AsyncBlankBene","AsyncBlankBene2017","AsyncBlankBene2021","AsyncBlankBen","AsyncBlankBen2014","AsyncBlankBen2021","AsyncBlankEci","AsyncBlankEci2017","AsyncBlankEci2021","AsyncBlankExp","AsyncBlankExp2017","AsyncBlankExp2023","AsyncBlankImy","AsyncBlankImy2017","AsyncBlankImy2021","AsyncBlankW9","AsyncBlankW92017","AsyncBlankW92018","AsyncBlankW92024","AsyncBlankCrse","AsyncBlankUCrse2019","AsyncBlankCrseBba","AsyncBlankCrsCp","AsyncBlankUCrsCp2019","AsyncBlankCrsi","AsyncBlankCrsi2024","AsyncBlankRc519","AsyncBlankRc518","AsyncBlankFatcaCrsI2022","AsyncBlankFatcaCrsE2022","AsyncBlankFatcaCrsI2023","AsyncBlankFatcaCrsE2023","BlankContainer","search","toggleOriginal","getPdfFile","validationResultsVisible","originalVisible","pdfBlocked","pdfDownload","pdfView","showDocumentSignNotif","shownDocumentSignNotif","initialAccount","unblock","dirty","ignoreDirtyTaxForm","onUnload","resizeTimer","innerWidth","adjustFormContainerHeight","firstChild","childNodes","bottom","getBoundingClientRect","_match$params","updateFormDimensions","newProps","_newProps$match$param","returnValue","onCancelFormOverride","BlankComponent","_this$props7","usesStockMarketsDropdown","onValidateForm","_this$props8","pdfDownloads","matchingDownloads","_this$props9","classes","isWorkflowComplete","isViewOnlyForm","_this$props10","initialReviewer","secondaryReviewer","expertReviewer","suppReviewer","_this$props11","getOriginalPdfView","_this$props12","getBlankComponent","_formByIdResponse$has","_this$props13","_this$props13$match$p","_this$state5","isBatchStaging","isWorkflowBatchStaging","originalFile","closeEditAddressModal","getWrapperClasses","getFormSectionClasses","getFormContentClasses","renderBlank","getValidationResultsSectionClasses","openFormOverrideModal","closeFormOverrideModal","openCancelFormOverrideModal","closeCancelFormOverrideModal","isExpanded","onFormReviewCollapseExpand","isValidReviewer","download","alt","go","ownProps","_form$w8benForm","_form$w8benForm$value","_form$w8benForm$value2","_form$w8beneForm","_form$w8beneForm$valu","_form$w8beneForm$valu2","_form$w9Form","_form$w9Form$values","_form$w9Form2","_form$w9Form2$values","isDirty","getReduxFormDirtyStatus","_form$w8benForm$valu","_form$w8benForm$valu$","_form$w8beneForm$val","_form$w8beneForm$val$","part2","additionalFiles","_Object$keys","part3","_Object$keys2","OriginalPdfForm","IsAdditional","MICustomDateRange","isDateSelectionValid","previousValue","handleDateFromChange","handleDateToChange","Chart","ArcElement","BarElement","CategoryScale","LinearScale","Legend","Tooltip","MIResults","stackedChart","pieChart","trendChart","openMiDetailsModal","closeMiDetailsModal","graphOptions","colors","invalid","axesLabels","showValidInvalidHint","_metasets","datasetIndex","toggleDataSeries","dataItem","boxes","legendItems","trendAnalysis","labels","dataPoints","total","datasets","getColourArray","dataValidPoints","dataInvalidOrExpiredPoints","expired","borderColor","borderWidth","dates","trendData","currentStage","baseClass","trendAnalysisType","stackedData","getStackedBarData","maxStackedDataPoint","stackedGridInterval","getGridInterval","maxTrendDataPoint","trendGridInterval","getTrendAnalysisData","pieOptions","responsive","maintainAspectRatio","legend","position","onPieChartSliceClick","barOptions","elems","onStackedBarLegendClick","scales","stacked","font","ticks","getLabelForValue","stepSize","trendOptions","onTrendBarLegendClick","fontColor","resetDashboard","getSelectedClientName","onDownloadExcelReportClick","clientCode","onlineTotal","scannedTotal","digitalEntryTotal","batchTotal","getChartHolderStyle","resetFilter","hasData","Pie","getPieChartData","Bar","hasTrendData","arraySize","palette","maxDataPoint","round","dataSeriesLabel","isHiddenNow","hidden","datasetLength","currentSet","update","MIDashboard","selectedDatePeriod","disableSubmit","applyCustomDateRangeModal","onRunReportClick","resetForm","openCustomDateRangeModal","daystoWeekMonday","isoWeekday","subtract","quarter","startOf","returnVal","checkDaysInCustomDateRange","onSelectedClientChange","onDatePeriodChange","CustomRangeOptionText","editDateRange","onTrendAnalysisChange","isTrendOptionShown","onIncludeDeleted","isReportingPeriodSelected","cancelCustomDateRangeModal","initialClientId","_state$auth$settings","_state$reports","reports","QuestionnaireForm","currentQuestion","taxResidency","questionSet","totalQuestions","Introduction","question","fieldType","fieldName","oIndex","TINQuestions","previousQuestionClick","nextQuestionClick","BlankQuestionnaireReduxForm","BlankQuestionnaire","countriesList","QuestionnaireContainer","questionnaire","getBeneQuestions","getW9Questions","_state$questionnaire","SupportingDocumentViewer","editRequired","AccountNumberChangeModal","newAccountNumber","confirmAccountNumber","onDataInputChange","handleCancel","updatedData","confirmNewNumber","charRegEx","_event$target","AddAccountCustomerForm","onCustomerIdSelectedItem","onConfirmCustomerLink","ActiveChip","AccountCustomerList","_PureComponent","selectedCustomer","_selectedCustomer$0$f","certData","formCertificationData","importCertificationData","hasForeignPartners","_selectedCustomer$0$r","classificationData","reportingClassification","withholdingClassification","onConfirmCustomerUnlink","defaultWhdCustomerId","jointAccountsEnabled","customerDtl","_customerDtl$reportin","_customerDtl$reportin2","_customerDtl$reportin3","_customerDtl$reportin4","_customerDtl$reportin5","_customerDtl$reportin6","_customerDtl$reportin7","_customerDtl$reportin8","_customerDtl$crsClass","_customerDtl$crsClass2","_customerDtl$crsClass3","_customerDtl$crsClass4","getCustomerName","capacityString","foreignPartnersSuffix","w9StatusDescription","recordSourceDescription","crsClassification","classificationDescription","linkedTo","PureComponent","AccountFormList","onConfirmFormUnlink","onDeleteForm","isSame","dateUploaded","isAfter","_formData$workflowSta","dateSigned","numAccountsLinked","UpdateDualFormStatusModal","isUpdatingDualFormStatus","onConfirmUpdate","WithholdingRates","showAccountName","hasAccountList","_state$withholding","usePrevious","MoveForm","introText","isMovingForm","moveFormComplete","customerSupportingDocs","setFormId","sourceCustomer","setSourceCustomer","sourceAccount","setSourceAccount","setAccount","accountPartOfAnImyStructure","setAccountPartOfAnImyStructure","setDeleteCollectableSupportingDocs","prevIsMovingForm","_sourceAccount$id","formSelected","onFormSelected","_form$entityName","_form$accountNumber","accountValue","supportingDocumentsForForm","onAccountSelected","MoveReduxForm","CloneForm","isCloningForm","cloneFormComplete","setCloneCollectableSupportingDocs","prevIsCloningForm","accountDescription","CloneReduxForm","DirectChip","AccountCommentsSection","onNewCommentChange","lineIndex","AccountControllingPersonsList","cpsToDisplay","isGettingControllingPersons","onConfirmCpUnlink","onConfirmCpRemove","displayAll","setDisplayAll","IsFatcaCrs","entityForm","cp","dateOfBirth","accountForm","AddAccountControllingPersonForm","isLinkingControllingPerson","isLinkingControllingPersonComplete","setEntityFormId","setCpFormId","setCpType","previsLinkingControllingPerson","formDescription","expirationText","formTypeEnum","ControllingPersonTypes","AddAccountControllingPersonReduxForm","ControllingPersonUnlinkModal","newEffectiveDate","setNewEffectiveDate","LinkedImyStructure","margin","UnLinkedImyStructure","setWhsAccount","onConfirmImyStructureLink","LinkWhsOperationMonitor","showMonitorExplanation","LinkWhsAccountModal","showConfirm","showClose","_storeAccount$account","isUnlinkCustomerModalShown","isUnlinkingCustomer","UnlinkCustomerError","formToDelete","formToUnlink","isUnlinkCpModalShown","UnlinkCpError","cpToUnlinkId","cpUnlinkMinDate","isRemoveCpModalShown","RemoveCpError","cpToRemoveId","updatedAccount","crseEnums","crsCpEnums","crseFormsOnAccount","crsCpFormsOnAccount","_certData","_certData2","_certData3","_certData4","_certData5","_certData6","_certData7","_certData8","_storeAccount$legalEn","_storeAccount$legalEn2","_storeAccount$legalEn3","_storeAccount$legalEn4","_storeAccount$legalEn5","_storeAccount$legalEn6","_storeAccount$legalEn7","_storeAccount$legalEn8","_storeAccount$forms","_singleCustomer$formC","isLoadingData","isUnlinkFormModalShown","isUnlinkingForm","isUpdateDualFormStatusModalShown","isEditingAccount","isSubmittingAccount","isExpiringControllingPerson","isRemovingControllingPerson","isLinkToImyStructureConfirmModalShown","singleCustomer","addressPopulated","getAccountName","openAccountNumberChangeModal","onEditAccountNameClick","onAccountNameChange","onUpdateSubmit","onUpdateCancel","showDualForms","isDualFormRequired","openDualFormStatusModal","getCustomerDescription","lobCategoryCode","getForeignTin","foreignTin","foreignTinNotRequired","giin","part2Giin","activeStatusDate","isBefore","usTaxObligation","openUnlinkFormModal","showJointAccounts","openUnlinkCustomerModal","processCustomerLink","openUnlinkCpModal","openRemoveCpModal","accountContainsValidCpAndCrse","AddAccountControllingPerson","UnlinkedImyStructure","AccountComments","confirmUnlinkForm","closeUnlinkFormModal","confirmUnlinkCustomer","closeUnlinkCustomerModal","confirmUnlinkCp","closeUnlinkCpModal","processUpdateDualFormStatus","confirmRemoveCp","closeRemoveCpModal","confirmLinkToImyStructure","closeLinkToImyStructureConfirmModal","notRequired","isActivated","processCustomerUnlink","processCpUnlink","processCpRemove","defaultWhdCustomerContainer","defaultRatesCustomerId","returnNa","AddCustomerAccountForm","onAccountNumberSelectedItem","onConfirmAccountLink","CustomerAccountList","onConfirmAccountUnlink","selectedRow","setSelectedRow","selectedCertData","setSelectedCertData","accountDtl","_accountDtl$reporting","_accountDtl$reporting2","_accountDtl$reporting3","_accountDtl$reporting4","_accountDtl$reporting5","_accountDtl$reporting6","_accountDtl$reporting7","_accountDtl$reporting8","_accountDtl$crsClassi","_accountDtl$crsClassi2","_accountDtl$crsClassi3","_accountDtl$crsClassi4","_accountDtl$account","_selectedAccount$0$fo2","_selectedAccount$0$re","certificationStatusDescription","_selectedAccount$0$fo","onExpandCollapse","getLegalEntityDescription","CustomerFormList","CustomerAddressCard","_address$address$coun","showActions","onMakePrimary","isNullOrWhiteSpace","getJurisdictionName","countryIso","isPrimary","regime","CustomerAddressesModal","cardClassName","confirmShown","setConfirmShown","selectedAddress","setSelectedAddress","_state$common$jurisdi","isChangingPrimaryAddress","source","CustomerAddresses","_primaryAddress$addre","primaryAddresses","modalTitle","moreButtonText","modalShown","_state$customer$isCus","isCustomerAddressesModalShown","primaryAddress","CustomerJotrCard","_jotr$countryIsoCode","jotr","onMakeWhd","countryIsoCode","noTinReason","noTinExplanation","isWithholdingResidence","CustomerJotrsModal","confirmPrimaryShown","setConfirmPrimaryShown","confirmWhdShown","setConfirmWhdShown","selectedJotr","setSelectedJotr","isChangingPrimaryJotr","isChangingWhdJotr","openPrimaryModal","openWhdModal","CustomerJotrs","primaryJotrs","whdJotrs","isCustomerJotrsModalShown","primaryJotr","whdJotr","CustomerIdChangeModal","newCustomerId","confirmCustomerId","onConfirmCustomerIdChange","updateDate","confirmNewId","SupportingDocsActions","deleteSupportingDocument","viewSupportingDocument","canDelete","_row$original","_row$original2","_row$original3","Customer","_storeCustomer$emailA","initSupportingDocGridCriteria","supportingDocsGridCriteria","supportingDocsColumnDefs","isUnlinkAccountModalShown","isUnlinkingAccount","unlinkAccountError","prevState","updatedCustomer","_storeCustomer$accoun","isEditingCustomer","isSubmittingCustomer","regexp","numAccounts","numJointAccounts","isJointAccount","openCustomerIdChangeModal","citizenshipCode","permanentAddresses","mailingAddresses","phoneNumber","onEditEmailAddressClick","onEmailAddressChange","treatyCountryIsoCode","irsBNotice","bNoticeReceivedDate","irsCNotice","cNoticeReceivedDate","taxResidencies","processCustomerIdChangeModal","isTempUser","openUnlinkAccountModal","processAccountLink","confirmUnlinkAccount","closeUnlinkAccountModal","processAccountUnlink","canDeleteSupportingDocs","_storeCustomer$forms","accountsWithCollectableDocs","_x$account","_x$account$legalEntit","_x$account2","_x$account2$legalEnti","linkedForm","formSignedDate","SetRaisedWithin","onCountChange","NumberRangeFilter","_ref$column$filterVal","old","workflowTab","Closed","isClosed","CiCWorkflowStages","takeAlert","refButton","useRef","blur","Processed","Expired","CICReviewerCommentsSection","onReviewCommentsChanged","curingDocsLoaded","onSupportingDocAdded","responseId","onSupportingDocRemoved","isOwner","allowFormUpdate","cicReviewerForm","_state$monitoring","monitoring","reviewerComment","CicAlertModal","alertIsExpired","closureReason","CicClosureReason","getModalTitle","referenceCode","isCicUpdated","currentCuringDocs","chg","updateFormValue","currentChanges","submissionError","workflowAction","reviewState","submissionErrors","disableFormUpdate","changeType","changeTypeLongDescription","changeDataPoints","presumedCic","onCicChange","onHasCuringDocChange","affectedForms","daysBeforeExpiration","formReplaced","formTypeText","stageDescription","stageText","assignedUserFullName","wfId","onCuringDocAdded","onCuringDocRemoved","onClearSubmissionError","initialChangesString","dataPoint","CureCicAlertForm","enableReinitialize","Monitoring","CicColumnDefs","updateNotificationHeader","closeAssignCicToUserModal","cicActionRequired","actionRequired","createdDate","dateCreated","daysToExpiration","cicDataPoints","closureReasonDesc","item1","item2","CicActions","onTakeAlert","showChangeOwnershipModal","isUserOwner","PagingButtons","evt","changePageCallback","number","navigation","nav","newPageNumber","pageFirstRowNum","pageLastRowNum","firstEnabled","isPagingButtonEnabled","lastEnabled","nextEnabled","previousEnabled","firstPage","previousPage","nextPage","lastPage","updatePageSize","AccountLinkCellRenderer","defaultDisplayData","BatchFilesRedirectButton","forwardRef","BatchFileFormsRedirectButton","historyPathExtension","FilesPrepared","ReceivedByGateway","FilesQueued","Failed","FailedInvalidCoverSheet","FailedInvalidClientInCoverSheet","NoFormsFound","BatchActionsCellRenderer","_ref$context","deleteBatchCallback","completeBatchCallback","numberOfFiles","BatchFilesButton","numberOfForms","BatchFileFormsButton","numberOfUnassignedForms","BatchStatus","batchType","editLegalEntityCallback","editCustomerLegalEntitiesCallback","BatchFileActionsCellRenderer","downloadOriginalBatchFileCallback","deleteFileCallback","BatchFormActionsCellRenderer","batchForm","editFormAssociationsCallback","deleteFormCallback","hasCustomerAccountLink","statusString","CustomerLinkCellRenderer","showStatusChip","GeneralCellRenderer","NumberCellRenderer","BatchesColumnDefinitions","cellRenderer","minWidth","valueGetter","filterParams","cellClass","coverSheetJson","percentageOfValidForms","AgGridReact","Batches","clearReloadFlag","reloadTimer","settingFiltersOnReload","paging","buildGridOptions","suppressRowClickSelection","rowSelection","rowData","showLoadingOverlay","setRowData","columnApi","getColumn","setSort","refreshCells","force","setGridSizeToFit","setColumnVisible","deselectAll","isSelectionEnabled","getColumnState","getFilterModel","pagingButtons","resetPageNumber","getModel","getRowCount","hideOverlay","showNoRowsOverlay","setFilterModel","checkOverlay","reloadGrid","sortModel","getSortModel","filterModel","sortOrFilterChanged","colId","BatchesColDefFactory","onGridReady","gridDidMount","api","onGridResize","onRowDataChanged","gridReloaded","onSortChanged","onFilterChanged","filterApplied","getRowHeight","calculateRowHeight","rowBuffer","DeleteBatchModal","BatchesContainer","triggerSearch","batchesGrid","fetchBatches","batchesPageNumber","batchesPageSize","isConfirmCompleteBatchModalShown","confirmBatchItem","nextKey","updateComponent","setSelectionVisibility","actionMethod","actionParameters","_this$props3$batchToD","getBatchRefreshAction","searchInGrid","openEditLegalEntityModal","openConfirmCompleteBatchModal","closeDeleteBatchModal","closeConfirmCompleteBatchModel","folder","businessDivision","region","numberOfPacks","_state$batches","isEditLegalEntityModalShown","isEditingLegalEntity","batchToEdit","editLegalEntityError","BatchBreadcrumbLinks","batchFileName","getBatchFilePart","BatchFilesColumnDefinitions","BatchFiles","masterDetail","getBatchFileFormData","successCallback","lineVal","BatchFilesColDefFactory","onVirtualColumnsChanged","resizeRowHeights","onVirtualRowRemoved","EditCustomerLegalEntitiesModalForm","onLegalEntitySelectedItem","newLegalEntity","onLegalEntityChange","onConfirmLegalEntityIdChange","isGettingCustomerLegalEntities","EditCustomerLegalEntitiesModalReduxForm","clientIdListOk","DeleteFileModal","BatchFilesContainer","batchFilesGrid","fetchBatchFiles","batchFilesPageNumber","batchFilesPageSize","fetchBatchDetails","pathname","getRefreshAction","BatchBreadcrumbs","getCoverSheetMessage","refreshList","downloadOriginalBatchFile","EditCustomerLegalEntitiesModal","closeEditCustomerLegalEntitiesModal","processEditCustomerLegalEntities","deleteFile","closeDeleteFileModal","_state$batchFiles","batchFormToEdit","BatchFormsColumnDefinitions","BatchForms","BatchFormsColDefFactory","EditFormAssociationsModalForm","customerAccountSelection","onConfirmFormAssociations","setCustomerAccountCallback","EditFormAssociationsModalReduxForm","BatchFormsContainer","batchFormsGrid","fetchBatchForms","batchFormsPageNumber","batchFormsPageSize","isConfirmEditFormAssociationsModalShown","associationChanges","getBatchFormAction","_this$props3$formsToD","closeConfirmEditFormAssociationsModal","deleteForm","EditFormAssociationsModal","closeEditFormAssociationsModal","openConfirmEditFormAssociationsModal","processEditFormAssociations","_state$batchForms","batchItemFromForms","ClientSelectForm","allClients","_defineProperties","_toPropertyKey","toPrimitive","_toPrimitive","_getPrototypeOf","ReferenceError","_isNativeReflectConstruct","Reflect","construct","Boolean","valueOf","_setPrototypeOf","ClientSelect","keyId","_proceedWithClient2","UnauthorizedPage","UnlicensedPage","PasswordChangeForm","PasswordChangeModal","Status","Assemblies","moduleMenuShown","moduleMenu","toggleMenu","handleClickOutsideBellPopup","bellPopupShown","bellpopup","toggleBellPopup","includeUnassigned","showBatches","showOngoingMonitoring","showDigitalEntry","blanks","isAboutOpen","NavLink","exact","activeClassName","showModuleMenu","renderBlankTitle","isMultiTenant","showBellPopup","getBellClassName","defaultChecked","setIncludeAssigned","openAbout","openPasswordChangeModal","changePasswordText","logout","processPasswordChangeModal","closePasswordChangeModal","AboutModal","Banner","mainText","subText","ImyNode","_node$name","showWithholdingRates","nodeType","ratesExist","filteredRates","_node$attributes$a","_rate$stmtIncomeAlloc","_rate$blendedIncomeAl","_rate$blendedRate","_rate$state","paymentType","stmtIncomeAllocation","blendedIncomeAllocation","blendedRate","_rate$stmtIncomeAlloc2","_rate$incomeAllocatio","_rate$blendedRate2","_rate$blendedBreakout","_rate$state2","incomeAllocation","blendedBreakoutRate","_rate$stmtIncomeAlloc3","_rate$incomeAllocatio2","_rate$rate","_rate$breakoutRate","_rate$state3","_rate$whdType","breakoutRate","whdType","VisualiseW8Imy","_React$PureComponent","storeImyOptions","currentStructureId","imyOptions","onPaymentTypesSelectChanged","_this$state$imyOption","displayMode","selectedPaymentTypes","availablePaymentTypes","splice","newOptions","refreshData","onPaymentTypeRemoved","_this$state$imyOption2","onClearPaymentTypes","_this$state$imyOption3","applyPaymentTypeFilter","child","addMissingFields","rawData","treeError","displayWithholdingOption","imyTreeViewOptions","fetchTree","updateOptions","_this$state2$imyOptio","includesStatesRates","areStateRatesIncluded","expanded","_this$state$imyOption4","transform","array","root","isLayer","workflowPhase","workflowComplete","defaultSelectedTypes","imys","filterImys","parentForm","hasChildren","currentNode","currentChild","findForm","_this$state3$imyOptio","_this$state$imyOption5","_this$state5$imyOptio","_this$props8$match$pa","showingVersion","versionUndocumented","versionExpired","versionExpiring","versionCurrent","versionOpenEnded","onScroll","scroll","toggleDisplayMode","toggleShowWithholding","ColourKey","addForms","ReactSortableTree","treeData","newData","canDrag","scaffoldBlockPxWidth","generateNodeProps","rowInfo","cssStyles","_rowInfo$node$workflo","_rowInfo$node$workflo2","_rowInfo$node$workflo3","_rowInfo$node$workflo4","nodeProps","onTitleClick","buttons","isPooledStatementType","ImyChapter3Status","filterResultItem","validationItem","typeCode","specificCodes","ignoreCodes","ValidationInspector","_createClass","filterValidationResults","validationResultList","isArray","filteredResult","hasValidationItems","filterRecommendations","filterWarnings","filterRejections","hasWarnings","hasRejections","WhdValidationSummary","sectionTitle","quantRejections","quantWarnings","isDetailedVisible","setIsDetailedVisible","myRef","handleEscPress","ValidationResultItem","validationEntry","resultType","isWrn","isRej","isRec","itemClass","iconClass","JurisdictionDropDown","addCountryOption","BeneficialOwner","ownerHasValidationErrors","recipient","lineNo","ownerDetails","lineValidation","tierHasValidationErrors","beneficialOwner","recipients","toggleExpandedAdditionalDetails","updateToggledCollapsibleTiers","toggleState","rowIdentifier","isAdditionalExpanded","toggleCollapseTier","isTopTierExpanded","isTierExpanded","isOverrideTopTier","displayImy","formaccountId","onIncomeAllocationChange","checkboxState","getImyCheckboxState","allocationIncomeRate","isTier","allocDisablesImyCheckbox","addOwner","addBeneficialOwner","doesCh3AllowAllocationChange","ch3Name","boRecipients","chapter3Item","doesCh3AllowImyCheckbox","ch3Code","codeToUse","chapter3RecipientCode","ch3Election","allocation","allocationChanged","imyCheckBoxResult","getImyCheckboxSettings","formsDisableImyCheckbox","formsDisableOwnerCheckbox","getOwnerCheckboxSettings","intermediaryCheckboxResult","onCh3Change","clearIsTier","isEdit","disregardedEntityName","taxResidenceCountry","fatcaStatus","usNonUsStatus","city","stateProvince","zip","new","limitationOnBenefits","treatyBenefits","allocationFromChildren","setExpandedTiers","setFieldStates","oldProps","isDeletingRow","tierCollapseStructure","resetOverrideTopTierCollapse","closeDeleteConfirmation","isDetailed","isSimple","isAlt","chapter4Item","allocationValue","getAllocationValue","isAllocationFromChildren","foreignTIN","formInt","detailsFormType","decimalPrecision","currentAccountName","boCopy","updatedObject","allocationRate","isTopExpanded","parentTierTotalAllocation","getTierAllocationValue","getChapter3DescriptionByName","getChapter4DescriptionByName","isParentTierExpanded","openChangeParentModal","parents","isSavingStatement","validationLineNo","statementVersion","hideTierAllocationValue","_this$state5$toggleSt","detailsName","levelParents","isImyLayer","allowLayerAllocationChange","isTierCollapsed","validationResultLine","beneficialOwnerObject","hasFormUploaded","basicDetails","ownerFormId","ownerAccountId","canEdit","canUploadPermission","tierRecipients","getTierRecipientCount","tierIntermediaries","getTierIntermediaryCount","canSetIntermediaryCheckbox","disabledOwnerToolTipText","disableIntermediaryCheckbox","disabledIntermediaryToolTipText","pooledRecipient","displayAllocationValue","customerIdentifier","onNameChange","getAllocationTitle","submitData","shouldDisplayTierAllocationValue","getTierAllocationTitle","displayTierAllocationValue","formTypeValue","buildFormObject","openDeleteConfirmation","getLOBDescriptionByCode","LOBCodes","childIdx","_x$ownerDetails","_x$basicDetails","_x$ownerDetails2","buildElementId","deleteRow","allocationValueOfBeneficialOwner","statementIndex","codeValue","IntermediaryDetailsPanel","addressElements","ignoredValidationCodes","setIsEdit","setIntermediaryName","intermediaryIdentifier","setIntermediaryIdentifier","intermediaryAddressLine1","setIntermediaryAddressLine1","intermediaryCity","setIntermediaryCity","setIntermediaryCountry","intermediaryGiin","setIntermediaryGiin","intermediaryTin","setIntermediaryTin","intermediaryFatcaStatus","setIntermediaryFatcaStatus","intermediaryChapter3","setIntermediaryChapter3","hybridStatus","setHybridStatus","fatcaExemptions","PooledRatesModal","ratesList","setRatesList","setPaymentType","newRate","setNewRate","exemptionCode","setExemptionCode","ratesChanged","setRatesChanges","setAvailablePaymentTypes","rateError","setRateError","provideExemption","setRate","PaymentTypes","rateKeys","pooledRate","FatcaExemptions","deleteItem","step","newRatesList","newPayment","StatementOptionsPanel","specificValidationCodes","isJointAccountElected","jointAccountElection","canConvertJointAccountElection","statementEffectiveDate","statementEffectiveTo","accountingMethod","setOptions","showJointAccountModal","setShowJointAccountModal","jointAccountHintShown","setJointAccountHintShown","sendUpdate","fromMoment","toMoment","isSameOrBefore","validateEffectiveDateRange","dateEffectiveFromOnChange","dateEffectiveToOnChange","beneficialOwners","EffectiveDateConfirmationModal","_FormTypes$getByValue","_structure$basicDetai","_structure$basicDetai2","_structure$basicDetai3","textDecoration","_arrayWithHoles","_iterableToArrayLimit","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","StatementActionsPanel","expandTier","fields","setStatementName","setStatementDescription","isSaveDisabled","setIsSaveDisabled","rejectionOwner","setRejectionOwner","warningOwner","setWarningOwner","formRef","setFormRef","isPublishingStatement","isShowingEffectiveDateConfirmation","statementRecipients","canDownloadPermission","findNearestImy","imyLayer","_x$recipients","layer","findFirstInStructure","lineArray","rowDetails","buildValidationLinesMap","fnFilter","pValidationResult","_pValidationResult$li","statementNameChanged","statementDescriptionChanged","warningsMap","rejectionsMap","firstWarning","firstRejection","onFieldChange","findClosestWithId","parentElement","getAncestorDivWithId","classToFind","div","checkPageForClass","navbarHeight","_smoothScroll","scrollToValidationItem","validationClass","ownerObject","_ownerObject$basicDet","_ownerObject$ownerDet","_x3","hasOriginalStatement","whdAccountId","decimalPlacePrecision","onPublishStatement","SimpleAutoComplete","onClickAction","setSuggestions","setValue","useCallback","valueItem","searchValue","WhdStatement","getOwners","level","structureLocator","structureLocation","getParent","findInRecipients","getStatementImyLayers","getImyLayers","relation","getImyRelation","recipientList","imyRecipient","parentAccount","backupIdentifer","selfAccount","getToggleState","pAccountId","storedState","handleChangeImyParentInputChange","changeParentData","toggleOptions","isAllTiersExpanded","updatedStucture","allTiersExpanded","updateTierSetExpanded","setCollapsibleTier","isToggled","toggleCollapseAllTiers","getOwnersOptionsList","beneficiaryList","_owner$name","_owner$name2","parent","parentTier","parentIdentifier","isIMY","onChangeParentCancel","isChangeParentOpen","onChangeParentSubmit","childAccountId","childOwnerGuid","childParentId","changeParentDetails","currentParentAccountId","childOwnerName","currentParent","childParentName","statementPosition","getWithholdingStatement","setExpandedTier","scrollToLastPosition","prevAccountId","prevStatement","_this$props10$match$p","preventExpand","ownerId","isUpdatingStatement","isPooledRatesModalShown","canEditPermission","isLicensed","imyLayerOptions","withholdingStruct","collapseStructure","ownerList","getImyChapter3DescriptionByName","tierName","getIsDirectBeneficialOwner","onClosePooledRatesModal","displayNumber","_state$withholdingSta","ErrorToastr","errorList","ConfirmationToaster","CustomerSelectedToastr","ConfirmToastr","_form$permanentAddres","_form$jurisdictionofT","_EntityType$find$desc","_EntityType$find","ch3Match","ch4Match","permanentAddressCountry","jurisdictionofTaxResidency","EntityType","entityType","isInvestor","permanentAddressLine1","permanentAddressLine2","permanentAddressLine3","permanentAddressLine4","permanentPostCode","mailingAddressLine1","mailingAddressLine2","mailingAddressLine3","mailingAddressLine4","mailingAddressCountry","mailingPostCode","usTin","AddCustomerAccount","_values$permanentAddr","_values$jurisdictiono","_values$entityType","_values$permanentAddr2","_values$chapter3Statu","_values$mailingAddres","_values$chapter4Statu","setLegalEntity","existingCustomer","setExistingCustomer","existingAccount","setExistingAccount","disableCustomer","disableAccount","existingLegalEntity","allowTogglingCustomerDetails","customerSelection","entityTypes","permanentAddressPresent","currentValues","_document$getElementB","elements","getElementsByClassName","accountSelection","newValues","_newValues$customerId","_newValues$customerNa","_legalEntity$id","_existingCustomer$id","_existingAccount$id","presumptionRuleDataRequired","presumptionRuleDataSelected","MemoizedErrorToastr","legalEntityId","existingCustomerId","existingAccountId","onOk","MemoizedConfirmToastr","Prompt","when","autocompleteCustomer","getExistingCustomer","autocompleteAccount","toastConfirmOptions","clearPresumptionData","additionalDataSelected","clearAdditionalData","_state$form","_state$form$addCustom","_state$form$addCustom2","_state$form2","_state$form2$addCusto","_state$form2$addCusto2","_state$form3","_state$form3$addCusto","_state$form3$addCusto2","_state$form4","_state$form4$addCusto","_state$form4$addCusto2","_state$form5","_state$form5$addCusto","_state$form5$addCusto2","_state$form6","_state$form6$addCusto","_state$form6$addCusto2","_state$customer2","_state$form7","_state$form7$addCusto","legalEntityValue","_state$form$addCustom3","createBrowserHistory","App","monitorRequests","PreloadBrands","Brand","preloadCheck","siteReady","authState","isSiteLoaded","removeItem","Redirect","jsonData","fetch","ok","t0","_preloadCheck","ConnectedRouter","showHeader","isUnauthorized","redirectToLogin","isSiteDown","siteHasNoClients","isUnlicensed","redirectToSSO","Switch","isAuthenticatedUser","proceedWithClientSelection","clientIsSet","Blank","AccountPage","CustomerPage","showCustomerOnboarding","Questionnaire","routeProps","ReduxToastr","preventDuplicates","transitionIn","transitionOut","isLoadingPiiValidationCodes","isUpdatingDualFormStatusShown","isLinkWhsAccountConfirmModalShown","basicCustomerError","basicAccountError","requestCustomers","matchedCustomers","failureCustomers","clearCustomers","AddingCustomerAccountSuccess","isGettingWhdForms","isAddWhdCalcModalShown","isAddingWhdForm","additionalRowDict","whdForms","isCheckingFormPdfExistence","formPdfExists","isPaymentModalShown","isPrivacyNoticeModalShown","paymentValues","specialRatesModalError","getFormsError","requestForms","matchedForms","clearForms","failureForms","addingWhdFormError","addingWhdFormResponse","_state$formByIdRespon","_state$formByIdRespon2","_currentResults","_action$validationRes2","newFormByIdResponse","currentResults","indexOfTinMatchResult","_action$validationRes","matchingViewDownloads","formPdfExistenceError","newReviewComments","matchedAccount","isTaskSuccess","editCustomerLegalEntitiesError","editFormReferenceError","refForms","elIndex","imyTreeIndex","toDelete","existing","_state$formByIdRespon3","_state$formByIdRespon4","_action$tinMatchResul","fullPath","pathLevels","formNameLevel","newForm","arrayIndexStart","arrayIndexEnd","arrayIndex","iArrayIndex","usPassport","isTakingQueueItem","allQueue","isGettingCicAlertXls","userCicAlerts","requestCicAlerts","matchedCicAlerts","failureCicAlerts","clearCicAlerts","getBatchesError","getBatchFilesError","getBatchFormsError","deriveStatementOwners","isSaveFailed","actionAccountId","statementPositionList","combinedFormReducer","reducers","reduceReducers","taxForm","formReducer","combineReducers","exceptions","router","connectRouter","toastrReducer","createStore","createRootReducer","applyMiddleware","thunk","routerMiddleware","container","createRoot","Provider","store","DndProvider","backend","HTML5Backend","_LTracker","trace","send","DEBUG","INFO","WARNING","ERROR","_EnvConfig$apiEndpoin","configUri","tokenUri","formsUri","accountUri","customerUri","detailsUri","formPdfUri","viewPdfUri","bulkDeleteUri","validationUri","reportingUri","reportingXlsUri","customerExportXlsUri","auditTrailUri","allocationStmntsUri","w8imystructureUri","miDashboardUri","miDashboardXlsUri","WhdCalculatedResultsUri","workflowUri","withholdingUri","cicalertUri","batchesUri","legalEntitiesUri","activitypermissionsUri","whdStatementUri","controllingPersonsUri","tinMatchApiUri","staticDataUri","HTTP_408_REQUESTTIMEOUT","HTTP_429_TOOMANYREQUESTS","HTTP_502_BADGATEWAY","HTTP_503_SERVICEUNAVAILABLE","getDefaultConfig","withCredentials","getFormDataConfig","axios","post","getDspConfig","preventRetries","delete","userId","formsIds","formFamilies","tierOwnersOnly","ownersOnlyStem","tierAccountName","batchFormsPath","transformResponse","getFileNameFromHeaders","webkitURL","accountNo","encodeURIComponent","byteLength","put","uri","normalisedAccountId","getCustomerWithholdingRates","getFormWithholdingRates","getAccountWithholdingRates","recordType","recordId","updates","rowItem","cicsList","userID","personType","idQueryString","newAddressId","newJotrId","priority","queuedPromises","globalRetryCount","requestConfig","ms","retryRequest","bypassCheck","isProcessingQueue","startQueuedRequestRetryTimeout","retryPromise","processQueuedPromises","baseUrl","interceptors","use","delayRetryRequest","refreshToken","webpackContext","req","webpackContextResolve","__webpack_require__","exports","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","O","chunkIds","fn","notFulfilled","Infinity","fulfilled","getter","__esModule","mode","ns","chunkId","all","promises","miniCssF","globalThis","Function","hmd","prop","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","nc","onScriptComplete","onerror","onload","doneFns","parentNode","head","nmd","paths","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}