{"version":3,"file":"main.bundle.js?a8e2f30c57f0b0ea151c","mappings":"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","sources":["webpack://taina-online-web-app/webpack/runtime/chunk loaded","webpack://taina-online-web-app/webpack/runtime/create fake namespace object","webpack://taina-online-web-app/webpack/runtime/load script","webpack://taina-online-web-app/./src/actions/app/getLanguages.js","webpack://taina-online-web-app/./src/actions/app/getLanguage.js","webpack://taina-online-web-app/./src/actions/app/getJurisdictions.js","webpack://taina-online-web-app/./src/actions/app/getIgaSubClassifications.js","webpack://taina-online-web-app/./src/actions/app/getLobs.js","webpack://taina-online-web-app/./src/actions/app/getOnlineConfig.js","webpack://taina-online-web-app/./src/actions/app/acceptEula.js","webpack://taina-online-web-app/./src/actions/app/redirectToApi.js","webpack://taina-online-web-app/./src/actions/app/updateConnectionStatus.js","webpack://taina-online-web-app/./src/actions/app/getAuthState.js","webpack://taina-online-web-app/./src/actions/app/getSpecialRateProvisions.js","webpack://taina-online-web-app/./src/actions/app/getOtherArticles.js","webpack://taina-online-web-app/./src/actions/app/getStockMarkets.js","webpack://taina-online-web-app/./src/actions/auth/common.js","webpack://taina-online-web-app/./src/actions/auth/redirectToLogin.js","webpack://taina-online-web-app/./src/actions/exceptions/clearException.js","webpack://taina-online-web-app/./src/actions/exceptions/handleConnectionException.js","webpack://taina-online-web-app/./src/actions/exceptions/handleServerException.js","webpack://taina-online-web-app/./src/actions/exceptions/handleUncaughtException.js","webpack://taina-online-web-app/./src/logger.js","webpack://taina-online-web-app/./src/actions/exceptions/handleException.js","webpack://taina-online-web-app/./src/actions/form/addOnlineForm.js","webpack://taina-online-web-app/./src/actions/form/getFormById.js","webpack://taina-online-web-app/./src/actions/form/validate.js","webpack://taina-online-web-app/./src/actions/form/toggleInstruction.js","webpack://taina-online-web-app/./src/actions/form/getFormChoiceModal.js","webpack://taina-online-web-app/./src/actions/form/formSubmission.js","webpack://taina-online-web-app/./src/actions/form/formConfirmation.js","webpack://taina-online-web-app/./src/actions/form/formCertification.js","webpack://taina-online-web-app/./src/actions/form/formRevert.js","webpack://taina-online-web-app/./src/actions/form/formSigning.js","webpack://taina-online-web-app/./src/actions/form/setSubmissionStage.js","webpack://taina-online-web-app/./src/actions/form/getFormPdf.js","webpack://taina-online-web-app/./src/actions/form/addFormGroup.js","webpack://taina-online-web-app/./src/actions/form/getFormGroupSupportingDocs.js","webpack://taina-online-web-app/./src/actions/form/tinMatchReset.js","webpack://taina-online-web-app/./src/actions/auth/redirectToLogout.js","webpack://taina-online-web-app/./src/actions/auth/confirmAuthentaLink.js","webpack://taina-online-web-app/./src/actions/auth/verifyPin.js","webpack://taina-online-web-app/./src/actions/supportingDocuments/addSupportingDoc.js","webpack://taina-online-web-app/./src/actions/supportingDocuments/deleteSupportingDoc.js","webpack://taina-online-web-app/./src/actions/supportingDocuments/getCollectableSupportingDocPdf.js","webpack://taina-online-web-app/./src/actions/supportingDocuments/getLinkedCollectableSupportingDocId.js","webpack://taina-online-web-app/./src/actions/fileUploads/deleteFileUpload.js","webpack://taina-online-web-app/./src/actions/fileUploads/index.js","webpack://taina-online-web-app/./src/actions/preload/getSitePreload.js","webpack://taina-online-web-app/./src/actions/languages/loadLanguages.js","webpack://taina-online-web-app/./src/actions/questionnaires/newQuestionnaire.js","webpack://taina-online-web-app/./src/actions/questionnaires/resetDirtyQuestionnaire.js","webpack://taina-online-web-app/./src/actions/questionnaires/clearQuestionnaire.js","webpack://taina-online-web-app/./src/actions/questionnaires/answerBlock.js","webpack://taina-online-web-app/./src/actions/questionnaires/answerQuestion.js","webpack://taina-online-web-app/./src/actions/questionnaires/validateQuestionnaireBlocks.js","webpack://taina-online-web-app/./src/common/app/removeDiacritics.js","webpack://taina-online-web-app/./src/common/cookies/index.js","webpack://taina-online-web-app/./src/common/forms/displayMode.js","webpack://taina-online-web-app/./src/common/forms/formGroupTypes.js","webpack://taina-online-web-app/./src/common/forms/formTypeHelper.js","webpack://taina-online-web-app/./src/common/forms/formTypes.js","webpack://taina-online-web-app/./src/common/forms/signedDate.js","webpack://taina-online-web-app/./src/common/forms/submissionStages.js","webpack://taina-online-web-app/./src/common/igaSubClassification/igaSubClassificationHelper.js","webpack://taina-online-web-app/./src/common/language/intlArrayHelper.js","webpack://taina-online-web-app/./src/common/language/localeHelper.js","webpack://taina-online-web-app/./src/common/questionnaires/FormGroupTypes.js","webpack://taina-online-web-app/./src/common/questionnaires/QuestionnaireType.js","webpack://taina-online-web-app/./src/common/storage/index.js","webpack://taina-online-web-app/./src/common/supportingDocuments/whdStatements.js","webpack://taina-online-web-app/./src/components/Common/Buttons.js","webpack://taina-online-web-app/./src/components/Common/DateTimes.js","webpack://taina-online-web-app/./src/components/Common/FileContent/index.js","webpack://taina-online-web-app/./src/components/Common/FileUpload/index.js","webpack://taina-online-web-app/./src/components/Common/Inputs/AutoCompleteField/index.js","webpack://taina-online-web-app/./src/components/Common/Inputs/BoxInputField/index.js","webpack://taina-online-web-app/./src/components/Common/Inputs/DateDropdown/index.js","webpack://taina-online-web-app/./src/components/Common/LoadingWrapper.js","webpack://taina-online-web-app/./src/components/Common/LocalisedMessage/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/QuestionBlockHeader/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/QuestionBlock/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Question/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/questions.js","webpack://taina-online-web-app/./src/components/Questionnaires/validators.js","webpack://taina-online-web-app/./src/env.config.js","webpack://taina-online-web-app/./src/reducers/app.js","webpack://taina-online-web-app/./src/reducers/authentaLink.js","webpack://taina-online-web-app/./src/reducers/exceptions.js","webpack://taina-online-web-app/./src/reducers/form.js","webpack://taina-online-web-app/./src/reducers/supportingDocuments.js","webpack://taina-online-web-app/./src/reducers/fileUploads.js","webpack://taina-online-web-app/./src/common/questionnaires/InfoBoxLayoutType.js","webpack://taina-online-web-app/./src/components/Questionnaires/Fields/QuestionTextField/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Fields/QuestionDropDownField/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Fields/QuestionJurisdictionDropDownField/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Fields/QuestionNumberField/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Fields/QuestionButtonsField/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Fields/QuestionCheckBoxField/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Fields/QuestionYesNoField/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Fields/QuestionUsTinField/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Fields/QuestionDatePickerField/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Fields/QuestionDateDropdownField/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Fields/QuestionGiinField/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Fields/QuestionRadioButtonsField/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Fields/QuestionIgaSubClassificationDropdownField/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Fields/QuestionStockMarketAutocompleteField/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Fields/QuestionSupportingDocUploadField/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Fields/QuestionMultiCheckBoxField/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Fields/QuestionSocialInsuranceNumberField/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Fields/QuestionBusinessNumberField/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Fields/QuestionTrustAccountNumberField/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/QuestionInformationBox/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Results/FormResult.js","webpack://taina-online-web-app/./src/components/Questionnaires/Results/CombinedFormResult.js","webpack://taina-online-web-app/./src/components/Questionnaires/Results/RemainingW8Result.js","webpack://taina-online-web-app/./src/components/Questionnaires/Results/NoFormRequiredResult.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/preQual.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionAddressBlock/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionSignerBlock/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/CollapsibleHeader/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionUsTinBlock/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionGiinBlock/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionForeignTinBlock/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionTreatyClaimBlock/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionTaxResidenceBlock/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionBlockRepeater/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionRepeater/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionControllingPersonEntityBlock/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionW9TaxClassificationBlock/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionControllingPersonBlock/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionEntityTypeBlock/index.js","webpack://taina-online-web-app/./src/common/forms/igaModel.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionTaxIdentificationNumbersBlock/index.js","webpack://taina-online-web-app/./src/common/jurisdictions/jurisdictionsHelper.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionTaxTreatyClaimBlock/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionTreatySpecialRatesClaimBlock/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionNonReportingIgaBlock/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionSubstantialOwnerBlock/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionDreBlock/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionCloselyHeldInvestmentVehicleBlock/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionFtinBlock/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionRcUsTaxResidentBlock/index.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/blocks/incorporationCountryBlock.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/blocks/publiclyTradedNffeBlock.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/fields/uploadSupportingDocField.js","webpack://taina-online-web-app/./src/common/forms/documentTypes.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/blocks/usPersonOrIntermediaryBlock.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/blocks/nonqualifiedIntermediaryBlock.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/blocks/nonwithholdingBlock.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/blocks/qualifiedIntermediaryBlock.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/blocks/residentAddressBlock.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/blocks/mailingAddressBlock.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/blocks/rcTaxResidencesBlock.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionRcControllingPersonBlock/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/Blocks/QuestionCanadianTaxResidentBlock/index.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/w9.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/w8Ben.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/w8Bene.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/crse.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/crsi.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/crscp.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/crsiw8ben.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/fatcacrse.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/fatcacrsi.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/w8Imy.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/rc518.js","webpack://taina-online-web-app/./src/common/questionnaires/definitions/rc519.js","webpack://taina-online-web-app/./src/common/questionnaires/prePopulater.js","webpack://taina-online-web-app/./src/common/questionnaires/creater.js","webpack://taina-online-web-app/./src/reducers/questionnaires.js","webpack://taina-online-web-app/./src/reducers/index.js","webpack://taina-online-web-app/./src/store/index.js","webpack://taina-online-web-app/./src/index.js","webpack://taina-online-web-app/./src/services/api.js","webpack://taina-online-web-app/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://taina-online-web-app/./src/common/app/Preload.js","webpack://taina-online-web-app/./src/components/AppProvider/index.js","webpack://taina-online-web-app/./src/components/Common/Notifications.js","webpack://taina-online-web-app/./src/components/Errors/ErrorPage.js","webpack://taina-online-web-app/./src/components/Errors/ServerError.js","webpack://taina-online-web-app/./src/components/Errors/ErrorBoundary.js","webpack://taina-online-web-app/./src/components/Errors/NotFoundError.js","webpack://taina-online-web-app/./src/components/Errors/InternetConnectionError.js","webpack://taina-online-web-app/./src/components/Errors/SessionTimeoutError.js","webpack://taina-online-web-app/./src/components/Errors/InsufficientFormInformationError.js","webpack://taina-online-web-app/./src/components/Errors/UnsupportedError.js","webpack://taina-online-web-app/./src/components/Errors/UnauthorisedError.js","webpack://taina-online-web-app/./src/components/Errors/UnlicensedError.js","webpack://taina-online-web-app/./src/components/Errors/ServiceUnavailableError.js","webpack://taina-online-web-app/./src/components/CustomerAvatar/index.js","webpack://taina-online-web-app/./src/components/SuccessPage/index.js","webpack://taina-online-web-app/./src/components/Footer/FooterLinkPage/index.js","webpack://taina-online-web-app/./src/components/LogoutPage/index.js","webpack://taina-online-web-app/./src/common/pinType/index.js","webpack://taina-online-web-app/./src/components/AuthentaLink/PinConfirmation.js","webpack://taina-online-web-app/./src/components/Modals/ModalWrapper/index.js","webpack://taina-online-web-app/./src/components/AuthentaLink/ReferenceConfirmation.js","webpack://taina-online-web-app/./src/components/Modals/SelectAccountModal/index.js","webpack://taina-online-web-app/./src/components/ModalInstructions/index.js","webpack://taina-online-web-app/./src/components/MustHaveReadText/index.js","webpack://taina-online-web-app/./src/components/Modals/FormChoiceModal/index.js","webpack://taina-online-web-app/./src/components/Forms/DefaultFormDisplay/index.js","webpack://taina-online-web-app/./src/components/Errors/NoInternetPage.js","webpack://taina-online-web-app/./src/components/Common/ConnectionStatus/index.js","webpack://taina-online-web-app/./src/components/MenuMobile/index.js","webpack://taina-online-web-app/./src/components/PoweredBy/index.js","webpack://taina-online-web-app/./src/components/LanguageSelector/index.js","webpack://taina-online-web-app/./src/components/Header/index.js","webpack://taina-online-web-app/./src/components/Footer/index.js","webpack://taina-online-web-app/./src/components/CookieBanner/index.js","webpack://taina-online-web-app/./src/components/KeepAlive/index.js","webpack://taina-online-web-app/./src/components/Modals/Eula/index.js","webpack://taina-online-web-app/./src/components/IconLibrary/index.js","webpack://taina-online-web-app/./src/components/Questionnaires/PreQualifyingQuestionnaire/index.js","webpack://taina-online-web-app/./src/components/FormSelectionCard/index.js","webpack://taina-online-web-app/./src/containers/FormSelection/index.js","webpack://taina-online-web-app/./src/containers/Home/index.js","webpack://taina-online-web-app/./src/components/ScrollToTop/index.js","webpack://taina-online-web-app/./src/components/Common/Accordion.js","webpack://taina-online-web-app/./src/components/ValidationResults/index.js","webpack://taina-online-web-app/./src/components/ValidationResultsStacked/index.js","webpack://taina-online-web-app/./src/components/Modals/FormConfirmation/index.js","webpack://taina-online-web-app/./src/components/Modals/FormSigning/index.js","webpack://taina-online-web-app/./src/components/Modals/PinVerificationModal/index.js","webpack://taina-online-web-app/./src/components/Modals/PenaltiesOfPerjuryModal/index.js","webpack://taina-online-web-app/./src/components/EvidentiaryDocs/index.js","webpack://taina-online-web-app/./src/components/SupportingDocuments/index.js","webpack://taina-online-web-app/./src/components/Modals/SupportingDocumentsModal/index.js","webpack://taina-online-web-app/./src/containers/Form/lazyBlanks.js","webpack://taina-online-web-app/./src/containers/Form/index.js","webpack://taina-online-web-app/./src/containers/FormGroup/index.js","webpack://taina-online-web-app/./src/containers/App/index.js","webpack://taina-online-web-app/webpack/bootstrap","webpack://taina-online-web-app/webpack/runtime/compat get default export","webpack://taina-online-web-app/webpack/runtime/define property getters","webpack://taina-online-web-app/webpack/runtime/ensure chunk","webpack://taina-online-web-app/webpack/runtime/get javascript chunk filename","webpack://taina-online-web-app/webpack/runtime/get mini-css chunk filename","webpack://taina-online-web-app/webpack/runtime/global","webpack://taina-online-web-app/webpack/runtime/harmony module decorator","webpack://taina-online-web-app/webpack/runtime/hasOwnProperty shorthand","webpack://taina-online-web-app/webpack/runtime/make namespace object","webpack://taina-online-web-app/webpack/runtime/node module decorator","webpack://taina-online-web-app/webpack/runtime/publicPath","webpack://taina-online-web-app/webpack/runtime/jsonp chunk loading","webpack://taina-online-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-online-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 { ApiService } from 'services';\r\n\r\nexport const GET_LANGUAGES_REQUEST = 'GET_LANGUAGES_REQUEST';\r\nexport const GET_LANGUAGES_FAILURE = 'GET_LANGUAGES_FAILURE';\r\nexport const GET_LANGUAGES_SUCCESS = 'GET_LANGUAGES_SUCCESS';\r\n\r\nfunction request() {\r\n return {\r\n type: GET_LANGUAGES_REQUEST,\r\n };\r\n}\r\n\r\nfunction receive(data) {\r\n return {\r\n type: GET_LANGUAGES_SUCCESS,\r\n languages: data\r\n };\r\n}\r\n\r\nexport function getLanguages() {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .getLanguages()\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 });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { history } from 'containers/App';\r\n\r\nexport const GET_LANGUAGE_REQUEST = 'GET_LANGUAGE_REQUEST';\r\nexport const GET_LANGUAGE_FAILURE = 'GET_LANGUAGE_FAILURE';\r\nexport const GET_LANGUAGE_SUCCESS = 'GET_LANGUAGE_SUCCESS';\r\nexport const GET_DEFAULT_LANGUAGE_SUCCESS = 'GET_DEFAULT_LANGUAGE_SUCCESS';\r\n\r\nfunction request() {\r\n return {\r\n type: GET_LANGUAGE_REQUEST,\r\n };\r\n}\r\n\r\nfunction receive(messages) {\r\n return {\r\n type: GET_LANGUAGE_SUCCESS,\r\n locale: messages.locale,\r\n messages\r\n };\r\n}\r\n\r\nexport function getLanguage(locale) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n const promise = () => ApiService\r\n .getLanguage(locale)\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 if (error.message === 'Network Error') {\r\n history.push('/no-internet');\r\n }\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\n\r\nexport const GET_JURISDICTIONS_REQUEST = 'GET_JURISDICTIONS_REQUEST';\r\nexport const GET_JURISDICTIONS_FAILURE = 'GET_LANGUAGES_FAILURE';\r\nexport const GET_JURISDICTIONS_SUCCESS = 'GET_JURISDICTIONS_SUCCESS';\r\n\r\nfunction request() {\r\n return {\r\n type: GET_JURISDICTIONS_REQUEST,\r\n };\r\n}\r\n\r\nfunction receive(data) {\r\n return {\r\n type: GET_JURISDICTIONS_SUCCESS,\r\n jurisdictions: data.data.jurisdictions,\r\n usTaxTreatyCountries: data.data.usTaxTreatyCountries,\r\n annexIICountries: data.data.annexIICountries\r\n };\r\n}\r\n\r\nexport function getJurisdictions() {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\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 && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\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_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\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_LOBS_SUCCESS = 'GET_LOBS_SUCCESS';\r\nexport const GET_LOBS_FAILURE = 'GET_LOBS_FAILURE';\r\n\r\nfunction receive(lobs) {\r\n return {\r\n type: GET_LOBS_SUCCESS,\r\n lobs\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: GET_LOBS_FAILURE\r\n };\r\n}\r\n\r\nexport function getLobs() {\r\n return (dispatch) => {\r\n const promise = () => ApiService\r\n .getLobs()\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\nimport { history } from 'containers/App';\r\nimport CryptoJS from 'crypto-js';\r\nimport { getIgaSubClassificationCombos } from './getIgaSubClassifications';\r\nimport { getLobs } from './getLobs';\r\n\r\nexport const GET_ONLINE_CONFIG_REQUEST = 'GET_ONLINE_CONFIG_REQUEST';\r\nexport const GET_ONLINE_CONFIG_FAILURE = 'GET_ONLINE_CONFIG_FAILURE';\r\nexport const GET_ONLINE_CONFIG_SUCCESS = 'GET_ONLINE_CONFIG_SUCCESS';\r\nexport const CLEAR_ONLINE_CONFIG_DEFAULT_FORM = 'CLEAR_ONLINE_CONFIG_DEFAULT_FORM';\r\nexport const SESSION_TIME_OUT = 'SESSION_TIME_OUT';\r\nexport const SET_SELECTED_ACCOUNT = 'SET_SELECTED_ACCOUNT';\r\nexport const CLEAR_MODAL_UP_FRONT = 'CLEAR_MODAL_UP_FRONT';\r\n\r\nfunction request() {\r\n return {\r\n type: GET_ONLINE_CONFIG_REQUEST,\r\n };\r\n}\r\n\r\nfunction receive(data) {\r\n let jsonObject = null;\r\n let key = null;\r\n let customerData = null;\r\n\r\n if (data) {\r\n key = data.secretKey;\r\n if (key) {\r\n const decryptedArray = CryptoJS.AES.decrypt(data.customerDetails, key);\r\n const decryptedText = decryptedArray.toString(CryptoJS.enc.Utf8);\r\n jsonObject = JSON.parse(decryptedText);\r\n\r\n if (jsonObject) {\r\n customerData = data.customerDetails;\r\n }\r\n }\r\n }\r\n\r\n return {\r\n type: GET_ONLINE_CONFIG_SUCCESS,\r\n onlineConfig: data,\r\n customerData,\r\n key\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: GET_ONLINE_CONFIG_FAILURE\r\n };\r\n}\r\n\r\nexport function clearDefaultForm(defaultFormUrl) {\r\n return (dispatch) => {\r\n dispatch({\r\n type: CLEAR_ONLINE_CONFIG_DEFAULT_FORM,\r\n defaultFormUrl\r\n });\r\n };\r\n}\r\n\r\nexport function clearModalUpFront() {\r\n return (dispatch) => {\r\n dispatch({\r\n type: CLEAR_MODAL_UP_FRONT\r\n });\r\n };\r\n}\r\n\r\nexport function timeOutSession() {\r\n return (dispatch) => {\r\n dispatch({ type: SESSION_TIME_OUT });\r\n };\r\n}\r\n\r\nfunction setAccountId(accountId) {\r\n return {\r\n type: SET_SELECTED_ACCOUNT,\r\n accountId\r\n };\r\n}\r\n\r\nexport function setAccount(accountId) {\r\n return (dispatch) => {\r\n dispatch(setAccountId(parseInt(accountId, 10)));\r\n };\r\n}\r\n\r\nexport function getOnlineConfig() {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .getOnlineConfig()\r\n .then((response) => {\r\n dispatch(receive(response.data.data));\r\n if (response?.data?.data?.customer) {\r\n const { accounts } = response.data.data.customer;\r\n if (accounts && accounts.length === 1) {\r\n dispatch(setAccount(accounts[0].id));\r\n }\r\n dispatch(getIgaSubClassificationCombos());\r\n dispatch(getLobs());\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(reject());\r\n if (error.message === 'Network Error') {\r\n history.push('/no-internet');\r\n }\r\n\r\n if (error.response?.status) {\r\n if (error.response.status === 403) {\r\n history.push('/unlicensed');\r\n }\r\n\r\n if (error.response.status === 429\r\n || error.response.status === 502\r\n || error.response.status === 503) {\r\n history.push('/unavailable');\r\n }\r\n\r\n if (error.response.status === 500) {\r\n history.push('/server');\r\n }\r\n }\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n","import EnvConfig from 'env.config';\r\n\r\nexport const EULA_ACCEPTED = 'EULA_ACCEPTED';\r\n\r\nfunction accept() {\r\n return {\r\n type: EULA_ACCEPTED\r\n };\r\n}\r\n\r\nexport function acceptEula(setCookie) {\r\n return (dispatch) => {\r\n if (setCookie) {\r\n document.cookie = `${ EnvConfig.eulaCookieName }=true; path=/; expires=${ new Date(2147483647 * 1000).toUTCString() }; samesite=lax`;\r\n }\r\n dispatch(accept());\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\n\r\n/* eslint-disable-next-line */\r\nexport function redirectToApi(path) {\r\n const url = ApiService.getBaseApiUrl();\r\n\r\n if (url && path) {\r\n const location = url.slice(0, -4) + path;\r\n window.location = location;\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","import { ApiService } from 'services';\r\nimport { AuthState } from 'actions/auth/common';\r\n\r\nexport const AUTH_STATE_REQUEST = 'AUTH_STATE_REQUEST';\r\nexport const AUTH_STATE_SUCCESS = 'AUTH_STATE_SUCCESS';\r\n\r\nfunction request() {\r\n return {\r\n type: AUTH_STATE_REQUEST,\r\n authState: AuthState.Requesting,\r\n };\r\n}\r\n\r\nfunction receive(data) {\r\n return {\r\n type: AUTH_STATE_SUCCESS,\r\n authState: data.authState,\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 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 });\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_SPECIAL_RATE_PROVISIONS_SUCCESS = 'GET_SPECIAL_RATE_PROVISIONS_SUCCESS';\r\nexport const GET_SPECIAL_RATE_PROVISIONS_CLEAR = 'GET_SPECIAL_RATE_PROVISIONS_CLEAR';\r\n\r\nfunction receive(specialRateProvisions) {\r\n return {\r\n type: GET_SPECIAL_RATE_PROVISIONS_SUCCESS,\r\n specialRateProvisions\r\n };\r\n}\r\n\r\nfunction clear() {\r\n return {\r\n type: GET_SPECIAL_RATE_PROVISIONS_CLEAR\r\n };\r\n}\r\n\r\nexport function getSpecialRateProvisions(treatyCountry, hasPensionClaim) {\r\n return (dispatch) => {\r\n const promise = () => ApiService\r\n .getSpecialRateProvisions(treatyCountry, 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\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_OTHER_ARTICLES_SUCCESS = 'GET_OTHER_ARTICLES_SUCCESS';\r\nexport const GET_OTHER_ARTICLES_CLEAR = 'GET_OTHER_ARTICLES_CLEAR';\r\n\r\nfunction receive(otherArticles) {\r\n return {\r\n type: GET_OTHER_ARTICLES_SUCCESS,\r\n otherArticles\r\n };\r\n}\r\n\r\nfunction clear() {\r\n return {\r\n type: GET_OTHER_ARTICLES_CLEAR\r\n };\r\n}\r\n\r\nexport function getOtherArticles(treatyCountry) {\r\n return (dispatch) => {\r\n const promise = () => ApiService\r\n .getOtherArticles(treatyCountry)\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 clearOtherArticles() {\r\n return dispatch => dispatch(clear());\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_STOCK_MARKETS_SUCCESS = 'GET_STOCK_MARKETS_SUCCESS';\r\nexport const GET_STOCK_MARKETS_FAILURE = 'GET_STOCK_MARKETS_FAILURE';\r\n\r\nfunction receive(stockMarkets) {\r\n return {\r\n type: GET_STOCK_MARKETS_SUCCESS,\r\n stockMarkets\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: GET_STOCK_MARKETS_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","// eslint-disable-next-line import/prefer-default-export\r\nexport const AuthState = {\r\n Unknown: 'Unknown',\r\n Requesting: 'Requesting',\r\n Authorised: 'Authorised',\r\n Unauthorised: 'Unauthorised',\r\n LoggedOut: 'LoggedOut'\r\n};\r\n","import { ApiService } from 'services';\r\n\r\n/* eslint-disable-next-line */\r\nexport function redirectToLogin() {\r\n const url = ApiService.getLoginUrl();\r\n\r\n if (url) {\r\n window.location = url;\r\n }\r\n}\r\n","export const CLEAR_EXCEPTION = 'CLEAR_EXCEPTION';\r\nexport const CLOSE_EXCEPTION = 'CLOSE_EXCEPTION';\r\n\r\nexport function clearException(index) {\r\n return {\r\n type: CLEAR_EXCEPTION,\r\n index\r\n };\r\n}\r\n\r\nexport function closeException(index) {\r\n return {\r\n type: CLOSE_EXCEPTION,\r\n index\r\n };\r\n}\r\n","export const HANDLE_CONNECTION_EXCEPTION = 'HANDLE_CONNECTION_EXCEPTION';\r\n\r\nconst connectionException = {\r\n code: 502,\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: 502,\r\n message: connectionException.message\r\n };\r\n}\r\n\r\nexport function handleConnectionException(callbackActionCreator, _showNetworkErrorAlert) {\r\n return (dispatch) => {\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","export const HANDLE_SERVER_EXCEPTION = 'HANDLE_SERVER_EXCEPTION';\r\n\r\nfunction requestHandleServerException(exception) {\r\n return {\r\n type: HANDLE_SERVER_EXCEPTION,\r\n ...exception\r\n };\r\n}\r\n\r\nexport function handleServerException(exception, callbackActionCreator, showAlert = true) {\r\n return (dispatch) => {\r\n if (!exception || !exception.data) {\r\n exception.data = {\r\n code: 500,\r\n message: \"Something's not quite right. Please try again or speak to your designated contact.\"\r\n };\r\n }\r\n\r\n if (exception && exception.status === 403 && exception.data.code === 498) {\r\n return null;\r\n }\r\n\r\n const errorData = exception.data.error ? exception.data.error : exception.data;\r\n\r\n if (exception.data.Error) {\r\n errorData.code = exception.data.Error.Code;\r\n errorData.message = exception.data.Error.Message;\r\n }\r\n\r\n if (callbackActionCreator && typeof callbackActionCreator === 'function') {\r\n dispatch(callbackActionCreator(errorData));\r\n }\r\n\r\n if (showAlert) {\r\n return dispatch(requestHandleServerException(errorData));\r\n }\r\n return null;\r\n };\r\n}\r\n","export 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 return (dispatch) => {\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 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 { handleUncaughtException } from './handleUncaughtException';\r\nimport { handleConnectionException } from './handleConnectionException';\r\nimport { handleServerException } from './handleServerException';\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\n// eslint-disable-next-line import/prefer-default-export\r\nexport function handleException(\r\n exception,\r\n callbackActionCreator,\r\n showAlert = true,\r\n showNetworkErrorAlert = true\r\n) {\r\n if (exception instanceof ErrorEvent) {\r\n // Uncaught error has happened\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: EXCEPTION_TYPE.UNCAUGHT\r\n });\r\n return handleUncaughtException(exception, callbackActionCreator, showAlert);\r\n }\r\n if (exception instanceof Error && !exception.response && (exception.isAxiosError !== true || exception.message !== 'Network Error')) {\r\n // Uncaught error has happened\r\n console.error('Uncaught error has happened', exception);\r\n Logger.error({\r\n message: exception.message,\r\n stack: exception.stack,\r\n filename: exception.filename,\r\n colno: exception.colno,\r\n lineno: exception.lineno,\r\n type: EXCEPTION_TYPE.UNCAUGHT\r\n });\r\n return handleUncaughtException(exception, callbackActionCreator, showAlert);\r\n }\r\n if (exception.response) {\r\n // The response has been received from the server\r\n if (exception.response.data && exception.response.status === 401) {\r\n console.warn('API request: Unauthorized');\r\n } else {\r\n console.error('Exception from server', exception.response.data);\r\n Logger.error({\r\n message: `API request error: ${ (exception.response && exception.response.data && exception.response.data.message) || 'Unknown exception' }`,\r\n request: {\r\n method: exception.config && exception.config.method,\r\n URL: exception.config && exception.config.url,\r\n data: exception.config && exception.config.data\r\n },\r\n response: {\r\n ...exception.response.data\r\n },\r\n type: EXCEPTION_TYPE.API_REQUEST\r\n });\r\n }\r\n return handleServerException(exception.response, callbackActionCreator, showAlert);\r\n }\r\n // Network exception\r\n console.error('Network exception', exception);\r\n Logger.error({\r\n message: 'Network error',\r\n request: {\r\n method: exception.config && exception.config.method,\r\n URL: exception.config && exception.config.url\r\n },\r\n type: EXCEPTION_TYPE.NETWORK\r\n });\r\n return handleConnectionException(callbackActionCreator, showNetworkErrorAlert);\r\n}\r\n","import { push } from 'react-router-redux';\r\nimport { ApiService } from 'services';\r\nimport { clearDefaultForm } from 'actions';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { HANDLE_UNCAUGHT_EXCEPTION } from 'actions/exceptions/handleUncaughtException';\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\n\r\nfunction request(formType) {\r\n return {\r\n type: ADD_FORM_REQUEST,\r\n isAddingForm: formType\r\n };\r\n}\r\n\r\nfunction receive() {\r\n return {\r\n type: ADD_FORM_SUCCESS\r\n };\r\n}\r\n\r\nfunction reject(error) {\r\n return {\r\n type: HANDLE_UNCAUGHT_EXCEPTION,\r\n code: error.code,\r\n message: error.message\r\n };\r\n}\r\n\r\nexport function addOnlineForm(formTypeInfo, accountId) {\r\n const { formType } = formTypeInfo;\r\n const postData = {\r\n isOnline: true,\r\n accountId,\r\n formType\r\n };\r\n\r\n return (dispatch) => {\r\n if (!formTypeInfo.canPrepopulate) {\r\n return dispatch(push('/insufficient-information'));\r\n }\r\n\r\n dispatch(request(formType));\r\n\r\n const promise = () => ApiService\r\n .addForm(postData)\r\n .then((response) => {\r\n if (response.data && response.data.success && response.data.formId > 0) {\r\n const formUrl = `/forms/${ formType }/${ response.data.formId }`;\r\n dispatch(receive());\r\n dispatch(clearDefaultForm(formUrl));\r\n return dispatch(push(formUrl));\r\n }\r\n\r\n dispatch({ type: ADD_FORM_FAILURE });\r\n if (response.data && response.data.error) {\r\n return dispatch(reject(response.data.error));\r\n }\r\n\r\n return dispatch(reject({\r\n code: '-9999',\r\n message: 'Sorry, there was an unexpected error communicating with our servers'\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({ type: ADD_FORM_FAILURE });\r\n if (error.response.status !== 403) {\r\n dispatch(handleException(error, reject));\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\nimport format from 'date-fns/format';\r\nimport { setAccount } from 'actions';\r\nimport { defaultSignedDate } from 'common/forms/signedDate';\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\r\nfunction request() {\r\n return {\r\n type: GET_FORM_BY_ID_REQUEST\r\n };\r\n}\r\n\r\nfunction receive(formData, validationResult, supportingDocs, formReviewState, workflowState, accCollectableSupportingDocs) {\r\n return {\r\n type: GET_FORM_BY_ID_SUCCESS,\r\n formData,\r\n validationResult,\r\n supportingDocs,\r\n formReviewState,\r\n workflowState,\r\n formError: null,\r\n accCollectableSupportingDocs\r\n };\r\n}\r\n\r\nfunction reject(formError) {\r\n return {\r\n type: GET_FORM_BY_ID_FAILURE,\r\n formError\r\n };\r\n}\r\n\r\nfunction checkSignature(data, partName, dateFormat) {\r\n const signedName = 'NOT YET REQUESTED';\r\n if (data != null) {\r\n if (data[partName] != null && !data[partName].signature) {\r\n data[partName].signature = signedName;\r\n } else if (data[partName] === null) {\r\n const signedDate = defaultSignedDate();\r\n data[partName] = {\r\n signature: signedName,\r\n date: format(signedDate, dateFormat),\r\n dateSigned: format(signedDate, dateFormat)\r\n };\r\n }\r\n }\r\n}\r\n\r\nexport function getFormById(formType, formId) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .getFormById(formType, formId)\r\n .then((response) => {\r\n if (response.data && response.data.data) {\r\n response.data.data.customerDbId = response.data.customer;\r\n if (response.data.accounts && response.data.accounts.length > 0) {\r\n response.data.data.accountId = [response.data.accounts];\r\n dispatch(setAccount(response.data.accounts[0]));\r\n } else {\r\n response.data.data.accountId = null;\r\n }\r\n\r\n switch (formType) {\r\n case 'w9_2018':\r\n case 'w9_2024':\r\n checkSignature(response.data.data, 'certification', 'MM-dd-yyyy');\r\n break;\r\n case 'w8ben':\r\n case 'w8ben_2021':\r\n checkSignature(response.data.data, 'part3', 'MM-dd-yyyy');\r\n break;\r\n case 'w8bene_2017':\r\n case 'w8bene_2021':\r\n checkSignature(response.data.data, 'part30', 'MM-dd-yyyy');\r\n break;\r\n case 'w8eci':\r\n case 'w8eci_2021':\r\n checkSignature(response.data.data, 'part2', 'MM-dd-yyyy');\r\n break;\r\n case 'w8imy_2017':\r\n case 'w8imy_2021':\r\n checkSignature(response.data.data, 'part29', 'MM-dd-yyyy');\r\n break;\r\n case 'w8exp':\r\n case 'w8exp_2023':\r\n checkSignature(response.data.data, 'part4', 'MM-dd-yyyy');\r\n break;\r\n case 'crsi':\r\n case 'crsi_2024':\r\n checkSignature(response.data.data, 'part3', 'dd-MM-yyyy');\r\n break;\r\n case 'crse':\r\n checkSignature(response.data.data, 'part4', 'dd-MM-yyyy');\r\n break;\r\n case 'crscp':\r\n checkSignature(response.data.data, 'part4', 'dd-MM-yyyy');\r\n break;\r\n default:\r\n }\r\n }\r\n dispatch(receive(response.data.data, response.data.validationResult, response.data.supportingDocs, response.data.review, response.data.workflowState, response.data.collectableSupportingDocs));\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 code = error.response && error.response.data && error.response.data.error && error.response.data.error.code;\r\n if (code !== 401) {\r\n dispatch(handleException(error, reject, !code || (code !== 404 && code !== 401)));\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\nimport { resetDirtyFormQuestionnaire } from 'actions/questionnaires';\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 request() {\r\n return {\r\n type: VALIDATE_FORM_REQUEST\r\n };\r\n}\r\n\r\nfunction receive(validationResponse) {\r\n return {\r\n type: VALIDATE_FORM_SUCCESS,\r\n validationResponse\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: VALIDATE_FORM_FAILURE\r\n };\r\n}\r\n\r\nexport function validate(formType, formId, formData) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .validateForm(formType, formId, formData)\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\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true, false));\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n\r\nexport function validateQuestionnaire(formType, formId, formData) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .validateQuestionnaireForm(formType, formId, JSON.stringify(formData))\r\n .then((response) => {\r\n dispatch(resetDirtyFormQuestionnaire());\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\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true, false));\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n\r\nexport function validateFormGroupQuestionnaire(formGroupType, formGroupId, formData) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .validateFormGroupQuestionnaire(formGroupType, formGroupId, JSON.stringify(formData))\r\n .then((response) => {\r\n dispatch(resetDirtyFormQuestionnaire());\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\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n dispatch(handleException(error, reject, true, false));\r\n }\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 const crypto = window.crypto || window.msCrypto;\r\n const randomArray = new Uint32Array(1);\r\n crypto.getRandomValues(randomArray);\r\n return (((1 + randomArray[0]) * 0x10000) || 0).toString(16).substring(1);\r\n}\r\n\r\nfunction toggle() {\r\n return {\r\n type: TOGGLE_INSTRUCTION,\r\n instructionToggled: `${ S4() }${ S4() }-${ S4() }-4${ S4().substring(0, 3) }-${ S4() }-${ S4() }${ S4() }${ S4() }`.toLowerCase()\r\n };\r\n}\r\n\r\nexport function toggleInstruction() {\r\n return (dispatch) => {\r\n dispatch(toggle());\r\n };\r\n}\r\n","import { push } from 'react-router-redux';\r\nimport { clearModalUpFront } from 'actions';\r\n\r\nexport const OPEN_FORM_CHOICE_MODAL = 'OPEN_FORM_CHOICE_MODAL';\r\nexport const CLOSE_FORM_CHOICE_MODAL = 'CLOSE_FORM_CHOICE_MODAL';\r\n\r\nfunction openFormChoiceModal(formType) {\r\n return {\r\n type: OPEN_FORM_CHOICE_MODAL,\r\n formType,\r\n isFormChoiceShown: true\r\n };\r\n}\r\n\r\nfunction closeFormChoiceModal() {\r\n return {\r\n type: CLOSE_FORM_CHOICE_MODAL,\r\n isFormChoiceShown: false\r\n };\r\n}\r\n\r\nexport function showFormChoiceModal(formType) {\r\n return (dispatch) => {\r\n dispatch(openFormChoiceModal(formType));\r\n return dispatch(push('/form-selection'));\r\n };\r\n}\r\n\r\nexport function hideFormChoiceModal() {\r\n return (dispatch) => {\r\n dispatch(clearModalUpFront());\r\n dispatch(closeFormChoiceModal());\r\n return dispatch(push('/form-selection'));\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { setSubmissionStage } from 'actions';\r\n\r\nexport const FORM_SUBMIT_REQUEST = 'FORM_SUBMIT_REQUEST';\r\nexport const FORM_SUBMIT_COMPLETE = 'FORM_SUBMIT_COMPLETE';\r\n\r\nfunction request() {\r\n return {\r\n type: FORM_SUBMIT_REQUEST,\r\n };\r\n}\r\n\r\nfunction complete() {\r\n return {\r\n type: FORM_SUBMIT_COMPLETE,\r\n };\r\n}\r\n\r\nexport function submitForm(id, stage) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .submit(id)\r\n .then((_response) => {\r\n dispatch(setSubmissionStage(stage));\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, complete, true, false));\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n\r\nexport function submitFormGroup(id, stage) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .submitFormGroup(id)\r\n .then((response) => {\r\n dispatch(setSubmissionStage(stage));\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, complete, true, false));\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n","import { push } from 'react-router-redux';\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { setSubmissionStage } from 'actions';\r\nimport { submissionStages } from 'common/forms/submissionStages';\r\n\r\nexport const FORM_CONFIRM_REQUEST = 'FORM_CONFIRM_REQUEST';\r\nexport const FORM_CONFIRM_COMPLETE = 'FORM_CONFIRM_COMPLETE';\r\nexport const OPEN_FORM_CONFIRMATION = 'OPEN_FORM_CONFIRMATION';\r\nexport const CLOSE_FORM_CONFIRMATION = 'CLOSE_FORM_CONFIRMATION';\r\n\r\nfunction request() {\r\n return {\r\n type: FORM_CONFIRM_REQUEST,\r\n };\r\n}\r\n\r\nfunction complete() {\r\n return {\r\n type: FORM_CONFIRM_COMPLETE,\r\n };\r\n}\r\n\r\nfunction open() {\r\n return {\r\n type: OPEN_FORM_CONFIRMATION,\r\n isFormConfirmationShown: true\r\n };\r\n}\r\n\r\nfunction close() {\r\n return {\r\n type: CLOSE_FORM_CONFIRMATION,\r\n isFormConfirmationShown: false\r\n };\r\n}\r\n\r\nexport function showFormConfirmation() {\r\n return (dispatch) => {\r\n dispatch(open());\r\n };\r\n}\r\n\r\nexport function hideFormConfirmation() {\r\n return (dispatch) => {\r\n dispatch(close());\r\n };\r\n}\r\n\r\nexport function confirmForm(formType, id) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .confirm(id)\r\n .then((response) => {\r\n if (response.data.data) {\r\n dispatch(push(`/forms/${ formType }/${ id }/success`));\r\n } else {\r\n dispatch(setSubmissionStage(submissionStages.Certification));\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, complete, true, false));\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n\r\nexport function confirmFormGroup(formGroupType, id) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .confirmFormGroup(id)\r\n .then((response) => {\r\n if (response.data.data) {\r\n dispatch(push(`/forms/groups/${ formGroupType }/${ id }/success`));\r\n } else {\r\n dispatch(setSubmissionStage(submissionStages.Certification));\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, complete, true, false));\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\nimport { setSubmissionStage } from 'actions';\r\nimport { submissionStages } from 'common/forms/submissionStages';\r\n\r\nexport const FORM_CERTIFY_REQUEST = 'FORM_CERTIFY_REQUEST';\r\nexport const FORM_CERTIFY_SUCCESS = 'FORM_CERTIFY_SUCCESS';\r\nexport const FORM_CERTIFY_FAILURE = 'FORM_CERTIFY_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: FORM_CERTIFY_REQUEST\r\n };\r\n}\r\n\r\nfunction receive(workflowState) {\r\n return {\r\n type: FORM_CERTIFY_SUCCESS,\r\n workflowState\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: FORM_CERTIFY_FAILURE\r\n };\r\n}\r\n\r\nexport function certifyForm(id) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .certify(id)\r\n .then((response) => {\r\n dispatch(receive(response.data.data));\r\n dispatch(setSubmissionStage(submissionStages.Signing));\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, false));\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n\r\nexport function certifyFormGroup(id) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .certifyFormGroup(id)\r\n .then((response) => {\r\n dispatch(receive(response.data.data));\r\n dispatch(setSubmissionStage(submissionStages.Signing));\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, false));\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\nimport { setSubmissionStage } from 'actions';\r\nimport { submissionStages } from 'common/forms/submissionStages';\r\n\r\nexport const FORM_REVERT_REQUEST = 'FORM_REVERT_REQUEST';\r\nexport const FORM_REVERT_SUCCESS = 'FORM_REVERT_SUCCESS';\r\nexport const FORM_REVERT_FAILURE = 'FORM_REVERT_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: FORM_REVERT_REQUEST\r\n };\r\n}\r\n\r\nfunction receive(workflowState) {\r\n return {\r\n type: FORM_REVERT_SUCCESS,\r\n workflowState\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: FORM_REVERT_FAILURE\r\n };\r\n}\r\n\r\nexport function revertForm(id) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .revert(id)\r\n .then((response) => {\r\n dispatch(receive(response.data.data));\r\n dispatch(setSubmissionStage(submissionStages.Validating));\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, false));\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n\r\nexport function revertFormGroup(id) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .revertFormGroup(id)\r\n .then((response) => {\r\n dispatch(receive(response.data.data));\r\n dispatch(setSubmissionStage(submissionStages.Validating));\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, false));\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n","import { push } from 'react-router-redux';\r\nimport { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { clearDefaultForm } from 'actions';\r\n\r\nimport { submissionStages } from 'common/forms/submissionStages';\r\n\r\nexport const OPEN_FORM_SIGNING = 'OPEN_FORM_SIGNING';\r\nexport const CLOSE_FORM_SIGNING = 'CLOSE_FORM_SIGNING';\r\nexport const FORM_SIGNING_REQUEST = 'FORM_SIGNING_REQUEST';\r\nexport const FORM_SIGNING_SUCCESS = 'FORM_SIGNING_SUCCESS';\r\nexport const FORM_SIGNING_FAILURE = 'FORM_SIGNING_FAILURE';\r\n\r\nfunction open() {\r\n return {\r\n type: OPEN_FORM_SIGNING\r\n };\r\n}\r\n\r\nfunction close() {\r\n return {\r\n type: CLOSE_FORM_SIGNING\r\n };\r\n}\r\n\r\nfunction request() {\r\n return {\r\n type: FORM_SIGNING_REQUEST\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: FORM_SIGNING_FAILURE\r\n };\r\n}\r\n\r\nfunction receive(linkedCollectableSupportingDocId, id) {\r\n return {\r\n type: FORM_SIGNING_SUCCESS,\r\n submissionStage: submissionStages.Validating,\r\n id,\r\n linkedCollectableSupportingDocId\r\n };\r\n}\r\n\r\nexport function showFormSigning() {\r\n return (dispatch) => {\r\n dispatch(open());\r\n };\r\n}\r\n\r\nexport function hideFormSigning() {\r\n return (dispatch) => {\r\n dispatch(close());\r\n };\r\n}\r\n\r\nexport function signForm(formType, id, printName, capacity, signDate, collectableSupportingDocData) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .sign(id, printName, capacity, signDate, collectableSupportingDocData)\r\n .then((response) => {\r\n dispatch(receive(response.data.data, id));\r\n dispatch(clearDefaultForm());\r\n dispatch(push(`/forms/${ formType }/${ id }/success`));\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 code = error.response && error.response.data && error.response.data.error && error.response.data.error.code;\r\n if (code !== 499) {\r\n dispatch(handleException(error, close, true, false));\r\n } else {\r\n dispatch(handleException(error, reject, false, false));\r\n }\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n\r\nexport function signFormGroup(formGroupType, id, printName, capacity, signDate, collectableSupportingDocData) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .signFormGroup(id, printName, capacity, signDate, collectableSupportingDocData)\r\n .then((response) => {\r\n dispatch(receive(response.data.data));\r\n dispatch(clearDefaultForm());\r\n dispatch(push(`/forms/groups/${ formGroupType }/${ id }/success`));\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 code = error.response && error.response.data && error.response.data.error && error.response.data.error.code;\r\n if (code !== 499) {\r\n dispatch(handleException(error, close, true, false));\r\n } else {\r\n dispatch(handleException(error, reject, false, false));\r\n }\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n","export const SET_SUBMISSION_STAGE = 'SET_SUBMISSION_STAGE';\r\n\r\nexport function setSubmissionStage(submissionStage) {\r\n return {\r\n type: SET_SUBMISSION_STAGE,\r\n submissionStage\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_CLEAR = 'GET_FORM_PDF_CLEAR';\r\n\r\nfunction request(formType) {\r\n return {\r\n type: GET_FORM_PDF_REQUEST,\r\n isFetchingPdfForm: true,\r\n downloadRequestFormType: formType\r\n };\r\n}\r\n\r\nfunction receive(pdfData) {\r\n return {\r\n type: GET_FORM_PDF_SUCCESS,\r\n isFetchingPdfForm: false,\r\n downloadRequestFormType: null,\r\n pdfData,\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: GET_FORM_PDF_FAILURE,\r\n isFetchingPdfForm: false,\r\n downloadRequestFormType: null\r\n };\r\n}\r\n\r\nfunction clear() {\r\n return {\r\n type: GET_FORM_PDF_CLEAR\r\n };\r\n}\r\n\r\nexport function getPreviewPdf(formId, formType, intl) {\r\n return (dispatch) => {\r\n dispatch(request(formType));\r\n\r\n const promise = () => ApiService\r\n .getPreviewPdf(formId, { responseType: 'arraybuffer' })\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\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n const status = error.response && error.response.status;\r\n if (status !== 401) {\r\n dispatch(handleException(\r\n { response: { data: { code: 500, message: intl.formatMessage({ id: 'formPreview.downloadError' }) } } },\r\n reject,\r\n !status || (status !== 404 && status !== 401)\r\n ));\r\n }\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function getFormGroupFormPreviewPdf(formGroupId, formType, intl) {\r\n return (dispatch) => {\r\n dispatch(request(formType));\r\n\r\n const promise = () => ApiService\r\n .getFormGroupFormPreviewPdf(formGroupId, formType, { responseType: 'arraybuffer' })\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\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n const status = error.response && error.response.status;\r\n if (status !== 401) {\r\n dispatch(handleException(\r\n { response: { data: { code: 500, message: intl.formatMessage({ id: 'formPreview.downloadError' }) } } },\r\n reject,\r\n !status || (status !== 404 && status !== 401)\r\n ));\r\n }\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function getFormPdf(formId, formType, intl) {\r\n return (dispatch) => {\r\n dispatch(request(formType));\r\n\r\n return ApiService\r\n .getFormPdf(formId, { responseType: 'arraybuffer' })\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n }).catch((error) => {\r\n const status = error.response && error.response.status;\r\n if (status !== 401) {\r\n dispatch(handleException(\r\n { response: { data: { code: 500, message: intl.formatMessage({ id: 'form.downloadError' }) } } },\r\n reject,\r\n !status || (status !== 404 && status !== 401)\r\n ));\r\n }\r\n });\r\n };\r\n}\r\n\r\nexport function getFormGroupPdf(formGroupId, formType, intl) {\r\n return (dispatch) => {\r\n dispatch(request(formType));\r\n\r\n return ApiService\r\n .getFormGroupPdf(formGroupId, formType, { responseType: 'arraybuffer' })\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n }).catch((error) => {\r\n const status = error.response && error.response.status;\r\n if (status !== 401) {\r\n dispatch(handleException(\r\n { response: { data: { code: 500, message: intl.formatMessage({ id: 'form.downloadError' }) } } },\r\n reject,\r\n !status || (status !== 404 && status !== 401)\r\n ));\r\n }\r\n });\r\n };\r\n}\r\n\r\nexport function clearPdfDownload() {\r\n return (dispatch) => {\r\n dispatch(clear());\r\n };\r\n}\r\n","import { push } from 'react-router-redux';\r\nimport { ApiService } from 'services';\r\nimport { clearDefaultForm } from 'actions';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { HANDLE_UNCAUGHT_EXCEPTION } from 'actions/exceptions/handleUncaughtException';\r\n\r\nexport const ADD_FORM_GROUP_REQUEST = 'ADD_FORM_GROUP_REQUEST';\r\nexport const ADD_FORM_GROUP_SUCCESS = 'ADD_FORM_GROUP_SUCCESS';\r\nexport const ADD_FORM_GROUP_FAILURE = 'ADD_FORM_GROUP_FAILURE';\r\n\r\nfunction request(formGroup) {\r\n return {\r\n type: ADD_FORM_GROUP_REQUEST,\r\n isAddingFormGroup: formGroup\r\n };\r\n}\r\n\r\nfunction receive(collectableSupportingDocs) {\r\n return {\r\n type: ADD_FORM_GROUP_SUCCESS,\r\n accCollectableSupportingDocs: collectableSupportingDocs\r\n };\r\n}\r\n\r\nfunction reject(error) {\r\n return {\r\n type: HANDLE_UNCAUGHT_EXCEPTION,\r\n code: error.code,\r\n message: error.message\r\n };\r\n}\r\n\r\nexport function addFormGroup(formTypes, accountId, formGroup) {\r\n const postData = {\r\n isOnline: true,\r\n accountId,\r\n formTypes\r\n };\r\n\r\n return (dispatch) => {\r\n dispatch(request(formTypes));\r\n\r\n const promise = () => ApiService\r\n .addFormGroup(postData)\r\n .then((response) => {\r\n if (response.data && response.data.success && response.data.formGroupId > 0) {\r\n const formUrl = `/forms/groups/${ formGroup }/${ response.data.formGroupId }`;\r\n dispatch(receive(response.data.collectableSupportingDocs));\r\n dispatch(clearDefaultForm(formUrl));\r\n return dispatch(push(formUrl));\r\n }\r\n\r\n dispatch({ type: ADD_FORM_GROUP_FAILURE });\r\n if (response.data && response.data.error) {\r\n return dispatch(reject(response.data.error));\r\n }\r\n\r\n return dispatch(reject({\r\n code: '-9999',\r\n message: 'Sorry, there was an unexpected error communicating with our servers'\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({ type: ADD_FORM_GROUP_FAILURE });\r\n if (error.response.status !== 403) {\r\n dispatch(handleException(error, reject));\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_GROUP_SUPPORTING_DOCS_REQUEST = 'GET_FORM_GROUP_SUPPORTING_DOCS_REQUEST';\r\nexport const GET_FORM_GROUP_SUPPORTING_DOCS_SUCCESS = 'GET_FORM_GROUP_SUPPORTING_DOCS_SUCCESS';\r\nexport const GET_FORM_GROUP_SUPPORTING_DOCS_FAILURE = 'GET_FORM_GROUP_SUPPORTING_DOCS_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: GET_FORM_GROUP_SUPPORTING_DOCS_REQUEST\r\n };\r\n}\r\n\r\nfunction receive(supportingDocs) {\r\n return {\r\n type: GET_FORM_GROUP_SUPPORTING_DOCS_SUCCESS,\r\n supportingDocs,\r\n };\r\n}\r\n\r\nfunction reject(formError) {\r\n return {\r\n type: GET_FORM_GROUP_SUPPORTING_DOCS_FAILURE,\r\n formError\r\n };\r\n}\r\n\r\nexport function getFormGroupSupportingDocs(formGroupId) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n const promise = () => ApiService\r\n .getSupportingDocsByFormGroupId(formGroupId)\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\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n const code = error.response && error.response.data && error.response.data.error && error.response.data.error.code;\r\n if (code !== 401) {\r\n dispatch(handleException(error, reject, !code || (code !== 404 && code !== 401)));\r\n }\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n","export const TIN_MATCH_RESET = 'TIN_MATCH_RESET';\r\n\r\nexport function tinMatchReset() {\r\n return {\r\n type: TIN_MATCH_RESET,\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\n\r\n/* eslint-disable-next-line */\r\nexport function redirectToLogout() {\r\n const url = ApiService.getLogoutUrl();\r\n\r\n if (url) {\r\n window.location = url;\r\n }\r\n}\r\n","import { push } from 'react-router-redux';\r\n\r\nimport { ApiService } from 'services';\r\nimport { redirectToLogin } from 'actions/auth';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const CONFIRM_AUTHENTALINK_REQUEST = 'CONFIRM_AUTHENTALINK_REQUEST';\r\nexport const CONFIRM_AUTHENTALINK_SUCCESS = 'CONFIRM_AUTHENTALINK_SUCCESS';\r\nexport const CONFIRM_AUTHENTALINK_FAILURE = 'CONFIRM_AUTHENTALINK_FAILURE';\r\nexport const CLEAR_AUTHENTALINK_FAILURE = 'CLEAR_AUTHENTALINK_FAILURE';\r\n\r\nfunction reset() {\r\n return {\r\n type: CLEAR_AUTHENTALINK_FAILURE\r\n };\r\n}\r\n\r\nfunction request(email) {\r\n return {\r\n type: CONFIRM_AUTHENTALINK_REQUEST,\r\n authenticatingEmail: email\r\n };\r\n}\r\n\r\nfunction receive(data) {\r\n return {\r\n type: CONFIRM_AUTHENTALINK_SUCCESS,\r\n resendReference: data.resendReference\r\n };\r\n}\r\n\r\nfunction reject(error) {\r\n return {\r\n type: CONFIRM_AUTHENTALINK_FAILURE,\r\n code: error.code,\r\n message: error.message\r\n };\r\n}\r\n\r\nexport function confirmAuthentaLink(email, uniqueRef, name) {\r\n const postData = {\r\n email,\r\n uniqueRef,\r\n name\r\n };\r\n\r\n return (dispatch) => {\r\n dispatch(request(email));\r\n\r\n const promise = () => ApiService\r\n .postAuthentaLink(postData)\r\n .then((response) => {\r\n if (response.data && response.data.data && response.data.success) {\r\n dispatch(receive(response.data.data));\r\n if (response.data.data.navigateToPath !== null) {\r\n return dispatch(push(response.data.data.navigateToPath));\r\n }\r\n\r\n if (response.data.data.loginSuccess) {\r\n return dispatch(redirectToLogin());\r\n }\r\n\r\n return dispatch(push('/'));\r\n }\r\n\r\n if (response.data && response.data.error) {\r\n return dispatch(reject(response.data.error));\r\n }\r\n\r\n return dispatch(reject({\r\n code: '-9999',\r\n message: 'Sorry, there was an unexpected error communicating with our servers'\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({ type: CONFIRM_AUTHENTALINK_FAILURE });\r\n dispatch(handleException(error, reject));\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n\r\nexport function clearAuthentaLinkError() {\r\n return dispatch => dispatch(reset());\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const VERIFY_PIN_SUCCESS = 'VERIFY_PIN_SUCCESS';\r\nexport const VERIFY_PIN_REQUEST = 'VERIFY_PIN_REQUEST';\r\nexport const VERIFY_PIN_ERROR = 'VERIFY_PIN_ERROR';\r\n\r\nexport const REQUEST_PIN = 'REQUEST_PIN';\r\nexport const REQUEST_PIN_ERROR = 'REQUEST_PIN_ERROR';\r\nexport const REQUEST_PIN_SUCCESS = 'REQUEST_PIN_SUCCESS';\r\n\r\nexport const SHOW_PIN_VERIFICATION = 'SHOW_PIN_VERIFICATION';\r\nexport const HIDE_PIN_VERIFICATION = 'HIDE_PIN_VERIFICATION';\r\n\r\nexport const REQUEST_PIN_CONFIRMATION = 'REQUEST_PIN_CONFIRMATION';\r\nexport const REQUEST_PIN_CONFIRMATION_SUCCESS = 'REQUEST_PIN_CONFIRMATION_SUCCESS';\r\nexport const REQUEST_PIN_CONFIRMATION_ERROR = 'REQUEST_PIN_CONFIRMATION_ERROR';\r\nexport const REQUEST_PIN_CONFIRMATION_CLEAR = 'REQUEST_PIN_CONFIRMATION_CLEAR';\r\n\r\nfunction requestPinVerification() {\r\n return {\r\n type: VERIFY_PIN_REQUEST,\r\n };\r\n}\r\n\r\nfunction receivePinVerification() {\r\n return {\r\n type: VERIFY_PIN_SUCCESS,\r\n };\r\n}\r\n\r\nfunction rejectPinVerification(error) {\r\n return {\r\n type: VERIFY_PIN_ERROR,\r\n code: error.code,\r\n message: error.message\r\n };\r\n}\r\n\r\nfunction rejectPinRequest(error) {\r\n return {\r\n type: REQUEST_PIN_ERROR,\r\n code: error.code,\r\n message: error.message\r\n };\r\n}\r\n\r\nfunction requestPin() {\r\n return {\r\n type: REQUEST_PIN\r\n };\r\n}\r\n\r\nfunction recievePin(data) {\r\n return {\r\n type: REQUEST_PIN_SUCCESS,\r\n message: data.Message\r\n };\r\n}\r\n\r\nfunction showPinVerificationModal() {\r\n return {\r\n type: SHOW_PIN_VERIFICATION,\r\n };\r\n}\r\n\r\nfunction requestPinConfirmation() {\r\n return {\r\n type: REQUEST_PIN_CONFIRMATION,\r\n };\r\n}\r\n\r\nfunction recievePinConfirmation(data) {\r\n return {\r\n type: REQUEST_PIN_CONFIRMATION_SUCCESS,\r\n message: data.Message\r\n };\r\n}\r\n\r\nfunction rejectPinConfirmation(error) {\r\n return {\r\n type: REQUEST_PIN_CONFIRMATION_ERROR,\r\n code: error.code,\r\n message: error.message\r\n };\r\n}\r\n\r\nfunction clearPinConfirmation() {\r\n return {\r\n type: REQUEST_PIN_CONFIRMATION_CLEAR\r\n };\r\n}\r\n\r\nexport function sendPinConfirmation(pinType, resendReference) {\r\n return (dispatch) => {\r\n dispatch(requestPinConfirmation());\r\n const promise = () => ApiService\r\n .sendPinConfirmation(pinType, resendReference)\r\n .then((response) => {\r\n dispatch(recievePinConfirmation(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, rejectPinConfirmation, true, false));\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n\r\nexport function clearAuthentalinkResendResponse() {\r\n return (dispatch) => {\r\n dispatch(clearPinConfirmation());\r\n };\r\n}\r\n\r\nexport function hidePinVerificationModal() {\r\n return {\r\n type: HIDE_PIN_VERIFICATION,\r\n };\r\n}\r\n\r\nexport function sendVerificationPin(pinType) {\r\n return (dispatch) => {\r\n dispatch(requestPin());\r\n dispatch(showPinVerificationModal());\r\n const promise = () => ApiService\r\n .sendPinToRecipient(pinType)\r\n .then((response) => {\r\n dispatch(recievePin(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, rejectPinRequest, true, false));\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n\r\nexport function authenticatePin(pin, pinType) {\r\n return (dispatch) => {\r\n dispatch(requestPinVerification());\r\n const promise = () => ApiService\r\n .validatePin(pin, pinType)\r\n .then((_response) => {\r\n dispatch(receivePinVerification());\r\n dispatch(hidePinVerificationModal());\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, rejectPinVerification, false, false));\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 { 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\nexport const NO_FORM_DOC_DELETE_SUCCESS = 'NO_FORM_DOC_DELETE_SUCCESS';\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\nfunction noFormDocDeletedSuccess() {\r\n return {\r\n type: NO_FORM_DOC_DELETE_SUCCESS,\r\n deletedNoFormDoc: undefined\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 })\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, rejectSupportingDocDelete, true));\r\n }\r\n }\r\n });\r\n return promise();\r\n };\r\n}\r\n\r\nexport function noFormDocDeleted() {\r\n return (dispatch) => {\r\n dispatch(noFormDocDeletedSuccess());\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_COLLECTABLE_SUPPORTING_DOCS_PDF_REQUEST = 'GET_COLLECTABLE_SUPPORTING_DOCS_PDF_REQUEST';\r\nexport const GET_COLLECTABLE_SUPPORTING_DOCS_PDF_SUCCESS = 'GET_COLLECTABLE_SUPPORTING_DOCS_PDF_SUCCESS';\r\nexport const GET_COLLECTABLE_SUPPORTING_DOCS_PDF_FAILURE = 'GET_COLLECTABLE_SUPPORTING_DOCS_PDF_FAILURE';\r\nexport const GET_COLLECTABLE_SUPPORTING_DOCS_PDF_CLEAR = 'GET_COLLECTABLE_SUPPORTING_DOCS_PDF_CLEAR';\r\n\r\nfunction request(collectableSupportingDocType) {\r\n return {\r\n type: GET_COLLECTABLE_SUPPORTING_DOCS_PDF_REQUEST,\r\n isFetchingCollectablePdf: true,\r\n downloadRequestCollectableSupportingDocType: collectableSupportingDocType\r\n };\r\n}\r\n\r\nfunction receive(collectableSupportingDocPdfData) {\r\n return {\r\n type: GET_COLLECTABLE_SUPPORTING_DOCS_PDF_SUCCESS,\r\n isFetchingCollectablePdf: false,\r\n downloadRequestCollectableSupportingDocType: null,\r\n collectableSupportingDocPdfData,\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: GET_COLLECTABLE_SUPPORTING_DOCS_PDF_FAILURE,\r\n isFetchingCollectablePdf: false,\r\n downloadRequestCollectableSupportingDocType: null\r\n };\r\n}\r\n\r\nfunction clear() {\r\n return {\r\n type: GET_COLLECTABLE_SUPPORTING_DOCS_PDF_CLEAR\r\n };\r\n}\r\n\r\nexport function getCollectableSupportingDocPdf(requestData, intl, isPreview = true) {\r\n return (dispatch) => {\r\n dispatch(request(requestData.collectableSupportingDocType));\r\n\r\n return ApiService\r\n .getCollectableSupportingDocPdf(requestData, isPreview, { responseType: 'arraybuffer' })\r\n .then((response) => {\r\n dispatch(receive(response.data));\r\n }).catch((error) => {\r\n const status = error.response && error.response.status;\r\n if (status !== 401) {\r\n dispatch(handleException(\r\n { response: { data: { code: 500, message: intl.formatMessage({ id: 'form.downloadError' }) } } },\r\n reject,\r\n !status || (status !== 404 && status !== 401)\r\n ));\r\n }\r\n });\r\n };\r\n}\r\n\r\nexport function clearCollectableSupportingDocPdfDownload() {\r\n return (dispatch) => {\r\n dispatch(clear());\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nexport const GET_LINKED_COLLECTABLE_SUPPORTING_DOC_ID_REQUEST = 'GET_LINKED_COLLECTABLE_SUPPORTING_DOC_ID_REQUEST';\r\nexport const GET_LINKED_COLLECTABLE_SUPPORTING_DOC_ID_SUCCESS = 'GET_LINKED_COLLECTABLE_SUPPORTING_DOC_ID_SUCCESS';\r\nexport const GET_LINKED_COLLECTABLE_SUPPORTING_DOC_ID_FAILURE = 'GET_LINKED_COLLECTABLE_SUPPORTING_DOC_ID_FAILURE';\r\n\r\nfunction request() {\r\n return {\r\n type: GET_LINKED_COLLECTABLE_SUPPORTING_DOC_ID_REQUEST\r\n };\r\n}\r\n\r\nfunction receive(id) {\r\n return {\r\n type: GET_LINKED_COLLECTABLE_SUPPORTING_DOC_ID_SUCCESS,\r\n id,\r\n };\r\n}\r\n\r\nfunction reject() {\r\n return {\r\n type: GET_LINKED_COLLECTABLE_SUPPORTING_DOC_ID_FAILURE,\r\n };\r\n}\r\n\r\nexport function getFormLinkedCollectableSupportingDocId(uploadedFormId, intl) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n return ApiService\r\n .getFormLinkedCollectableSupportingDocId(uploadedFormId)\r\n .then((response) => {\r\n dispatch(receive(response.data.data));\r\n }).catch((error) => {\r\n const status = error.response && error.response.status;\r\n if (status !== 401) {\r\n dispatch(handleException(\r\n { response: { data: { code: 500, message: intl.formatMessage({ id: 'form.downloadError' }) } } },\r\n reject,\r\n !status || (status !== 404 && status !== 401)\r\n ));\r\n }\r\n });\r\n };\r\n}\r\n\r\nexport function getFormGroupLinkedCollectableSupportingDocId(formGroupId, intl) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n\r\n return ApiService\r\n .getFormGroupLinkedCollectableSupportingDocId(formGroupId)\r\n .then((response) => {\r\n dispatch(receive(response.data.data));\r\n }).catch((error) => {\r\n const status = error.response && error.response.status;\r\n if (status !== 401) {\r\n dispatch(handleException(\r\n { response: { data: { code: 500, message: intl.formatMessage({ id: 'form.downloadError' }) } } },\r\n reject,\r\n !status || (status !== 404 && status !== 401)\r\n ));\r\n }\r\n });\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { handleException } from 'actions/exceptions';\r\nimport { HANDLE_UNCAUGHT_EXCEPTION } from 'actions/exceptions/handleUncaughtException';\r\n\r\nexport const FILE_UPLOAD_DELETE_REQUEST = 'FILE_UPLOAD_DELETE_REQUEST';\r\nexport const FILE_UPLOAD_DELETE_SUCCESS = 'FILE_UPLOAD_DELETE_SUCCESS';\r\nexport const FILE_UPLOAD_DELETE_FAILURE = 'FILE_UPLOAD_DELETE_FAILURE';\r\n\r\nfunction request(id) {\r\n return {\r\n type: FILE_UPLOAD_DELETE_REQUEST,\r\n isDeletingUploadId: id\r\n };\r\n}\r\n\r\nfunction receive(id) {\r\n return {\r\n type: FILE_UPLOAD_DELETE_SUCCESS,\r\n isDeletingUploadId: id\r\n };\r\n}\r\n\r\nfunction reject(error) {\r\n return {\r\n type: HANDLE_UNCAUGHT_EXCEPTION,\r\n code: error.code,\r\n message: error.message\r\n };\r\n}\r\n\r\nexport function deleteFileUpload(docId) {\r\n return (dispatch) => {\r\n dispatch(request(docId));\r\n\r\n const promise = () => ApiService\r\n .deleteFileUpload(docId)\r\n .then(() => {\r\n dispatch(receive(docId));\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 dispatch(handleException(error, reject, !status || (status !== 404 && status !== 401)));\r\n }\r\n });\r\n\r\n return promise;\r\n };\r\n}\r\n","import { HANDLE_UNCAUGHT_EXCEPTION } from 'actions/exceptions/handleUncaughtException';\r\n\r\nexport * from './deleteFileUpload';\r\n\r\nexport function fileUploadError(error) {\r\n return {\r\n type: HANDLE_UNCAUGHT_EXCEPTION,\r\n code: error.code,\r\n message: error.message\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\n\r\nimport { GET_ONLINE_CONFIG_FAILURE, getOnlineConfig } from 'actions';\r\nimport { history } from 'containers/App';\r\n\r\nexport const SITE_PRELOAD_REQUEST = 'SITE_PRELOAD_REQUEST';\r\nexport const SITE_PRELOAD_SUCCESS = 'SITE_PRELOAD_SUCCESS';\r\nexport const SITE_PRELOAD_FAILED = 'SITE_PRELOAD_FAILED';\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: GET_ONLINE_CONFIG_FAILURE,\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(getOnlineConfig());\r\n } else {\r\n history.push('/unauthorized');\r\n dispatch(failed());\r\n }\r\n }).catch(() => {\r\n history.push('/unauthorized');\r\n dispatch(failed());\r\n });\r\n return promise();\r\n };\r\n}\r\n","import { ApiService } from 'services';\r\nimport { detectLocale, getSupportedLanguages, getShortDictionary } from 'common/language/localeHelper';\r\nimport {\r\n getLanguages,\r\n getLanguage,\r\n getJurisdictions,\r\n GET_LANGUAGES_SUCCESS,\r\n GET_DEFAULT_LANGUAGE_SUCCESS\r\n} from 'actions/app';\r\n\r\nexport const CHANGE_LOCALE = 'CHANGE_LOCALE';\r\nexport const CHANGE_LOCALE_MESSAGES = 'CHANGE_LOCALE_MESSAGES';\r\n\r\nfunction change(locale) {\r\n return {\r\n type: CHANGE_LOCALE,\r\n locale\r\n };\r\n}\r\n\r\nfunction changeMessages(dictionary) {\r\n return {\r\n type: CHANGE_LOCALE_MESSAGES,\r\n messages: dictionary\r\n };\r\n}\r\n\r\nfunction changeLanguages(languages) {\r\n return {\r\n type: GET_LANGUAGES_SUCCESS,\r\n languages\r\n };\r\n}\r\n\r\nfunction receiveEnglish(messages) {\r\n return {\r\n type: GET_DEFAULT_LANGUAGE_SUCCESS,\r\n messages\r\n };\r\n}\r\n\r\nfunction getEnglishLanguage() {\r\n return (dispatch) => {\r\n const promise = () => ApiService\r\n .getLanguage('en')\r\n .then((response) => {\r\n dispatch(receiveEnglish(response.data));\r\n }).catch((error) => {\r\n if (error.response || (error.retries && error.retries > 1)) {\r\n if (!error.response && error.retries && error.retries > 1) {\r\n ApiService.addQueuedPromise(promise, error);\r\n }\r\n }\r\n });\r\n\r\n return promise();\r\n };\r\n}\r\n\r\nfunction changeLocaleShortDictionary(dictionary) {\r\n return (dispatch) => {\r\n dispatch(changeMessages(dictionary));\r\n };\r\n}\r\n\r\nexport function changeLocale(locale, updateDictionary = true) {\r\n return async (dispatch) => {\r\n dispatch(change(locale));\r\n\r\n if (updateDictionary) {\r\n const localeMessages = await getShortDictionary(locale);\r\n dispatch(changeLocaleShortDictionary(localeMessages));\r\n }\r\n };\r\n}\r\n\r\nexport function loadLanguages() {\r\n return async (dispatch) => {\r\n const supportedLanguages = await getSupportedLanguages();\r\n\r\n const locale = detectLocale(supportedLanguages);\r\n dispatch(changeLocale(locale));\r\n dispatch(changeLanguages(supportedLanguages));\r\n\r\n dispatch(getLanguages());\r\n dispatch(getJurisdictions());\r\n dispatch(getLanguage(locale));\r\n if (locale !== 'en') {\r\n dispatch(getEnglishLanguage());\r\n }\r\n };\r\n}\r\n","import QuestionnaireType from 'common/questionnaires/QuestionnaireType';\r\n\r\nexport const QUESTIONNAIRE_NEW = 'QUESTIONNAIRE_NEW';\r\n\r\nfunction start(questionnaireType, rcEnabled, formType, formGroup, selectedAccountId, customerDetails, lockSettings) {\r\n return {\r\n type: QUESTIONNAIRE_NEW,\r\n questionnaireType,\r\n rcEnabled,\r\n formType,\r\n formGroup,\r\n selectedAccountId,\r\n customerDetails,\r\n lockSettings\r\n };\r\n}\r\n\r\nexport function newQuestionnaire(questionnaireType, formType = null, formGroup = null, selectedAccountId = null, customerDetails = null, lockSettings = null) {\r\n return (dispatch) => {\r\n dispatch(start(questionnaireType, null, formType, formGroup, selectedAccountId, customerDetails, lockSettings));\r\n };\r\n}\r\n\r\nexport function newFormQuestionnaire(formType, selectedAccountId, customerDetails, lockSettings) {\r\n return (dispatch) => {\r\n dispatch(start(QuestionnaireType.Form, null, formType, null, selectedAccountId, customerDetails, lockSettings));\r\n };\r\n}\r\n\r\nexport function newFormGroupQuestionnaire(formGroup, selectedAccountId, customerDetails, lockSettings) {\r\n return (dispatch) => {\r\n dispatch(start(QuestionnaireType.FormGroup, null, null, formGroup, selectedAccountId, customerDetails, lockSettings));\r\n };\r\n}\r\n\r\nexport function newPreQualQuestionnaire(rcEnabled) {\r\n return (dispatch) => {\r\n dispatch(start(QuestionnaireType.PreQualifying, rcEnabled));\r\n };\r\n}\r\n","import QuestionnaireType from 'common/questionnaires/QuestionnaireType';\r\n\r\nexport const QUESTIONNAIRE_DIRTY_RESET = 'QUESTIONNAIRE_DIRTY_RESET';\r\n\r\nfunction reset(questionnaireType) {\r\n return {\r\n type: QUESTIONNAIRE_DIRTY_RESET,\r\n questionnaireType\r\n };\r\n}\r\n\r\nexport function resetDirtyQuestionnaire(questionnaireType) {\r\n return (dispatch) => {\r\n dispatch(reset(questionnaireType));\r\n };\r\n}\r\n\r\nexport function resetDirtyFormQuestionnaire() {\r\n return (dispatch) => {\r\n dispatch(reset(QuestionnaireType.Form));\r\n };\r\n}\r\n\r\nexport function resetDirtyPreQualQuestionnaire() {\r\n return (dispatch) => {\r\n dispatch(reset(QuestionnaireType.PreQualifying));\r\n };\r\n}\r\n","import QuestionnaireType from 'common/questionnaires/QuestionnaireType';\r\n\r\nexport const QUESTIONNAIRE_CLEAR = 'QUESTIONNAIRE_CLEAR';\r\n\r\nfunction clear(questionnaireType) {\r\n return {\r\n type: QUESTIONNAIRE_CLEAR,\r\n questionnaireType,\r\n };\r\n}\r\n\r\nexport function clearPreQualQuestionnaire() {\r\n return (dispatch) => {\r\n dispatch(clear(QuestionnaireType.PreQualifying));\r\n };\r\n}\r\n\r\nexport function clearFormQuestionnaire() {\r\n return (dispatch) => {\r\n dispatch(clear(QuestionnaireType.Form));\r\n };\r\n}\r\n\r\nexport function clearQuestionnaire(questionnaireType) {\r\n return (dispatch) => {\r\n dispatch(clear(questionnaireType));\r\n };\r\n}\r\n","export const BLOCK_ANSWERED = 'BLOCK_ANSWERED';\r\n\r\nfunction blockAnswered(blockId, answer, isValid) {\r\n return {\r\n type: BLOCK_ANSWERED,\r\n blockId,\r\n answer,\r\n isValid\r\n };\r\n}\r\n\r\nexport function answerBlock(blockId, answer, isValid) {\r\n return (dispatch) => {\r\n dispatch(blockAnswered(blockId, answer, isValid));\r\n };\r\n}\r\n","export const QUESTION_ANSWERED = 'QUESTION_ANSWERED';\r\n\r\nfunction questionAnswered(questionnaireType, blockId, questionId, answer) {\r\n return {\r\n type: QUESTION_ANSWERED,\r\n questionnaireType,\r\n blockId,\r\n questionId,\r\n answer\r\n };\r\n}\r\n\r\nexport function answerBlockQuestion(questionnaireType, blockId, questionId, answer) {\r\n return (dispatch) => {\r\n dispatch(questionAnswered(questionnaireType, blockId, questionId, answer));\r\n };\r\n}\r\n","export const VALIDATE_QUESTIONNAIRE_BLOCKS = 'VALIDATE_QUESTIONNAIRE_BLOCKS';\r\n\r\nfunction validateBlocks(questionnaireType) {\r\n return {\r\n type: VALIDATE_QUESTIONNAIRE_BLOCKS,\r\n questionnaireType\r\n };\r\n}\r\n\r\nexport function validateQuestionnaireBlocks(questionnaireType) {\r\n return (dispatch) => {\r\n dispatch(validateBlocks(questionnaireType));\r\n };\r\n}\r\n","const removeDiactritics = str => str.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n\r\nexport default removeDiactritics;\r\n","// eslint-disable-next-line import/prefer-default-export\r\nexport function getCookie(cname) {\r\n const name = `${ cname }=`;\r\n const decodedCookie = decodeURIComponent(document.cookie);\r\n const ca = decodedCookie.split(';');\r\n for (let i = 0; i < ca.length; i += 1) {\r\n let c = ca[i];\r\n while (c.charAt(0) === ' ') {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) === 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return '';\r\n}\r\n\r\nexport function setCookie(cname, cvalue) {\r\n document.cookie = `${ cname }=${ cvalue };path/`;\r\n}\r\n","// eslint-disable-next-line import/prefer-default-export\r\nexport const displayMode = {\r\n Irs: 1,\r\n Stacked: 2,\r\n Mobile: 3\r\n};\r\n","const FormGroupTypes = [\r\n {\r\n key: 'crsiw8ben',\r\n formTypes: ['crsi_2024', 'w8ben_2021']\r\n },\r\n];\r\n\r\nexport default FormGroupTypes;\r\n","export function isCrsForm(formType) {\r\n return formType.toLowerCase().startsWith('crs');\r\n}\r\n\r\nexport function isTranslatedForm(formType) {\r\n return formType.toLowerCase().startsWith('crs') || (formType.toLowerCase() === 'w8ben' || formType.toLowerCase().startsWith('w8ben_')) || formType.toLowerCase().startsWith('w9');\r\n}\r\n\r\nexport function isTranslatedFormGroup(formGroup) {\r\n return formGroup.toLowerCase().startsWith('crsiw8ben');\r\n}\r\n\r\nexport function isNoFormSupported(formType) {\r\n switch (formType) {\r\n case 'w9_2018':\r\n case 'w9_2024':\r\n case 'w8ben':\r\n case 'w8ben_2021':\r\n case 'crsi':\r\n case 'crsi_2024':\r\n case 'crse':\r\n case 'crscp':\r\n case 'fatca_crse_2023':\r\n case 'fatca_crsi_2023':\r\n return true;\r\n default:\r\n return false;\r\n }\r\n}\r\n\r\nexport default isCrsForm;\r\n","/* eslint-disable camelcase */\r\n\r\nexport const formFamily = Object.freeze({\r\n w: 'W',\r\n crs: 'CRS',\r\n fatcacrs: 'FATCA CRS',\r\n});\r\n\r\nfunction getFormFamily(formType) {\r\n formType = formType.toLowerCase();\r\n if (formType.startsWith('w')) {\r\n return formFamily.w;\r\n }\r\n\r\n if (formType.startsWith('crs')) {\r\n return formFamily.crs;\r\n }\r\n\r\n if (formType.startsWith('fatca_crs')) {\r\n return formFamily.fatcacrs;\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nfunction createFormType(formType, { hasStockMarket = false, isNoFormSupported = false }) {\r\n return Object.freeze({\r\n formType: formType.toLowerCase(),\r\n formFamily: getFormFamily(formType),\r\n hasStockMarket,\r\n isNoFormSupported,\r\n });\r\n}\r\n\r\nconst w9_2018 = createFormType('w9_2018', { isNoFormSupported: true });\r\nconst w9_2024 = createFormType('w9_2024', { isNoFormSupported: true });\r\n\r\nconst w8ben = createFormType('w8ben', { isNoFormSupported: true });\r\nconst w8ben_2021 = createFormType('w8ben_2021', { isNoFormSupported: true });\r\n\r\nconst w8bene = createFormType('w8bene', { hasStockMarket: true });\r\nconst w8bene_2017 = createFormType('w8bene_2017', { hasStockMarket: true });\r\nconst w8bene_2021 = createFormType('w8bene_2021', { hasStockMarket: true, isNoFormSupported: true });\r\n\r\nconst w8imy = createFormType('w8imy', { hasStockMarket: true });\r\nconst w8imy_2017 = createFormType('w8imy_2017', { hasStockMarket: true });\r\nconst w8imy_2021 = createFormType('w8imy_2021', { hasStockMarket: true, isNoFormSupported: true });\r\n\r\nconst crsi = createFormType('crsi', { isNoFormSupported: true });\r\nconst crsi_2024 = createFormType('crsi_2024', { isNoFormSupported: true });\r\nconst crse = createFormType('crse', { hasStockMarket: true, isNoFormSupported: true });\r\nconst crscp = createFormType('crscp', { isNoFormSupported: true });\r\nconst ucrse_2019 = createFormType('ucrse_2019', { hasStockMarket: true });\r\n\r\nconst fatca_crse_2022 = createFormType('fatca_crse_2022', { hasStockMarket: true, isNoFormSupported: true });\r\nconst fatca_crse_2023 = createFormType('fatca_crse_2023', { hasStockMarket: true, isNoFormSupported: true });\r\n\r\nconst fatca_crsi_2023 = createFormType('fatca_crsi_2023', { isNoFormSupported: true });\r\n\r\nconst rc518 = createFormType('rc518', { isNoFormSupported: true });\r\nconst rc519 = createFormType('rc519', { isNoFormSupported: true });\r\n\r\nexport const formTypes = Object.freeze([\r\n w9_2018,\r\n w9_2024,\r\n w8ben,\r\n w8ben_2021,\r\n w8bene,\r\n w8bene_2017,\r\n w8bene_2021,\r\n w8imy,\r\n w8imy_2017,\r\n w8imy_2021,\r\n crsi,\r\n crsi_2024,\r\n crse,\r\n crscp,\r\n ucrse_2019,\r\n fatca_crse_2022,\r\n fatca_crse_2023,\r\n fatca_crsi_2023,\r\n rc518,\r\n rc519\r\n]);\r\n\r\nexport function getFormType(formType) {\r\n return formTypes.find(ft => ft.formType === formType?.toLowerCase());\r\n}\r\n","import DateTimes from 'components/Common/DateTimes';\r\nimport parse from 'date-fns/parse';\r\nimport isValid from 'date-fns/isValid';\r\n\r\nfunction isDateAheadOfUtc(date) {\r\n const { utcDate } = DateTimes;\r\n return date > utcDate;\r\n}\r\n\r\nexport function isValidSignedDate(input, dateFormat) {\r\n if (input.value) {\r\n const signedDate = parse(input.value, dateFormat, new Date());\r\n if (isValid(signedDate)) {\r\n return !isDateAheadOfUtc(signedDate);\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nexport function defaultSignedDate() {\r\n const currentDate = new Date(DateTimes.today.getFullYear(), DateTimes.today.getMonth(), DateTimes.today.getDate());\r\n return isDateAheadOfUtc(currentDate) ? DateTimes.utcDate : currentDate;\r\n}\r\n","// eslint-disable-next-line import/prefer-default-export\r\nexport const submissionStages = {\r\n Validating: 'validating',\r\n Confirmation: 'confirmation',\r\n Certification: 'certification',\r\n Signing: 'signing',\r\n Submission: 'submission'\r\n};\r\n","import { change } from 'redux-form';\r\n\r\nexport const getIgaCountries = igaSubClassificationCombos => (igaSubClassificationCombos !== null ? Object.keys(igaSubClassificationCombos) : []);\r\n\r\nexport const getClassificationKeyValuesForCountry = (country, igaSubclassificationCombos) => {\r\n if (igaSubclassificationCombos === null) {\r\n return [];\r\n }\r\n\r\n const keys = Object.keys(igaSubclassificationCombos).filter(key => key === country);\r\n\r\n if (keys.length >= 1) {\r\n return igaSubclassificationCombos[keys[0]];\r\n }\r\n\r\n return [];\r\n};\r\n\r\nexport const getClassificationsForCountry = (country, igaSubclassificationCombos) => Object.values(getClassificationKeyValuesForCountry(country, igaSubclassificationCombos));\r\n\r\nexport const updateClassificationOnCountryChange = (dispatch, formName, formPart, igaCountry, igaSubClassificationsCombos, currentIgaSubClassification) => {\r\n if (igaCountry === '') {\r\n dispatch(change(formName, formPart, ''));\r\n } else {\r\n const classificationsForCountry = getClassificationsForCountry(igaCountry, igaSubClassificationsCombos);\r\n\r\n if (classificationsForCountry.length === 0) {\r\n dispatch(change(formName, formPart, ''));\r\n } else if (classificationsForCountry.filter(x => x === currentIgaSubClassification).length === 0) {\r\n dispatch(change(formName, formPart, ''));\r\n }\r\n }\r\n};\r\n\r\nexport const disabledClassificationTooltip = 'Provide IGA Country to select status';\r\n","import { useIntl } from 'react-intl';\r\n\r\nexport const sortArrayByLabel = (unsortedArray, placeholderValue, otherValue) => {\r\n if (!unsortedArray.every(i => i.label)) {\r\n return unsortedArray;\r\n }\r\n\r\n const placeholderOption = unsortedArray.find(i => i.value === placeholderValue);\r\n const otherOption = unsortedArray.find(i => i.value === otherValue);\r\n const arrayWithoutDefaultOrOther = unsortedArray.filter(i => i.value !== placeholderValue && i.value !== otherValue);\r\n const sorted = arrayWithoutDefaultOrOther.sort((a, b) => a.label.localeCompare(b.label));\r\n if (placeholderOption) {\r\n sorted.unshift(placeholderOption);\r\n }\r\n if (otherOption) {\r\n sorted.push(otherOption);\r\n }\r\n return sorted;\r\n};\r\n\r\nexport default function GetDictionaryArray(key, intl) {\r\n const intlArray = intl ?? useIntl();\r\n const result = intlArray.messages[key];\r\n return Array.isArray(result) ? result : [];\r\n}\r\n","import EnvConfig from 'env.config';\r\nimport { getStorageValue, setStorageSetting } from 'common/storage';\r\nimport defaultLanguageMessages from 'assets/lang/en.json';\r\n\r\nconst availableLanguages = ['en', 'de', 'es', 'fr', 'it', 'nl', 'pl', 'zh', 'zh-hant'];\r\n\r\nconst localeFallbacks = [\r\n { locale: 'zh-cnt', resolveTo: 'zh-hant' },\r\n { locale: 'zh-hk', resolveTo: 'zh-hant' },\r\n { locale: 'zh-mo', resolveTo: 'zh-hant' },\r\n { locale: 'zh-tw', resolveTo: 'zh-hant' }\r\n];\r\n\r\nconst createLanguagePath = key => `assets/lang/${ key }.json`;\r\n\r\nexport const defaultLanguage = {\r\n key: 'en',\r\n value: 'English',\r\n messages: defaultLanguageMessages\r\n};\r\n\r\nexport function detectLocale(supportedLanguages) {\r\n let locale = getStorageValue('locale', null);\r\n if (locale != null) {\r\n return locale;\r\n }\r\n\r\n if (navigator.cookieEnabled && document.cookie.indexOf(EnvConfig.localeCookieName) > -1) {\r\n const cookieValue = document.cookie.split(`${ EnvConfig.localeCookieName }=`).pop().split(';')[0];\r\n if (cookieValue && cookieValue !== 'undefined') {\r\n locale = cookieValue;\r\n return locale;\r\n }\r\n }\r\n\r\n locale = navigator.language || navigator.userLanguage;\r\n\r\n if (localeFallbacks.some(e => e.locale === locale.toLowerCase())) {\r\n locale = localeFallbacks.filter(x => x.locale.toLowerCase() === locale.toLowerCase())[0].resolveTo;\r\n }\r\n\r\n if (supportedLanguages && supportedLanguages.length > 0) {\r\n const specificLanguage = supportedLanguages.find(l => l.key.toLowerCase() === locale.toLowerCase());\r\n const fallbackLanguage = supportedLanguages.find(l => l.key.toLowerCase() === locale.toLowerCase().split('-')[0]);\r\n\r\n locale = specificLanguage?.key ?? fallbackLanguage?.key;\r\n }\r\n\r\n return availableLanguages.includes(locale) ? locale : defaultLanguage.key;\r\n}\r\n\r\nexport async function getSupportedLanguages() {\r\n const response = await fetch('./assets/lang/languages.json');\r\n if (!response.ok) {\r\n return [defaultLanguage];\r\n }\r\n\r\n let languages = await response.json();\r\n languages = languages.filter(x => availableLanguages.includes(x.key));\r\n if (!languages.some(x => x.key === defaultLanguage.key)) {\r\n languages.unshift(...defaultLanguage);\r\n }\r\n\r\n return languages;\r\n}\r\n\r\nexport function saveLocale(locale) {\r\n if (navigator.cookieEnabled) {\r\n document.cookie = `${ EnvConfig.localeCookieName }=${ locale }; path=/; samesite=lax; secure`;\r\n }\r\n setStorageSetting('locale', locale);\r\n document.documentElement.setAttribute('lang', locale);\r\n}\r\n\r\nexport async function getShortDictionary(locale) {\r\n const path = createLanguagePath(locale);\r\n const response = await fetch(path);\r\n if (!response.ok) {\r\n return {};\r\n }\r\n\r\n const dictionary = await response.json();\r\n return dictionary ?? {};\r\n}\r\n","const FormGroupTypes = [\r\n {\r\n key: 'crsiw8ben',\r\n formTypes: ['crsi_2024', 'w8ben_2021']\r\n },\r\n];\r\n\r\nexport default FormGroupTypes;\r\n","const QuestionnaireType = {\r\n PreQualifying: 1,\r\n Form: 2,\r\n FormGroup: 3,\r\n};\r\n\r\nexport default QuestionnaireType;\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 const getStorageValue = (stateItem, defaultValue) => sessionStorage.getItem(stateItem) ?? defaultValue;\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\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport function getStateFromStorage(stateItem, defaultValue) {\r\n const options = sessionStorage.getItem(stateItem);\r\n if (!options) {\r\n return defaultValue;\r\n }\r\n\r\n const result = JSON.parse(options);\r\n\r\n return result;\r\n}\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport function setStateStorageSetting(storageKey, data) {\r\n // const encryptedData = CryptoJS.AES.encrypt(data, '5474735835835835');\r\n sessionStorage.setItem(storageKey, data);\r\n}\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport function setStorageSetting(storageKey, data) {\r\n sessionStorage.setItem(storageKey, data);\r\n}\r\n\r\nexport function removeStorageItem(key) {\r\n sessionStorage.removeItem(key);\r\n}\r\n","function createWithholdingStatement(docType, enumValue) {\r\n return Object.freeze({\r\n name: docType.toLowerCase(),\r\n enumValue\r\n });\r\n}\r\n\r\nexport const simpleWhdStatement = createWithholdingStatement('SimpleWhdStatement', 47);\r\nexport const detailedWhdStatement = createWithholdingStatement('DetailedWhdStatement', 48);\r\nexport const altWhdStatement = createWithholdingStatement('AltWhdStatement', 49);\r\nexport const pooledWhdStatement = createWithholdingStatement('PooledWhdStatement', 50);\r\n\r\nexport const whdStatementDocTypes = Object.freeze([\r\n simpleWhdStatement,\r\n detailedWhdStatement,\r\n altWhdStatement,\r\n pooledWhdStatement\r\n]);\r\n\r\nexport function getWhdStatementByName(name) {\r\n return whdStatementDocTypes.find(dt => dt.name === name?.toLowerCase());\r\n}\r\n\r\nexport function getWhdStatementByEnumValue(enumValue) {\r\n return whdStatementDocTypes.find(dt => dt.enumValue === enumValue);\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nconst Button = ({ value, text, className, children, ariaLabel, ...props }) => \r\n { text != null ? text : value }\r\n { children }\r\n;\r\n\r\nButton.propTypes = {\r\n value: PropTypes.string.isRequired,\r\n text: PropTypes.string,\r\n className: PropTypes.string,\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ]),\r\n ariaLabel: PropTypes.string\r\n};\r\n\r\nButton.defaultProps = {\r\n text: null,\r\n className: null,\r\n children: null,\r\n ariaLabel: null\r\n};\r\n\r\nexport const SubmitButton = ({ value, text, className, children, ...props }) => \r\n { text != null ? text : value }\r\n { children }\r\n;\r\n\r\nSubmitButton.propTypes = {\r\n value: PropTypes.string.isRequired,\r\n text: PropTypes.string,\r\n className: PropTypes.string,\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ])\r\n};\r\n\r\nSubmitButton.defaultProps = {\r\n text: null,\r\n className: null,\r\n children: null\r\n};\r\n\r\nexport const TileButton = ({ value, text, icon, className, selected, ...props }) => \r\n \r\n { text != null ? text : value }\r\n;\r\n\r\nTileButton.propTypes = {\r\n value: PropTypes.string.isRequired,\r\n icon: PropTypes.string.isRequired,\r\n text: PropTypes.string,\r\n className: PropTypes.string,\r\n selected: PropTypes.bool\r\n};\r\n\r\nTileButton.defaultProps = {\r\n text: null,\r\n className: null,\r\n selected: false\r\n};\r\n\r\nexport const HintButton = ({\r\n hintType,\r\n active,\r\n onClick,\r\n className,\r\n hintLabel,\r\n}) => {\r\n const intl = useIntl();\r\n function getHintButtonLabel() {\r\n if (!(hintLabel?.trim().length)) {\r\n return hintType;\r\n }\r\n\r\n const hintFor = intl.formatMessage({ id: 'hintFor' });\r\n return `${ hintFor }${ hintLabel.replace('*', '').trim() }`;\r\n }\r\n\r\n return (\r\n onClick() }\r\n className={ `btn hint ${ active ? 'active' : '' } ${ className != null ? className : '' }` }\r\n >\r\n { hintType === 'hint' && }\r\n { hintType === 'info' && }\r\n { hintType === 'tip' && }\r\n { hintType === 'caution' && }\r\n \r\n );\r\n};\r\n\r\nHintButton.propTypes = {\r\n hintType: PropTypes.string.isRequired,\r\n active: PropTypes.bool.isRequired,\r\n onClick: PropTypes.func.isRequired,\r\n className: PropTypes.string,\r\n hintLabel: PropTypes.string,\r\n};\r\n\r\nHintButton.defaultProps = {\r\n className: null,\r\n hintLabel: null\r\n};\r\n\r\nexport default Button;\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 static get yesterdayDateString() {\r\n const dt = DateTimes.yesterday;\r\n\r\n const d = dt.getDate();\r\n const m = dt.getMonth() + 1;\r\n const y = dt.getFullYear();\r\n\r\n return `${ (d <= 9 ? `0${ d }` : d) }-${ (m <= 9 ? `0${ m }` : m) }-${ y }`;\r\n }\r\n\r\n static get utcDate() {\r\n return new Date(DateTimes.today.getUTCFullYear(), DateTimes.today.getUTCMonth(), DateTimes.today.getUTCDate());\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 { connect } from 'react-redux';\r\n\r\nimport { deleteSupportingDoc } from 'actions';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nclass FileContent extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n onDeleteCallback: PropTypes.func,\r\n item: PropTypes.shape({\r\n id: PropTypes.string.isRequired,\r\n localeDescription: PropTypes.string.isRequired,\r\n originalFileName: PropTypes.string,\r\n fileName: PropTypes.string\r\n }).isRequired,\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired\r\n };\r\n\r\n static defaultProps = {\r\n onDeleteCallback: null,\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 }\r\n }\r\n\r\n onDeleteSupportingDocument(file) {\r\n const { dispatch, onDeleteCallback } = this.props;\r\n dispatch(deleteSupportingDoc(file.id));\r\n\r\n if (onDeleteCallback) {\r\n onDeleteCallback();\r\n }\r\n }\r\n\r\n render() {\r\n const { item, intl } = this.props;\r\n\r\n return
\r\n
\r\n

{item.localeDescription}

\r\n

{item.originalFileName || item.fileName}

\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)(injectIntl(FileContent));\r\n","import React from 'react';\r\nimport DropzoneComponent from 'react-dropzone-component';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport ReactDOMServer from 'react-dom/server';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nimport { getStorageSetting } from 'common/storage';\r\nimport { history } from 'containers/App';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nclass FileUpload extends React.Component {\r\n static propTypes = {\r\n postUrl: 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 onFileUploadCancel: PropTypes.func,\r\n onFileUploadSuccess: PropTypes.func,\r\n onFileUploadError: PropTypes.func,\r\n uploadFileSettings: PropTypes.shape(\r\n {\r\n uploadTimeout: PropTypes.number,\r\n maxUploadFiles: PropTypes.number,\r\n maxFileSize: PropTypes.number,\r\n maxParallelUploads: PropTypes.number\r\n }\r\n ),\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired,\r\n locale: PropTypes.string.isRequired,\r\n isQuestionnaireUpload: PropTypes.bool,\r\n uploadTitle: PropTypes.string,\r\n allowMultipleFiles: PropTypes.bool,\r\n previewClassName: PropTypes.string\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 onFileUploadCancel: null,\r\n onFileUploadSuccess: null,\r\n onFileUploadError: null,\r\n acceptedFiles: null,\r\n uploadFileSettings: null,\r\n isQuestionnaireUpload: false,\r\n uploadTitle: 'fileUpload.title',\r\n allowMultipleFiles: true,\r\n previewClassName: '',\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 { uploadFileSettings, allowMultipleFiles } = this.props;\r\n\r\n this.state = {\r\n timeout: uploadFileSettings != null ? uploadFileSettings.uploadTimeout : 60000,\r\n maxUploadFiles: uploadFileSettings != null ? uploadFileSettings.maxUploadFiles : 1000,\r\n maxFilesize: uploadFileSettings != null ? uploadFileSettings.maxFileSize : 5,\r\n maxParellelUploads: uploadFileSettings != null ? uploadFileSettings.maxParallelUploads : 2\r\n };\r\n\r\n if (!allowMultipleFiles) {\r\n this.state.maxUploadFiles = 1;\r\n this.state.maxParellelUploads = 1;\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 onAddedFile(file) {\r\n const { onFileQueued } = this.props;\r\n const { filesToRejectCount } = this.state;\r\n\r\n if (filesToRejectCount) {\r\n this.dropzone.removeAllFiles();\r\n this.state.filesToRejectCount -= 1;\r\n return;\r\n }\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, onFileUploadError, intl } = this.props;\r\n\r\n if (file.accepted === true && file.status === 'success') {\r\n if (file.xhr && file.xhr.response === '[]') {\r\n if (onFileUploadError) {\r\n onFileUploadError(file, { code: 400, message: intl.formatMessage({ id: 'fileUpload.problemText' }) });\r\n }\r\n }\r\n\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, response) {\r\n const { onFileUploadError, intl } = this.props;\r\n const HTTP_498_SESSIONTIMEOUT = 498;\r\n\r\n if (file.status === 'error' && (file.accepted === false || (file.accepted === true && response))) {\r\n if (onFileUploadError) {\r\n try {\r\n const jsonResponse = JSON.parse(response);\r\n if (jsonResponse?.code === HTTP_498_SESSIONTIMEOUT) {\r\n history.push('/sessiontimeout');\r\n } else {\r\n const errorResponse = (jsonResponse?.code && jsonResponse?.message) ? jsonResponse : { code: 400, message: intl.formatMessage({ id: 'fileUpload.problemText' }) };\r\n onFileUploadError(file, errorResponse);\r\n }\r\n } catch (e) {\r\n onFileUploadError(file, response.error ? response.error : { code: 400, message: intl.formatMessage({ id: 'fileUpload.problemText' }) });\r\n }\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 timeoutHandler = this.onTimeout;\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, intl } = this.props;\r\n\r\n if (onFileUploadError) {\r\n onFileUploadError(file, { code: 504, message: `${ intl.formatMessage({ id: 'fileUpload.timeout' }, { FileName: 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 onDrop(event) {\r\n const { allowMultipleFiles } = this.props;\r\n\r\n const files = event?.dataTransfer?.files;\r\n if (!files || allowMultipleFiles) return;\r\n if (files.length > 1) {\r\n this.state.filesToRejectCount = files.length;\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, defaultMessage, intl, locale, isQuestionnaireUpload, uploadTitle, previewClassName } = 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: null, 'Accept-Language': locale };\r\n if (selectedClient != null) {\r\n headers['TT-CLIENT'] = selectedClient.key;\r\n }\r\n const djsConfig = {\r\n withCredentials: true,\r\n addRemoveLinks: true,\r\n autoProcessQueue: true,\r\n maxFiles: maxUploadFiles > 0 ? maxUploadFiles : null,\r\n timeout,\r\n acceptedFiles,\r\n maxFilesize,\r\n parallelUploads: maxParellelUploads,\r\n dictDefaultMessage: defaultMessage,\r\n method: 'put',\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 dictCancelUpload: intl.formatMessage({ id: 'supportingDocuments.cancelUpload' }),\r\n dictCancelUploadConfirmation: intl.formatMessage({ id: 'supportingDocuments.cancelUploadConfirmation' }),\r\n dictRemoveFile: intl.formatMessage({ id: 'supportingDocuments.removeFile' }),\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 drop: event => this.onDrop(event)\r\n };\r\n return (\r\n \r\n { docCategory && docType && \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n { (!docCategory || !docType) &&
\r\n
\r\n
\r\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 app: {\r\n onlineConfig\r\n }\r\n } = state;\r\n\r\n return {\r\n uploadFileSettings: onlineConfig && onlineConfig.uploadFileSettings\r\n };\r\n}\r\nexport default connect(\r\n mapStateToProps\r\n)(injectIntl(FileUpload));\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Autosuggest from 'react-autosuggest';\r\n\r\nimport match from 'autosuggest-highlight/match';\r\nimport parse from 'autosuggest-highlight/parse';\r\n\r\nimport removeDiactritics from 'common/app/removeDiacritics';\r\n\r\nexport const AutoCompleteField = ({ getSuggestionValue, inputProps, classNameProp, listToFilter }) => {\r\n const [suggestions, setSuggestions] = useState([]);\r\n\r\n const escapeRegexCharacters = str => str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n\r\n const getSuggestions = (v) => {\r\n const escapedValue = escapeRegexCharacters(removeDiactritics(v.trim()));\r\n\r\n if (!escapedValue || escapedValue.length < 3) {\r\n return [];\r\n }\r\n\r\n const regex = new RegExp(escapedValue, 'i');\r\n return listToFilter.filter(s => (regex.test(s.searchName) || regex.test(s.mic)));\r\n };\r\n\r\n const renderSuggestion = (suggestion, { query }) => {\r\n const allExchangeMatches = match(suggestion.exchangeName, query, { insideWords: true });\r\n\r\n let highlighted = false;\r\n let lastHighlightedLetterPosition = -1;\r\n const exchangeMatches = [];\r\n if (allExchangeMatches && allExchangeMatches[0]) {\r\n exchangeMatches.push(allExchangeMatches[0]);\r\n\r\n highlighted = true;\r\n const [exchangeMatch,] = allExchangeMatches;\r\n [, lastHighlightedLetterPosition] = exchangeMatch;\r\n }\r\n\r\n if (highlighted && allExchangeMatches.length > 1) {\r\n allExchangeMatches.slice(1).forEach((m) => {\r\n if (highlighted && lastHighlightedLetterPosition === (m[0] - 1)) {\r\n exchangeMatches.push(m);\r\n } else {\r\n highlighted = false;\r\n }\r\n\r\n [, lastHighlightedLetterPosition] = m;\r\n });\r\n }\r\n\r\n const exchangeParts = parse(suggestion.exchangeName, exchangeMatches);\r\n\r\n const bracketedMic = ` (${ suggestion.mic })`;\r\n let micParts;\r\n if (highlighted === true) {\r\n micParts = [{ text: bracketedMic, highlight: false }];\r\n } else {\r\n const micMatches = match(bracketedMic, query, { insideWords: true });\r\n micParts = parse(bracketedMic, micMatches);\r\n }\r\n\r\n const parts = [...exchangeParts || [], ...micParts || []];\r\n return (\r\n \r\n {\r\n // eslint-disable-next-line arrow-body-style\r\n parts.map((part, index) => {\r\n return (part.highlight ? {part.text} : {part.text}\r\n );\r\n })\r\n }\r\n \r\n );\r\n };\r\n\r\n const onSuggestionsFetchRequested = e => setSuggestions(getSuggestions(e.value));\r\n const onSuggestionsClearRequested = () => setSuggestions([]);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nAutoCompleteField.propTypes = {\r\n getSuggestionValue: PropTypes.func.isRequired,\r\n inputProps: PropTypes.shape().isRequired,\r\n classNameProp: PropTypes.string.isRequired,\r\n listToFilter: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n};\r\n\r\nexport default AutoCompleteField;\r\n","import React, { useState, useRef, useMemo, useEffect } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nconst BoxInputField = ({ id, name, initialValue, callback, fieldLength, disabled, fieldSeperator, className, answerRequired, describedBy }) => {\r\n let defaultValue = (new Array(fieldLength)).fill({ value: '', changed: false });\r\n if (initialValue) {\r\n defaultValue = initialValue.split('').map(x => ({ value: x, changed: false }));\r\n if (defaultValue.length > fieldLength) {\r\n defaultValue = defaultValue.slice(0, fieldLength - 1);\r\n } else if (defaultValue.length < fieldLength) {\r\n defaultValue = defaultValue.concat((new Array(fieldLength - defaultValue.length)).fill({ value: '', changed: false }));\r\n }\r\n }\r\n const [pin, setPin] = useState(defaultValue);\r\n const fullEntry = useMemo(() => Object.values(pin).reduce((t, { value }) => t + value, ''), [pin]);\r\n const inputRef = [...Array(fieldLength).keys()].map(x => useRef(null));\r\n const regex = /^[\"'0-9'\"]*$/;\r\n\r\n function onKeyHandler(event, index) {\r\n if (event === null) {\r\n return;\r\n }\r\n\r\n if (event.shiftKey || event.keyCode === 9 || event.keyCode === 16) {\r\n return;\r\n }\r\n\r\n if (event.keyCode === 8) {\r\n if (index !== 0) {\r\n const previous = inputRef[index - 1];\r\n if (previous) {\r\n previous.current.focus();\r\n }\r\n }\r\n } else {\r\n const next = inputRef[index + 1];\r\n if (next && event.target.value !== '') {\r\n next.current.focus();\r\n }\r\n }\r\n }\r\n\r\n function handleChange(event, fieldIndex) {\r\n if (event === null || event.target === null) {\r\n return;\r\n }\r\n\r\n if (!regex.test(event.target.value) || (event.target.value != null && event.target.value.length > 1)) {\r\n return;\r\n }\r\n\r\n setPin(pin.map((fieldInput, i) => (i === fieldIndex ? {\r\n changed: true,\r\n value: event.target.value\r\n } : fieldInput)));\r\n }\r\n\r\n useEffect(() => {\r\n callback(fullEntry);\r\n }, [pin]);\r\n\r\n return (\r\n
\r\n {Array.from({ length: fieldLength }, (element, index) => (\r\n \r\n onKeyHandler(e, index) }\r\n onChange={ e => handleChange(e, index) }\r\n value={ pin[index] && pin[index].value && !disabled ? pin[index].value : '' }\r\n aria-required={ answerRequired && !disabled ? 'true' : undefined }\r\n aria-describedby={ describedBy }\r\n required={ answerRequired && !disabled }\r\n />\r\n { fieldSeperator && (fieldSeperator.indexOf(index) >= 0) && -}\r\n \r\n ))}\r\n
\r\n );\r\n};\r\n\r\nBoxInputField.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n name: PropTypes.string,\r\n initialValue: PropTypes.string,\r\n fieldLength: PropTypes.number,\r\n fieldSeperator: PropTypes.arrayOf(PropTypes.number),\r\n disabled: PropTypes.bool,\r\n callback: PropTypes.func,\r\n className: PropTypes.string,\r\n answerRequired: PropTypes.bool,\r\n describedBy: PropTypes.string\r\n};\r\n\r\nBoxInputField.defaultProps = {\r\n name: null,\r\n initialValue: null,\r\n fieldLength: 1,\r\n fieldSeperator: null,\r\n disabled: false,\r\n callback: null,\r\n className: '',\r\n answerRequired: false,\r\n describedBy: null\r\n};\r\n\r\nexport default BoxInputField;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\nimport isValid from 'date-fns/isValid';\r\nimport parse from 'date-fns/parse';\r\nimport format from 'date-fns/format';\r\n\r\nimport intlArrayHelper from 'common/language/intlArrayHelper';\r\n\r\nconst DateDropdown = ({ id, name, className, maxDate, minDate, dateFormat, onChange, showToolTip, tooltipContent, value, intl, readOnly, answerRequired, describedBy }) => {\r\n const months = intlArrayHelper('questionnaire.date.dropdown');\r\n const convertToDate = date => (date !== null && date !== 'Invalid date' && isValid(parse(date, dateFormat, new Date())) ? parse(date, dateFormat, new Date()) : null);\r\n const [selectedDay, setSelectedDay] = useState(value ? convertToDate(value)?.getDate() : null);\r\n const [selectedYear, setSelectedYear] = useState(value ? convertToDate(value)?.getFullYear() : null);\r\n const [selectedMonth, setSelectedMonth] = useState(value ? months[convertToDate(value)?.getMonth()] : null);\r\n const [minimumDate, setMinimumDate] = useState(convertToDate(minDate));\r\n const [maximumDate, setMaximumDate] = useState(convertToDate(maxDate));\r\n const [currentYear, setCurrentYear] = useState(new Date().getFullYear());\r\n const [currentMonth, setCurrentMonth] = useState(new Date().getMonth());\r\n const years = Array.from(new Array(currentYear && minimumDate ? currentYear - minimumDate.getFullYear() : 100), (val, index) => currentYear - index);\r\n const [fullDate, setFullDate] = useState(value !== null ? value : null);\r\n\r\n const getDaysArray = (year, month) => {\r\n const yearSelected = year !== null ? year : currentYear;\r\n const monthIndex = month !== null ? month + 1 : currentMonth + 1;\r\n\r\n const dateObject = new Date(yearSelected, monthIndex, 0);\r\n return Array.from({ length: dateObject.getDate() }, (_, i) => i + 1);\r\n };\r\n\r\n const [days, setDays] = useState(getDaysArray(currentYear, currentMonth));\r\n\r\n const setValidDate = (year, month, day) => {\r\n if (!year || (month === null || month.length <= 0) || !day) {\r\n if (fullDate) {\r\n onChange(null);\r\n setFullDate(null);\r\n }\r\n return;\r\n }\r\n\r\n const date = new Date(year, month, day);\r\n\r\n if (maximumDate !== null && date > maximumDate) {\r\n if (fullDate) {\r\n onChange(null);\r\n setFullDate(null);\r\n }\r\n return;\r\n }\r\n\r\n if (minimumDate !== null && date < minimumDate) {\r\n if (fullDate) {\r\n onChange(null);\r\n setFullDate(null);\r\n }\r\n return;\r\n }\r\n\r\n onChange(format(date, dateFormat));\r\n setFullDate(format(date, dateFormat));\r\n };\r\n\r\n const changeYear = (year) => {\r\n const monthIndex = selectedMonth !== null ? months.findIndex(val => val.value === selectedMonth.value) : null;\r\n const dayArray = getDaysArray(year, monthIndex);\r\n let day = selectedDay;\r\n setDays(dayArray);\r\n if (selectedDay && !dayArray.includes(parseInt(selectedDay, 10))) {\r\n setSelectedDay(null);\r\n day = null;\r\n }\r\n setSelectedYear(year);\r\n setValidDate(year, monthIndex, day);\r\n };\r\n\r\n const changeMonth = (month) => {\r\n const monthIndex = month ? months.findIndex(val => val.value === month) : '';\r\n const dayArray = getDaysArray(selectedYear, monthIndex);\r\n let day = selectedDay;\r\n setDays(dayArray);\r\n if (selectedDay && !dayArray.includes(parseInt(selectedDay, 10))) {\r\n setSelectedDay(null);\r\n day = null;\r\n }\r\n setSelectedMonth(months[monthIndex] ?? null);\r\n setValidDate(selectedYear, monthIndex, day);\r\n };\r\n\r\n const changeDay = (day) => {\r\n setSelectedDay(day);\r\n const monthIndex = selectedMonth !== null ? months.findIndex(val => val.value === selectedMonth.value) : null;\r\n setValidDate(selectedYear, monthIndex, day);\r\n };\r\n\r\n const isValidDay = (day) => {\r\n if (selectedYear === null || selectedMonth === null) {\r\n return true;\r\n }\r\n\r\n const selectedDate = new Date(selectedYear, months.findIndex(val => val.value === selectedMonth.value), day);\r\n\r\n if ((maximumDate !== null && selectedDate > maximumDate) || (minimumDate !== null && selectedDate < minimumDate)) {\r\n if (day === selectedDay) {\r\n setSelectedDay(null);\r\n }\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const isValidMonth = (month) => {\r\n if (selectedYear === null) {\r\n return true;\r\n }\r\n\r\n const selectedDate = new Date(selectedYear, months.findIndex(val => val.value === month), 1);\r\n const selectedmonthEndDate = new Date(selectedYear, months.findIndex(val => val.value === month) + 1, 0);\r\n\r\n if ((maximumDate !== null && selectedDate > maximumDate) || (minimumDate !== null && selectedmonthEndDate < minimumDate)) {\r\n if (month === selectedMonth) {\r\n setSelectedMonth(null);\r\n }\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const isValidYear = (year) => {\r\n if (minimumDate !== null && year < minimumDate.getFullYear()) {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const calculateAge = (birthday) => {\r\n const todaysDate = new Date();\r\n const dateOfBirth = convertToDate(birthday);\r\n if (!dateOfBirth) {\r\n return '';\r\n }\r\n const diff = todaysDate.getTime() - dateOfBirth.getTime();\r\n const numberOfYears = Math.floor(diff / 31556736000);\r\n const daysDifference = Math.floor((diff % 31556736000) / 86400000);\r\n const numberOfMonths = Math.floor(daysDifference / 30.4167);\r\n\r\n let dayText = 'day';\r\n if (numberOfYears < 1 && numberOfMonths < 1) {\r\n dayText = daysDifference > 1 ? intl.formatMessage({ id: 'questionnaire.dateDropDown.day' }) : intl.formatMessage({ id: 'questionnaire.dateDropDown.days' });\r\n\r\n return `${ daysDifference } ${ dayText }`;\r\n }\r\n\r\n let monthText = 'month';\r\n if (numberOfYears < 1) {\r\n monthText = numberOfMonths > 1 ? intl.formatMessage({ id: 'questionnaire.dateDropDown.months' }) : intl.formatMessage({ id: 'questionnaire.dateDropDown.month' });\r\n return `${ numberOfMonths } ${ monthText }`;\r\n }\r\n\r\n let yearText = intl.formatMessage({ id: 'questionnaire.dateDropDown.year' });\r\n if (numberOfYears > 1) {\r\n yearText = intl.formatMessage({ id: 'questionnaire.dateDropDown.years' });\r\n }\r\n return `${ numberOfYears } ${ yearText }`;\r\n };\r\n\r\n useEffect(() => {\r\n const newMaxDate = convertToDate(maxDate);\r\n setMaximumDate(newMaxDate);\r\n setCurrentYear(newMaxDate !== null ? newMaxDate.getFullYear() : new Date().getFullYear());\r\n setCurrentMonth(newMaxDate !== null ? newMaxDate.getMonth() : new Date().getMonth());\r\n }, [maxDate]);\r\n\r\n useEffect(() => {\r\n setMinimumDate(convertToDate(minDate));\r\n }, [minDate]);\r\n\r\n useEffect(() => {\r\n if (value === fullDate) {\r\n return;\r\n }\r\n const date = convertToDate(value);\r\n setSelectedDay(date?.getDate() ?? null);\r\n setSelectedYear(date?.getFullYear() ?? null);\r\n setSelectedMonth(months[date?.getMonth()] ?? null);\r\n setFullDate(value ?? null);\r\n setDays(getDaysArray(date?.getFullYear(), date?.getMonth()));\r\n }, [value]);\r\n\r\n return (\r\n
\r\n {/* add prefix to id and name */}\r\n
\r\n changeDay(e.target.value) }\r\n disabled={ readOnly }\r\n aria-required={ answerRequired && !readOnly ? 'true' : undefined }\r\n aria-describedby={ describedBy }\r\n required={ answerRequired && !readOnly }\r\n >\r\n \r\n { days.map((day, index) => isValidDay(day) && )}\r\n \r\n
\r\n
\r\n changeMonth(e.target.value) }\r\n disabled={ readOnly }\r\n aria-required={ answerRequired && !readOnly ? 'true' : undefined }\r\n aria-describedby={ describedBy }\r\n required={ answerRequired && !readOnly }\r\n >\r\n \r\n { months.map((month, index) => isValidMonth(month.value) && )}\r\n \r\n
\r\n
\r\n changeYear(e.target.value) }\r\n disabled={ readOnly }\r\n aria-required={ answerRequired && !readOnly ? 'true' : undefined }\r\n aria-describedby={ describedBy }\r\n required={ answerRequired && !readOnly }\r\n >\r\n \r\n { years.map((yearItem, index) => isValidYear(yearItem) && ) }\r\n \r\n
\r\n { showToolTip && fullDate\r\n &&
{ tooltipContent === 'date' ? 'Date: ' : intl.formatMessage({ id: 'questionnaire.dateDropDown.age' })} { tooltipContent === 'date' ? fullDate : calculateAge(fullDate) }
}\r\n \r\n
\r\n );\r\n};\r\n\r\nDateDropdown.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n name: PropTypes.string,\r\n maxDate: PropTypes.string,\r\n minDate: PropTypes.string,\r\n dateFormat: PropTypes.string,\r\n className: PropTypes.string,\r\n onChange: PropTypes.func.isRequired,\r\n showToolTip: PropTypes.bool,\r\n tooltipContent: PropTypes.string,\r\n value: PropTypes.string,\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired,\r\n readOnly: PropTypes.bool,\r\n answerRequired: PropTypes.bool,\r\n describedBy: PropTypes.string\r\n};\r\n\r\nDateDropdown.defaultProps = {\r\n name: null,\r\n maxDate: null,\r\n minDate: null,\r\n dateFormat: 'MM-dd-yyyy',\r\n showToolTip: true,\r\n className: null,\r\n tooltipContent: null,\r\n value: null,\r\n readOnly: false,\r\n answerRequired: false,\r\n describedBy: null\r\n};\r\n\r\nexport default injectIntl(DateDropdown);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst LoadingWrapper = ({ text }) =>
\r\n { text != null && { text } }\r\n
;\r\n\r\nLoadingWrapper.propTypes = {\r\n text: PropTypes.string\r\n};\r\n\r\nLoadingWrapper.defaultProps = {\r\n text: null\r\n};\r\n\r\nexport default LoadingWrapper;\r\n","import React, { useContext } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { FormattedMessage } from 'react-intl';\r\n\r\nimport { ConfigContext } from 'containers/App';\r\n\r\nconst Abbr = chunks => {chunks};\r\nconst Address = chunks =>
{chunks}
;\r\nconst Bold = chunks => {chunks};\r\nconst BlockQuote = chunks =>
{chunks}
;\r\nconst Center = chunks =>

{chunks}

;\r\nconst Cite = chunks => {chunks};\r\nconst Dd = chunks =>
{chunks}
;\r\nconst Dl = chunks =>
{chunks}
;\r\nconst Dt = chunks =>
{chunks}
;\r\nconst Em = chunks => {chunks};\r\nconst ExternalAnchorLink = (chunks) => {\r\n const [chunk] = chunks;\r\n const chunkIndex = chunk?.indexOf('|') ?? -1;\r\n const url = chunk && chunkIndex > 0 ? chunk.substring(0, chunkIndex) : chunks;\r\n const text = chunk && chunkIndex > 0 ? chunk.substring(chunkIndex + 1) : chunks;\r\n return { text };\r\n};\r\nconst H1 = chunks =>

{chunks}

;\r\nconst H2 = chunks =>

{chunks}

;\r\nconst H3 = chunks =>

{chunks}

;\r\nconst H4 = chunks =>

{chunks}

;\r\nconst H5 = chunks =>
{chunks}
;\r\nconst H6 = chunks =>
{chunks}
;\r\nconst Italic = chunks => {chunks};\r\nconst LatinList = chunks =>
    {chunks}
;\r\nconst ListItem = chunks =>
  • {chunks}
  • ;\r\nconst Mark = chunks => {chunks};\r\nconst Menu = chunks => {chunks};\r\nconst OrderedList = chunks =>
      {chunks}
    ;\r\nconst Paragraph = chunks =>

    {chunks}

    ;\r\nconst Pre = chunks =>
    {chunks}
    ;\r\nconst Quote = chunks => {chunks};\r\nconst RedText = chunks => {chunks};\r\nconst RomanList = chunks =>
      {chunks}
    ;\r\nconst StrikeThrough = chunks => {chunks};\r\nconst Span = chunks => {chunks};\r\nconst Strong = chunks => {chunks};\r\nconst SubText = chunks => {chunks};\r\nconst SuperText = chunks => {chunks};\r\nconst Underline = chunks => {chunks};\r\nconst UnorderedList = chunks =>
      {chunks}
    ;\r\n\r\nconst LocalisedMessage = ({ id, values, defaultMessage }) => {\r\n const configContext = useContext(ConfigContext);\r\n\r\n return (,\r\n center: Center,\r\n cite: Cite,\r\n dd: Dd,\r\n dl: Dl,\r\n dt: Dt,\r\n em: Em,\r\n hr:
    ,\r\n h1: H1,\r\n h2: H2,\r\n h3: H3,\r\n h4: H4,\r\n h5: H5,\r\n h6: H6,\r\n i: Italic,\r\n li: ListItem,\r\n ll: LatinList,\r\n mark: Mark,\r\n menu: Menu,\r\n ol: OrderedList,\r\n p: Paragraph,\r\n pre: Pre,\r\n q: Quote,\r\n red: RedText,\r\n rl: RomanList,\r\n s: StrikeThrough,\r\n span: Span,\r\n strong: Strong,\r\n sub: SubText,\r\n sup: SuperText,\r\n // eslint-disable-next-line react/no-unstable-nested-components\r\n supportlink: chunks => {chunks},\r\n u: Underline,\r\n ul: UnorderedList,\r\n // eslint-disable-next-line react/no-unstable-nested-components\r\n websitelink: chunks => {chunks},\r\n externallink: ExternalAnchorLink,\r\n ...values\r\n } }\r\n defaultMessage={ defaultMessage !== null ? defaultMessage : id }\r\n />);\r\n};\r\n\r\nLocalisedMessage.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n values: PropTypes.shape(),\r\n defaultMessage: PropTypes.string\r\n};\r\n\r\nLocalisedMessage.defaultProps = {\r\n values: null,\r\n defaultMessage: null\r\n};\r\n\r\nexport default LocalisedMessage;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport { HintButton } from 'components/Common/Buttons';\r\n\r\nconst QuestionBlockHeader = ({ id, title, info, linkStyle, expandCollapse, isCollapsed, onExpandCollapseClick, onHideBlock, messageValues }) => {\r\n const intl = useIntl();\r\n const [showInstructions, setShowInstructions] = useState(false);\r\n\r\n const viewInstructions = () => {\r\n setShowInstructions(!showInstructions);\r\n };\r\n\r\n const formatInstructions = () => {\r\n const { instructions } = info;\r\n\r\n if (typeof instructions === 'string') {\r\n return ;\r\n }\r\n\r\n if (Array.isArray(instructions) && instructions.every(instruction => typeof instruction === 'string')) {\r\n return (\r\n
    \r\n {instructions.map(instruction => (\r\n
    \r\n \r\n
    \r\n ))}\r\n
    \r\n );\r\n }\r\n\r\n return instructions;\r\n };\r\n\r\n return (\r\n \r\n \r\n { expandCollapse && }\r\n { title &&

    }\r\n { info?.instructions && viewInstructions() } /> }\r\n { linkStyle && onHideBlock && onHideBlock() }\r\n title={ `${ intl.formatMessage({ id: 'questionnaire.remove' }) } ${ intl.formatMessage({ id: title }) }` }\r\n aria-label={ `${ intl.formatMessage({ id: 'questionnaire.remove' }) } ${ intl.formatMessage({ id: title }) }` }\r\n >\r\n \r\n }\r\n
    \r\n { showInstructions &&
    { formatInstructions() }
    }\r\n
    );\r\n};\r\n\r\nQuestionBlockHeader.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n title: PropTypes.string,\r\n info: PropTypes.shape(),\r\n expandCollapse: PropTypes.bool,\r\n linkStyle: PropTypes.bool,\r\n isCollapsed: PropTypes.bool.isRequired,\r\n onExpandCollapseClick: PropTypes.func,\r\n onHideBlock: PropTypes.func,\r\n messageValues: PropTypes.shape()\r\n};\r\n\r\nQuestionBlockHeader.defaultProps = {\r\n title: '',\r\n info: null,\r\n linkStyle: false,\r\n expandCollapse: true,\r\n onExpandCollapseClick: null,\r\n onHideBlock: null,\r\n messageValues: {}\r\n};\r\n\r\nexport default QuestionBlockHeader;\r\n","import React, { useState, useMemo, useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { useIntl } from 'react-intl';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport {\r\n answerBlockQuestion,\r\n answerBlock\r\n} from 'actions';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport QuestionnaireType from 'common/questionnaires/QuestionnaireType';\r\nimport QuestionBlockHeader from '../QuestionBlockHeader';\r\nimport Question from '../Question';\r\n\r\nconst QuestionBlock = ({ questionnaireType, block, messageValues, onAnswer }) => {\r\n const dispatch = useDispatch();\r\n const intl = useIntl();\r\n\r\n const formAnswers = useSelector(state => state?.questionnaires?.formQuestionnaire?.answers);\r\n const preQualAnswers = useSelector(state => state?.questionnaires?.preQualQuestionnaire?.answers);\r\n\r\n const isEmptyObject = (obj, depth = 0) => {\r\n const maxDepth = 5;\r\n if (depth > maxDepth) {\r\n return false;\r\n }\r\n if (!obj) {\r\n return true;\r\n }\r\n if (typeof obj !== 'object' && obj) {\r\n return false;\r\n }\r\n let isEmpty = true;\r\n const keys = Object.keys(obj);\r\n for (let i = 0; i < keys.length; i += 1) {\r\n const key = keys[i];\r\n if (obj[key]) {\r\n isEmpty = isEmptyObject(obj[key], depth + 1);\r\n if (isEmpty === false) {\r\n break;\r\n }\r\n }\r\n }\r\n return isEmpty;\r\n };\r\n\r\n const qAnswers = useMemo(() => {\r\n if (questionnaireType === QuestionnaireType.PreQualifying) {\r\n return preQualAnswers;\r\n }\r\n return formAnswers;\r\n }, [questionnaireType, preQualAnswers, formAnswers]);\r\n\r\n const [isLinkOpen, setIsLinkOpen] = useState((!isEmptyObject(block?.answers) || block?.questions?.some(x => x.answer)) ?? false);\r\n const [isCollapsed, setIsCollapsed] = useState(block?.isCollapsed ?? false);\r\n\r\n const isLinkBlock = () => {\r\n let isLink = block.isLinkBlock;\r\n if (block) {\r\n if (Object.prototype.hasOwnProperty.call(block, 'linkBlock')) {\r\n if (typeof block.linkBlock === 'boolean') {\r\n isLink = block.linkBlock;\r\n }\r\n if (typeof block.linkBlock === 'function') {\r\n isLink = block.linkBlock(block.answers, qAnswers, preQualAnswers);\r\n }\r\n }\r\n }\r\n\r\n if (!isLink && !isLinkOpen) {\r\n setIsLinkOpen(true);\r\n }\r\n\r\n return isLink;\r\n };\r\n\r\n const hasValidators = useMemo(() => {\r\n const hasConditions = block.questions?.some(x => x.validation?.conditions?.length > 0);\r\n let isOptional;\r\n if (block?.componentProps && Object.prototype.hasOwnProperty.call(block?.componentProps, 'optional')) {\r\n if (typeof block.componentProps.optional === 'boolean') {\r\n isOptional = !!block.componentProps.optional;\r\n }\r\n if (typeof block.componentProps.optional === 'function') {\r\n isOptional = !!block.componentProps.optional(block.answers, formAnswers, preQualAnswers);\r\n }\r\n }\r\n\r\n return hasConditions || isOptional !== true;\r\n }, [block, isLinkBlock()]);\r\n const canExpandCollapse = useMemo(() => block.expandCollapse === undefined || block.expandCollapse === null || block.expandCollapse === true, [block]);\r\n\r\n const hasDisabledFields = block.disabled === true || block?.questions?.some(x => x.disabled === true);\r\n\r\n const onQuestionChange = (q, value) => {\r\n dispatch(answerBlockQuestion(questionnaireType, block.id, q.id, value));\r\n };\r\n\r\n const onShowBlock = () => {\r\n setIsLinkOpen(true);\r\n };\r\n\r\n const onHideBlock = () => {\r\n if (!onAnswer || typeof onAnswer !== 'function') {\r\n dispatch(answerBlock(block.id, {}, undefined));\r\n } else {\r\n onAnswer(block, {}, undefined);\r\n }\r\n\r\n setIsLinkOpen(false);\r\n if (isLinkBlock()) {\r\n if (block.questions?.length > 0) {\r\n block.questions = block.questions.map((q) => {\r\n q.isValid = undefined;\r\n q.errorMessages = undefined;\r\n q.answer = undefined;\r\n return q;\r\n });\r\n }\r\n }\r\n };\r\n\r\n const showQuestion = (q) => {\r\n if (q) {\r\n if (Object.prototype.hasOwnProperty.call(q, 'visible')) {\r\n if (typeof q.visible === 'boolean') {\r\n return q.visible;\r\n }\r\n if (typeof q.visible === 'function') {\r\n return q.visible(block.answers, qAnswers, preQualAnswers);\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n const introExists = () => intl?.messages[`${ block.title }.intro`];\r\n\r\n useEffect(() => {\r\n if (isLinkBlock() && isEmptyObject(block.answers)) {\r\n setIsLinkOpen(false);\r\n block.isValid = undefined;\r\n }\r\n }, [isLinkBlock()]);\r\n\r\n return (\r\n \r\n { isLinkBlock() && !isLinkOpen && onShowBlock() }\r\n title={ `${ intl.formatMessage({ id: 'questionnaire.add' }) } ${ intl.formatMessage({ id: block.title }) }` }\r\n aria-label={ `${ intl.formatMessage({ id: 'questionnaire.add' }) } ${ intl.formatMessage({ id: block.title }) }` }\r\n >\r\n { block.title && }{ hasValidators && ' *' }\r\n }\r\n
    \r\n
    \r\n {!block.hideHeader\r\n && onHideBlock() }\r\n messageValues={ messageValues }\r\n />}\r\n { introExists() &&
    \r\n \r\n
    }\r\n { hasDisabledFields &&

    }\r\n
    \r\n { block.component !== undefined && React.createElement(block.component, { block, preQualAnswers, messageValues, onAnswer }) }\r\n { block.questions !== undefined && block.questions.constructor === Array\r\n && block.questions.map(q => q && showQuestion(q) && onQuestionChange(question, answer) }\r\n />)}\r\n { block.info?.footnote && }\r\n
    \r\n
    \r\n
    \r\n
    );\r\n};\r\n\r\nQuestionBlock.propTypes = {\r\n questionnaireType: PropTypes.number.isRequired,\r\n block: PropTypes.shape().isRequired,\r\n formAnswers: PropTypes.shape(),\r\n preQualAnswers: PropTypes.shape(),\r\n messageValues: PropTypes.shape(),\r\n onAnswer: PropTypes.func\r\n};\r\n\r\nQuestionBlock.defaultProps = {\r\n formAnswers: null,\r\n preQualAnswers: null,\r\n messageValues: {},\r\n onAnswer: null\r\n};\r\n\r\nexport default QuestionBlock;\r\n","import React, { useState, useEffect, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport { isRequired } from 'components/Questionnaires/validators';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport { HintButton } from 'components/Common/Buttons';\r\n\r\nconst Question = ({ blockId, question, messageValues, onChange }) => {\r\n const intl = useIntl();\r\n const [isEdited, setIsEdited] = useState(question.answer !== undefined);\r\n const [showInstructions, setShowInstructions] = useState(false);\r\n\r\n const viewInstructions = () => {\r\n setShowInstructions(!showInstructions);\r\n };\r\n\r\n const onQuestionChange = (q, value) => {\r\n setIsEdited(true);\r\n onChange(q, value);\r\n };\r\n\r\n const questionRequired = useMemo(() => isRequired(question), [question.validation?.conditions]);\r\n\r\n useEffect(() => {\r\n if (question.isForceEdited === true) {\r\n setIsEdited(true);\r\n }\r\n }, [question.isForceEdited]);\r\n\r\n return (
    \r\n \r\n { question.label && \r\n { questionRequired ? ' *' : '' }\r\n { question.info?.instructions && viewInstructions() } /> }\r\n }\r\n \r\n { showInstructions &&
    { typeof question.info.instructions === 'string' ? : question.info.instructions }
    }\r\n
    \r\n
    \r\n { React.createElement(question.component, { intl, blockId, question, ...question.componentProps, onChange: onQuestionChange }) }\r\n { question.info?.footnote && }\r\n { question.info?.component && React.createElement(question.info.component, { messageValues, ...question.info.componentProps }) }\r\n { question.isValid === false && isEdited &&
    \r\n
      { question.errorMessages.map(e =>
    • { intl.formatMessage({ id: e }) }
    • ) }
    \r\n
    }\r\n
    \r\n
    \r\n
    );\r\n};\r\n\r\nQuestion.propTypes = {\r\n blockId: PropTypes.string.isRequired,\r\n question: PropTypes.shape().isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n messageValues: PropTypes.shape()\r\n};\r\n\r\nQuestion.defaultProps = {\r\n messageValues: {}\r\n};\r\n\r\nexport default Question;\r\n","const showQuestion = (question, bAnswers, qAnswers, pAnswers, customParameters = null) => {\r\n if (!question) {\r\n return false;\r\n }\r\n\r\n if (!Object.prototype.hasOwnProperty.call(question, 'visible')) {\r\n return false;\r\n }\r\n\r\n if (typeof question.visible === 'boolean') {\r\n return question.visible;\r\n }\r\n\r\n if (typeof question.visible === 'function') {\r\n return question.visible(bAnswers, qAnswers, pAnswers, customParameters);\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport default showQuestion;\r\n","import showQuestion from 'components/Questionnaires/questions';\r\n\r\nexport const requiredValidator = value => value && value.trim().length > 0;\r\nrequiredValidator.displayName = 'requiredValidator';\r\n\r\nexport const integerValidator = value => !value || (!Number.isNaN(value) && !Number.isNaN(parseFloat(value)));\r\nintegerValidator.displayName = 'integerValidator';\r\n\r\nexport const rangeValidator = (value, min, max) => !value || Number.isNaN(value) || (((min === null || min === undefined) || min <= Number(value)) && ((max === null && max === undefined) || max >= Number(value)));\r\nrangeValidator.displayName = 'rangeValidator';\r\n\r\nexport const lengthValidator = (value, length) => !value || value.length === length;\r\nlengthValidator.displayName = 'lengthValidator';\r\n\r\nexport const sameCharacterValidator = value => !value || !(/^(.)\\1{1,}$/.test(value));\r\nsameCharacterValidator.displayName = 'sameCharacterValidator';\r\n\r\nexport const sequentialIntegerValidator = (value) => {\r\n if (!value || value.length === 1) {\r\n return true;\r\n }\r\n\r\n for (let i = 0; i < value.length - 1; i += 1) {\r\n if (i < value.length - 1) {\r\n let currentNumber = parseInt(value[i], 10);\r\n const nextNumber = parseInt(value[i + 1], 10);\r\n currentNumber += 1;\r\n if (currentNumber !== nextNumber) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n};\r\nsequentialIntegerValidator.displayName = 'sequentialIntegerValidator';\r\n\r\nexport const validateQuestion = (question) => {\r\n if (question.answer === undefined) {\r\n return;\r\n }\r\n\r\n let newIsValid = true;\r\n const newErrorMessages = [];\r\n if (question?.validation?.conditions) {\r\n question.validation.conditions.forEach((c) => {\r\n if (c.condition.displayName === 'rangeValidator') {\r\n if (!c.condition(question.answer, question.componentProps?.min, question?.componentProps?.max)) {\r\n newIsValid = false;\r\n newErrorMessages.push(c.message);\r\n }\r\n } else if (c.condition.displayName === 'lengthValidator') {\r\n if (!c.condition(question.answer, question.componentProps?.length)) {\r\n newIsValid = false;\r\n newErrorMessages.push(c.message);\r\n }\r\n } else if (!c.condition(question.answer)) {\r\n newIsValid = false;\r\n newErrorMessages.push(c.message);\r\n }\r\n });\r\n }\r\n question.isValid = newIsValid;\r\n question.errorMessages = newErrorMessages;\r\n};\r\n\r\nexport const validateBlock = (questions) => {\r\n if (!questions || !Array.isArray(questions) || questions.length === 0) {\r\n return [];\r\n }\r\n questions.map(q => validateQuestion(q));\r\n return questions;\r\n};\r\n\r\nexport const isRequired = (question) => {\r\n if (!question.validation?.conditions) {\r\n return false;\r\n }\r\n return question.validation.conditions.some(c => typeof c.condition.displayName === 'string' && c.condition.displayName === 'requiredValidator');\r\n};\r\n\r\nexport const setValidators = (required, conditions, requiredErrorMessageId) => {\r\n if (required !== false && requiredErrorMessageId) {\r\n conditions.push({ condition: requiredValidator, message: requiredErrorMessageId });\r\n }\r\n\r\n return { conditions };\r\n};\r\n\r\nexport const isEmptyObject = (obj) => {\r\n if (!obj) {\r\n return true;\r\n }\r\n let isEmpty = true;\r\n Object.values(obj).forEach((val) => {\r\n if (val !== undefined) {\r\n if (typeof val === 'object') {\r\n const isObjEmpty = isEmptyObject(val);\r\n if (!isObjEmpty) {\r\n isEmpty = false;\r\n }\r\n } else {\r\n isEmpty = false;\r\n }\r\n }\r\n });\r\n return isEmpty;\r\n};\r\n\r\nexport const isQuestionValid = (question, bAnswers, qAnswers, allowBlankBlock) => {\r\n if (!showQuestion(question, bAnswers, qAnswers)) {\r\n return true;\r\n }\r\n\r\n if (allowBlankBlock) {\r\n if (!isRequired(question)) {\r\n return !question.answer || question.isValid;\r\n }\r\n }\r\n\r\n if (question.answer === undefined) {\r\n return undefined;\r\n }\r\n\r\n return question.isValid;\r\n};\r\n\r\nexport const isBlockFullyValid = (subBlocksArr, questionsArr, bAnswers, qAnswers, allowBlankBlock) => {\r\n if (subBlocksArr?.some(b => b.isValid === false)) {\r\n return false;\r\n }\r\n\r\n if (questionsArr?.some(q => isQuestionValid(q, bAnswers, qAnswers, allowBlankBlock) === false)) {\r\n return false;\r\n }\r\n\r\n const allQuestionsUndefined = questionsArr?.every(q => isQuestionValid(q, bAnswers, qAnswers, allowBlankBlock) === undefined);\r\n const allSubBlocksUndefined = subBlocksArr?.every(b => b.isValid === undefined);\r\n\r\n if (allQuestionsUndefined || (subBlocksArr !== null && allSubBlocksUndefined)) {\r\n return undefined;\r\n }\r\n\r\n return true;\r\n};\r\n","const logglyConfig = require('../loggly.json');\r\n\r\nconst env = process.env.NODE_ENV;\r\nconst apiPort = 44351;\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 }/api`\r\n : `https://localhost:${ apiPort }/api`,\r\n baseSiteUrl: env !== 'development'\r\n ? baseSiteUrl\r\n : `${ baseSiteUrl }:8081`,\r\n cookieConsentName: 'tt_cc',\r\n eulaCookieName: 'tt_e',\r\n autentaLinkResendName: 'tt_ar',\r\n localeCookieName: 'tt_l',\r\n apiEndpoints: {\r\n authentaLink: '/auth/authentaLink',\r\n login: '/auth/login',\r\n logout: '/auth/logout',\r\n token: '/auth/token',\r\n forms: '/forms',\r\n language: '/language',\r\n config: '/config',\r\n auth: '/auth',\r\n validatePin: '/auth/validatePin',\r\n supportingDocuments: '/supportingdocuments',\r\n questionnaire: '/questionnaire',\r\n formGroups: '/formGroups',\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","import { getCookie } from 'common/cookies';\r\nimport EnvConfig from 'env.config';\r\nimport { defaultLanguage, saveLocale } from 'common/language/localeHelper';\r\nimport englishLanguageMessages from 'assets/lang/en.json';\r\n\r\nimport {\r\n AuthState,\r\n CONNECTION_STATUS,\r\n GET_ONLINE_CONFIG_REQUEST,\r\n GET_ONLINE_CONFIG_FAILURE,\r\n GET_ONLINE_CONFIG_SUCCESS,\r\n GET_LANGUAGES_REQUEST,\r\n GET_LANGUAGES_FAILURE,\r\n GET_LANGUAGES_SUCCESS,\r\n GET_LANGUAGE_REQUEST,\r\n GET_LANGUAGE_FAILURE,\r\n GET_LANGUAGE_SUCCESS,\r\n GET_JURISDICTIONS_REQUEST,\r\n GET_JURISDICTIONS_FAILURE,\r\n GET_JURISDICTIONS_SUCCESS,\r\n CLEAR_ONLINE_CONFIG_DEFAULT_FORM,\r\n CHANGE_LOCALE,\r\n CHANGE_LOCALE_MESSAGES,\r\n GET_DEFAULT_LANGUAGE_SUCCESS,\r\n EULA_ACCEPTED,\r\n SESSION_TIME_OUT,\r\n AUTH_STATE_REQUEST,\r\n AUTH_STATE_SUCCESS,\r\n GET_IGACOMBOS_SUCCESS,\r\n GET_IGACOMBOS_FAILURE,\r\n CLEAR_MODAL_UP_FRONT,\r\n GET_SPECIAL_RATE_PROVISIONS_SUCCESS,\r\n GET_SPECIAL_RATE_PROVISIONS_CLEAR,\r\n GET_OTHER_ARTICLES_SUCCESS,\r\n GET_OTHER_ARTICLES_CLEAR,\r\n GET_STOCK_MARKETS_SUCCESS,\r\n GET_STOCK_MARKETS_FAILURE,\r\n GET_LOBS_SUCCESS,\r\n GET_LOBS_FAILURE,\r\n} from 'actions';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction app(state = {\r\n isAuthenticated: false,\r\n isEulaAccepted: !!getCookie(EnvConfig.eulaCookieName),\r\n locale: defaultLanguage.key,\r\n languages: [defaultLanguage],\r\n messages: { 'loading.message': '...' },\r\n englishMessages: englishLanguageMessages,\r\n isFetching: false,\r\n onlineConfig: null,\r\n shortDictionaryLoaded: false,\r\n fullDictionaryLoaded: false,\r\n jurisdictionsLoading: false,\r\n staticData: {\r\n jurisdictions: null,\r\n usTaxTreatyCountries: null,\r\n annexIICountries: null,\r\n igaSubClassificationsCombos: null,\r\n stockMarkets: [],\r\n lobs: []\r\n },\r\n bypassEula: false,\r\n isOnline: true,\r\n retries: 0,\r\n connectionInfo: null,\r\n authState: AuthState.Unknown,\r\n customerData: null,\r\n key: null,\r\n defaultFormType: null,\r\n defaultFormUrl: 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 GET_ONLINE_CONFIG_REQUEST:\r\n return {\r\n ...state\r\n };\r\n case GET_ONLINE_CONFIG_SUCCESS:\r\n return {\r\n ...state,\r\n onlineConfig: action.onlineConfig,\r\n customerData: action.customerData,\r\n key: action.key,\r\n isAuthenticated: true\r\n };\r\n case GET_ONLINE_CONFIG_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n bypassEula: true\r\n };\r\n case GET_LANGUAGES_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: true\r\n };\r\n case GET_LANGUAGES_SUCCESS:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n languages: action.languages,\r\n };\r\n case GET_LANGUAGES_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false\r\n };\r\n case GET_LANGUAGE_REQUEST:\r\n return {\r\n ...state,\r\n isFetching: true\r\n };\r\n case GET_LANGUAGE_SUCCESS:\r\n return {\r\n ...state,\r\n isFetching: false,\r\n locale: action.locale,\r\n messages: action.messages,\r\n englishMessages: action.locale === 'en' ? action.messages : state.englishMessages,\r\n fullDictionaryLoaded: true\r\n };\r\n case GET_LANGUAGE_FAILURE:\r\n return {\r\n ...state,\r\n isFetching: false\r\n };\r\n case GET_JURISDICTIONS_REQUEST:\r\n return {\r\n ...state,\r\n jurisdictionsLoading: true\r\n };\r\n case GET_JURISDICTIONS_SUCCESS:\r\n return {\r\n ...state,\r\n jurisdictionsLoading: false,\r\n staticData: {\r\n ...state.staticData,\r\n jurisdictions: action.jurisdictions,\r\n usTaxTreatyCountries: action.usTaxTreatyCountries,\r\n annexIICountries: action.annexIICountries\r\n }\r\n };\r\n case GET_JURISDICTIONS_FAILURE:\r\n return {\r\n ...state,\r\n jurisdictionsLoading: false\r\n };\r\n case CHANGE_LOCALE:\r\n if (action?.locale) {\r\n saveLocale(action.locale);\r\n\r\n return {\r\n ...state,\r\n locale: action.locale,\r\n };\r\n }\r\n return { ...state };\r\n case CHANGE_LOCALE_MESSAGES:\r\n if (state.fullDictionaryLoaded) {\r\n return {\r\n ...state,\r\n shortDictionaryLoaded: true,\r\n };\r\n }\r\n return {\r\n ...state,\r\n shortDictionaryLoaded: true,\r\n messages: action.messages,\r\n };\r\n case GET_DEFAULT_LANGUAGE_SUCCESS:\r\n return {\r\n ...state,\r\n englishMessages: action.messages\r\n };\r\n case EULA_ACCEPTED:\r\n return {\r\n ...state,\r\n isEulaAccepted: true\r\n };\r\n case CLEAR_ONLINE_CONFIG_DEFAULT_FORM:\r\n return {\r\n ...state,\r\n onlineConfig: {\r\n ...state.onlineConfig,\r\n defaultFormType: null,\r\n defaultFormUrl: action.defaultFormUrl ?? null\r\n }\r\n };\r\n case SESSION_TIME_OUT:\r\n return {\r\n ...state,\r\n isAuthenticated: false\r\n };\r\n case AUTH_STATE_REQUEST:\r\n case AUTH_STATE_SUCCESS:\r\n return {\r\n ...state,\r\n authState: action.authState\r\n };\r\n case GET_IGACOMBOS_SUCCESS:\r\n return {\r\n ...state,\r\n staticData: {\r\n ...state.staticData,\r\n igaSubClassificationsCombos: action.igaSubClassificationsCombos\r\n }\r\n };\r\n case GET_IGACOMBOS_FAILURE:\r\n return {\r\n ...state,\r\n staticData: {\r\n ...state.staticData,\r\n igaSubClassificationsCombos: null\r\n }\r\n };\r\n case GET_LOBS_SUCCESS:\r\n return {\r\n ...state,\r\n staticData: {\r\n ...state.staticData,\r\n lobs: action.lobs\r\n }\r\n };\r\n case GET_LOBS_FAILURE:\r\n return {\r\n ...state,\r\n staticData: {\r\n ...state.staticData,\r\n lobs: null\r\n }\r\n };\r\n case CLEAR_MODAL_UP_FRONT:\r\n return {\r\n ...state,\r\n onlineConfig: {\r\n ...state.onlineConfig,\r\n showFormInstructionsUpFront: false,\r\n }\r\n };\r\n case GET_SPECIAL_RATE_PROVISIONS_SUCCESS:\r\n return {\r\n ...state,\r\n specialRateProvisions: action.specialRateProvisions\r\n };\r\n case GET_SPECIAL_RATE_PROVISIONS_CLEAR:\r\n return {\r\n ...state,\r\n specialRateProvisions: null\r\n };\r\n case GET_OTHER_ARTICLES_SUCCESS:\r\n return {\r\n ...state,\r\n otherArticles: action.otherArticles\r\n };\r\n case GET_OTHER_ARTICLES_CLEAR:\r\n return {\r\n ...state,\r\n otherArticles: null\r\n };\r\n case GET_STOCK_MARKETS_SUCCESS:\r\n return {\r\n ...state,\r\n staticData: {\r\n ...state.staticData,\r\n stockMarkets: action.stockMarkets,\r\n },\r\n };\r\n case GET_STOCK_MARKETS_FAILURE:\r\n return {\r\n ...state,\r\n staticData: {\r\n ...state.staticData,\r\n stockMarkets: [],\r\n },\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default app;\r\n","import {\r\n CONFIRM_AUTHENTALINK_REQUEST,\r\n CONFIRM_AUTHENTALINK_SUCCESS,\r\n CONFIRM_AUTHENTALINK_FAILURE,\r\n CLEAR_AUTHENTALINK_FAILURE,\r\n VERIFY_PIN_SUCCESS,\r\n VERIFY_PIN_REQUEST,\r\n VERIFY_PIN_ERROR,\r\n SHOW_PIN_VERIFICATION,\r\n HIDE_PIN_VERIFICATION,\r\n REQUEST_PIN,\r\n REQUEST_PIN_ERROR,\r\n REQUEST_PIN_SUCCESS,\r\n REQUEST_PIN_CONFIRMATION,\r\n REQUEST_PIN_CONFIRMATION_SUCCESS,\r\n REQUEST_PIN_CONFIRMATION_ERROR,\r\n REQUEST_PIN_CONFIRMATION_CLEAR\r\n} from 'actions';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction authentaLink(state = {\r\n authenticationPinVerified: false,\r\n authenticatingVerificationPin: false,\r\n pinVerificationMessages: null,\r\n showPinVerification: false,\r\n requestingVerificationPin: false,\r\n pinRequestStatus: false,\r\n items: []\r\n}, action) {\r\n switch (action.type) {\r\n case CONFIRM_AUTHENTALINK_REQUEST:\r\n return {\r\n ...state,\r\n isAuthenticating: true,\r\n isFailed: false,\r\n errorCode: null,\r\n errorMessage: null\r\n };\r\n case CONFIRM_AUTHENTALINK_SUCCESS:\r\n return {\r\n ...state,\r\n isAuthenticating: false,\r\n isFailed: false,\r\n resendReference: action.resendReference\r\n };\r\n case CONFIRM_AUTHENTALINK_FAILURE:\r\n return {\r\n ...state,\r\n isAuthenticating: false,\r\n isFailed: true,\r\n errorCode: action.code,\r\n errorMessage: action.message\r\n };\r\n case CLEAR_AUTHENTALINK_FAILURE:\r\n return {\r\n ...state,\r\n isFailed: false,\r\n errorCode: null,\r\n errorMessage: null\r\n };\r\n case REQUEST_PIN_CONFIRMATION:\r\n return {\r\n ...state,\r\n sendingConfirmation: true,\r\n confirmationMessage: null\r\n };\r\n case REQUEST_PIN_CONFIRMATION_SUCCESS:\r\n return {\r\n ...state,\r\n sendingConfirmation: false,\r\n confirmationStatus: true,\r\n confirmationMessage: action.message\r\n };\r\n case REQUEST_PIN_CONFIRMATION_ERROR:\r\n return {\r\n ...state,\r\n sendingConfirmation: false,\r\n confirmationStatus: false,\r\n confirmationMessage: action.message\r\n };\r\n case REQUEST_PIN_CONFIRMATION_CLEAR:\r\n return {\r\n ...state,\r\n sendingConfirmation: false,\r\n confirmationStatus: true,\r\n confirmationMessage: null\r\n };\r\n case VERIFY_PIN_SUCCESS:\r\n return {\r\n ...state,\r\n authenticationPinVerified: true,\r\n authenticatingVerificationPin: false,\r\n pinVerificationMessages: null,\r\n pinRequestStatus: true\r\n };\r\n case VERIFY_PIN_REQUEST:\r\n return {\r\n ...state,\r\n authenticatingVerificationPin: true,\r\n pinVerificationMessages: null,\r\n pinRequestStatus: false\r\n };\r\n case VERIFY_PIN_ERROR:\r\n return {\r\n ...state,\r\n authenticatingVerificationPin: false,\r\n pinVerificationMessages: action.message,\r\n pinRequestStatus: false\r\n };\r\n case SHOW_PIN_VERIFICATION:\r\n return {\r\n ...state,\r\n showPinVerification: true\r\n };\r\n case HIDE_PIN_VERIFICATION:\r\n return {\r\n ...state,\r\n showPinVerification: false,\r\n authenticatingVerificationPin: false,\r\n pinVerificationMessages: null\r\n };\r\n case REQUEST_PIN:\r\n return {\r\n ...state,\r\n requestingVerificationPin: true,\r\n pinVerificationMessages: null,\r\n pinRequestStatus: false\r\n };\r\n case REQUEST_PIN_ERROR:\r\n return {\r\n ...state,\r\n requestingVerificationPin: false,\r\n pinRequestStatus: false,\r\n pinVerificationMessages: action.message\r\n };\r\n case REQUEST_PIN_SUCCESS:\r\n return {\r\n ...state,\r\n requestingVerificationPin: false,\r\n pinRequestStatus: true,\r\n pinVerificationMessages: action.message\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default authentaLink;\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\nimport { CLEAR_EXCEPTION, CLOSE_EXCEPTION } from 'actions/exceptions/clearException';\r\n\r\n/* The exceptions reducer */\r\n// eslint-disable-next-line default-param-last\r\nfunction exceptions(state = {\r\n items: []\r\n}, action) {\r\n switch (action.type) {\r\n case HANDLE_UNCAUGHT_EXCEPTION:\r\n case HANDLE_CONNECTION_EXCEPTION:\r\n case HANDLE_SERVER_EXCEPTION:\r\n return {\r\n ...state,\r\n items: state.items.concat({\r\n type: 2,\r\n id: new Date().valueOf(),\r\n code: action.code,\r\n message: action.message\r\n })\r\n };\r\n case CLEAR_EXCEPTION:\r\n state.items.splice(action.index, 1);\r\n return {\r\n ...state,\r\n items: [\r\n ...state.items\r\n ]\r\n };\r\n case CLOSE_EXCEPTION:\r\n state.items[action.index].closing = true;\r\n return {\r\n ...state,\r\n items: [\r\n ...state.items\r\n ]\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default exceptions;\r\n","import {\r\n GET_FORM_BY_ID_REQUEST,\r\n GET_FORM_BY_ID_SUCCESS,\r\n GET_FORM_BY_ID_FAILURE,\r\n VALIDATE_FORM_REQUEST,\r\n VALIDATE_FORM_FAILURE,\r\n VALIDATE_FORM_SUCCESS,\r\n ADD_FORM_REQUEST,\r\n ADD_FORM_SUCCESS,\r\n ADD_FORM_FAILURE,\r\n TOGGLE_INSTRUCTION,\r\n SUPPORTING_DOC_ADDED,\r\n SUPPORTING_DOC_DELETE_SUCCESS,\r\n OPEN_FORM_CHOICE_MODAL,\r\n CLOSE_FORM_CHOICE_MODAL,\r\n OPEN_FORM_CONFIRMATION,\r\n CLOSE_FORM_CONFIRMATION,\r\n FORM_CERTIFY_REQUEST,\r\n FORM_CERTIFY_SUCCESS,\r\n FORM_CERTIFY_FAILURE,\r\n FORM_REVERT_REQUEST,\r\n FORM_REVERT_SUCCESS,\r\n FORM_REVERT_FAILURE,\r\n GET_FORM_PDF_REQUEST,\r\n GET_FORM_PDF_SUCCESS,\r\n GET_FORM_PDF_FAILURE,\r\n GET_FORM_PDF_CLEAR,\r\n OPEN_FORM_SIGNING,\r\n CLOSE_FORM_SIGNING,\r\n FORM_SIGNING_REQUEST,\r\n FORM_SIGNING_SUCCESS,\r\n FORM_SIGNING_FAILURE,\r\n SET_SUBMISSION_STAGE,\r\n SET_SELECTED_ACCOUNT,\r\n ADD_FORM_GROUP_REQUEST,\r\n ADD_FORM_GROUP_SUCCESS,\r\n ADD_FORM_GROUP_FAILURE,\r\n GET_FORM_GROUP_SUPPORTING_DOCS_REQUEST,\r\n GET_FORM_GROUP_SUPPORTING_DOCS_SUCCESS,\r\n GET_FORM_GROUP_SUPPORTING_DOCS_FAILURE,\r\n TIN_MATCH_RESET,\r\n GET_LINKED_COLLECTABLE_SUPPORTING_DOC_ID_SUCCESS,\r\n GET_LINKED_COLLECTABLE_SUPPORTING_DOC_ID_FAILURE,\r\n GET_LINKED_COLLECTABLE_SUPPORTING_DOC_ID_REQUEST\r\n} from 'actions';\r\n\r\nimport { submissionStages } from 'common/forms/submissionStages';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction form(state = {\r\n isAddingForm: null,\r\n isGettingForm: false,\r\n formData: {\r\n SignDate: null\r\n },\r\n isValidatingForm: false,\r\n validationResult: null,\r\n supportingDocs: null,\r\n formReviewState: null,\r\n workflowState: null,\r\n formError: null,\r\n supportingDocError: null,\r\n instructionToggled: null,\r\n isFormConfirmationShown: false,\r\n isCertifyingForm: false,\r\n isSigningForm: false,\r\n submissionStage: submissionStages.Validating,\r\n pdfData: null,\r\n isFetchingPdfForm: false,\r\n downloadRequestFormType: null,\r\n isGettingFormGroupSupportingDocs: false,\r\n isFormChoiceShown: false,\r\n linkedCollectableSupportingDocId: null,\r\n isGettingLinkedCollectableSupportingDocId: false\r\n}, action) {\r\n switch (action.type) {\r\n case SET_SELECTED_ACCOUNT:\r\n return {\r\n ...state,\r\n selectedAccountId: action.accountId\r\n };\r\n case OPEN_FORM_CHOICE_MODAL:\r\n return {\r\n ...state,\r\n formType: action.formType,\r\n isFormChoiceShown: action.isFormChoiceShown\r\n };\r\n case CLOSE_FORM_CHOICE_MODAL:\r\n return {\r\n ...state,\r\n isFormChoiceShown: action.isFormChoiceShown\r\n };\r\n case GET_FORM_BY_ID_REQUEST:\r\n return {\r\n ...state,\r\n isGettingForm: true,\r\n formData: null,\r\n isValidatingForm: false,\r\n validationResult: null,\r\n supportingDocs: null,\r\n formReviewState: null,\r\n workflowState: null,\r\n formError: null,\r\n supportingDocError: null,\r\n accCollectableSupportingDocs: null\r\n };\r\n case GET_FORM_BY_ID_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingForm: false,\r\n formData: action.formData,\r\n validationResult: action.validationResult,\r\n supportingDocs: action.supportingDocs,\r\n formReviewState: action.formReviewState,\r\n workflowState: action.workflowState,\r\n formError: null,\r\n supportingDocError: null,\r\n submissionStage: submissionStages.Validating,\r\n accCollectableSupportingDocs: action.accCollectableSupportingDocs\r\n };\r\n case GET_FORM_BY_ID_FAILURE:\r\n return {\r\n ...state,\r\n isGettingForm: false,\r\n formData: null,\r\n validationResult: null,\r\n supportingDocs: null,\r\n formReviewState: null,\r\n workflowState: null,\r\n formError: action.formError,\r\n supportingDocError: null,\r\n submissionStage: submissionStages.Validating,\r\n accCollectableSupportingDocs: null\r\n };\r\n case VALIDATE_FORM_REQUEST:\r\n return {\r\n ...state,\r\n isValidatingForm: true\r\n };\r\n case VALIDATE_FORM_SUCCESS:\r\n return {\r\n ...state,\r\n isValidatingForm: false,\r\n validationResult: action.validationResponse.success ? action.validationResponse.data : null\r\n };\r\n case VALIDATE_FORM_FAILURE:\r\n return {\r\n ...state,\r\n isValidatingForm: false\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: null\r\n };\r\n case ADD_FORM_FAILURE:\r\n return {\r\n ...state,\r\n isAddingForm: null\r\n };\r\n case ADD_FORM_GROUP_REQUEST:\r\n return {\r\n ...state,\r\n isAddingFormGroup: action.isAddingFormGroup,\r\n accCollectableSupportingDocs: null\r\n };\r\n case ADD_FORM_GROUP_SUCCESS:\r\n return {\r\n ...state,\r\n isAddingFormGroup: null,\r\n accCollectableSupportingDocs: action.accCollectableSupportingDocs\r\n };\r\n case ADD_FORM_GROUP_FAILURE:\r\n return {\r\n ...state,\r\n isAddingFormGroup: null,\r\n accCollectableSupportingDocs: null\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_SUCCESS:\r\n return {\r\n ...state,\r\n supportingDocs: state.supportingDocs ? state.supportingDocs.filter(doc => doc.id !== action.isDeletingSupportingDocId) : state.supportingDocs\r\n };\r\n case OPEN_FORM_CONFIRMATION:\r\n return {\r\n ...state,\r\n isFormConfirmationShown: action.isFormConfirmationShown\r\n };\r\n case CLOSE_FORM_CONFIRMATION:\r\n return {\r\n ...state,\r\n isFormConfirmationShown: action.isFormConfirmationShown\r\n };\r\n case FORM_CERTIFY_REQUEST:\r\n return {\r\n ...state,\r\n isCertifyingForm: true\r\n };\r\n case FORM_CERTIFY_SUCCESS:\r\n return {\r\n ...state,\r\n workflowState: action.workflowState,\r\n isCertifyingForm: false\r\n };\r\n case FORM_CERTIFY_FAILURE:\r\n return {\r\n ...state,\r\n isCertifyingForm: false\r\n };\r\n case FORM_REVERT_REQUEST:\r\n return {\r\n ...state\r\n };\r\n case FORM_REVERT_SUCCESS:\r\n return {\r\n ...state,\r\n workflowState: action.workflowState\r\n };\r\n case FORM_REVERT_FAILURE:\r\n return {\r\n ...state\r\n };\r\n case GET_FORM_PDF_REQUEST:\r\n return {\r\n ...state,\r\n isFetchingPdfForm: action.isFetchingPdfForm,\r\n pdfData: null,\r\n downloadRequestFormType: action.downloadRequestFormType\r\n };\r\n case GET_FORM_PDF_SUCCESS:\r\n return {\r\n ...state,\r\n isFetchingPdfForm: action.isFetchingPdfForm,\r\n pdfData: action.pdfData,\r\n downloadRequestFormType: action.downloadRequestFormType\r\n };\r\n case GET_FORM_PDF_FAILURE:\r\n return {\r\n ...state,\r\n isFetchingPdfForm: action.isFetchingPdfForm,\r\n pdfData: null,\r\n downloadRequestFormType: action.downloadRequestFormType\r\n };\r\n case GET_FORM_PDF_CLEAR:\r\n if (state.pdfData) {\r\n URL.revokeObjectURL(state.pdfData);\r\n }\r\n return {\r\n ...state,\r\n pdfData: null,\r\n };\r\n case OPEN_FORM_SIGNING:\r\n return {\r\n ...state,\r\n isNameInvalid: false,\r\n isSigningForm: false\r\n };\r\n case CLOSE_FORM_SIGNING:\r\n return {\r\n ...state,\r\n isNameInvalid: false,\r\n isSigningForm: false\r\n };\r\n case FORM_SIGNING_REQUEST:\r\n return {\r\n ...state,\r\n isNameInvalid: false,\r\n isSigningForm: true\r\n };\r\n case FORM_SIGNING_FAILURE:\r\n return {\r\n ...state,\r\n isNameInvalid: true,\r\n isSigningForm: false\r\n };\r\n case FORM_SIGNING_SUCCESS:\r\n return {\r\n ...state,\r\n workflowState: null,\r\n isSigningForm: false,\r\n isNameInvalid: false,\r\n submissionStage: action.submissionStage,\r\n lastSubmittedForm: action.id,\r\n linkedCollectableSupportingDocId: action.linkedCollectableSupportingDocId\r\n };\r\n case GET_LINKED_COLLECTABLE_SUPPORTING_DOC_ID_SUCCESS:\r\n return {\r\n linkedCollectableSupportingDocId: action.id,\r\n isGettingLinkedCollectableSupportingDocId: false\r\n };\r\n case GET_LINKED_COLLECTABLE_SUPPORTING_DOC_ID_REQUEST:\r\n return {\r\n linkedCollectableSupportingDocId: null,\r\n isGettingLinkedCollectableSupportingDocId: true\r\n };\r\n case GET_LINKED_COLLECTABLE_SUPPORTING_DOC_ID_FAILURE:\r\n return {\r\n linkedCollectableSupportingDocId: null,\r\n isGettingLinkedCollectableSupportingDocId: false\r\n };\r\n case SET_SUBMISSION_STAGE:\r\n return {\r\n ...state,\r\n submissionStage: action.submissionStage\r\n };\r\n case GET_FORM_GROUP_SUPPORTING_DOCS_REQUEST:\r\n return {\r\n ...state,\r\n isGettingFormGroupSupportingDocs: true,\r\n supportingDocs: null,\r\n };\r\n case GET_FORM_GROUP_SUPPORTING_DOCS_SUCCESS:\r\n return {\r\n ...state,\r\n isGettingFormGroupSupportingDocs: false,\r\n supportingDocs: action.supportingDocs,\r\n };\r\n case GET_FORM_GROUP_SUPPORTING_DOCS_FAILURE:\r\n return {\r\n ...state,\r\n isGettingFormGroupSupportingDocs: false,\r\n supportingDocs: null,\r\n formError: action.formError,\r\n };\r\n case TIN_MATCH_RESET:\r\n if (!state.validationResult) {\r\n return state;\r\n }\r\n return {\r\n ...state,\r\n validationResult: {\r\n ...state.validationResult,\r\n tinMatched: null\r\n }\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default form;\r\n","import {\r\n SUPPORTING_DOC_DELETE_REQUEST,\r\n SUPPORTING_DOC_DELETE_SUCCESS,\r\n SUPPORTING_DOC_DELETE_FAILURE,\r\n SUPPORTING_DOC_ADDED,\r\n NO_FORM_DOC_DELETE_SUCCESS,\r\n GET_COLLECTABLE_SUPPORTING_DOCS_PDF_REQUEST,\r\n GET_COLLECTABLE_SUPPORTING_DOCS_PDF_SUCCESS,\r\n GET_COLLECTABLE_SUPPORTING_DOCS_PDF_FAILURE,\r\n GET_COLLECTABLE_SUPPORTING_DOCS_PDF_CLEAR,\r\n} from 'actions';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction supportingDocuments(state = {\r\n supportingDocs: [],\r\n isDeletingSupportingDocId: null,\r\n deletedNoFormDoc: undefined,\r\n isFetchingCollectablePdf: false\r\n}, action) {\r\n switch (action.type) {\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 deletedNoFormDoc: state.supportingDocs && state.supportingDocs.filter(doc => doc.id === action.isDeletingSupportingDocId && doc.isNoFormDoc === true).length === 1\r\n ? action.isDeletingSupportingDocId\r\n : undefined,\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 };\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 NO_FORM_DOC_DELETE_SUCCESS:\r\n return {\r\n ...state,\r\n deletedNoFormDoc: action.deletedNoFormDoc\r\n };\r\n case GET_COLLECTABLE_SUPPORTING_DOCS_PDF_REQUEST:\r\n return {\r\n ...state,\r\n isFetchingCollectablePdf: action.isFetchingCollectablePdf,\r\n collectableSupportingDocPdfData: null,\r\n downloadRequestCollectableSupportingDocType: action.downloadRequestCollectableSupportingDocType\r\n };\r\n case GET_COLLECTABLE_SUPPORTING_DOCS_PDF_SUCCESS:\r\n return {\r\n ...state,\r\n isFetchingCollectablePdf: action.isFetchingCollectablePdf,\r\n collectableSupportingDocPdfData: action.collectableSupportingDocPdfData,\r\n downloadRequestCollectableSupportingDocType: action.downloadRequestCollectableSupportingDocType\r\n };\r\n case GET_COLLECTABLE_SUPPORTING_DOCS_PDF_FAILURE:\r\n return {\r\n ...state,\r\n isFetchingCollectablePdf: action.isFetchingCollectablePdf,\r\n collectableSupportingDocPdfData: null,\r\n downloadRequestCollectableSupportingDocType: action.downloadRequestCollectableSupportingDocType\r\n };\r\n case GET_COLLECTABLE_SUPPORTING_DOCS_PDF_CLEAR:\r\n if (state.collectableSupportingDocPdfData) {\r\n URL.revokeObjectURL(state.collectableSupportingDocPdfData);\r\n }\r\n return {\r\n ...state,\r\n collectableSupportingDocPdfData: null,\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default supportingDocuments;\r\n","import {\r\n SUPPORTING_DOC_ADDED,\r\n FILE_UPLOAD_DELETE_REQUEST,\r\n FILE_UPLOAD_DELETE_SUCCESS,\r\n FILE_UPLOAD_DELETE_FAILURE,\r\n} from 'actions';\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction fileUploads(state = {\r\n uploads: [],\r\n isDeletingUploadId: null\r\n}, action) {\r\n switch (action.type) {\r\n case SUPPORTING_DOC_ADDED:\r\n return {\r\n ...state,\r\n uploads: action.newSupportingDoc ? state.uploads.concat(action.newSupportingDoc) : state.uploads\r\n };\r\n case FILE_UPLOAD_DELETE_REQUEST:\r\n return {\r\n ...state,\r\n isDeletingUploadId: action.isDeletingUploadId,\r\n };\r\n case FILE_UPLOAD_DELETE_SUCCESS:\r\n return {\r\n ...state,\r\n isDeletingUploadId: null,\r\n uploads: state.uploads ? state.uploads.filter(doc => doc.id !== action.isDeletingUploadId) : state.uploads\r\n };\r\n case FILE_UPLOAD_DELETE_FAILURE:\r\n return {\r\n ...state,\r\n isDeletingUploadId: null,\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default fileUploads;\r\n","const InfoBoxLayoutType = {\r\n ParagraphFollowedBySingleList: 1\r\n};\r\n\r\nexport default InfoBoxLayoutType;\r\n","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { isRequired } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionTextField = ({ intl, blockId, question, className, onChange }) => {\r\n const [inputValue, setInputValue] = useState(question?.answer ?? question.default ?? '');\r\n\r\n const onInputChange = (event) => {\r\n setInputValue(event.target.value);\r\n onChange(question, event.target.value);\r\n return true;\r\n };\r\n\r\n useEffect(() => {\r\n if (inputValue) {\r\n onChange(question, inputValue);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (inputValue !== question.answer) {\r\n setInputValue(question.answer ?? '');\r\n }\r\n }, [question.answer]);\r\n\r\n return ( onInputChange(e) }\r\n placeholder={ (question.placeholder ?? question.label) ? intl.formatMessage({ id: question.placeholder ?? question.label }) : '' }\r\n autoComplete=\"no\"\r\n className={ `${ className }${ question.isValid === false ? ' error' : '' }` }\r\n disabled={ question.disabled }\r\n required={ isRequired(question) }\r\n type=\"text\"\r\n aria-label={ (question.placeholder ?? question.label) ? intl.formatMessage({ id: question.placeholder ?? question.label }) : '' }\r\n aria-required={ isRequired(question) }\r\n aria-describedby={ question.isValid === false ? (`${ blockId }-${ question.id }-error`) : undefined }\r\n />);\r\n};\r\n\r\nQuestionTextField.displayName = 'QuestionTextField';\r\n\r\nQuestionTextField.propTypes = {\r\n blockId: PropTypes.string.isRequired,\r\n question: PropTypes.shape().isRequired,\r\n intl: PropTypes.shape().isRequired,\r\n className: PropTypes.string,\r\n disabled: PropTypes.bool,\r\n onChange: PropTypes.func.isRequired\r\n};\r\n\r\nQuestionTextField.defaultProps = {\r\n className: '',\r\n disabled: false\r\n};\r\n\r\nexport default QuestionTextField;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { isRequired } from 'components/Questionnaires/validators';\r\nimport { sortArrayByLabel } from 'common/language/intlArrayHelper';\r\n\r\nexport const QuestionDropDownField = ({ intl, blockId, question, className, onChange }) => {\r\n const [inputValue, setInputValue] = useState(question?.answer ?? question?.default ?? '');\r\n\r\n const onInputChange = (event) => {\r\n setInputValue(event.target.value);\r\n onChange(question, event.target.value);\r\n return true;\r\n };\r\n\r\n const questionProps = () => {\r\n const props = Object.assign({}, question.componentProps);\r\n props.items = undefined; // Clear items so it doesn't display in html\r\n // eslint-disable-next-line react/prop-types\r\n delete props.preventTranslation; // Clear preventTranslation so it doesn't display in html\r\n return props;\r\n };\r\n\r\n function getLabel(option) {\r\n if (!option.label) {\r\n return option.value;\r\n }\r\n return typeof question.componentProps.items === 'string' || question?.componentProps?.preventTranslation === true ? option.label : intl.formatMessage({ id: option.label });\r\n }\r\n\r\n useEffect(() => {\r\n if (inputValue || inputValue === question.default) {\r\n onChange(question, inputValue);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (inputValue !== question.answer) {\r\n setInputValue(question.answer ?? question.default ?? '');\r\n }\r\n }, [question.answer]);\r\n\r\n const items = useMemo(() => {\r\n if (!question?.componentProps?.items) {\r\n return [];\r\n }\r\n\r\n if (typeof question.componentProps.items === 'string') {\r\n const intlItems = intl.messages[question.componentProps.items];\r\n if (intlItems && Array.isArray(intlItems)) {\r\n return sortArrayByLabel(intlItems, question.placeholderValue ?? '', question.otherValue ?? 'Other');\r\n }\r\n return [];\r\n }\r\n if (Array.isArray(question.componentProps.items)) {\r\n return sortArrayByLabel(question.componentProps.items, question.placeholderValue ?? '', question.otherValue ?? 'Other');\r\n }\r\n return [];\r\n }, [question?.componentProps?.items, intl]);\r\n\r\n return ( onInputChange(e) }\r\n autoComplete=\"no\"\r\n className={ `${ className }${ question.isValid === false ? ' error' : '' }` }\r\n required={ isRequired(question) }\r\n { ...questionProps() }\r\n disabled={ question.disabled }\r\n aria-label={ (question.placeholder ?? question.label) ? intl.formatMessage({ id: question.placeholder ?? question.label }) : '' }\r\n aria-required={ isRequired(question) }\r\n aria-describedby={ question.isValid === false ? (`${ blockId }-${ question.id }-error`) : undefined }\r\n >\r\n { items?.map(o => ) }\r\n );\r\n};\r\n\r\nQuestionDropDownField.displayName = 'QuestionDropDownField';\r\n\r\nQuestionDropDownField.propTypes = {\r\n intl: PropTypes.shape().isRequired,\r\n blockId: PropTypes.string.isRequired,\r\n question: PropTypes.shape().isRequired,\r\n className: PropTypes.string,\r\n onChange: PropTypes.func.isRequired\r\n};\r\n\r\nQuestionDropDownField.defaultProps = {\r\n className: ''\r\n};\r\n\r\nexport default QuestionDropDownField;\r\n","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { isRequired } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionJurisdictionDropDownField = ({ intl, blockId, question, className, onChange }) => {\r\n const [inputValue, setInputValue] = useState(question?.answer ?? question?.default ?? '');\r\n const jurisdictions = useSelector(state => state.app?.staticData?.jurisdictions ?? []);\r\n const treatyJurisdictions = useSelector(state => state.app?.staticData?.usTaxTreatyCountries ?? []);\r\n const annexIICountries = useSelector(state => state.app?.staticData?.annexIICountries ?? []);\r\n const locale = useSelector(state => state.app?.locale ?? 'en');\r\n const defaultLocale = 'en';\r\n\r\n const onInputChange = (event) => {\r\n setInputValue(event.target.value);\r\n onChange(question, event.target.value);\r\n return true;\r\n };\r\n\r\n const questionProps = () => {\r\n const props = Object.assign({}, question.componentProps);\r\n props.items = undefined; // Clear items so it doesn't display in html\r\n // eslint-disable-next-line react/prop-types\r\n delete props.preventTranslation; // Clear preventTranslation so it doesn't display in html\r\n // eslint-disable-next-line react/prop-types\r\n delete props.treatiesOnly; // Clear treatiesOnly so it doesn't display in html\r\n // eslint-disable-next-line react/prop-types\r\n delete props.annexIIOnly; // Clear annexIIOnly so it doesn't display in html\r\n return props;\r\n };\r\n\r\n useEffect(() => {\r\n if (inputValue) {\r\n onChange(question, inputValue);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (inputValue !== question.answer) {\r\n setInputValue(question.answer ?? '');\r\n }\r\n }, [question.answer]);\r\n\r\n const formatJurisdictions = () => {\r\n const translatedJurisdictions = [];\r\n if (jurisdictions) {\r\n jurisdictions.filter((j) => {\r\n if (question.componentProps?.treatiesOnly === true && treatyJurisdictions) {\r\n return treatyJurisdictions.includes(j.isoJurisdictionName) || j?.aliases.some(a => treatyJurisdictions.includes(a)) ? j : undefined;\r\n }\r\n if (question.componentProps?.annexIIOnly === true && annexIICountries) {\r\n return annexIICountries.includes(j.isoJurisdictionName) ? j : undefined;\r\n }\r\n return j;\r\n }).forEach((j) => {\r\n const translated = j.locales;\r\n let dictionary = {};\r\n if (locale === defaultLocale) {\r\n dictionary = { key: j.countryCodeAlpha, value: j.isoJurisdictionName };\r\n } else {\r\n dictionary = { key: j.countryCodeAlpha, value: `${ translated[locale] } (${ j.isoJurisdictionName })` };\r\n }\r\n translatedJurisdictions.push(dictionary);\r\n });\r\n }\r\n\r\n return translatedJurisdictions;\r\n };\r\n\r\n const updateDropDownItems = () => {\r\n const newItems = [];\r\n if (jurisdictions && Object.keys(jurisdictions).length) {\r\n let defaultPlaceholder = question?.default;\r\n\r\n if (defaultPlaceholder) {\r\n defaultPlaceholder = intl.formatMessage({ id: question?.default });\r\n }\r\n newItems.push({ value: '', label: defaultPlaceholder ?? intl.formatMessage({ id: 'questionnaire.fields.questionJurisdictionDropDown.default' }) });\r\n\r\n const translatedJurisdictions = formatJurisdictions(jurisdictions);\r\n if (translatedJurisdictions) {\r\n translatedJurisdictions.map(jurisdiction => (\r\n newItems.push({ value: jurisdiction.key, label: jurisdiction.value })\r\n ));\r\n } else {\r\n // Should never hit this but here as backup\r\n jurisdictions.map(jurisdiction => (\r\n newItems.push({ value: jurisdiction.countryCodeAlpha, label: jurisdiction.isoJurisdictionName })));\r\n }\r\n return newItems;\r\n }\r\n return [];\r\n };\r\n\r\n const [dropdownItems, setDropDownItems] = useState(updateDropDownItems());\r\n\r\n useEffect(() => {\r\n const newItems = updateDropDownItems();\r\n setDropDownItems(newItems);\r\n }, [jurisdictions, locale, intl]);\r\n\r\n return ( onInputChange(e) }\r\n autoComplete=\"no\"\r\n className={ `${ className }${ question.isValid === false ? ' error' : '' }` }\r\n required={ isRequired(question) }\r\n { ...questionProps() }\r\n disabled={ question.disabled }\r\n aria-label={ (question.placeholder ?? question.label) ? intl.formatMessage({ id: question.placeholder ?? question.label }) : '' }\r\n aria-required={ isRequired(question) }\r\n aria-describedby={ question.isValid === false ? (`${ blockId }-${ question.id }-error`) : undefined }\r\n >\r\n { dropdownItems && dropdownItems.map(o => ) }\r\n );\r\n};\r\n\r\nQuestionJurisdictionDropDownField.displayName = 'QuestionJurisdictionDropDownField';\r\n\r\nQuestionJurisdictionDropDownField.propTypes = {\r\n intl: PropTypes.shape().isRequired,\r\n blockId: PropTypes.string.isRequired,\r\n question: PropTypes.shape().isRequired,\r\n className: PropTypes.string,\r\n onChange: PropTypes.func.isRequired,\r\n};\r\n\r\nQuestionJurisdictionDropDownField.defaultProps = {\r\n className: '',\r\n};\r\n\r\nexport default QuestionJurisdictionDropDownField;\r\n","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { isRequired } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionNumberField = ({ intl, blockId, question, className, onChange, min, max }) => {\r\n const regex = /^[+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)$/;\r\n\r\n const defaultValue = () => {\r\n if (question?.answer && regex.test(question?.answer)) {\r\n return question.answer;\r\n }\r\n if (question?.default && regex.test(question?.default)) {\r\n return question.default;\r\n }\r\n return '';\r\n };\r\n\r\n const [inputValue, setInputValue] = useState(defaultValue);\r\n\r\n function onKeyHandler(event) {\r\n if (event === null || event.keyCode === 69) { // e or E\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n const onInputChange = (event) => {\r\n const { value } = event.target;\r\n if (value !== '' && !regex.test(value)) {\r\n return false;\r\n }\r\n setInputValue(value);\r\n onChange(question, value);\r\n return true;\r\n };\r\n\r\n useEffect(() => {\r\n if (inputValue) {\r\n onChange(question, inputValue);\r\n }\r\n }, []);\r\n\r\n return ( onKeyHandler(e) }\r\n onChange={ e => onInputChange(e) }\r\n placeholder={ (question.placeholder ?? question.label) ? intl.formatMessage({ id: question.placeholder ?? question.label }) : '' }\r\n autoComplete=\"no\"\r\n className={ `${ className }${ question.isValid === false ? ' error' : '' }` }\r\n disabled={ question.disabled }\r\n type=\"number\"\r\n min={ min }\r\n max={ max }\r\n required={ isRequired(question) }\r\n aria-label={ (question.placeholder ?? question.label) ? intl.formatMessage({ id: question.placeholder ?? question.label }) : '' }\r\n aria-required={ isRequired(question) }\r\n aria-describedby={ question.isValid === false ? (`${ blockId }-${ question.id }-error`) : undefined }\r\n />);\r\n};\r\n\r\nQuestionNumberField.displayName = 'QuestionNumberField';\r\n\r\nQuestionNumberField.propTypes = {\r\n intl: PropTypes.shape().isRequired,\r\n blockId: PropTypes.string.isRequired,\r\n question: PropTypes.shape().isRequired,\r\n className: PropTypes.string,\r\n onChange: PropTypes.func.isRequired,\r\n min: PropTypes.number,\r\n max: PropTypes.number\r\n};\r\n\r\nQuestionNumberField.defaultProps = {\r\n className: '',\r\n min: null,\r\n max: null\r\n};\r\n\r\nexport default QuestionNumberField;\r\n","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { isRequired } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionButtonsField = ({ intl, blockId, question, className, onChange, buttons }) => {\r\n const [inputValue, setInputValue] = useState(question?.answer ?? question.default ?? '');\r\n\r\n const onInputChange = (event) => {\r\n setInputValue(event.target.value);\r\n onChange(question, event.target.value);\r\n return true;\r\n };\r\n\r\n const getButtonClass = (buttonValue, buttonIndex) => {\r\n let buttonClass = `btn questionnaire-button ${ (inputValue === buttonValue) ? 'selected' : '' }`;\r\n if (buttons.length && buttons.length === 2) {\r\n buttonClass += ' small';\r\n } else if (buttons.length && buttonIndex % 2 === 0) {\r\n buttonClass += ' left';\r\n }\r\n\r\n if (question.isValid === false) {\r\n buttonClass += ' error';\r\n }\r\n\r\n return buttonClass;\r\n };\r\n\r\n useEffect(() => {\r\n if (inputValue) {\r\n onChange(question, inputValue);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n setInputValue(question.answer ?? question.default ?? '');\r\n }, [question.answer]);\r\n\r\n return (\r\n { buttons.map((b, i) => ( onInputChange(e) }\r\n >{intl.formatMessage({ id: b.text }) }\r\n )) }\r\n
    );\r\n};\r\n\r\nQuestionButtonsField.displayName = 'QuestionButtonsField';\r\n\r\nQuestionButtonsField.propTypes = {\r\n intl: PropTypes.shape().isRequired,\r\n blockId: PropTypes.string.isRequired,\r\n question: PropTypes.shape().isRequired,\r\n className: PropTypes.string,\r\n buttons: PropTypes.arrayOf(PropTypes.shape({ value: PropTypes.string, text: PropTypes.string })).isRequired,\r\n onChange: PropTypes.func.isRequired\r\n};\r\n\r\nQuestionButtonsField.defaultProps = {\r\n className: '',\r\n};\r\n\r\nexport default QuestionButtonsField;\r\n","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nexport const QuestionCheckBoxField = ({ intl, blockId, question, className, onChange }) => {\r\n const [inputValue, setInputValue] = useState(question?.answer ?? question.default ?? '');\r\n const [isInputFocused, setIsInputFocused] = useState(false);\r\n\r\n const onInputChange = () => {\r\n const newValue = inputValue === 'true' ? '' : 'true';\r\n setInputValue(newValue);\r\n onChange(question, newValue);\r\n return true;\r\n };\r\n\r\n useEffect(() => {\r\n if (inputValue) {\r\n onChange(question, inputValue);\r\n }\r\n }, []);\r\n\r\n return (
    \r\n \r\n
    );\r\n};\r\n\r\nQuestionCheckBoxField.displayName = 'QuestionCheckBoxField';\r\n\r\nQuestionCheckBoxField.propTypes = {\r\n intl: PropTypes.shape().isRequired,\r\n blockId: PropTypes.string.isRequired,\r\n question: PropTypes.shape().isRequired,\r\n className: PropTypes.string,\r\n onChange: PropTypes.func.isRequired\r\n};\r\n\r\nQuestionCheckBoxField.defaultProps = {\r\n className: '',\r\n};\r\n\r\nexport default QuestionCheckBoxField;\r\n","import React from 'react';\r\n\r\nimport { QuestionButtonsField } from '../QuestionButtonsField';\r\n\r\nexport const QuestionYesNoField = (props) => {\r\n const buttons = [\r\n { value: 'Yes', text: 'questionnaire.buttons.Yes' },\r\n { value: 'No', text: 'questionnaire.buttons.No' }\r\n ];\r\n\r\n return ();\r\n};\r\n\r\nQuestionYesNoField.displayName = 'QuestionYesNoField';\r\n\r\nexport default QuestionYesNoField;\r\n","import React, { useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport { isRequired } from 'components/Questionnaires/validators';\r\nimport BoxInputField from 'components/Common/Inputs/BoxInputField';\r\n\r\nexport const QuestionUsTinField = ({ intl, blockId, question, className, disabled, onChange, tinFormat }) => {\r\n const [inputValue, setInputValue] = useState(question?.answer ?? question.default ?? '');\r\n\r\n const tinMatched = useSelector(state => (state.form?.validationResult?.tinMatched !== undefined ? state.form?.validationResult?.tinMatched : null));\r\n\r\n const onInputChange = (value) => {\r\n setInputValue(value);\r\n if (inputValue !== value) {\r\n onChange(question, value);\r\n }\r\n return true;\r\n };\r\n\r\n const fieldSeperator = useMemo(() => ((tinFormat && tinFormat === 'EIN') ? [1] : [2, 4]), [tinFormat]);\r\n\r\n const getTinBoxClass = () => {\r\n if (question.isValid === false || tinMatched === false) {\r\n return ' error';\r\n }\r\n return tinMatched === true ? ' success' : '';\r\n };\r\n\r\n return (
    \r\n \r\n { tinMatched === true &&
    \r\n \r\n {intl.formatMessage({ id: 'questionnaire.usTin.tin.successMatchMessage' }) }\r\n
    }\r\n { tinMatched === false &&
    \r\n \r\n { intl.formatMessage({ id: 'questionnaire.usTin.tin.failedMatchErrorMessage' }) }\r\n
    }\r\n
    );\r\n};\r\n\r\nQuestionUsTinField.displayName = 'QuestionUsTinField';\r\n\r\nQuestionUsTinField.propTypes = {\r\n blockId: PropTypes.string.isRequired,\r\n question: PropTypes.shape().isRequired,\r\n intl: PropTypes.shape().isRequired,\r\n className: PropTypes.string,\r\n disabled: PropTypes.bool,\r\n onChange: PropTypes.func.isRequired,\r\n tinFormat: PropTypes.oneOf(['SSN', 'EIN'])\r\n};\r\n\r\nQuestionUsTinField.defaultProps = {\r\n className: '',\r\n disabled: false,\r\n tinFormat: 'SSN'\r\n};\r\n\r\nexport default QuestionUsTinField;\r\n","import React, { useState, useEffect, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport DatePicker from 'react-datepicker';\r\nimport isValid from 'date-fns/isValid';\r\nimport format from 'date-fns/format';\r\nimport parse from 'date-fns/parse';\r\n\r\nimport { isRequired } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionDatePickerField = ({ intl, blockId, question, className, onChange }) => {\r\n const pickerConfig = useMemo(() => Object.assign({\r\n popperPlacement: 'bottom-start',\r\n popperModifiers: [],\r\n isClearable: false,\r\n preventKeyboardDisplay: false,\r\n dateFormat: 'yyyy-MM-dd',\r\n maxDate: new Date()\r\n }, question?.componentProps?.pickerConfig ?? {}), [question.componentProps?.pickerConfig]);\r\n const datePicker = React.useRef(null);\r\n\r\n const defaultDate = () => {\r\n const date = question?.answer ?? question.default ?? '';\r\n const parsed = parse(date, pickerConfig.dateFormat, new Date());\r\n return isValid(parsed) ? parsed : '';\r\n };\r\n\r\n const [inputValue, setInputValue] = useState(defaultDate());\r\n\r\n const onInputChange = (value) => {\r\n const formattedValue = format(value, pickerConfig.dateFormat);\r\n setInputValue(value);\r\n onChange(question, formattedValue);\r\n return true;\r\n };\r\n\r\n useEffect(() => {\r\n if (inputValue) {\r\n const formattedValue = format(inputValue, pickerConfig.dateFormat);\r\n onChange(question, formattedValue);\r\n }\r\n }, []);\r\n\r\n const isTouchDevice = () => {\r\n try {\r\n const prefixes = ' -webkit- -moz- -o- -ms- '.split(' ');\r\n const mq = function (query) {\r\n return window.matchMedia(query).matches;\r\n };\r\n\r\n if (('ontouchstart' in window) || (typeof window.DocumentTouch !== 'undefined' && document instanceof window.DocumentTouch)) {\r\n return true;\r\n }\r\n\r\n return mq(['(', prefixes.join('touch-enabled),('), 'testtouch', ')'].join(''));\r\n } catch (e) {\r\n return false;\r\n }\r\n };\r\n\r\n const isIOS = () => !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);\r\n\r\n const onHandleKeyDown = (e) => {\r\n if (e.keyCode === 8) {\r\n setInputValue(null);\r\n onChange(question, '');\r\n }\r\n };\r\n\r\n const handleFocus = (e) => {\r\n if (isTouchDevice() && pickerConfig.preventKeyboardDisplay && datePicker != null && datePicker.current != null && datePicker.current.input != null) {\r\n // Switching the reaadonly property of the input prevents the keyboard from display on touch devices.\r\n if (!datePicker.current.input.readOnly && isIOS()) {\r\n datePicker.current.input.blur();\r\n }\r\n datePicker.current.input.readOnly = true;\r\n }\r\n };\r\n\r\n const handleBlur = (e) => {\r\n if (isTouchDevice() && !isIOS() && pickerConfig.preventKeyboardDisplay && datePicker != null && datePicker.current != null && datePicker.current.input != null) {\r\n // Switching the reaadonly property of the input prevents the keyboard from display on touch devices.\r\n datePicker.current.input.readOnly = false;\r\n }\r\n };\r\n\r\n return (\r\n \r\n 0 ? pickerConfig.dateFormat : 'yyyy-MM-dd' }\r\n selected={ inputValue }\r\n onKeyDown={ e => onHandleKeyDown(e) }\r\n onChange={ (date) => { onInputChange(date); } }\r\n onFocus={ e => handleFocus(e) }\r\n onBlur={ e => handleBlur(e) }\r\n wrapperClassName=\"questionnaire-datepicker\"\r\n disabled={ question.disabled }\r\n required={ isRequired(question) }\r\n ariaRequired={ isRequired(question) }\r\n aria-describedby={ question.isValid === false ? (`${ blockId }-${ question.id }-error`) : undefined }\r\n />\r\n \r\n );\r\n};\r\n\r\nQuestionDatePickerField.displayName = 'QuestionDatePickerField';\r\n\r\nQuestionDatePickerField.propTypes = {\r\n intl: PropTypes.shape().isRequired,\r\n blockId: PropTypes.string.isRequired,\r\n question: PropTypes.shape().isRequired,\r\n className: PropTypes.string,\r\n onChange: PropTypes.func.isRequired\r\n};\r\n\r\nQuestionDatePickerField.defaultProps = {\r\n className: '',\r\n};\r\n\r\nexport default QuestionDatePickerField;\r\n","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport isValid from 'date-fns/isValid';\r\nimport parse from 'date-fns/parse';\r\nimport format from 'date-fns/format';\r\n\r\nimport { isRequired } from 'components/Questionnaires/validators';\r\nimport DateDropdown from 'components/Common/Inputs/DateDropdown';\r\n\r\nexport const QuestionDateDropdownField = ({ intl, blockId, question, className, onChange }) => {\r\n const getAnswer = (date) => {\r\n const parsed = parse(date, question.componentProps?.dateFormat ?? 'MM-dd-yyyy', new Date());\r\n return isValid(parsed) ? format(parsed, question.componentProps?.dateFormat) : '';\r\n };\r\n\r\n const [inputValue, setInputValue] = useState(getAnswer(question?.answer ?? question.default ?? ''));\r\n\r\n const onInputChange = (value) => {\r\n setInputValue(value);\r\n onChange(question, value);\r\n return true;\r\n };\r\n\r\n useEffect(() => {\r\n if (inputValue) {\r\n onChange(question, inputValue);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (inputValue !== question.answer) {\r\n setInputValue(getAnswer(question.answer ?? ''));\r\n }\r\n }, [question.answer]);\r\n\r\n return (\r\n { onInputChange(date); } }\r\n value={ inputValue }\r\n readOnly={ question.disabled }\r\n answerRequired={ isRequired(question) }\r\n describedBy={ question.isValid === false ? (`${ blockId }-${ question.id }-error`) : undefined }\r\n />\r\n );\r\n};\r\n\r\nQuestionDateDropdownField.displayName = 'QuestionDateDropdownField';\r\n\r\nQuestionDateDropdownField.propTypes = {\r\n intl: PropTypes.shape().isRequired,\r\n blockId: PropTypes.string.isRequired,\r\n question: PropTypes.shape().isRequired,\r\n className: PropTypes.string,\r\n onChange: PropTypes.func.isRequired\r\n};\r\n\r\nQuestionDateDropdownField.defaultProps = {\r\n className: '',\r\n};\r\n\r\nexport default QuestionDateDropdownField;\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { isRequired } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionGiinField = ({ intl, blockId, question, className, onChange }) => {\r\n const fieldLength = 16;\r\n const fieldSeperator = [5, 10, 12];\r\n\r\n const defaultValue = () => {\r\n let value = question.answer ?? question.default ?? '';\r\n if (!value) {\r\n return (new Array(fieldLength)).fill({ value: '', changed: false });\r\n }\r\n value = value.replace('.', '');\r\n if (value.length < fieldLength) {\r\n value = value.padEnd(fieldLength);\r\n } else {\r\n value = value.substring(0, fieldLength - 1);\r\n }\r\n return (new Array(fieldLength)).fill((v, i) => ({ value: (value[i] && value[i] !== ' ' ? value[i] : ''), changed: false }));\r\n };\r\n\r\n const [inputValue, setInputValue] = useState(defaultValue);\r\n\r\n const inputRef = [...Array(fieldLength).keys()].map(x => useRef(null));\r\n const numRegex = /^[\"'0-9'\"]*$/;\r\n const lettersRegex = /[A-Za-z]/;\r\n const numLettersRegex = /[A-Za-z0-9]/;\r\n\r\n const toString = (value) => {\r\n const source = value ?? inputValue;\r\n let giinString = '';\r\n source.forEach((element) => {\r\n giinString = giinString.concat(element.value).toUpperCase();\r\n });\r\n\r\n return giinString;\r\n };\r\n\r\n function onKeyHandler(event, index) {\r\n if (event === null) {\r\n return;\r\n }\r\n\r\n if (event.shiftKey || event.keyCode === 9 || event.keyCode === 16) {\r\n return;\r\n }\r\n\r\n if (event.keyCode === 8) {\r\n if (index !== 0) {\r\n const previous = inputRef[index - 1];\r\n if (previous) {\r\n previous.current.focus();\r\n }\r\n }\r\n } else {\r\n const next = inputRef[index + 1];\r\n if (next && event.target.value !== '') {\r\n next.current.focus();\r\n }\r\n }\r\n }\r\n\r\n function onInputChange(event, fieldIndex) {\r\n if (event === null || event.target === null || fieldIndex === null) {\r\n return;\r\n }\r\n\r\n if (event.target.value) {\r\n if ((!numLettersRegex.test(event.target.value) && fieldIndex <= 5)\r\n || (!numRegex.test(event.target.value) && (fieldIndex >= 6 && fieldIndex <= 10))\r\n || (!lettersRegex.test(event.target.value) && (fieldIndex >= 11 && fieldIndex <= 12))\r\n || (!numRegex.test(event.target.value) && fieldIndex >= 13)\r\n || event.target.value.length > 1) {\r\n return;\r\n }\r\n }\r\n\r\n const newInputValue = inputValue.map((fieldInput, i) => (i === fieldIndex ? {\r\n changed: true,\r\n value: event.target.value\r\n } : fieldInput));\r\n\r\n setInputValue(newInputValue);\r\n onChange(question, toString(newInputValue));\r\n }\r\n\r\n useEffect(() => {\r\n if (!inputValue.every(v => v.value === '')) {\r\n onChange(question, toString());\r\n }\r\n }, []);\r\n\r\n return (\r\n
    \r\n { Array.from({ length: fieldLength }, (element, index) => (\r\n \r\n onKeyHandler(e, index) }\r\n onChange={ e => onInputChange(e, index) }\r\n value={ inputValue[index] && inputValue[index].value ? inputValue[index].value : '' }\r\n required={ isRequired(question) }\r\n aria-label={ intl.formatMessage({ id: question.label }) }\r\n aria-required={ isRequired(question) }\r\n aria-describedby={ question.isValid === false ? (`${ blockId }-${ question.id }-error`) : undefined }\r\n />\r\n { fieldSeperator && (fieldSeperator.indexOf(index) >= 0) && -}\r\n \r\n )) }\r\n
    \r\n );\r\n};\r\n\r\nQuestionGiinField.displayName = 'QuestionGiinField';\r\n\r\nQuestionGiinField.propTypes = {\r\n intl: PropTypes.shape().isRequired,\r\n blockId: PropTypes.string.isRequired,\r\n question: PropTypes.shape().isRequired,\r\n className: PropTypes.string,\r\n onChange: PropTypes.func.isRequired\r\n};\r\n\r\nQuestionGiinField.defaultProps = {\r\n className: ''\r\n};\r\n\r\nexport default QuestionGiinField;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { isRequired } from 'components/Questionnaires/validators';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nexport const QuestionRadioButtonsField = ({ intl, blockId, question, className, onChange }) => {\r\n const [inputValue, setInputValue] = useState(question?.answer ?? question.default ?? '');\r\n\r\n const onInputChange = (event) => {\r\n setInputValue(event.target.value);\r\n onChange(question, event.target.value);\r\n return true;\r\n };\r\n\r\n const items = useMemo(() => {\r\n if (!question?.componentProps?.items) {\r\n return [];\r\n }\r\n\r\n if (typeof question.componentProps.items === 'string') {\r\n const itemsArray = intl.messages[question.componentProps.items] ?? [];\r\n return (typeof itemsArray === 'string') ? [] : itemsArray;\r\n }\r\n if (Array.isArray(question.componentProps.items)) {\r\n return question.componentProps.items;\r\n }\r\n return [];\r\n }, [question?.componentProps?.items, intl]);\r\n\r\n useEffect(() => {\r\n if (inputValue) {\r\n onChange(question, inputValue);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n setInputValue(question.answer ?? question.default ?? '');\r\n }, [question.answer]);\r\n\r\n function getLabel(option) {\r\n if (!option.label) {\r\n return option.value;\r\n }\r\n\r\n return question?.componentProps?.preventTranslation === true\r\n ? option.label\r\n : ;\r\n }\r\n\r\n return (\r\n {items.map(i => (\r\n \r\n onInputChange(e) }\r\n />\r\n \r\n {getLabel(i)}\r\n \r\n \r\n ))}\r\n\r\n );\r\n};\r\n\r\nQuestionRadioButtonsField.displayName = 'QuestionRadioButtonsField';\r\n\r\nQuestionRadioButtonsField.propTypes = {\r\n intl: PropTypes.shape().isRequired,\r\n blockId: PropTypes.string.isRequired,\r\n question: PropTypes.shape().isRequired,\r\n className: PropTypes.string,\r\n items: PropTypes.string.isRequired,\r\n onChange: PropTypes.func.isRequired\r\n};\r\n\r\nQuestionRadioButtonsField.defaultProps = {\r\n className: '',\r\n};\r\n\r\nexport default QuestionRadioButtonsField;\r\n","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\nimport { getClassificationKeyValuesForCountry } from 'common/igaSubClassification/igaSubClassificationHelper';\r\n\r\nimport { isRequired } from 'components/Questionnaires/validators';\r\nimport { sortArrayByLabel } from 'common/language/intlArrayHelper';\r\n\r\nexport const QuestionIgaSubClassificationDropdownField = ({ intl, blockId, question, className, onChange, jurisdiction }) => {\r\n const [inputValue, setInputValue] = useState(question?.answer ?? question?.default ?? '');\r\n const igaSubClassificationCombos = useSelector(state => state.app?.staticData?.igaSubClassificationsCombos ?? []);\r\n const jurisdictions = useSelector(state => state.app?.staticData?.jurisdictions ?? []);\r\n const locale = useSelector(state => state.app?.locale ?? 'en');\r\n const defaultLocale = 'en';\r\n\r\n const onInputChange = (event) => {\r\n setInputValue(event.target.value);\r\n onChange(question, event.target.value);\r\n return true;\r\n };\r\n\r\n const questionProps = () => {\r\n const props = Object.assign({}, question.componentProps);\r\n props.items = undefined; // Clear items so it doesn't display in html\r\n // eslint-disable-next-line react/prop-types\r\n delete props.preventTranslation; // Clear preventTranslation so it doesn't display in html\r\n // eslint-disable-next-line react/prop-types\r\n delete props.treatiesOnly; // Clear treatiesOnly so it doesn't display in html\r\n return props;\r\n };\r\n\r\n useEffect(() => {\r\n if (inputValue) {\r\n onChange(question, inputValue);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (inputValue !== question.answer) {\r\n setInputValue(question.answer ?? '');\r\n }\r\n }, [question.answer]);\r\n\r\n const getSubclassificationsForJurisdiction = () => {\r\n const jurisdictionsDictionary = new Map(jurisdictions.map(j => [j.countryCodeAlpha, j.isoJurisdictionName]));\r\n const jurisdictionName = jurisdictionsDictionary.get(jurisdiction);\r\n const subclassificationsForCountry = getClassificationKeyValuesForCountry(jurisdictionName, igaSubClassificationCombos);\r\n\r\n if (subclassificationsForCountry && locale === defaultLocale) {\r\n return Object.entries(subclassificationsForCountry)?.map(([key, value]) => ({ key, value }));\r\n }\r\n\r\n const translatedIgaSubclassifications = [];\r\n let localisedSubclassifications = intl.messages['questionnaire.igaSubclassifications'];\r\n localisedSubclassifications = Array.isArray(localisedSubclassifications) ? localisedSubclassifications : [];\r\n\r\n const translationsDictionary = new Map(localisedSubclassifications.map(s => [s.value, s.label]));\r\n\r\n if (subclassificationsForCountry) {\r\n Object.keys(subclassificationsForCountry).forEach((subclassification) => {\r\n const keyValuePair = { key: subclassification, value: translationsDictionary[subclassification] };\r\n translatedIgaSubclassifications.push(keyValuePair);\r\n });\r\n }\r\n\r\n return translatedIgaSubclassifications;\r\n };\r\n\r\n const updateDropDownItems = () => {\r\n const newItems = [];\r\n if (igaSubClassificationCombos && Object.keys(igaSubClassificationCombos).length) {\r\n newItems.push({ value: '', label: intl.formatMessage({ id: 'questionnaire.fields.QuestionIgaSubClassificationDropdown.default' }) });\r\n\r\n const translatedIgaSubclassifications = getSubclassificationsForJurisdiction();\r\n if (translatedIgaSubclassifications) {\r\n translatedIgaSubclassifications.map(subclassification => (\r\n newItems.push({ value: subclassification.key, label: subclassification.value })\r\n ));\r\n }\r\n return sortArrayByLabel(newItems, '', 'Other');\r\n }\r\n return [];\r\n };\r\n\r\n const [dropdownItems, setDropDownItems] = useState(updateDropDownItems());\r\n\r\n useEffect(() => {\r\n const newItems = updateDropDownItems();\r\n setDropDownItems(newItems);\r\n }, [igaSubClassificationCombos, locale, intl, jurisdiction]);\r\n\r\n return ( onInputChange(e) }\r\n autoComplete=\"no\"\r\n className={ `${ className }${ question.isValid === false ? ' error' : '' }` }\r\n required={ isRequired(question) }\r\n { ...questionProps() }\r\n disabled={ question.disabled }\r\n aria-label={ (question.placeholder ?? question.label) ? intl.formatMessage({ id: question.placeholder ?? question.label }) : '' }\r\n aria-required={ isRequired(question) }\r\n aria-describedby={ question.isValid === false ? (`${ blockId }-${ question.id }-error`) : undefined }\r\n >\r\n { dropdownItems && dropdownItems.map(o => ) }\r\n );\r\n};\r\n\r\nQuestionIgaSubClassificationDropdownField.displayName = 'QuestionIgaSubClassificationDropdownField';\r\n\r\nQuestionIgaSubClassificationDropdownField.propTypes = {\r\n intl: PropTypes.shape().isRequired,\r\n blockId: PropTypes.string.isRequired,\r\n question: PropTypes.shape().isRequired,\r\n className: PropTypes.string,\r\n onChange: PropTypes.func.isRequired,\r\n jurisdiction: PropTypes.shape()\r\n};\r\n\r\nQuestionIgaSubClassificationDropdownField.defaultProps = {\r\n className: '',\r\n jurisdiction: null\r\n};\r\n\r\nexport default QuestionIgaSubClassificationDropdownField;\r\n","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\nimport removeDiactritics from 'common/app/removeDiacritics';\r\nimport { isRequired } from 'components/Questionnaires/validators';\r\nimport { AutoCompleteField } from '../../../Common/Inputs/AutoCompleteField';\r\n\r\nexport const QuestionStockMarketAutocompleteField = ({ blockId, question, intl, className, onChange }) => {\r\n const [inputValue, setInputValue] = useState(question?.answer ?? question.default ?? '');\r\n\r\n const onInputChange = (event, { newValue }) => {\r\n setInputValue(newValue);\r\n onChange(question, newValue);\r\n return true;\r\n };\r\n\r\n useEffect(() => {\r\n if (inputValue) {\r\n onChange(question, inputValue);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (inputValue !== question.answer) {\r\n setInputValue(question.answer ?? '');\r\n }\r\n }, [question.answer]);\r\n\r\n const stockMarkets = useSelector(state => state.app?.staticData?.stockMarkets?.map(s => ({ ...s, searchName: removeDiactritics(s.exchangeName) ?? [] })));\r\n\r\n const getSuggestionValue = s => `${ s.exchangeName } (${ s.mic })`;\r\n\r\n const classNameProp = `${ className }${ question.isValid === false ? ' error' : '' }`;\r\n const inputProps = {\r\n key: `${ blockId }-${ question.id }`,\r\n id: `${ blockId }-${ question.id }`,\r\n name: question.id,\r\n value: inputValue,\r\n onChange: onInputChange,\r\n onFocus: e => e.target?.select(),\r\n placeholder: (question.placeholder ?? question.label) ? intl.formatMessage({ id: question.placeholder ?? question.label }) : '',\r\n autoComplete: 'off',\r\n disabled: question.disabled,\r\n required: isRequired(question),\r\n type: 'text',\r\n 'aria-label': (question.placeholder ?? question.label) ? intl.formatMessage({ id: question.placeholder ?? question.label }) : '',\r\n 'aria-required': isRequired(question),\r\n 'aria-describedby': question.isValid === false ? (`${ blockId }-${ question.id }-error`) : undefined,\r\n className: classNameProp\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nQuestionStockMarketAutocompleteField.propTypes = {\r\n blockId: PropTypes.string.isRequired,\r\n question: PropTypes.shape().isRequired,\r\n intl: PropTypes.shape().isRequired,\r\n className: PropTypes.string,\r\n onChange: PropTypes.func.isRequired,\r\n};\r\n\r\nQuestionStockMarketAutocompleteField.defaultProps = {\r\n className: '',\r\n};\r\n\r\nexport default QuestionStockMarketAutocompleteField;\r\n","import React, { useState, useEffect, useMemo, useRef } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useParams } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { ApiService } from 'services';\r\nimport { addSupportingDoc, fileUploadError, deleteSupportingDoc, noFormDocDeleted } from 'actions';\r\n\r\nimport { getStorageSetting } from 'common/storage';\r\nimport FormGroupTypes from 'common/forms/formGroupTypes';\r\nimport FileUpload from 'components/Common/FileUpload';\r\nimport FileContent from 'components/Common/FileContent';\r\nimport { isRequired } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionSupportingDocUploadField = ({ intl, blockId, question, className, onChange }) => {\r\n const dispatch = useDispatch();\r\n const { formType, formId } = useParams(window.location.href);\r\n const locale = useSelector(state => state?.app?.locale ?? 'en');\r\n const [uploadedFileName, setUploadedFileName] = useState(question?.answer ?? question.default ?? '');\r\n const [uploadedFile, setUploadedFile] = useState();\r\n const uploadedFileRef = useRef();\r\n const lastSubmittedFormRef = useRef();\r\n lastSubmittedFormRef.current = useSelector(state => state?.form?.lastSubmittedForm);\r\n const bAnswers = useSelector(state => state?.questionnaires?.formQuestionnaire?.blocks?.find(b => b.id === blockId)?.answers);\r\n const noFormDocDelete = useSelector(state => state?.supportingDocuments?.deletedNoFormDoc);\r\n const files = useMemo(() => getStorageSetting('files') || [], []);\r\n const docType = useMemo(() => {\r\n const value = question?.componentProps?.docType;\r\n if (value && typeof value === 'string') {\r\n return value;\r\n }\r\n if (value && typeof value === 'function') {\r\n return value(bAnswers);\r\n }\r\n return '';\r\n });\r\n const isFormGroup = useMemo(() => FormGroupTypes.some(group => group.key === formType), []);\r\n\r\n const onFileUploadCancel = (file) => {\r\n const error = {\r\n code: 400,\r\n message: `${ intl.formatMessage({ id: 'supportingDocuments.onFileUploadCancel' }, { FileName: file.name }) }`\r\n };\r\n dispatch(fileUploadError(error));\r\n };\r\n\r\n const onFileUploadError = (file, error) => {\r\n error.message = `${ intl.formatMessage({ id: 'supportingDocuments.onFileUploadCancel' }, { FileName: file.name }) } ${ error.message }`;\r\n dispatch(fileUploadError(error));\r\n };\r\n\r\n const onFileUploadSuccess = (file, response) => {\r\n response.forEach((doc) => {\r\n doc.isNoFormDoc = true;\r\n });\r\n dispatch(addSupportingDoc(response));\r\n setUploadedFileName(file.name);\r\n setUploadedFile(response[0]);\r\n onChange(question, file.name);\r\n uploadedFileRef.current = { ...response[0] };\r\n };\r\n\r\n const onUploadedFileDelete = () => {\r\n setUploadedFileName('');\r\n setUploadedFile(null);\r\n onChange(question, '');\r\n uploadedFileRef.current = null;\r\n };\r\n\r\n useEffect(() => {\r\n if (uploadedFileName) {\r\n onChange(question, uploadedFileName);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (uploadedFileName !== question.answer) {\r\n setUploadedFileName(question.answer ?? '');\r\n }\r\n }, [question.answer]);\r\n\r\n useEffect(() => () => {\r\n const isFormSubmitted = lastSubmittedFormRef?.current === formId;\r\n if (uploadedFileRef.current?.id && !isFormSubmitted) {\r\n dispatch(deleteSupportingDoc(uploadedFileRef.current.id));\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (noFormDocDelete && noFormDocDelete === uploadedFileRef?.current?.id) {\r\n onUploadedFileDelete();\r\n dispatch(noFormDocDeleted());\r\n }\r\n }, [noFormDocDelete]);\r\n\r\n const isUploaded = useMemo(() => !!uploadedFile, [uploadedFile]);\r\n\r\n return (\r\n \r\n { !isUploaded && onFileUploadCancel(file) }\r\n onFileUploadSuccess={ (file, response) => onFileUploadSuccess(file, response) }\r\n onFileUploadError={ (file, error) => onFileUploadError(file, error) }\r\n locale={ locale }\r\n isQuestionnaireUpload\r\n uploadTitle={ question.placeholder }\r\n allowMultipleFiles={ false }\r\n previewClassName=\"questionnaire-preview\"\r\n /> }\r\n { isUploaded &&
    \r\n \r\n
    }\r\n );\r\n};\r\n\r\nQuestionSupportingDocUploadField.displayName = 'QuestionSupportingDocUploadField';\r\n\r\nQuestionSupportingDocUploadField.propTypes = {\r\n blockId: PropTypes.string.isRequired,\r\n question: PropTypes.shape().isRequired,\r\n intl: PropTypes.shape().isRequired,\r\n className: PropTypes.string,\r\n onChange: PropTypes.func.isRequired,\r\n};\r\n\r\nQuestionSupportingDocUploadField.defaultProps = {\r\n className: '',\r\n};\r\n\r\nexport default QuestionSupportingDocUploadField;\r\n","import React, { useState, useEffect, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { isRequired } from 'components/Questionnaires/validators';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nexport const QuestionMultiCheckBoxField = ({ intl, blockId, question, className, onChange }) => {\r\n const [inputValues, setInputValues] = useState(question?.answer ?? question.default ?? []);\r\n const [focusedCheckbox, setFocusedCheckbox] = useState({});\r\n\r\n const onInputChange = (itemValue) => {\r\n const newValues = inputValues.includes(itemValue)\r\n ? inputValues.filter(value => value !== itemValue)\r\n : [...inputValues, itemValue];\r\n\r\n setInputValues(newValues);\r\n onChange(question, newValues);\r\n };\r\n\r\n const handleFocus = (itemValue) => {\r\n setFocusedCheckbox(prev => ({\r\n ...prev,\r\n [itemValue]: true,\r\n }));\r\n };\r\n\r\n const handleBlur = (itemValue) => {\r\n setFocusedCheckbox(prev => ({\r\n ...prev,\r\n [itemValue]: false,\r\n }));\r\n };\r\n\r\n const items = useMemo(() => {\r\n if (!question?.componentProps?.items) {\r\n return [];\r\n }\r\n\r\n if (typeof question.componentProps.items === 'string') {\r\n const itemsArray = intl.messages[question.componentProps.items] ?? [];\r\n return (typeof itemsArray === 'string') ? [] : itemsArray;\r\n }\r\n if (Array.isArray(question.componentProps.items)) {\r\n return question.componentProps.items;\r\n }\r\n return [];\r\n }, [question?.componentProps?.items, intl]);\r\n\r\n useEffect(() => {\r\n if (inputValues.length) {\r\n onChange(question, inputValues);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {items.map(item => (\r\n \r\n \r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nQuestionMultiCheckBoxField.displayName = 'QuestionCheckBoxField';\r\n\r\nQuestionMultiCheckBoxField.propTypes = {\r\n intl: PropTypes.shape().isRequired,\r\n blockId: PropTypes.string.isRequired,\r\n question: PropTypes.shape().isRequired,\r\n className: PropTypes.string,\r\n onChange: PropTypes.func.isRequired,\r\n};\r\n\r\nQuestionMultiCheckBoxField.defaultProps = {\r\n className: '',\r\n};\r\n\r\nexport default QuestionMultiCheckBoxField;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { isRequired } from 'components/Questionnaires/validators';\r\nimport BoxInputField from 'components/Common/Inputs/BoxInputField';\r\n\r\nexport const QuestionSocialInsuranceNumberField = ({ intl, blockId, question, className, disabled, onChange }) => {\r\n const [inputValue, setInputValue] = useState(question?.answer ?? question.default ?? '');\r\n\r\n const onInputChange = (value) => {\r\n setInputValue(value);\r\n if (inputValue !== value) {\r\n onChange(question, value);\r\n }\r\n return true;\r\n };\r\n\r\n const getBoxClass = () => {\r\n if (question.isValid === false) {\r\n return ' error';\r\n }\r\n return '';\r\n };\r\n\r\n return (
    \r\n \r\n
    );\r\n};\r\n\r\nQuestionSocialInsuranceNumberField.displayName = 'QuestionUsTinField';\r\n\r\nQuestionSocialInsuranceNumberField.propTypes = {\r\n blockId: PropTypes.string.isRequired,\r\n question: PropTypes.shape().isRequired,\r\n intl: PropTypes.shape().isRequired,\r\n className: PropTypes.string,\r\n disabled: PropTypes.bool,\r\n onChange: PropTypes.func.isRequired,\r\n};\r\n\r\nQuestionSocialInsuranceNumberField.defaultProps = {\r\n className: '',\r\n disabled: false,\r\n};\r\n\r\nexport default QuestionSocialInsuranceNumberField;\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { isRequired } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionBusinessNumberField = ({ intl, blockId, question, className, onChange }) => {\r\n const fieldLength = 15;\r\n const fieldSeperator = [8, 10];\r\n\r\n const defaultValue = () => {\r\n let value = question.answer ?? question.default ?? '';\r\n if (!value) {\r\n return (new Array(fieldLength)).fill({ value: '', changed: false });\r\n }\r\n value = value.replace('.', '');\r\n if (value.length < fieldLength) {\r\n value = value.padEnd(fieldLength, ' ');\r\n } else {\r\n value = value.substring(0, fieldLength);\r\n }\r\n return (new Array(fieldLength)).fill((v, i) => ({\r\n value: (value[i] && value[i] !== ' ' ? value[i] : ''),\r\n changed: false,\r\n }));\r\n };\r\n\r\n const [inputValue, setInputValue] = useState(defaultValue);\r\n\r\n const inputRef = [...Array(fieldLength).keys()].map(x => useRef(null));\r\n\r\n const toString = (value) => {\r\n const source = value ?? inputValue;\r\n let giinString = '';\r\n source.forEach((element) => {\r\n giinString = giinString.concat(element.value).toUpperCase();\r\n });\r\n return giinString;\r\n };\r\n\r\n const numRegex = /^[0-9]$/;\r\n const lettersRegex = /^[a-zA-Z]$/;\r\n\r\n function onKeyHandler(event, index) {\r\n if (event === null) {\r\n return;\r\n }\r\n\r\n if (event.shiftKey || event.keyCode === 9 || event.keyCode === 16) {\r\n return;\r\n }\r\n\r\n if (event.keyCode === 8) {\r\n if (index !== 0) {\r\n const previous = inputRef[index - 1];\r\n if (previous) {\r\n previous.current.focus();\r\n }\r\n }\r\n } else {\r\n const next = inputRef[index + 1];\r\n if (next && event.target.value !== '') {\r\n next.current.focus();\r\n }\r\n }\r\n }\r\n\r\n function onInputChange(event, fieldIndex) {\r\n if (event === null || event.target === null || fieldIndex === null) {\r\n return;\r\n }\r\n\r\n const { value } = event.target;\r\n\r\n if (value) {\r\n if (\r\n (fieldIndex < 9 && !numRegex.test(value)) // 9 digit fields\r\n || (fieldIndex >= 9 && fieldIndex < 11 && !lettersRegex.test(value)) // 2 letters\r\n || (fieldIndex >= 11 && fieldIndex < 15 && !numRegex.test(value)) // 4 digits\r\n || value.length > 1 // Allow only one character per input\r\n ) {\r\n return;\r\n }\r\n }\r\n\r\n const newInputValue = inputValue.map((fieldInput, i) => (i === fieldIndex ? { changed: true, value: event.target.value } : fieldInput));\r\n console.log(question.length);\r\n setInputValue(newInputValue);\r\n onChange(question, toString(newInputValue));\r\n }\r\n\r\n useEffect(() => {\r\n if (!inputValue.every(v => v.value === '')) {\r\n onChange(question, toString());\r\n }\r\n }, []);\r\n\r\n return (\r\n
    \r\n {Array.from({ length: fieldLength }, (element, index) => (\r\n \r\n onKeyHandler(e, index) }\r\n onChange={ e => onInputChange(e, index) }\r\n value={ inputValue[index] && inputValue[index].value ? inputValue[index].value : '' }\r\n required={ isRequired(question) }\r\n aria-label={ intl.formatMessage({ id: question.label }) }\r\n aria-required={ isRequired(question) }\r\n aria-describedby={ question.isValid === false ? (`${ blockId }-${ question.id }-error`) : undefined }\r\n />\r\n {fieldSeperator && (fieldSeperator.indexOf(index) >= 0) && -}\r\n \r\n ))}\r\n
    \r\n );\r\n};\r\n\r\nQuestionBusinessNumberField.displayName = 'QuestionGiinField';\r\n\r\nQuestionBusinessNumberField.propTypes = {\r\n intl: PropTypes.shape().isRequired,\r\n blockId: PropTypes.string.isRequired,\r\n question: PropTypes.shape().isRequired,\r\n className: PropTypes.string,\r\n onChange: PropTypes.func.isRequired\r\n};\r\n\r\nQuestionBusinessNumberField.defaultProps = {\r\n className: ''\r\n};\r\n\r\nexport default QuestionBusinessNumberField;\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { isRequired } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionTrustAccountNumberField = ({ intl, blockId, question, className, onChange }) => {\r\n const fieldLength = 8;\r\n const fieldSeperator = [];\r\n\r\n const defaultValue = () => {\r\n let value = question.answer ?? question.default ?? '';\r\n if (!value) {\r\n return (new Array(fieldLength)).fill({ value: '', changed: false });\r\n }\r\n value = value.replace('.', '');\r\n if (value.length < fieldLength) {\r\n value = value.padEnd(fieldLength, ' ');\r\n } else {\r\n value = value.substring(0, fieldLength);\r\n }\r\n return (new Array(fieldLength)).fill((v, i) => ({\r\n value: (value[i] && value[i] !== ' ' ? value[i] : ''),\r\n changed: false,\r\n }));\r\n };\r\n\r\n const [inputValue, setInputValue] = useState(defaultValue);\r\n\r\n const inputRef = [...Array(fieldLength).keys()].map(x => useRef(null));\r\n\r\n const toString = (value) => {\r\n const source = value ?? inputValue;\r\n let giinString = '';\r\n source.forEach((element) => {\r\n giinString = giinString.concat(element.value).toUpperCase();\r\n });\r\n return giinString;\r\n };\r\n\r\n const numRegex = /^[0-9]$/;\r\n\r\n function onKeyHandler(event, index) {\r\n if (event === null) {\r\n return;\r\n }\r\n\r\n if (event.shiftKey || event.keyCode === 9 || event.keyCode === 16) {\r\n return;\r\n }\r\n\r\n if (event.keyCode === 8) {\r\n if (index !== 0) {\r\n const previous = inputRef[index - 1];\r\n if (previous) {\r\n previous.current.focus();\r\n }\r\n }\r\n } else {\r\n const next = inputRef[index + 1];\r\n if (next && event.target.value !== '') {\r\n next.current.focus();\r\n }\r\n }\r\n }\r\n\r\n function onInputChange(event, fieldIndex) {\r\n if (event === null || event.target === null || fieldIndex === null) {\r\n return;\r\n }\r\n\r\n const { value } = event.target;\r\n\r\n if (value) {\r\n if (\r\n (fieldIndex < 8 && !numRegex.test(value))\r\n || value.length > 1 // Allow only one character per input\r\n ) {\r\n return;\r\n }\r\n }\r\n\r\n const newInputValue = inputValue.map((fieldInput, i) => (i === fieldIndex ? { changed: true, value: event.target.value } : fieldInput));\r\n console.log(question.length);\r\n setInputValue(newInputValue);\r\n onChange(question, toString(newInputValue));\r\n }\r\n\r\n useEffect(() => {\r\n if (!inputValue.every(v => v.value === '')) {\r\n onChange(question, toString());\r\n }\r\n }, []);\r\n\r\n return (\r\n
    \r\n T-\r\n {Array.from({ length: fieldLength }, (element, index) => (\r\n \r\n onKeyHandler(e, index) }\r\n onChange={ e => onInputChange(e, index) }\r\n value={ inputValue[index] && inputValue[index].value ? inputValue[index].value : '' }\r\n required={ isRequired(question) }\r\n aria-label={ intl.formatMessage({ id: question.label }) }\r\n aria-required={ isRequired(question) }\r\n aria-describedby={ question.isValid === false ? (`${ blockId }-${ question.id }-error`) : undefined }\r\n />\r\n {fieldSeperator && (fieldSeperator.indexOf(index) >= 0) && -}\r\n \r\n ))}\r\n
    \r\n );\r\n};\r\n\r\nQuestionTrustAccountNumberField.displayName = 'QuestionGiinField';\r\n\r\nQuestionTrustAccountNumberField.propTypes = {\r\n intl: PropTypes.shape().isRequired,\r\n blockId: PropTypes.string.isRequired,\r\n question: PropTypes.shape().isRequired,\r\n className: PropTypes.string,\r\n onChange: PropTypes.func.isRequired\r\n};\r\n\r\nQuestionTrustAccountNumberField.defaultProps = {\r\n className: ''\r\n};\r\n\r\nexport default QuestionTrustAccountNumberField;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport InfoBoxLayoutType from 'common/questionnaires/InfoBoxLayoutType';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nconst QuestionInformationBox = ({ reference, complexReferences, messageValues }) => (\r\n \r\n { reference &&
    \r\n \r\n
    \r\n
    }\r\n { complexReferences && complexReferences.type === InfoBoxLayoutType.ParagraphFollowedBySingleList &&
    \r\n \r\n
    \r\n

    \r\n
      \r\n {complexReferences.listReferences.map(info =>
    • )}\r\n
    \r\n
    \r\n
    }\r\n
    \r\n);\r\n\r\nQuestionInformationBox.propTypes = {\r\n reference: PropTypes.string,\r\n complexReferences: PropTypes.shape({\r\n type: PropTypes.number,\r\n paragraph: PropTypes.string,\r\n listReferences: PropTypes.arrayOf(PropTypes.string)\r\n }),\r\n messageValues: PropTypes.shape()\r\n};\r\n\r\nQuestionInformationBox.defaultProps = {\r\n reference: null,\r\n complexReferences: null,\r\n messageValues: {}\r\n};\r\n\r\nexport default QuestionInformationBox;\r\n","import React, { useEffect, useMemo } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useIntl } from 'react-intl';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nimport { addOnlineForm, addFormGroup } from 'actions';\r\n\r\nconst FormResult = ({ formType, formGroup, title, accountId }) => {\r\n const intl = useIntl();\r\n const dispatch = useDispatch();\r\n const availableFormTypes = useSelector(state => state.app?.onlineConfig?.formTypes);\r\n\r\n const isFormSupported = (type) => {\r\n const form = availableFormTypes.find(f => f.formType === type);\r\n return (form?.isEnabled === true && form?.isVisible === true);\r\n };\r\n\r\n const isSupported = useMemo(() => {\r\n if (!availableFormTypes) {\r\n return false;\r\n }\r\n if (formType) {\r\n return isFormSupported(formType);\r\n }\r\n if (formGroup?.formTypes) {\r\n let formGroupSupported = true;\r\n formGroup.formTypes.forEach((ft) => { formGroupSupported = formGroupSupported && isFormSupported(ft); });\r\n return formGroupSupported;\r\n }\r\n return false;\r\n });\r\n\r\n const openNewForm = () => {\r\n if (formType) {\r\n const formTypeInfo = availableFormTypes?.find(ft => ft.formType === formType.toLowerCase());\r\n dispatch(addOnlineForm(formTypeInfo, accountId));\r\n } else if (formGroup) {\r\n dispatch(addFormGroup(formGroup.formTypes, accountId, formGroup.key));\r\n } else {\r\n console.log('error: missing formType or formGroup');\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const lastCard = document.getElementById('formResult');\r\n if (window && lastCard && lastCard.offsetTop) {\r\n window.scrollTo({ top: lastCard.offsetTop - 100 });\r\n }\r\n }, []);\r\n\r\n return (\r\n { isSupported &&
    \r\n

    \r\n

    \r\n \r\n
    }\r\n { !isSupported &&
    \r\n

    \r\n

    \r\n \r\n
    }\r\n
    );\r\n};\r\n\r\nFormResult.propTypes = {\r\n formType: PropTypes.string,\r\n formGroup: PropTypes.shape({\r\n key: PropTypes.string,\r\n formTypes: PropTypes.arrayOf(PropTypes.string)\r\n }),\r\n title: PropTypes.string,\r\n accountId: PropTypes.number.isRequired,\r\n};\r\n\r\nFormResult.defaultProps = {\r\n formType: null,\r\n formGroup: null,\r\n title: ''\r\n};\r\n\r\nexport default FormResult;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport FormGroupTypes from 'common/questionnaires/FormGroupTypes';\r\n\r\nimport FormResult from './FormResult';\r\n\r\nconst CombinedFormResult = (props) => {\r\n const availableFormTypes = useSelector(state => state.app?.onlineConfig?.formTypes);\r\n\r\n const isFormSupported = (type) => {\r\n const form = availableFormTypes.find(f => f.formType === type);\r\n return (form?.isEnabled === true && form?.isVisible === true);\r\n };\r\n\r\n const getFormGroupForms = formGroup => FormGroupTypes.find(f => f.key === formGroup);\r\n\r\n const getFirstFormSupported = (precedenceForm) => {\r\n if (!availableFormTypes) {\r\n return false;\r\n }\r\n if (precedenceForm.formType) {\r\n return isFormSupported(precedenceForm.formType);\r\n }\r\n if (precedenceForm.formGroup) {\r\n const matchedFormGroup = getFormGroupForms(precedenceForm.formGroup);\r\n let formGroupSupported = matchedFormGroup !== undefined;\r\n if (matchedFormGroup) {\r\n matchedFormGroup.formTypes.forEach((ft) => { formGroupSupported = formGroupSupported && isFormSupported(ft); });\r\n }\r\n return formGroupSupported;\r\n }\r\n return false;\r\n };\r\n\r\n const getMatchedForm = (precedenceForm) => {\r\n if (!availableFormTypes || !precedenceForm) {\r\n return null;\r\n }\r\n if (precedenceForm.formType) {\r\n return precedenceForm;\r\n }\r\n if (precedenceForm.formGroup) {\r\n const matchedFormGroup = getFormGroupForms(precedenceForm.formGroup);\r\n if (matchedFormGroup) {\r\n return {\r\n formGroup: matchedFormGroup,\r\n title: precedenceForm.title\r\n };\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n const getFirstMatchForm = () => {\r\n if (!props) {\r\n return {};\r\n }\r\n\r\n const { precedence } = props;\r\n if (!precedence || !Array.isArray(precedence)) {\r\n return {};\r\n }\r\n return precedence.find(f => getFirstFormSupported(f));\r\n };\r\n\r\n const getProps = () => {\r\n if (!props) {\r\n return {};\r\n }\r\n\r\n const clonedProps = Object.assign({}, props);\r\n if (Object.prototype.hasOwnProperty.call(clonedProps, 'precedence')) {\r\n clonedProps.precedence = undefined;\r\n }\r\n\r\n const matchedForm = getFirstMatchForm();\r\n const formProps = getMatchedForm(matchedForm);\r\n return { ...clonedProps, ...formProps };\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nCombinedFormResult.propTypes = {\r\n precedence: PropTypes.arrayOf(PropTypes.shape())\r\n};\r\n\r\nCombinedFormResult.defaultProps = {\r\n precedence: null\r\n};\r\n\r\nexport default CombinedFormResult;\r\n","import React, { useEffect } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport { addOnlineForm } from 'actions';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport QuestionInformationBox from 'components/Questionnaires/QuestionInformationBox';\r\n\r\nconst RemainingW8Result = ({ id, title, info, accountId, formTypes, messageValues }) => {\r\n const dispatch = useDispatch();\r\n const availableFormTypes = useSelector(state => state.app?.onlineConfig?.formTypes);\r\n\r\n const isFormSupported = (type) => {\r\n const form = availableFormTypes.find(f => f.formType === type);\r\n return (form?.isEnabled === true && form?.isVisible === true);\r\n };\r\n\r\n const isSupported = (formType) => {\r\n if (!availableFormTypes) {\r\n return false;\r\n }\r\n if (formType) {\r\n return isFormSupported(formType);\r\n }\r\n\r\n return false;\r\n };\r\n\r\n const openNewForm = (formType) => {\r\n if (formType) {\r\n const formTypeInfo = availableFormTypes?.find(f => f.formType === formType.toLowerCase());\r\n dispatch(addOnlineForm(formTypeInfo, accountId));\r\n } else {\r\n console.log('error: missing formType');\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const lastCard = document.getElementById('formResult');\r\n if (window && lastCard && lastCard.offsetTop) {\r\n window.scrollTo({ top: lastCard.offsetTop - 100 });\r\n }\r\n }, []);\r\n\r\n return (
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n { formTypes && formTypes.length > 0 && formTypes.filter(f => isSupported(f.formType)).map(f => openNewForm(f.formType) }\r\n >\r\n { f.title }\r\n ) }\r\n
    \r\n { info && }\r\n
    \r\n
    \r\n
    );\r\n};\r\n\r\nRemainingW8Result.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n title: PropTypes.string.isRequired,\r\n info: PropTypes.shape(),\r\n accountId: PropTypes.number.isRequired,\r\n formTypes: PropTypes.arrayOf(PropTypes.shape({\r\n title: PropTypes.string,\r\n formType: PropTypes.string\r\n })).isRequired,\r\n messageValues: PropTypes.shape()\r\n};\r\n\r\nRemainingW8Result.defaultProps = {\r\n info: null,\r\n messageValues: {}\r\n};\r\n\r\nexport default RemainingW8Result;\r\n","import React from 'react';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nconst NoFormRequiredResult = () => (
    \r\n

    \r\n

    \r\n
    );\r\n\r\nexport default NoFormRequiredResult;\r\n","import InfoBoxLayoutType from 'common/questionnaires/InfoBoxLayoutType';\r\nimport { QuestionTextField, QuestionButtonsField, QuestionYesNoField } from 'components/Questionnaires/fields';\r\nimport QuestionInformationBox from 'components/Questionnaires/QuestionInformationBox';\r\nimport FormResult from 'components/Questionnaires/Results/FormResult';\r\nimport CombinedFormResult from 'components/Questionnaires/Results/CombinedFormResult';\r\nimport RemainingW8Result from 'components/Questionnaires/Results/RemainingW8Result';\r\nimport NoFormRequiredResult from 'components/Questionnaires/Results/NoFormRequiredResult';\r\n\r\nconst preQual = (rcEnabled) => {\r\n const showRcFormQuestions = rcEnabled;\r\n console.log(showRcFormQuestions);\r\n return {\r\n blocks: [\r\n {\r\n id: 'individual',\r\n component: undefined, // Component for Block\r\n visible: true,\r\n expandCollapse: false,\r\n questions: [\r\n {\r\n id: 'answer',\r\n component: QuestionButtonsField,\r\n componentProps: {\r\n buttons: [\r\n { value: 'Yes', text: 'questionnaire.buttons.Individual' },\r\n { value: 'No', text: 'questionnaire.buttons.Organisation' }\r\n ]\r\n },\r\n label: 'preQualifyingQuestionnaire.INDIVIDUAL.questionText',\r\n visible: true,\r\n },\r\n ],\r\n },\r\n {\r\n id: 'usIncome',\r\n component: undefined, // Component for Block\r\n visible: (qAnswers, pAnswers) => qAnswers?.individual?.answer !== undefined && qAnswers?.individual?.answer !== '',\r\n expandCollapse: false,\r\n questions: [\r\n {\r\n id: 'answer',\r\n component: QuestionYesNoField,\r\n label: 'preQualifyingQuestionnaire.USINCOME-INDIVIDUAL.questionText',\r\n visible: (bAnswers, qAnswers, pAnswers) => qAnswers?.individual?.answer === 'Yes',\r\n },\r\n {\r\n id: 'answer',\r\n component: QuestionYesNoField,\r\n label: 'preQualifyingQuestionnaire.USINCOME-ENTITY.questionText',\r\n visible: (bAnswers, qAnswers, pAnswers) => qAnswers?.individual?.answer === 'No',\r\n },\r\n {\r\n id: 'dbaDre',\r\n label: 'preQualifyingQuestionnaire.DBA-DRE.questionText',\r\n component: QuestionYesNoField,\r\n className: 'embedded col-12',\r\n visible: (bAnswers, qAnswers) => qAnswers?.individual?.answer === 'No' && bAnswers?.answer === 'Yes',\r\n info: {\r\n component: QuestionInformationBox,\r\n componentProps: {\r\n reference: 'preQualifyingQuestionnaire.DBA-DRE.informationText',\r\n }\r\n }\r\n },\r\n {\r\n id: 'soleOwner',\r\n label: 'preQualifyingQuestionnaire.LEGAL-SOLE-OWNER-INDIVIDUAL.questionText',\r\n component: QuestionYesNoField,\r\n className: 'embedded col-12',\r\n visible: (bAnswers, qAnswers) => qAnswers?.individual?.answer === 'No' && bAnswers?.answer === 'Yes' && bAnswers?.dbaDre === 'Yes'\r\n },\r\n {\r\n id: 'soleOwnerIndividualFirstName',\r\n label: 'preQualifyingQuestionnaire.LEGAL-SOLE-OWNER-INDIVIDUAL-NAME.first.label',\r\n component: QuestionTextField,\r\n className: 'embedded col-4',\r\n visible: (bAnswers, qAnswers) => qAnswers?.individual?.answer === 'No' && bAnswers?.answer === 'Yes' && bAnswers?.dbaDre === 'Yes' && bAnswers.soleOwner === 'Yes'\r\n },\r\n {\r\n id: 'soleOwnerIndividualMiddleName',\r\n label: 'preQualifyingQuestionnaire.LEGAL-SOLE-OWNER-INDIVIDUAL-NAME.middle.label',\r\n component: QuestionTextField,\r\n className: 'embedded col-4',\r\n visible: (bAnswers, qAnswers) => qAnswers?.individual?.answer === 'No' && bAnswers?.answer === 'Yes' && bAnswers?.dbaDre === 'Yes' && bAnswers.soleOwner === 'Yes'\r\n },\r\n {\r\n id: 'soleOwnerIndividualLastName',\r\n label: 'preQualifyingQuestionnaire.LEGAL-SOLE-OWNER-INDIVIDUAL-NAME.last.label',\r\n component: QuestionTextField,\r\n className: 'embedded col-4',\r\n visible: (bAnswers, qAnswers) => qAnswers?.individual?.answer === 'No' && bAnswers?.answer === 'Yes' && bAnswers?.dbaDre === 'Yes' && bAnswers.soleOwner === 'Yes'\r\n },\r\n {\r\n id: 'soleOwnerEntity',\r\n label: 'preQualifyingQuestionnaire.LEGAL-SOLE-OWNER-ENTITY-NAME.questionText',\r\n placeholder: 'preQualifyingQuestionnaire.LEGAL-SOLE-OWNER-ENTITY-NAME.placeholder',\r\n component: QuestionTextField,\r\n className: 'embedded col-12',\r\n visible: (bAnswers, qAnswers) => qAnswers?.individual?.answer === 'No' && bAnswers?.answer === 'Yes' && bAnswers?.dbaDre === 'Yes' && bAnswers.soleOwner === 'No'\r\n },\r\n ],\r\n },\r\n {\r\n id: 'controllingPerson',\r\n component: undefined, // Component for Block\r\n visible: (bAnswers, qAnswers) => !showRcFormQuestions && qAnswers?.individual?.answer === 'Yes' && qAnswers?.usIncome?.answer === 'No' && !showRcFormQuestions,\r\n expandCollapse: false,\r\n questions: [\r\n {\r\n id: 'answer',\r\n component: QuestionYesNoField,\r\n label: 'preQualifyingQuestionnaire.CP.questionText',\r\n visible: true\r\n },\r\n ]\r\n },\r\n {\r\n id: 'crsParticipatingEntity',\r\n component: undefined, // Component for Block\r\n visible: (bAnswers, qAnswers) => qAnswers?.individual?.answer === 'No' && qAnswers?.usIncome?.answer === 'No' && !showRcFormQuestions,\r\n expandCollapse: false,\r\n questions: [\r\n {\r\n id: 'answer',\r\n component: QuestionYesNoField,\r\n label: 'preQualifyingQuestionnaire.CRS-PARTICIPATING-ENTITY.questionText',\r\n visible: true\r\n },\r\n ]\r\n },\r\n {\r\n id: 'usCitizen',\r\n component: undefined, // Component for Block\r\n visible: (bAnswers, qAnswers) => (qAnswers?.individual?.answer === 'Yes' && qAnswers?.usIncome?.answer === 'Yes')\r\n || (qAnswers?.usIncome?.soleOwner === 'Yes' && qAnswers?.usIncome?.soleOwnerIndividualFirstName?.length > 0 && qAnswers?.usIncome?.soleOwnerIndividualLastName?.length > 0),\r\n expandCollapse: false,\r\n questions: [\r\n {\r\n id: 'answer',\r\n component: QuestionYesNoField,\r\n label: 'preQualifyingQuestionnaire.US-CITIZEN.questionText',\r\n visible: true,\r\n info: {\r\n component: QuestionInformationBox,\r\n componentProps: {\r\n reference: 'preQualifyingQuestionnaire.US-CITIZEN.informationText',\r\n }\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n id: 'usIncorporated',\r\n component: undefined, // Component for Block\r\n visible: (bAnswers, qAnswers) => (qAnswers?.individual?.answer === 'No' && qAnswers?.usIncome?.answer === 'Yes' && qAnswers?.usIncome?.dbaDre === 'No' && !showRcFormQuestions)\r\n || (qAnswers?.individual?.answer === 'No' && qAnswers?.usIncome?.answer === 'Yes' && qAnswers?.usIncome?.soleOwner === 'No'\r\n && qAnswers?.usIncome?.dbaDre === 'Yes' && qAnswers?.usIncome?.soleOwnerEntity?.length > 0 && !showRcFormQuestions),\r\n expandCollapse: false,\r\n questions: [\r\n {\r\n id: 'answer',\r\n component: QuestionYesNoField,\r\n label: 'preQualifyingQuestionnaire.US-INCORPORATED.questionText',\r\n visible: true,\r\n info: {\r\n component: QuestionInformationBox,\r\n componentProps: {\r\n complexReferences: {\r\n type: InfoBoxLayoutType.ParagraphFollowedBySingleList,\r\n paragraph: 'preQualifyingQuestionnaire.US-INCORPORATED.informationText.p1',\r\n listReferences: ['preQualifyingQuestionnaire.US-INCORPORATED.informationText.li1', 'preQualifyingQuestionnaire.US-INCORPORATED.informationText.li2']\r\n }\r\n }\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n id: 'effectiveConnectedIncome',\r\n component: undefined, // Component for Block\r\n visible: (bAnswers, qAnswers) => qAnswers?.individual?.answer === 'Yes' && qAnswers?.usCitizen?.answer === 'No',\r\n expandCollapse: false,\r\n questions: [\r\n {\r\n id: 'answer',\r\n component: QuestionYesNoField,\r\n label: 'preQualifyingQuestionnaire.EFFECTIVE-CONNECTED-INCOME.questionText',\r\n visible: true,\r\n info: {\r\n component: QuestionInformationBox,\r\n componentProps: {\r\n reference: 'preQualifyingQuestionnaire.EFFECTIVE-CONNECTED-INCOME.informationText',\r\n }\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n id: 'canadianAccount',\r\n component: undefined, // Component for Block\r\n visible: (bAnswers, qAnswers) => ((qAnswers?.individual?.answer === 'Yes' && qAnswers?.effectiveConnectedIncome?.answer === 'No') || qAnswers?.usIncome?.answer === 'No') && showRcFormQuestions,\r\n expandCollapse: false,\r\n questions: [\r\n {\r\n id: 'answer',\r\n component: QuestionYesNoField,\r\n label: 'preQualifyingQuestionnaire.CANADIAN-ACCOUNT-INDIVIDUAL.questionText',\r\n visible: true\r\n },\r\n ]\r\n },\r\n {\r\n id: 'effectiveConnectedIncome',\r\n component: undefined, // Component for Block\r\n visible: (bAnswers, qAnswers) => qAnswers?.individual?.answer === 'No' && qAnswers?.usCitizen?.answer === 'No',\r\n expandCollapse: false,\r\n questions: [\r\n {\r\n id: 'answer',\r\n component: QuestionYesNoField,\r\n label: 'preQualifyingQuestionnaire.EFFECTIVE-CONNECTED-INCOME-ENTITY.questionText',\r\n visible: true,\r\n info: {\r\n component: QuestionInformationBox,\r\n componentProps: {\r\n reference: 'preQualifyingQuestionnaire.EFFECTIVE-CONNECTED-INCOME.informationText',\r\n }\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n id: 'crsPartipatingAccount',\r\n component: undefined, // Component for Block\r\n visible: (bAnswers, qAnswers) => qAnswers?.individual?.answer === 'Yes' && qAnswers?.effectiveConnectedIncome?.answer === 'No' && !showRcFormQuestions,\r\n expandCollapse: false,\r\n questions: [\r\n {\r\n id: 'answer',\r\n component: QuestionYesNoField,\r\n label: 'preQualifyingQuestionnaire.CRS-PARTICIPATING-ACCOUNT.questionText',\r\n visible: true\r\n },\r\n ]\r\n },\r\n {\r\n id: 'nonUsResidencyIncome',\r\n component: undefined, // Component for Block\r\n visible: (bAnswers, qAnswers) => qAnswers?.individual?.answer === 'No' && qAnswers?.effectiveConnectedIncome?.answer === 'No' && !showRcFormQuestions,\r\n expandCollapse: false,\r\n questions: [\r\n {\r\n id: 'answer',\r\n component: QuestionYesNoField,\r\n label: 'preQualifyingQuestionnaire.NON-US-RESIDENCY.questionText',\r\n visible: true\r\n },\r\n ]\r\n },\r\n {\r\n id: 'canadianResidencyAccount',\r\n component: undefined, // Component for Block\r\n visible: (bAnswers, qAnswers) => qAnswers?.individual?.answer === 'No' && qAnswers?.effectiveConnectedIncome?.answer === 'No' && showRcFormQuestions,\r\n expandCollapse: false,\r\n questions: [\r\n {\r\n id: 'answer',\r\n component: QuestionYesNoField,\r\n label: 'preQualifyingQuestionnaire.CERTIFY-RESIDENCY-ACCOUNT-IN-CANADA.questionText',\r\n visible: true\r\n },\r\n ]\r\n },\r\n ],\r\n results: [\r\n {\r\n id: 'crsE',\r\n condition: qAnswers => qAnswers?.individual?.answer === 'No' && qAnswers?.usIncome?.answer === 'No'\r\n && (qAnswers?.crsParticipatingEntity?.answer === 'No' || qAnswers?.crsParticipatingEntity?.answer === 'Yes'),\r\n title: 'CRS-E',\r\n formType: 'crse',\r\n component: FormResult\r\n },\r\n {\r\n id: 'crsCp',\r\n condition: qAnswers => qAnswers?.individual?.answer === 'Yes' && qAnswers?.usIncome?.answer === 'No' && qAnswers?.controllingPerson?.answer === 'Yes' && !showRcFormQuestions,\r\n title: 'CRS-CP',\r\n formType: 'crscp',\r\n component: FormResult\r\n },\r\n {\r\n id: 'crsI',\r\n condition: qAnswers => qAnswers?.individual?.answer === 'Yes' && qAnswers?.usIncome?.answer === 'No' && qAnswers?.controllingPerson?.answer === 'No' && !showRcFormQuestions,\r\n title: 'CRS-I',\r\n formType: 'crsi_2024',\r\n component: FormResult\r\n },\r\n {\r\n id: 'combinedIndividual',\r\n condition: qAnswers => qAnswers?.crsPartipatingAccount?.answer === 'Yes' && (qAnswers?.usIncome?.dbaDre !== 'Yes' || qAnswers?.usIncome?.soleOwnerEntity?.length > 0),\r\n component: CombinedFormResult,\r\n componentProps: {\r\n precedence: [\r\n { title: 'FATCA/CRS-I', formType: 'fatca_crsi_2023' },\r\n { title: 'CRS-I & W-8BEN', formGroup: 'crsiw8ben' }\r\n ],\r\n },\r\n },\r\n /* {\r\n id: 'fatcaCrsE',\r\n condition: qAnswers => qAnswers?.individual?.answer === 'No' && qAnswers?.usIncome?.answer === 'No' && qAnswers?.crsParticipatingEntity?.answer === 'Yes',\r\n title: 'FATCA/CRS-E',\r\n formType: 'fatcacrse',\r\n component: FormResult\r\n }, */\r\n {\r\n id: 'w8Ben',\r\n condition: qAnswers => qAnswers?.nonUsResidencyIncome?.answer === 'Yes'\r\n || qAnswers?.nonUsResidencyIncome?.answer === 'No'\r\n || qAnswers?.crsPartipatingAccount?.answer === 'No'\r\n || qAnswers?.canadianResidencyAccount?.answer === 'No',\r\n title: 'W-8BEN',\r\n formType: 'w8ben_2021',\r\n component: FormResult\r\n },\r\n {\r\n id: 'w8Eci',\r\n condition: qAnswers => qAnswers?.effectiveConnectedIncome?.answer === 'Yes',\r\n title: 'W-8ECI',\r\n formType: 'w8eci_2021',\r\n component: FormResult\r\n },\r\n {\r\n id: 'w9',\r\n condition: qAnswers => qAnswers?.usIncorporated?.answer === 'Yes' || qAnswers?.usCitizen?.answer === 'Yes',\r\n title: 'W-9',\r\n formType: 'w9_2024',\r\n component: FormResult\r\n },\r\n {\r\n id: 'remainingW8',\r\n condition: qAnswers => qAnswers?.usIncorporated?.answer === 'No',\r\n title: 'preQualifyingQuestionnaire.REMAINING-W8.questionText',\r\n component: RemainingW8Result,\r\n componentProps: {\r\n formTypes: [\r\n { title: 'W-8BEN-E', formType: 'w8bene_2021' },\r\n { title: 'W-8IMY', formType: 'w8imy_2021' },\r\n { title: 'W-8ECI', formType: 'w8eci_2021' },\r\n { title: 'W-8EXP', formType: 'w8exp_2023' },\r\n ]\r\n },\r\n info: {\r\n component: QuestionInformationBox,\r\n componentProps: {\r\n reference: 'preQualifyingQuestionnaire.REMAINING-W8.informationText',\r\n }\r\n }\r\n },\r\n {\r\n id: 'rc518',\r\n condition: qAnswers => (qAnswers?.canadianAccount?.answer === 'Yes' && qAnswers?.individual?.answer === 'Yes') || qAnswers?.canadianResidencyAccount?.answer === 'Yes',\r\n title: 'RC518',\r\n formType: 'rc518',\r\n component: FormResult\r\n },\r\n {\r\n id: 'rc519',\r\n condition: qAnswers => qAnswers?.canadianAccount?.answer === 'Yes' && qAnswers?.individual?.answer === 'No',\r\n title: 'RC519',\r\n formType: 'rc519',\r\n component: FormResult\r\n },\r\n {\r\n id: 'noFormRequired',\r\n condition: qAnswers => qAnswers?.canadianAccount?.answer === 'No',\r\n component: NoFormRequiredResult\r\n }\r\n ]\r\n };\r\n};\r\n\r\nexport default preQual;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport {\r\n answerBlock\r\n} from 'actions';\r\n\r\nimport Question from 'components/Questionnaires/Question';\r\nimport { QuestionTextField, QuestionJurisdictionDropDownField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator, validateQuestion } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionAddressBlock = ({ block, onAnswer }) => {\r\n const dispatch = useDispatch();\r\n const [answer, setAnswer] = useState(block?.answers ?? {});\r\n\r\n const [line1, setLine1] = useState({\r\n id: 'line1',\r\n component: QuestionTextField,\r\n label: block?.componentProps?.line1Label ?? 'questionnaire.address.1.label',\r\n info: {\r\n footnote: block?.componentProps?.line1Footnote ?? 'questionnaire.address.1.footnote'\r\n },\r\n visible: true,\r\n disabled: block.disabled ?? undefined,\r\n validation: block?.componentProps?.optional !== true ? {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.address.1.errorMessage' }\r\n ]\r\n } : undefined,\r\n answer: answer?.line1\r\n });\r\n const line2 = { id: 'line2', component: QuestionTextField, label: 'questionnaire.address.2.label', visible: true, disabled: block.disabled ?? undefined, answer: answer?.line2 };\r\n const line3 = { id: 'line3', component: QuestionTextField, label: 'questionnaire.address.3.label', className: 'col-6', visible: true, disabled: block.disabled ?? undefined, answer: answer?.line3 };\r\n const line4 = { id: 'line4', component: QuestionTextField, label: 'questionnaire.address.4.label', className: 'col-6', visible: true, disabled: block.disabled ?? undefined, answer: answer?.line4 };\r\n const postalCode = { id: 'postalCode', component: QuestionTextField, className: 'col-4', label: 'questionnaire.address.postCode.label', visible: true, disabled: block.disabled ?? undefined, answer: answer?.postalCode };\r\n const [country, setCountry] = useState({\r\n id: 'country',\r\n component: QuestionJurisdictionDropDownField,\r\n label: 'questionnaire.address.country.label',\r\n className: 'col-8',\r\n visible: true,\r\n disabled: block.disabled ?? undefined,\r\n validation: block?.componentProps?.optional !== true ? {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.address.country.errorMessage' }\r\n ]\r\n } : undefined,\r\n answer: answer?.country\r\n });\r\n\r\n const blockIdentifier = useMemo(() => ((block && block.id) ? `${ block.id }${ block.index !== undefined ? (`.${ block.index }`) : '' }` : undefined), [block.index]);\r\n\r\n const isEmptyObject = (obj) => {\r\n if (!obj) {\r\n return true;\r\n }\r\n let isEmpty = true;\r\n Object.keys(obj).forEach((key) => {\r\n if (obj[key]) {\r\n isEmpty = false;\r\n }\r\n });\r\n return isEmpty;\r\n };\r\n\r\n const isValid = () => {\r\n if (block.linkBlock && (!answer || isEmptyObject(answer))) {\r\n return true;\r\n }\r\n\r\n if (block.componentProps?.optional === true) {\r\n const linesEntered = answer?.line1?.length > 0\r\n || answer?.line2?.length > 0\r\n || answer?.line3?.length > 0\r\n || answer?.line4?.length > 0\r\n || answer?.postalCode?.length > 0\r\n || answer?.country?.length > 0;\r\n return (!linesEntered || (line1.isValid && country.isValid));\r\n }\r\n return (line1.isValid && country.isValid);\r\n };\r\n\r\n const getRequiredValidator = message => ({\r\n conditions: [\r\n { condition: requiredValidator, message }\r\n ]\r\n });\r\n\r\n const updateValidators = (q) => {\r\n if (block.componentProps?.optional !== true) {\r\n return;\r\n }\r\n\r\n let line1Entered = answer?.line1?.length > 0;\r\n let countryEntered = answer?.country?.length > 0;\r\n let optionaLinesEntered = answer?.line2?.length > 0 || answer?.line3?.length > 0 || answer?.line4?.length > 0 || answer?.postalCode?.length > 0;\r\n\r\n switch (q?.id) {\r\n case 'line1':\r\n line1Entered = q.answer?.length > 0;\r\n break;\r\n case 'line2':\r\n optionaLinesEntered = q.answer?.length > 0 || answer?.line3?.length > 0 || answer?.line4?.length > 0 || answer?.postalCode?.length > 0;\r\n break;\r\n case 'line3':\r\n optionaLinesEntered = answer?.line2?.length > 0 || q.answer?.length > 0 || answer?.line4?.length > 0 || answer?.postalCode?.length > 0;\r\n break;\r\n case 'line4':\r\n optionaLinesEntered = answer?.line2?.length > 0 || answer?.line3?.length > 0 || q.answer?.length > 0 || answer?.postalCode?.length > 0;\r\n break;\r\n case 'postalCode':\r\n optionaLinesEntered = answer?.line2?.length > 0 || answer?.line3?.length > 0 || answer?.line4?.length > 0 || q.answer?.length > 0;\r\n break;\r\n case 'country':\r\n countryEntered = q.answer?.length > 0;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n const newCountry = { ...country };\r\n const newLine1 = { ...line1 };\r\n\r\n if (line1Entered || countryEntered || optionaLinesEntered) {\r\n newLine1.validation = newLine1.validation ?? getRequiredValidator('questionnaire.address.1.errorMessage');\r\n newCountry.validation = newCountry.validation ?? getRequiredValidator('questionnaire.address.country.errorMessage');\r\n } else {\r\n newLine1.validation = undefined;\r\n newLine1.isValid = undefined;\r\n newLine1.errorMessages = undefined;\r\n newCountry.validation = undefined;\r\n newCountry.isValid = undefined;\r\n newCountry.errorMessages = undefined;\r\n }\r\n\r\n switch (q?.id) {\r\n case 'line1':\r\n q.validation = newLine1.validation;\r\n q.isValid = newLine1.isValid;\r\n q.errorMessages = newLine1.errorMessages;\r\n setCountry(newCountry);\r\n break;\r\n case 'country':\r\n q.validation = newCountry.validation;\r\n q.isValid = newCountry.isValid;\r\n q.errorMessages = newCountry.errorMessages;\r\n setLine1(newLine1);\r\n break;\r\n default:\r\n setLine1(newLine1);\r\n setCountry(newCountry);\r\n break;\r\n }\r\n };\r\n\r\n const onQuestionChange = (q, value) => {\r\n switch (q.id) {\r\n case 'line1': {\r\n const newLine1 = { ...q, answer: value };\r\n updateValidators(newLine1);\r\n validateQuestion(newLine1);\r\n setLine1(newLine1);\r\n setAnswer({ ...answer, line1: value });\r\n break;\r\n }\r\n case 'line2': {\r\n const newLine2 = { ...q, answer: value };\r\n updateValidators(newLine2);\r\n setAnswer({ ...answer, line2: value });\r\n break;\r\n }\r\n case 'line3': {\r\n const newLine3 = { ...q, answer: value };\r\n updateValidators(newLine3);\r\n setAnswer({ ...answer, line3: value });\r\n break;\r\n }\r\n case 'line4': {\r\n const newLine4 = { ...q, answer: value };\r\n updateValidators(newLine4);\r\n setAnswer({ ...answer, line4: value });\r\n break;\r\n }\r\n case 'postalCode': {\r\n const newPostalCode = { ...q, answer: value };\r\n updateValidators(newPostalCode);\r\n setAnswer({ ...answer, postalCode: value });\r\n break;\r\n }\r\n case 'country': {\r\n const newCountry = { ...q, answer: value };\r\n updateValidators(newCountry);\r\n validateQuestion(newCountry);\r\n setCountry(newCountry);\r\n setAnswer({ ...answer, country: value });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!onAnswer || typeof onAnswer !== 'function') {\r\n if (Object.keys(answer).length > 0 && answer.constructor === Object) {\r\n if (line1.answer) {\r\n validateQuestion(line1);\r\n setLine1(line1);\r\n }\r\n if (country.answer) {\r\n validateQuestion(country);\r\n setCountry(country);\r\n }\r\n dispatch(answerBlock(block.id, answer, isValid()));\r\n } else {\r\n onQuestionChange(line1, undefined);\r\n onQuestionChange(country, undefined);\r\n }\r\n } else {\r\n onAnswer(block, answer, isValid());\r\n }\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n if (JSON.stringify(answer) === JSON.stringify(block.answers)) {\r\n return;\r\n }\r\n if (line1.answer !== block.answers?.line1) {\r\n const newLine1 = { ...line1, answer: block.answers?.line1 };\r\n if (block.answers?.line1 === undefined) {\r\n newLine1.isValid = undefined;\r\n newLine1.isForceEdited = false;\r\n newLine1.validation = undefined;\r\n newLine1.errorMessages = undefined;\r\n }\r\n setLine1(newLine1);\r\n }\r\n if (country.answer !== block.answers?.country) {\r\n const newCountry = { ...country, answer: block.answers?.country };\r\n if (block.answers?.country === undefined) {\r\n newCountry.isValid = undefined;\r\n newCountry.isForceEdited = false;\r\n newCountry.validation = undefined;\r\n newCountry.errorMessages = undefined;\r\n }\r\n setCountry(newCountry);\r\n }\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n const onBlockForceEdit = () => {\r\n const newLine1 = { ...line1, isForceEdited: true };\r\n if (!answer?.line1) {\r\n newLine1.answer = '';\r\n }\r\n updateValidators(newLine1);\r\n validateQuestion(newLine1);\r\n\r\n const newCountry = { ...country, isForceEdited: true };\r\n if (!answer?.country) {\r\n newCountry.answer = '';\r\n }\r\n updateValidators(newCountry);\r\n validateQuestion(newCountry);\r\n\r\n setLine1(newLine1);\r\n setCountry(newCountry);\r\n setAnswer({ ...answer, line1: newLine1.answer, country: newCountry.answer });\r\n };\r\n\r\n useEffect(() => {\r\n setLine1({\r\n ...line1,\r\n validation: block?.componentProps?.optional !== true ? { conditions: [{ condition: requiredValidator, message: 'questionnaire.address.1.errorMessage' }] } : undefined,\r\n isValid: undefined,\r\n errorMessages: undefined,\r\n isFalseEdited: false,\r\n answer: block.answers?.line1\r\n });\r\n setCountry({\r\n ...country,\r\n validation: block?.componentProps?.optional !== true ? { conditions: [{ condition: requiredValidator, message: 'questionnaire.address.country.errorMessage' }] } : undefined,\r\n isValid: undefined,\r\n errorMessages: undefined,\r\n isFalseEdited: false,\r\n answer: block.answers?.country\r\n });\r\n }, [block?.componentProps?.optional]);\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n onBlockForceEdit();\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return (\r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n );\r\n};\r\n\r\nQuestionAddressBlock.displayName = 'QuestionAddressBlock';\r\n\r\nQuestionAddressBlock.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n onAnswer: PropTypes.func,\r\n};\r\n\r\nQuestionAddressBlock.defaultProps = {\r\n onAnswer: null,\r\n};\r\n\r\nexport default QuestionAddressBlock;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useParams } from 'react-router-dom';\r\n\r\nimport {\r\n answerBlock\r\n} from 'actions';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport Question from 'components/Questionnaires/Question';\r\nimport { QuestionTextField, QuestionDropDownField, QuestionCheckBoxField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator, validateQuestion } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionSignerBlock = ({ block, preQualAnswers }) => {\r\n const dispatch = useDispatch();\r\n const { capacityInfo } = block.componentProps ?? {};\r\n const showCapacity = block.componentProps?.entityOnly || block.componentProps?.individualOnly;\r\n\r\n const collectableSupportingDocs = useSelector(state => state?.form?.accCollectableSupportingDocs);\r\n const { formType, formGroupType } = useParams();\r\n const isWForm = (formType && formType?.indexOf('w8') > -1) || (formGroupType && formGroupType?.indexOf('w8') > -1);\r\n let allowAffidavit = false;\r\n\r\n if (collectableSupportingDocs) {\r\n const affidavit = collectableSupportingDocs.find(item => item.key === 'AffidavitOfUnchangedStatus');\r\n if (affidavit && isWForm) {\r\n allowAffidavit = true;\r\n }\r\n }\r\n\r\n const defaultAnswer = () => {\r\n let defaultCapacity = 'Signing on Own Behalf';\r\n if (!showCapacity || block.componentProps?.entityOnly || (preQualAnswers && preQualAnswers.individual !== undefined && preQualAnswers.individual === false)) {\r\n defaultCapacity = undefined;\r\n }\r\n return { capacity: defaultCapacity };\r\n };\r\n\r\n const [answer, setAnswer] = useState(block.answers ?? defaultAnswer());\r\n\r\n const [name, setName] = useState({\r\n id: 'name',\r\n component: QuestionTextField,\r\n label: 'questionnaire.signer.name.label',\r\n info: {\r\n instructions: 'questionnaire.signer.name.info',\r\n },\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.signer.name.errorMessage' }\r\n ]\r\n },\r\n answer: answer?.name\r\n });\r\n const individualCapacity = {\r\n id: 'capacity',\r\n component: QuestionDropDownField,\r\n label: 'questionnaire.signer.capacity.label',\r\n componentProps: {\r\n items: 'questionnaire.signer.capacities.individual',\r\n preventTranslation: true\r\n },\r\n default: 'Signing on Own Behalf',\r\n info: {\r\n instructions: capacityInfo ?? 'questionnaire.signer.capacity.info',\r\n },\r\n visible: (bAnswers, qAnswers, pAnswers) => (showCapacity\r\n ? block?.componentProps?.individualOnly === true || (!block?.componentProps?.individualOnly && !block?.componentProps?.entityOnly)\r\n : false),\r\n answer: answer?.capacity\r\n };\r\n const [entityCapacity, setEntityCapacity] = useState({\r\n id: 'capacity',\r\n label: 'questionnaire.signer.capacity.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.signer.capacities.entity',\r\n preventTranslation: true\r\n },\r\n info: {\r\n instructions: capacityInfo ?? 'questionnaire.signer.capacity.info',\r\n },\r\n visible: (bAnswers, qAnswers, pAnswers) => (showCapacity ? block?.componentProps?.entityOnly === true : false),\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.signer.capacity.errorMessage' }\r\n ]\r\n },\r\n answer: answer?.capacity\r\n });\r\n const [otherCapacity, setOtherCapacity] = useState({\r\n id: 'otherCapacity',\r\n component: QuestionTextField,\r\n label: 'questionnaire.signer.otherCapacity.label',\r\n visible: (bAnswers, qAnswers, pAnswers) => (showCapacity ? bAnswers?.capacity === 'Other' : false),\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.signer.otherCapacity.errorMessage' }\r\n ]\r\n },\r\n answer: answer?.otherCapacity\r\n });\r\n const backupWhd = {\r\n id: 'subjectToBackupWhd',\r\n label: 'questionnaire.signer.additionalCertification',\r\n component: QuestionCheckBoxField,\r\n componentProps: {\r\n option: 'questionnaire.signer.backupWhd.label',\r\n },\r\n visible: true,\r\n answer: answer?.subjectToBackupWhd\r\n };\r\n\r\n const affidavit = {\r\n id: 'generateAffidavit',\r\n label: 'questionnaire.signer.generateAffidavit.label',\r\n component: QuestionCheckBoxField,\r\n componentProps: {\r\n option: 'questionnaire.signer.generateAffidavit',\r\n },\r\n visible: allowAffidavit,\r\n answer: answer?.subjectToBackupWhd\r\n };\r\n\r\n const blockIdentifier = useMemo(() => ((block && block.id) ? `${ block.id }${ block.index !== undefined ? (`.${ block.index }`) : '' }` : undefined), [block.index]);\r\n\r\n const onQuestionChange = (q, value) => {\r\n switch (q.id) {\r\n case 'name': {\r\n const newSigner = { ...q, answer: value };\r\n validateQuestion(newSigner);\r\n setName(newSigner);\r\n setAnswer({ ...answer, name: value });\r\n break;\r\n }\r\n case 'capacity': {\r\n let changes = {};\r\n if (block.componentProps?.entityOnly === true) {\r\n const newCapacity = { ...q, answer: value };\r\n validateQuestion(newCapacity);\r\n setEntityCapacity(newCapacity);\r\n }\r\n if (value !== 'Other' && otherCapacity.answer !== undefined) {\r\n changes = { otherCapacity: undefined };\r\n const newOther = { ...otherCapacity, answer: undefined, isValid: undefined };\r\n validateQuestion(newOther);\r\n setOtherCapacity(newOther);\r\n }\r\n setAnswer({ ...answer, capacity: value, ...changes });\r\n break;\r\n }\r\n case 'otherCapacity': {\r\n const newOther = { ...q, answer: value };\r\n validateQuestion(newOther);\r\n setOtherCapacity(newOther);\r\n setAnswer({ ...answer, otherCapacity: value });\r\n break;\r\n }\r\n case 'subjectToBackupWhd':\r\n setAnswer({ ...answer, subjectToBackupWhd: value });\r\n break;\r\n case 'generateAffidavit':\r\n setAnswer({ ...answer, generateAffidavit: value });\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n let isValid = name.isValid && (answer.capacity !== 'Other' || otherCapacity.isValid);\r\n if (block.componentProps?.entityOnly === true) {\r\n isValid = isValid && entityCapacity.isValid;\r\n }\r\n dispatch(answerBlock(block.id, answer, isValid));\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n if (name.answer !== block.answers?.name) {\r\n onQuestionChange(name, block.answers?.name);\r\n }\r\n if (block.componentProps?.entityOnly === true && entityCapacity.answer !== block.answers?.capacity) {\r\n onQuestionChange(entityCapacity, block.answers?.capacity);\r\n }\r\n if (otherCapacity.answer !== block.answers?.otherCapacity) {\r\n onQuestionChange(otherCapacity, block.answers?.otherCapacity);\r\n }\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n if (answer?.name === undefined || answer.name === '') {\r\n onQuestionChange({ ...name, isForceEdited: true }, '');\r\n }\r\n if (block.componentProps?.entityOnly === true && (answer?.capacity === undefined || answer.capacity === '')) {\r\n onQuestionChange({ ...entityCapacity, isForceEdited: true }, '');\r\n }\r\n if (answer?.capacity === 'Other' && (answer?.otherCapacity === undefined || answer?.otherCapacity === '')) {\r\n onQuestionChange({ ...otherCapacity, isForceEdited: true }, '');\r\n }\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return (\r\n onQuestionChange(q, a) } />\r\n { individualCapacity.visible(block.answers, {}, preQualAnswers) && onQuestionChange(q, a) }\r\n /> }\r\n { entityCapacity.visible(block.answers, {}, preQualAnswers) && onQuestionChange(q, a) } /> }\r\n { otherCapacity.visible(block.answers, {}, preQualAnswers) && onQuestionChange(q, a) } /> }\r\n { block.componentProps?.showBackupWhd === true && onQuestionChange(q, a) } /> }\r\n { !showCapacity &&

    }\r\n { allowAffidavit && onQuestionChange(q, a) } /> }\r\n
    );\r\n};\r\n\r\nQuestionSignerBlock.displayName = 'QuestionSignerBlock';\r\n\r\nQuestionSignerBlock.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n preQualAnswers: PropTypes.shape()\r\n};\r\n\r\nQuestionSignerBlock.defaultProps = {\r\n preQualAnswers: null\r\n};\r\n\r\nexport default QuestionSignerBlock;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nconst CollapsibleHeader = ({ isShown, onExpandCollapse, text }) => (\r\n { onExpandCollapse(!isShown); } }\r\n >\r\n \r\n \r\n );\r\n\r\nCollapsibleHeader.propTypes = {\r\n isShown: PropTypes.bool,\r\n onExpandCollapse: PropTypes.func.isRequired,\r\n text: PropTypes.string\r\n};\r\n\r\nCollapsibleHeader.defaultProps = {\r\n isShown: false,\r\n text: ''\r\n};\r\n\r\nexport default CollapsibleHeader;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport {\r\n answerBlock\r\n} from 'actions';\r\n\r\nimport Question from 'components/Questionnaires/Question';\r\nimport { QuestionDropDownField, QuestionButtonsField, QuestionUsTinField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator, lengthValidator, sameCharacterValidator, sequentialIntegerValidator, validateQuestion } from 'components/Questionnaires/validators';\r\nimport CollapsibleHeader from 'components/Questionnaires/CollapsibleHeader';\r\n\r\nexport const QuestionUsTinBlock = ({ block }) => {\r\n const dispatch = useDispatch();\r\n const [answer, setAnswer] = useState(block?.answers ?? { appliedFor: 'No' });\r\n const [collapsibleAreaShown, setCollapsibleAreaShown] = useState(false);\r\n\r\n const tinValidators = useMemo(() => {\r\n const conditions = [\r\n { condition: lengthValidator, message: 'questionnaire.usTin.tin.lengthErrorMessage' },\r\n { condition: sameCharacterValidator, message: 'questionnaire.usTin.tin.sameCharErrorMessage' },\r\n { condition: sequentialIntegerValidator, message: 'questionnaire.usTin.tin.sequentialErrorMessage' },\r\n ];\r\n if (block.componentProps?.tinRequired !== false) {\r\n conditions.push({ condition: requiredValidator, message: 'questionnaire.usTin.tin.errorMessage' });\r\n }\r\n\r\n return { conditions };\r\n }, [block.componentProps?.tinRequired]);\r\n\r\n const tinType = {\r\n id: 'tinType',\r\n label: 'questionnaire.usTin.tinType.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.usTin.tinType.items',\r\n },\r\n className: 'col-12',\r\n default: block.componentProps?.default ?? 'Ssn',\r\n visible: true,\r\n answer: answer?.tinType ?? block.componentProps?.default\r\n };\r\n const [usTin, setUsTin] = useState({\r\n id: 'tin',\r\n component: QuestionUsTinField,\r\n componentProps: {\r\n tinFormat: answer?.tinType?.toUpperCase() === 'EIN' ? 'EIN' : 'SSN',\r\n length: 9\r\n },\r\n label: 'questionnaire.usTin.tin.label',\r\n info: {\r\n instructions: 'questionnaire.usTin.tin.info',\r\n },\r\n className: 'col-12',\r\n visible: true,\r\n validation: tinValidators,\r\n answer: answer?.usTin\r\n });\r\n const appliedFor = {\r\n id: 'appliedFor',\r\n label: 'questionnaire.usTin.appliedFor.label',\r\n component: QuestionButtonsField,\r\n componentProps: {\r\n buttons: [\r\n { value: 'Yes', text: 'questionnaire.buttons.Yes' },\r\n { value: 'No', text: 'questionnaire.buttons.No' }\r\n ]\r\n },\r\n visible: block.componentProps?.showAppliedFor !== undefined ? block.componentProps?.showAppliedFor : true,\r\n answer: answer?.appliedFor\r\n };\r\n\r\n const blockIdentifier = useMemo(() => ((block && block.id) ? `${ block.id }${ block.index !== undefined ? (`.${ block.index }`) : '' }` : undefined), [block.index]);\r\n\r\n const isValid = () => {\r\n if (block.componentProps?.tinRequired === false) {\r\n return !answer.tin || usTin.isValid;\r\n }\r\n if (block.componentProps?.showAppliedFor === false) {\r\n return usTin.isValid;\r\n }\r\n if (answer.tin === undefined) {\r\n return undefined;\r\n }\r\n return usTin.isValid || (!answer.tin && (answer.appliedFor === undefined || answer.appliedFor === 'Yes'));\r\n };\r\n\r\n useEffect(() => {\r\n dispatch(answerBlock(block.id, answer, isValid()));\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n const onQuestionChange = (q, value) => {\r\n switch (q.id) {\r\n case 'tinType': {\r\n const newComponentProps = { ...usTin.componentProps, ...{ tinFormat: value?.toUpperCase() === 'EIN' ? 'EIN' : 'SSN' } };\r\n setUsTin({ ...usTin, componentProps: newComponentProps });\r\n setAnswer({ ...answer, tinType: value });\r\n break;\r\n }\r\n case 'tin': {\r\n const newUsTin = { ...q, answer: value };\r\n validateQuestion(newUsTin);\r\n setUsTin(newUsTin);\r\n setAnswer({ ...answer, tin: value });\r\n break;\r\n }\r\n case 'appliedFor': {\r\n const newComponentProps = { ...usTin.componentProps, ...{ disabled: value === 'Yes' } };\r\n const validators = value === 'Yes' ? null : tinValidators;\r\n const questionProps = value === 'Yes' ? { isValid: true, errorMessages: undefined } : null;\r\n const newUsTin = { ...usTin, ...questionProps, ...{ validation: validators, componentProps: newComponentProps } };\r\n validateQuestion(newUsTin);\r\n setUsTin(newUsTin);\r\n setAnswer({ ...answer, appliedFor: value });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n onQuestionChange({ ...usTin, isForceEdited: true }, answer?.tin ?? '');\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return (
    \r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n { appliedFor.visible &&
    \r\n setCollapsibleAreaShown(value) } text=\"questionnaire.usTin.moreOptions\" />\r\n { collapsibleAreaShown && onQuestionChange(q, a) } /> }\r\n
    }\r\n
    );\r\n};\r\n\r\nQuestionUsTinBlock.displayName = 'QuestionUsTinBlock';\r\n\r\nQuestionUsTinBlock.propTypes = {\r\n block: PropTypes.shape().isRequired\r\n};\r\n\r\nQuestionUsTinBlock.defaultProps = {\r\n};\r\n\r\nexport default QuestionUsTinBlock;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport {\r\n answerBlock\r\n} from 'actions';\r\n\r\nimport Question from 'components/Questionnaires/Question';\r\nimport { QuestionCheckBoxField, QuestionGiinField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator, lengthValidator, validateQuestion } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionGiinBlock = ({ block, onAnswer }) => {\r\n const dispatch = useDispatch();\r\n const [answer, setAnswer] = useState(block?.answers ?? { appliedFor: '' });\r\n\r\n const giinValidators = {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.giin.errorMessage' },\r\n { condition: lengthValidator, message: 'questionnaire.giin.lengthErrorMessage' }\r\n ]\r\n };\r\n\r\n const [value, setValue] = useState({\r\n id: 'value',\r\n label: 'questionnaire.giin.label',\r\n component: QuestionGiinField,\r\n componentProps: {\r\n length: 16\r\n },\r\n info: {\r\n instructions: block.componentProps?.giinInstructions ?? 'questionnaire.giin.info'\r\n },\r\n visible: true,\r\n validation: giinValidators\r\n });\r\n\r\n const appliedFor = {\r\n id: 'appliedFor',\r\n component: QuestionCheckBoxField,\r\n componentProps:\r\n {\r\n option: 'questionnaire.giin.appliedFor.label'\r\n },\r\n visible: block.componentProps?.showAppliedFor !== undefined ? block.componentProps?.showAppliedFor : true,\r\n answer: answer?.appliedFor ?? undefined\r\n };\r\n\r\n const blockIdentifier = useMemo(() => ((block && block.id) ? `${ block.id }${ block.index !== undefined ? (`.${ block.index }`) : '' }` : undefined), [block.index]);\r\n\r\n const isValid = () => {\r\n if (block.componentProps?.showAppliedFor === false) {\r\n return value.isValid;\r\n }\r\n if (answer.value === undefined && (appliedFor.answer === '' || appliedFor.answer === undefined)) {\r\n return undefined;\r\n }\r\n return value.isValid || (!answer.value && answer.appliedFor === 'true');\r\n };\r\n\r\n const onQuestionChange = (q, v) => {\r\n switch (q.id) {\r\n case 'value': {\r\n const newValue = { ...q, answer: v };\r\n validateQuestion(newValue);\r\n setValue(newValue);\r\n setAnswer({ ...answer, value: v });\r\n break;\r\n }\r\n case 'appliedFor': {\r\n const validators = v === 'true' ? null : giinValidators;\r\n const questionProps = v === 'true' ? { isValid: true, errorMessages: undefined, disabled: true } : { disabled: false };\r\n const newValue = { ...value, ...questionProps, ...{ validation: validators } };\r\n validateQuestion(newValue);\r\n setValue(newValue);\r\n setAnswer({ ...answer, appliedFor: v });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!onAnswer || typeof onAnswer !== 'function') {\r\n if (Object.keys(answer).length > 0 && answer.constructor === Object) {\r\n dispatch(answerBlock(block.id, answer, isValid()));\r\n } else {\r\n onQuestionChange(value, undefined);\r\n onQuestionChange(appliedFor, undefined);\r\n }\r\n } else {\r\n onAnswer(block, answer, isValid());\r\n }\r\n dispatch(answerBlock(block.id, answer, isValid()));\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n onQuestionChange({ ...value, isForceEdited: true }, answer?.value ?? '');\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return (\r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n );\r\n};\r\n\r\nQuestionGiinBlock.displayName = 'QuestionGiinBlock';\r\n\r\nQuestionGiinBlock.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n onAnswer: PropTypes.func,\r\n};\r\n\r\nQuestionGiinBlock.defaultProps = {\r\n onAnswer: null\r\n};\r\n\r\nexport default QuestionGiinBlock;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport {\r\n answerBlock\r\n} from 'actions';\r\n\r\nimport Question from 'components/Questionnaires/Question';\r\nimport { QuestionTextField, QuestionYesNoField } from 'components/Questionnaires/fields';\r\nimport CollapsibleHeader from 'components/Questionnaires/CollapsibleHeader';\r\n\r\nexport const QuestionForeignTinBlock = ({ block }) => {\r\n const dispatch = useDispatch();\r\n const [answer, setAnswer] = useState(block?.answers ?? { notRequired: false });\r\n const [collapsibleAreaShown, setCollapsibleAreaShown] = useState(false);\r\n\r\n const [tin, setTin] = useState({\r\n id: 'tin',\r\n label: 'questionnaire.foreignTin.tin.label',\r\n component: QuestionTextField,\r\n info: block?.componentProps?.info ?? {\r\n instructions: 'questionnaire.foreignTin.info'\r\n },\r\n visible: true,\r\n });\r\n\r\n const notRequired = {\r\n id: 'notRequired',\r\n label: 'questionnaire.foreignTin.notRequired.label',\r\n component: QuestionYesNoField,\r\n default: 'No',\r\n visible: true,\r\n };\r\n\r\n const blockIdentifier = useMemo(() => ((block && block.id) ? `${ block.id }${ block.index !== undefined ? (`.${ block.index }`) : '' }` : undefined), [block.index]);\r\n\r\n useEffect(() => {\r\n dispatch(answerBlock(block.id, answer, true));\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n const onQuestionChange = (q, value) => {\r\n switch (q.id) {\r\n case 'tin': {\r\n setAnswer({ ...answer, tin: value });\r\n break;\r\n }\r\n case 'notRequired': {\r\n const newComponentProps = { ...tin.componentProps, disabled: value === 'Yes' };\r\n setTin({ ...tin, componentProps: newComponentProps });\r\n setAnswer({ ...answer, notRequired: value });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n // Uncomment useEffect below if any questions have validation added to it.\r\n /* useEffect(() => {\r\n }, [block.isForceEdited]); */\r\n\r\n return (\r\n onQuestionChange(q, a) } />\r\n
    \r\n setCollapsibleAreaShown(value) } text=\"questionnaire.foreignTin.moreOptions\" />\r\n { collapsibleAreaShown && onQuestionChange(q, a) } /> }\r\n
    \r\n
    );\r\n};\r\n\r\nQuestionForeignTinBlock.displayName = 'QuestionForeignTinBlock';\r\n\r\nQuestionForeignTinBlock.propTypes = {\r\n block: PropTypes.shape().isRequired\r\n};\r\n\r\nQuestionForeignTinBlock.defaultProps = {\r\n};\r\n\r\nexport default QuestionForeignTinBlock;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport {\r\n answerBlock\r\n} from 'actions';\r\n\r\nimport Question from 'components/Questionnaires/Question';\r\nimport { QuestionJurisdictionDropDownField, QuestionYesNoField, QuestionNumberField, QuestionTextField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator, rangeValidator, validateQuestion } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionTreatyClaimBlock = ({ block, preQualAnswers }) => {\r\n const dispatch = useDispatch();\r\n const [answer, setAnswer] = useState(block?.answers ?? {});\r\n\r\n const [claimed, setClaimed] = useState({\r\n id: 'claimed',\r\n label: 'questionnaire.treatyClaim.claimed.label',\r\n component: QuestionYesNoField,\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.treatyClaim.claimed.errorMessage' }\r\n ]\r\n },\r\n answer: answer?.claimed\r\n });\r\n const [country, setCountry] = useState({\r\n id: 'country',\r\n label: 'questionnaire.treatyClaim.country.label',\r\n info: {\r\n instructions: 'questionnaire.treatyClaim.country.info'\r\n },\r\n component: QuestionJurisdictionDropDownField,\r\n componentProps: {\r\n treatiesOnly: true\r\n },\r\n visible: (bAnswers, qAnswers, pAnswers) => bAnswers?.claimed === 'Yes',\r\n answer: answer?.country,\r\n });\r\n const [specialRatesClaimed, setSpecialRatesClaimed] = useState({\r\n id: 'specialRatesClaimed',\r\n label: 'questionnaire.treatyClaim.specialRatesClaimed.label',\r\n component: QuestionYesNoField,\r\n visible: (bAnswers, qAnswers, pAnswers) => bAnswers?.claimed === 'Yes' && bAnswers?.country,\r\n info: {\r\n instructions: 'questionnaire.treatyClaim.specialRatesClaimed.info'\r\n },\r\n answer: answer?.specialRatesClaimed\r\n });\r\n const [whdRate, setWhdRate] = useState({\r\n id: 'whdRate',\r\n label: 'questionnaire.treatyClaim.whdRate.label',\r\n component: QuestionNumberField,\r\n componentProps: {\r\n min: 0,\r\n max: 100\r\n },\r\n visible: (bAnswers, qAnswers, pAnswers) => bAnswers?.claimed === 'Yes' && bAnswers?.specialRatesClaimed === 'Yes',\r\n info: {\r\n instructions: 'questionnaire.treatyClaim.whdRate.info'\r\n },\r\n answer: answer?.whdRate\r\n });\r\n const [incomeType, setIncomeType] = useState({\r\n id: 'incomeType',\r\n label: 'questionnaire.treatyClaim.incomeType.label',\r\n component: QuestionTextField,\r\n visible: (bAnswers, qAnswers, pAnswers) => bAnswers?.claimed === 'Yes' && bAnswers?.specialRatesClaimed === 'Yes',\r\n info: {\r\n instructions: 'questionnaire.treatyClaim.incomeType.info'\r\n },\r\n answer: answer?.incomeType\r\n });\r\n const [articleParagraph, setArticleParagraph] = useState({\r\n id: 'articleParagraph',\r\n label: 'questionnaire.treatyClaim.articleParagraph.label',\r\n component: QuestionTextField,\r\n visible: (bAnswers, qAnswers, pAnswers) => bAnswers?.claimed === 'Yes' && bAnswers?.specialRatesClaimed === 'Yes',\r\n info: {\r\n instructions: 'questionnaire.treatyClaim.articleParagraph.info'\r\n },\r\n answer: answer?.articleParagraph\r\n });\r\n const [explanation, setExplanation] = useState({\r\n id: 'explanation',\r\n label: 'questionnaire.treatyClaim.explanation.label',\r\n component: QuestionTextField,\r\n visible: (bAnswers, qAnswers, pAnswers) => bAnswers?.claimed === 'Yes' && bAnswers?.specialRatesClaimed === 'Yes',\r\n info: {\r\n instructions: 'questionnaire.treatyClaim.explanation.info'\r\n },\r\n answer: answer?.explanation\r\n });\r\n\r\n const blockIdentifier = useMemo(() => ((block && block.id) ? `${ block.id }${ block.index !== undefined ? (`.${ block.index }`) : '' }` : undefined), [block.index]);\r\n\r\n const isValid = () => {\r\n let valid = false;\r\n if (claimed.answer === undefined) {\r\n return undefined;\r\n }\r\n\r\n if (claimed.answer === 'No') {\r\n valid = true;\r\n } else if (claimed.answer === 'Yes') {\r\n if (country.answer === undefined) {\r\n return undefined;\r\n }\r\n if (country.isValid === true) {\r\n if (!specialRatesClaimed.answer) {\r\n return undefined;\r\n }\r\n if (specialRatesClaimed.answer === 'Yes') {\r\n if (whdRate.isValid === undefined || incomeType.isValid === undefined || articleParagraph.isValid === undefined || explanation.isValid === undefined) {\r\n return undefined;\r\n }\r\n return whdRate.isValid && incomeType.isValid && articleParagraph.isValid && explanation.isValid;\r\n }\r\n if (specialRatesClaimed.answer === 'No') {\r\n valid = true;\r\n }\r\n }\r\n }\r\n return valid;\r\n };\r\n\r\n const getRequiredValidator = errorMessage => ({ validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: errorMessage }\r\n ]\r\n } });\r\n\r\n const getWhdRateValidator = () => ({ validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.treatyClaim.whdRate.errorMessage' },\r\n { condition: rangeValidator, message: 'questionnaire.treatyClaim.whdRate.rangeErrorMessage' }\r\n ]\r\n } });\r\n\r\n const onQuestionChange = (q, value) => {\r\n switch (q.id) {\r\n case 'claimed': {\r\n const newClaimed = { ...q, answer: value };\r\n validateQuestion(newClaimed);\r\n setClaimed(newClaimed);\r\n\r\n const countryValidation = value === 'Yes' ? getRequiredValidator('questionnaire.treatyClaim.country.errorMessage') : undefined;\r\n const countryChanges = value === 'No' ? { answer: undefined, isValid: undefined, errorMessages: undefined } : {};\r\n const newCountry = { ...country, ...countryValidation, ...countryChanges };\r\n validateQuestion(newCountry);\r\n setCountry(newCountry);\r\n setAnswer(value === 'Yes' ? { ...answer, claimed: value } : { claimed: value });\r\n break;\r\n }\r\n case 'country': {\r\n const newCountry = { ...q, answer: value };\r\n validateQuestion(newCountry);\r\n setCountry(newCountry);\r\n\r\n const hasValue = value !== undefined && value !== '';\r\n const srValidation = hasValue ? getRequiredValidator('questionnaire.treatyClaim.specialRatesClaimed.errorMessage') : undefined;\r\n setSpecialRatesClaimed({ ...specialRatesClaimed, ...srValidation });\r\n const changes = { country: value, specialRatesClaimed: hasValue ? answer.specialRatesClaimed : undefined };\r\n setAnswer({ ...answer, ...changes });\r\n break;\r\n }\r\n case 'specialRatesClaimed': {\r\n const newSpecialRatesClaimed = { ...q, answer: value };\r\n validateQuestion(newSpecialRatesClaimed);\r\n setSpecialRatesClaimed(newSpecialRatesClaimed);\r\n\r\n const hasValue = value === 'Yes';\r\n const rateValidation = hasValue ? getWhdRateValidator() : undefined;\r\n const incomeTypeValidation = hasValue ? getRequiredValidator('questionnaire.treatyClaim.incomeType.errorMessage') : undefined;\r\n const articleValidation = hasValue ? getRequiredValidator('questionnaire.treatyClaim.articleParagraph.errorMessage') : undefined;\r\n const explanationValidation = hasValue ? getRequiredValidator('questionnaire.treatyClaim.explanation.errorMessage') : undefined;\r\n const answerChanges = value === 'No' ? { answer: undefined, isValid: undefined, errorMessages: undefined } : {};\r\n setWhdRate({ ...whdRate, ...rateValidation, ...answerChanges });\r\n setIncomeType({ ...incomeType, ...incomeTypeValidation, ...answerChanges });\r\n setArticleParagraph({ ...articleParagraph, ...articleValidation, ...answerChanges });\r\n setExplanation({ ...explanation, ...explanationValidation, ...answerChanges });\r\n setAnswer({ ...answer, specialRatesClaimed: value });\r\n break;\r\n }\r\n case 'whdRate': {\r\n const newWhdRate = { ...q, answer: value };\r\n validateQuestion(newWhdRate);\r\n setWhdRate(newWhdRate);\r\n setAnswer({ ...answer, whdRate: value });\r\n break;\r\n }\r\n case 'incomeType': {\r\n const newIncomeType = { ...q, answer: value };\r\n validateQuestion(newIncomeType);\r\n setIncomeType(newIncomeType);\r\n setAnswer({ ...answer, incomeType: value });\r\n break;\r\n }\r\n case 'articleParagraph': {\r\n const newArticleParagraph = { ...q, answer: value };\r\n validateQuestion(newArticleParagraph);\r\n setArticleParagraph(newArticleParagraph);\r\n setAnswer({ ...answer, articleParagraph: value });\r\n break;\r\n }\r\n case 'explanation': {\r\n const newExplanation = { ...q, answer: value };\r\n validateQuestion(newExplanation);\r\n setExplanation(newExplanation);\r\n setAnswer({ ...answer, explanation: value });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n dispatch(answerBlock(block.id, answer, isValid()));\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n if (claimed.answer !== block.answers?.claimed) {\r\n onQuestionChange(claimed, block.answers?.claimed);\r\n }\r\n if (country.answer !== block.answers?.country) {\r\n onQuestionChange(country, block.answers?.country);\r\n }\r\n if (specialRatesClaimed.answer !== block.answers?.specialRatesClaimed) {\r\n onQuestionChange(specialRatesClaimed, block.answers?.specialRatesClaimed);\r\n }\r\n if (whdRate.answer !== block.answers?.whdRate) {\r\n onQuestionChange(whdRate, block.answers?.whdRate);\r\n }\r\n if (incomeType.answer !== block.answers?.incomeType) {\r\n onQuestionChange(incomeType, block.answers?.incomeType);\r\n }\r\n if (articleParagraph.answer !== block.answers?.articleParagraph) {\r\n onQuestionChange(articleParagraph, block.answers?.articleParagraph);\r\n }\r\n if (explanation.answer !== block.answers?.explanation) {\r\n onQuestionChange(explanation, block.answers?.explanation);\r\n }\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n if (answer?.claimed === undefined) {\r\n onQuestionChange({ ...claimed, isForceEdited: true }, '');\r\n }\r\n if (answer?.claimed === 'Yes' && !answer?.country) {\r\n onQuestionChange({ ...country, isForceEdited: true }, '');\r\n }\r\n if (answer?.claimed === 'Yes' && answer?.country !== undefined && answer?.specialRatesClaimed === undefined) {\r\n onQuestionChange({ ...specialRatesClaimed, isForceEdited: true }, '');\r\n }\r\n if (answer?.specialRatesClaimed === 'Yes' && !answer?.whdRate) {\r\n onQuestionChange({ ...whdRate, isForceEdited: true }, '');\r\n }\r\n if (answer?.specialRatesClaimed === 'Yes' && !answer?.incomeType) {\r\n onQuestionChange({ ...incomeType, isForceEdited: true }, '');\r\n }\r\n if (answer?.specialRatesClaimed === 'Yes' && !answer?.articleParagraph) {\r\n onQuestionChange({ ...articleParagraph, isForceEdited: true }, '');\r\n }\r\n if (answer?.specialRatesClaimed === 'Yes' && !answer?.explanation) {\r\n onQuestionChange({ ...explanation, isForceEdited: true }, '');\r\n }\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return (\r\n onQuestionChange(q, a) } />\r\n { country.visible(block.answers, {}, preQualAnswers) && onQuestionChange(q, a) } /> }\r\n { specialRatesClaimed.visible(block.answers, {}, preQualAnswers) && onQuestionChange(q, a) }\r\n /> }\r\n { whdRate.visible(block.answers, {}, preQualAnswers) && onQuestionChange(q, a) } /> }\r\n { incomeType.visible(block.answers, {}, preQualAnswers) && onQuestionChange(q, a) } /> }\r\n { articleParagraph.visible(block.answers, {}, preQualAnswers) && onQuestionChange(q, a) }\r\n /> }\r\n { explanation.visible(block.answers, {}, preQualAnswers) && onQuestionChange(q, a) } /> }\r\n );\r\n};\r\n\r\nQuestionTreatyClaimBlock.displayName = 'QuestionTreatyClaimBlock';\r\n\r\nQuestionTreatyClaimBlock.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n preQualAnswers: PropTypes.shape()\r\n};\r\n\r\nQuestionTreatyClaimBlock.defaultProps = {\r\n preQualAnswers: null\r\n};\r\n\r\nexport default QuestionTreatyClaimBlock;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\nimport isEqual from 'lodash/isEqual';\r\n\r\nimport {\r\n answerBlock\r\n} from 'actions';\r\n\r\nimport Question from 'components/Questionnaires/Question';\r\nimport { QuestionTextField, QuestionDropDownField, QuestionJurisdictionDropDownField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator, validateQuestion } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionTaxResidenceBlock = ({ block, onAnswer, preQualAnswers }) => {\r\n const dispatch = useDispatch();\r\n const { reasonItems, reasonOtherValue } = block.componentProps ?? {};\r\n const [answer, setAnswer] = useState(block?.answers ?? {});\r\n\r\n const [country, setCountry] = useState({\r\n id: 'country',\r\n label: 'questionnaire.taxResidence.country.label',\r\n component: QuestionJurisdictionDropDownField,\r\n visible: true,\r\n validation: block.componentProps?.optional !== true ? {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.taxResidence.country.errorMessage' }\r\n ]\r\n } : null,\r\n });\r\n\r\n const tin = {\r\n id: 'tin',\r\n label: 'questionnaire.taxResidence.tin.label',\r\n component: QuestionTextField,\r\n info: block?.componentProps?.info ?? {\r\n instructions: 'questionnaire.foreignTin.info'\r\n },\r\n visible: true,\r\n };\r\n\r\n const [reason, setReason] = useState({\r\n id: 'reason',\r\n label: 'questionnaire.taxResidence.reason.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: reasonItems ?? 'questionnaire.taxResidence.reasons',\r\n },\r\n otherValue: reasonOtherValue,\r\n className: 'col-12',\r\n visible: true,\r\n });\r\n\r\n const [reasonExplanation, setReasonExplanation] = useState({\r\n id: 'reasonExplanation',\r\n label: 'questionnaire.taxResidence.reasonExplanation.label',\r\n component: QuestionTextField,\r\n className: 'col-12',\r\n visible: (bAnswers, qAnswers, pAnswers) => bAnswers?.reason === 'B' || bAnswers?.reason === '3',\r\n });\r\n\r\n const blockIdentifier = useMemo(() => ((block && block.id) ? `${ block.id }${ block.index !== undefined ? (`.${ block.index }`) : '' }` : undefined), [block.index]);\r\n\r\n const isValid = () => {\r\n if (block.componentProps?.optional !== true) {\r\n if (country.answer === undefined) {\r\n return undefined;\r\n }\r\n return country.answer !== '';\r\n }\r\n if (reason.answer !== undefined) {\r\n if (reason.answer === 'B') {\r\n if (reasonExplanation.answer === undefined) {\r\n return undefined;\r\n }\r\n return reasonExplanation.isValid;\r\n }\r\n }\r\n return true;\r\n };\r\n\r\n useEffect(() => {\r\n if (!onAnswer || typeof onAnswer !== 'function') {\r\n dispatch(answerBlock(block.id, answer, isValid()));\r\n } else {\r\n onAnswer(block, answer, isValid());\r\n }\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n if (isEqual(answer, block.answers ?? {})) {\r\n return;\r\n }\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n const reasonExplanationValidator = { validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.taxResidence.reasonExplanation.errorMessage' }\r\n ]\r\n } };\r\n\r\n const onQuestionChange = (q, value) => {\r\n switch (q.id) {\r\n case 'country': {\r\n const newCountry = { ...q, answer: value };\r\n validateQuestion(newCountry);\r\n setCountry(newCountry);\r\n setAnswer({ ...answer, country: value });\r\n break;\r\n }\r\n case 'tin': {\r\n setAnswer({ ...answer, tin: value });\r\n break;\r\n }\r\n case 'reason': {\r\n const newReason = { ...q, answer: value };\r\n const isReasonB = value === 'B';\r\n if (isReasonB) {\r\n newReason.className = 'col-6';\r\n } else {\r\n newReason.className = 'col-12';\r\n }\r\n setReason(newReason);\r\n const explanationValidator = isReasonB ? reasonExplanationValidator : undefined;\r\n setReasonExplanation({ ...reasonExplanation, ...explanationValidator, className: isReasonB ? 'col-6' : 'col-12' });\r\n const newAnswers = { reason: value };\r\n if (!isReasonB) {\r\n setReasonExplanation({ ...reasonExplanation, ...{ answer: undefined, isValid: undefined } });\r\n newAnswers.reasonExplanation = undefined;\r\n }\r\n setAnswer({ ...answer, ...newAnswers });\r\n break;\r\n }\r\n case 'reasonExplanation': {\r\n const newExplanation = { ...q, answer: value };\r\n validateQuestion(newExplanation);\r\n setReasonExplanation(newExplanation);\r\n setAnswer({ ...answer, reasonExplanation: value });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n if (block.componentProps?.optional !== true && answer?.country === undefined) {\r\n onQuestionChange({ ...country, isForceEdited: true }, '');\r\n }\r\n if (answer?.reason === 'B' && !answer?.reasonExplanation) {\r\n onQuestionChange({ ...reasonExplanation, isForceEdited: true }, '');\r\n }\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return (
    \r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n { reasonExplanation.visible(block?.answers, {}, preQualAnswers) && onQuestionChange(q, a) }\r\n /> }\r\n
    );\r\n};\r\n\r\nQuestionTaxResidenceBlock.displayName = 'QuestionTaxResidenceBlock';\r\n\r\nQuestionTaxResidenceBlock.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n onAnswer: PropTypes.func,\r\n preQualAnswers: PropTypes.shape()\r\n};\r\n\r\nQuestionTaxResidenceBlock.defaultProps = {\r\n onAnswer: null,\r\n preQualAnswers: null\r\n};\r\n\r\nexport default QuestionTaxResidenceBlock;\r\n","import React, { useRef, useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useIntl } from 'react-intl';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport {\r\n answerBlock\r\n} from 'actions';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport { HintButton } from 'components/Common/Buttons';\r\n\r\nexport const QuestionBlockRepeater = ({ block, onAnswer, preQualAnswers, messageValues }) => {\r\n const dispatch = useDispatch();\r\n const intl = useIntl();\r\n\r\n const [, setForceRender] = useState(null);\r\n const [answer, setAnswer] = useState(null);\r\n const [showInstructions, setShowInstructions] = useState(false);\r\n\r\n const viewInstructions = () => {\r\n setShowInstructions(!showInstructions);\r\n };\r\n\r\n const formatInstructions = (info) => {\r\n const { instructions } = info;\r\n\r\n if (typeof instructions === 'string') {\r\n return ;\r\n }\r\n\r\n if (Array.isArray(instructions) && instructions.every(instruction => typeof instruction === 'string')) {\r\n return (\r\n
    \r\n {instructions.map(instruction => (\r\n
    \r\n \r\n
    \r\n ))}\r\n
    \r\n );\r\n }\r\n\r\n return instructions;\r\n };\r\n\r\n const blocks = useRef([]);\r\n\r\n const onBlockAnswer = (targetBlock, value, isValid) => {\r\n const blockIndex = blocks.current.findIndex(b => b.block.index === targetBlock.index);\r\n if (blockIndex > -1) {\r\n const newBlock = { ...blocks.current[blockIndex].block, ...{ answers: value, isValid } };\r\n blocks.current[blockIndex].block = newBlock;\r\n blocks.current[blockIndex].component = React.createElement(newBlock.component, {\r\n block: newBlock,\r\n onAnswer: onBlockAnswer,\r\n preQualAnswers,\r\n messageValues\r\n });\r\n setAnswer(blocks.current.map(b => b.block.answers || {}));\r\n }\r\n };\r\n\r\n const defaultBlocks = () => {\r\n if (block.minSize > 0) {\r\n return Array.from({ length: block.minSize ?? 0 }, (_, i) => {\r\n const newBlock = Object.assign({ index: i, answers: {} }, block.repeatBlock);\r\n return {\r\n block: newBlock,\r\n component: React.createElement(newBlock.component, {\r\n block: newBlock,\r\n onAnswer: onBlockAnswer,\r\n preQualAnswers,\r\n messageValues\r\n }),\r\n hidden: false\r\n };\r\n });\r\n }\r\n return [];\r\n };\r\n\r\n const onAddBlock = () => {\r\n const newBlocks = [...blocks.current];\r\n const nextIndex = blocks.current.length === 0 ? 0 : blocks.current[blocks.current.length - 1].block.index + 1;\r\n setAnswer([...answer, { index: nextIndex }]);\r\n const newBlock = Object.assign({ index: nextIndex }, block.repeatBlock);\r\n\r\n if (block.componentProps?.collapsible === true) {\r\n newBlocks.forEach((x, i) => { x.hidden = i >= (block.minSize ?? 0); });\r\n }\r\n\r\n newBlocks.push({\r\n block: newBlock,\r\n component: React.createElement(newBlock.component, {\r\n block: newBlock,\r\n onAnswer: onBlockAnswer,\r\n preQualAnswers,\r\n messageValues\r\n }),\r\n hidden: false\r\n });\r\n blocks.current = newBlocks;\r\n };\r\n\r\n const onRemoveBlock = (i) => {\r\n const newAnswer = [...answer];\r\n newAnswer.splice(i, 1);\r\n setAnswer(newAnswer);\r\n const newBlocks = [...blocks.current];\r\n newBlocks.splice(i, 1);\r\n\r\n if (block.componentProps?.collapsible === true) {\r\n newBlocks.forEach((x, xi) => { x.hidden = xi >= (block.minSize ?? 0); });\r\n if (i > 0) {\r\n newBlocks[i - 1].hidden = false;\r\n } else if (newBlocks.length > 0) {\r\n newBlocks[0].hidden = false;\r\n }\r\n }\r\n\r\n blocks.current = newBlocks;\r\n };\r\n\r\n const onExpandCollapseClick = (index, hidden) => {\r\n if (block.componentProps?.collapsible === true) {\r\n blocks.current.forEach((x, xi) => { x.hidden = xi >= (block.minSize ?? 0); });\r\n blocks.current[index].hidden = hidden;\r\n setForceRender(new Date().getTime());\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const initialBlocks = defaultBlocks();\r\n blocks.current = [...initialBlocks];\r\n setAnswer(new Array(block.minSize).fill({}));\r\n }, []);\r\n\r\n const isValid = () => {\r\n if (blocks.current.every(b => b.block.isValid === undefined)) {\r\n return undefined;\r\n }\r\n return !blocks.current.some(b => b.block.isValid === false);\r\n };\r\n\r\n useEffect(() => {\r\n if (!onAnswer || typeof onAnswer !== 'function') {\r\n dispatch(answerBlock(block.id, answer, isValid()));\r\n } else {\r\n onAnswer(block, answer, isValid());\r\n }\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n for (let i = 0; i < blocks.current.length; i += 1) {\r\n const newBlock = { ...blocks.current[i].block, ...{ isForceEdited: true } };\r\n blocks.current[i].block = newBlock;\r\n blocks.current[i].component = React.createElement(newBlock.component, {\r\n block: newBlock,\r\n onAnswer: onBlockAnswer,\r\n preQualAnswers,\r\n messageValues\r\n });\r\n }\r\n setForceRender(new Date().getTime());\r\n } else if (block.isForceEdited === undefined) {\r\n let reRender = false;\r\n for (let i = 0; i < blocks.current.length; i += 1) {\r\n if (blocks.current[i].block.isForceEdited === true) {\r\n reRender = true;\r\n const newBlock = { ...blocks.current[i].block, ...{ isForceEdited: undefined } };\r\n blocks.current[i].block = newBlock;\r\n blocks.current[i].component = React.createElement(newBlock.component, {\r\n block: newBlock,\r\n onAnswer: onBlockAnswer,\r\n preQualAnswers,\r\n messageValues\r\n });\r\n }\r\n if (reRender) {\r\n setForceRender(new Date().getTime());\r\n }\r\n }\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return (\r\n
    \r\n { blocks.current.map((bl, i) =>
    \r\n \r\n { block.componentProps?.collapsible && bl.block.index >= (block.minSize ?? 0) && \r\n \r\n

    { bl.block.title && }

    \r\n
    }\r\n {bl.block.info?.instructions && viewInstructions() } />}\r\n {(i + 1) > (block.minSize ?? 0) && onRemoveBlock(i) }\r\n title={ intl.formatMessage({ id: 'questionnaire.repeater.remove' }) }\r\n aria-label={ intl.formatMessage({ id: 'questionnaire.repeater.remove' }) }\r\n >\r\n \r\n }\r\n
    \r\n
    \r\n {showInstructions &&
    {formatInstructions(bl.block.info)}
    }\r\n
    \r\n
    \r\n { bl.component }\r\n
    \r\n
    ) }\r\n {\r\n (!block.maxSize || blocks.current.length < block.maxSize)\r\n && onAddBlock() }\r\n title={ intl.formatMessage({ id: 'questionnaire.repeater.add' }) }\r\n aria-label={ intl.formatMessage({ id: 'questionnaire.repeater.add' }) }\r\n >\r\n { block.addText && }\r\n \r\n }\r\n
    \r\n );\r\n};\r\n\r\nQuestionBlockRepeater.displayName = 'QuestionBlockRepeater';\r\n\r\nQuestionBlockRepeater.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n onAnswer: PropTypes.func,\r\n preQualAnswers: PropTypes.shape(),\r\n messageValues: PropTypes.shape(),\r\n};\r\n\r\nQuestionBlockRepeater.defaultProps = {\r\n onAnswer: null,\r\n preQualAnswers: null,\r\n messageValues: {}\r\n};\r\n\r\nexport default QuestionBlockRepeater;\r\n","import React, { useRef, useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useIntl } from 'react-intl';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport {\r\n answerBlock\r\n} from 'actions';\r\n\r\nimport Question from 'components/Questionnaires/Question';\r\nimport { validateQuestion } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionRepeater = ({ block, preQualAnswers, messageValues }) => {\r\n const dispatch = useDispatch();\r\n const intl = useIntl();\r\n\r\n const [, setForceRender] = useState(null);\r\n const [answer, setAnswer] = useState(null);\r\n const questions = useRef([]);\r\n\r\n const onQuestionChange = (targetQuestion, value) => {\r\n const questionIndex = questions.current.findIndex(b => b.question.index === targetQuestion.index);\r\n if (questionIndex > -1) {\r\n const newQuestion = { ...questions.current[questionIndex].question, ...{ answer: value } };\r\n validateQuestion(newQuestion);\r\n questions.current[questionIndex].question = newQuestion;\r\n questions.current[questionIndex].component = onQuestionChange(question, changedValue) }\r\n />;\r\n setAnswer(questions.current.map(b => b.question.answer || {}));\r\n }\r\n };\r\n\r\n const defaultQuestions = () => {\r\n if (block.minSize > 0) {\r\n return Array.from({ length: block.minSize ?? 0 }, (_, i) => {\r\n const newQuestion = Object.assign({ index: i, answer: undefined }, block.question);\r\n return {\r\n question: newQuestion,\r\n component: onQuestionChange(question, changedValue) }\r\n />\r\n };\r\n });\r\n }\r\n return [];\r\n };\r\n\r\n const onAddQuestion = () => {\r\n const newQuestions = [...questions.current];\r\n const nextIndex = questions.current.length === 0 ? 0 : questions.current[questions.current.length - 1].question.index + 1;\r\n setAnswer([...answer, undefined]);\r\n const newQuestion = Object.assign({ index: nextIndex }, block.question);\r\n newQuestions.push({\r\n question: newQuestion,\r\n component: onQuestionChange(question, changedValue) }\r\n />\r\n });\r\n questions.current = newQuestions;\r\n };\r\n\r\n const onRemoveQuestion = (i) => {\r\n const newAnswer = [...answer];\r\n newAnswer.splice(i, 1);\r\n setAnswer(newAnswer);\r\n const newQuestions = [...questions.current];\r\n newQuestions.splice(i, 1);\r\n questions.current = newQuestions;\r\n };\r\n\r\n useEffect(() => {\r\n const initialQuestions = defaultQuestions();\r\n questions.current = [...initialQuestions];\r\n setAnswer(new Array(block.minSize).fill(undefined));\r\n }, []);\r\n\r\n useEffect(() => {\r\n dispatch(answerBlock(block.id, answer, !questions.current.some(b => b.question.isValid === false)));\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n for (let i = 0; i < questions.current.length; i += 1) {\r\n const newQuestion = { ...questions.current[i].question, ...{ answer: questions.current[i].question.answer ?? '', isForceEdited: true } };\r\n validateQuestion(newQuestion);\r\n questions.current[i].question = newQuestion;\r\n questions.current[i].component = onQuestionChange(question, changedValue) }\r\n />;\r\n }\r\n setAnswer(questions.current.map(b => b.question.answer || {}));\r\n setForceRender(new Date().getTime());\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return
    \r\n { questions.current.map((q, i) =>
    \r\n
    \r\n
    \r\n { q.component }\r\n
    \r\n
    \r\n { (i + 1) > (block.minSize ?? 0) && }\r\n
    \r\n
    \r\n
    ) }\r\n { (!block.maxSize || questions.current.length < block.maxSize) && }\r\n
    ;\r\n};\r\n\r\nQuestionRepeater.displayName = 'QuestionRepeater';\r\n\r\nQuestionRepeater.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n preQualAnswers: PropTypes.shape(),\r\n messageValues: PropTypes.shape(),\r\n};\r\n\r\nQuestionRepeater.defaultProps = {\r\n preQualAnswers: null,\r\n messageValues: {}\r\n};\r\n\r\nexport default QuestionRepeater;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport {\r\n answerBlock\r\n} from 'actions';\r\n\r\nimport Question from 'components/Questionnaires/Question';\r\nimport { QuestionTextField, QuestionDropDownField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator, validateQuestion } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionControllingPersonEntityBlock = ({ block, onAnswer, preQualAnswers }) => {\r\n const dispatch = useDispatch();\r\n\r\n const [answer, setAnswer] = useState(block.answers ?? {});\r\n\r\n const [entityName, setEntityName] = useState({\r\n id: 'entityName',\r\n component: QuestionTextField,\r\n label: 'questionnaire.crs.cp.entityName.label',\r\n info: {\r\n instructions: 'questionnaire.crs.cp.entityName.info',\r\n },\r\n visible: true,\r\n answer: answer?.entityName\r\n });\r\n const [control, setControl] = useState({\r\n id: 'control',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.crs.cp.controls',\r\n },\r\n label: 'questionnaire.crs.cp.controls.label',\r\n info: {\r\n instructions: 'questionnaire.crs.cp.controls.info',\r\n },\r\n visible: true,\r\n answer: answer?.control\r\n });\r\n const [nature, setNature] = useState({\r\n id: 'nature',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: '',\r\n },\r\n label: '',\r\n info: {\r\n instructions: '',\r\n },\r\n visible: (bAnswers, qAnswers, pAnswers) => bAnswers.control !== undefined && bAnswers.control !== '',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: '' }\r\n ]\r\n },\r\n answer: answer?.nature\r\n });\r\n\r\n const entityNameValidation = {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.cp.entityName.errorMessage' }\r\n ]\r\n };\r\n\r\n const controlValidation = {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.cp.controls.errorMessage' }\r\n ]\r\n };\r\n\r\n const blockIdentifier = useMemo(() => ((block && block.id) ? `${ block.id }${ block.index !== undefined ? (`.${ block.index }`) : '' }` : undefined), [block.index]);\r\n\r\n useEffect(() => {\r\n let isValid;\r\n if (entityName.answer !== undefined || control.answer !== undefined || nature.answer !== undefined) {\r\n if ((entityName.isValid === true && !entityName.answer && control.isValid === true && !control.answer)\r\n || (entityName.isValid === undefined && control.isValid === true && !control.answer)) {\r\n isValid = true;\r\n } else {\r\n isValid = entityName.isValid === true && control.isValid === true && nature.isValid === true;\r\n }\r\n }\r\n if (!onAnswer || typeof onAnswer !== 'function') {\r\n dispatch(answerBlock(block.id, answer, isValid));\r\n } else {\r\n onAnswer(block, answer, isValid);\r\n }\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n const updateDependentQuestion = (existingQuestion, setState, required, errorMessage) => {\r\n const newValidation = required\r\n ? { validation: { conditions: [{ condition: requiredValidator, message: errorMessage }] } }\r\n : { validation: { conditions: undefined } };\r\n const newQuestion = {\r\n ...existingQuestion,\r\n isValid: undefined,\r\n errorMessages: undefined,\r\n componentProps: { ...existingQuestion.componentProps },\r\n ...newValidation\r\n };\r\n\r\n validateQuestion(newQuestion);\r\n setState(newQuestion);\r\n\r\n return newQuestion;\r\n };\r\n\r\n const updateEntityName = (controlAnswer) => {\r\n const newEntityName = updateDependentQuestion(\r\n entityName,\r\n setEntityName,\r\n controlAnswer || entityName.answer,\r\n 'questionnaire.crs.cp.entityName.errorMessage'\r\n );\r\n\r\n return newEntityName;\r\n };\r\n\r\n const updateControl = (entityNameAnswer) => {\r\n const newControl = updateDependentQuestion(\r\n control,\r\n setControl,\r\n entityNameAnswer || control.answer,\r\n 'questionnaire.crs.cp.controls.errorMessage'\r\n );\r\n\r\n return newControl;\r\n };\r\n\r\n const onQuestionChange = (q, value) => {\r\n switch (q.id) {\r\n case 'entityName': {\r\n const applyValidation = (value != null && value !== '') || (control.answer != null && control.answer !== '');\r\n const newEntityName = { ...q, answer: value, validation: applyValidation ? entityNameValidation : null };\r\n validateQuestion(newEntityName);\r\n setEntityName(newEntityName);\r\n const newControl = updateControl(value);\r\n setAnswer({\r\n ...answer,\r\n entityName: value,\r\n control: newControl?.answer ?? undefined\r\n });\r\n break;\r\n }\r\n case 'control': {\r\n const applyValidation = (value != null && value !== '') || (entityName.answer != null && entityName.answer !== '');\r\n const newControl = { ...q, answer: value, validation: applyValidation ? controlValidation : null };\r\n validateQuestion(newControl);\r\n setControl(newControl);\r\n const newEntityName = updateEntityName(value);\r\n setAnswer({\r\n ...answer,\r\n control: value,\r\n entityName: newEntityName?.answer ?? undefined,\r\n nature: undefined\r\n });\r\n\r\n const newNature = { ...nature, answer: '', isValid: undefined, errorMessages: undefined };\r\n switch (value) {\r\n case 'LegalPerson':\r\n newNature.label = 'questionnaire.crs.cp.nature.person.label';\r\n newNature.componentProps.items = 'questionnaire.crs.cp.natures.person';\r\n newNature.validation.conditions[0].message = 'questionnaire.crs.cp.nature.person.errorMessage';\r\n newNature.otherValue = 'OtherMeans';\r\n break;\r\n case 'Trust':\r\n newNature.label = 'questionnaire.crs.cp.nature.trust.label';\r\n newNature.componentProps.items = 'questionnaire.crs.cp.natures.trust';\r\n newNature.validation.conditions[0].message = 'questionnaire.crs.cp.nature.trust.errorMessage';\r\n newNature.otherValue = 'Other';\r\n break;\r\n case 'LegalArrangement':\r\n newNature.label = 'questionnaire.crs.cp.nature.arrangement.label';\r\n newNature.componentProps.items = 'questionnaire.crs.cp.natures.arrangement';\r\n newNature.validation.conditions[0].message = 'questionnaire.crs.cp.nature.arrangement.errorMessage';\r\n newNature.otherValue = 'Other-Equivalent';\r\n break;\r\n default:\r\n break;\r\n }\r\n setNature(newNature);\r\n break;\r\n }\r\n case 'nature': {\r\n const newNature = { ...q, answer: value };\r\n validateQuestion(newNature);\r\n setNature(newNature);\r\n setAnswer({ ...answer, nature: value });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n if (!answer?.entityName) {\r\n onQuestionChange({ ...entityName, isForceEdited: true }, '');\r\n }\r\n if (!answer?.control) {\r\n onQuestionChange({ ...control, isForceEdited: true }, '');\r\n }\r\n if (!answer?.nature) {\r\n onQuestionChange({ ...nature, isForceEdited: true }, '');\r\n }\r\n }\r\n\r\n if (block.isForceEdited === undefined) {\r\n if (entityName.isForceEdited === true) {\r\n setEntityName({ ...entityName, isForceEdited: undefined });\r\n }\r\n if (control.isForceEdited === true) {\r\n setControl({ ...control, isForceEdited: undefined });\r\n }\r\n if (nature.isForceEdited === true) {\r\n setNature({ ...nature, isForceEdited: undefined });\r\n }\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return (\r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n { typeof nature.visible === 'function' && nature.visible(answer) && onQuestionChange(q, a) } /> }\r\n );\r\n};\r\n\r\nQuestionControllingPersonEntityBlock.displayName = 'QuestionControllingPersonEntityBlock';\r\n\r\nQuestionControllingPersonEntityBlock.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n onAnswer: PropTypes.func,\r\n preQualAnswers: PropTypes.shape()\r\n};\r\n\r\nQuestionControllingPersonEntityBlock.defaultProps = {\r\n onAnswer: null,\r\n preQualAnswers: null\r\n};\r\n\r\nexport default QuestionControllingPersonEntityBlock;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport {\r\n answerBlock\r\n} from 'actions';\r\n\r\nimport Question from 'components/Questionnaires/Question';\r\nimport { QuestionTextField, QuestionDropDownField, QuestionYesNoField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator, validateQuestion } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionW9TaxClassificationBlock = ({ block }) => {\r\n const dispatch = useDispatch();\r\n\r\n const [answer, setAnswer] = useState(block.answers ?? { classification: '1' });\r\n\r\n const [classification, setClassification] = useState({\r\n id: 'classification',\r\n label: 'questionnaire.W9.taxClassification.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.W9.taxClassification.items',\r\n },\r\n default: '1',\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.W9.taxClassification.errorMessage' }\r\n ]\r\n },\r\n answer: answer?.classification\r\n });\r\n const [llcClassification, setLlcClassification] = useState({\r\n id: 'llcClassification',\r\n label: 'questionnaire.W9.llcClassification.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.W9.llcClassification.items'\r\n },\r\n visible: blockAnswers => blockAnswers?.classification === '6', // LLC Classification\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.W9.llcClassification.errorMessage' }\r\n ]\r\n },\r\n answer: answer?.llcClassification\r\n });\r\n const [otherClassification, setOtherClassification] = useState({\r\n id: 'otherClassification',\r\n label: 'questionnaire.W9.otherClassification.label',\r\n placeholder: 'questionnaire.W9.otherClassification.placeholder',\r\n component: QuestionTextField,\r\n visible: blockAnswers => blockAnswers?.classification === '7', // Other Classification\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.W9.otherClassification.errorMessage' }\r\n ]\r\n },\r\n answer: answer?.otherClassification\r\n });\r\n const [hasForeignPartners, setHasForeignPartners] = useState({\r\n id: 'hasForeignPartners',\r\n label: 'questionnaire.W9.hasForeignPartners.label',\r\n info: {\r\n instructions: 'questionnaire.W9.hasForeignPartners.info'\r\n },\r\n component: QuestionYesNoField,\r\n visible: blockAnswers => blockAnswers?.classification === '4' || blockAnswers?.classification === '5' || (blockAnswers?.classification === '6' && blockAnswers?.llcClassification === '3'),\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.W9.hasForeignPartners.errorMessage' }\r\n ]\r\n },\r\n answer: answer?.hasForeignPartners\r\n });\r\n\r\n const blockIdentifier = useMemo(() => ((block && block.id) ? `${ block.id }${ block.index !== undefined ? (`.${ block.index }`) : '' }` : undefined), [block.index]);\r\n\r\n const isValid = () => {\r\n switch (classification.answer) {\r\n case '4':\r\n case '5':\r\n return hasForeignPartners.answer === undefined ? undefined : hasForeignPartners.answer !== '';\r\n case '6':\r\n if (llcClassification.answer === '3') {\r\n return hasForeignPartners.answer === undefined ? undefined : hasForeignPartners.answer !== '';\r\n }\r\n return llcClassification.answer === undefined ? undefined : llcClassification.answer !== '';\r\n case '7':\r\n return otherClassification.answer === undefined ? undefined : otherClassification.answer !== '';\r\n default:\r\n return true;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n dispatch(answerBlock(block.id, answer, isValid()));\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n const onQuestionChange = (q, value) => {\r\n switch (q.id) {\r\n case 'classification': {\r\n const newClassification = { ...q, answer: value };\r\n validateQuestion(newClassification);\r\n setClassification(newClassification);\r\n const newAnswers = { classification: value };\r\n if (value !== '6') {\r\n setLlcClassification(Object.assign(llcClassification, { answer: undefined, isValid: undefined, errorMessages: undefined }));\r\n newAnswers.llcClassification = undefined;\r\n }\r\n if (value !== '7') {\r\n setOtherClassification(Object.assign(otherClassification, { answer: undefined, isValid: undefined, errorMessages: undefined }));\r\n newAnswers.otherClassification = undefined;\r\n }\r\n if (value !== '4' && value !== '5' && value !== '6') {\r\n setHasForeignPartners(Object.assign(hasForeignPartners, { answer: undefined, isValid: undefined, errorMessages: undefined }));\r\n newAnswers.hasForeignPartners = undefined;\r\n }\r\n setAnswer({ ...answer, ...newAnswers });\r\n break;\r\n }\r\n case 'llcClassification': {\r\n const newLlcClassification = Object.assign(q, { answer: value });\r\n validateQuestion(newLlcClassification);\r\n setLlcClassification(newLlcClassification);\r\n setAnswer({ ...answer, llcClassification: value });\r\n break;\r\n }\r\n case 'otherClassification': {\r\n const newOtherClassification = Object.assign(q, { answer: value });\r\n validateQuestion(newOtherClassification);\r\n setOtherClassification(newOtherClassification);\r\n setAnswer({ ...answer, otherClassification: value });\r\n break;\r\n }\r\n case 'hasForeignPartners': {\r\n const newHasForeignPartners = Object.assign(q, { answer: value });\r\n validateQuestion(newHasForeignPartners);\r\n setHasForeignPartners(newHasForeignPartners);\r\n setAnswer({ ...answer, hasForeignPartners: value });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n if (answer?.classification === undefined || answer.classification === '') {\r\n onQuestionChange({ ...classification, isForceEdited: true }, '');\r\n }\r\n if (answer?.classification === '6' && (answer?.llcClassification === undefined || answer?.llcClassification === '')) {\r\n onQuestionChange({ ...llcClassification, isForceEdited: true }, '');\r\n }\r\n if (answer?.classification === '7' && (answer?.otherClassification === undefined || answer?.otherClassification === '')) {\r\n onQuestionChange({ ...otherClassification, isForceEdited: true }, '');\r\n }\r\n if ((answer?.classification === '4' || answer?.classification === '5' || (answer?.classification === '6' && answer?.llcClassification === '3'))\r\n && (answer?.hasForeignPartners === undefined || answer?.hasForeignPartners === '')) {\r\n onQuestionChange({ ...hasForeignPartners, isForceEdited: true }, '');\r\n }\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return (\r\n onQuestionChange(q, a) } />\r\n { llcClassification.visible(block.answers) && onQuestionChange(q, a) } /> }\r\n { otherClassification.visible(block.answers) && onQuestionChange(q, a) } /> }\r\n { hasForeignPartners.visible(block.answers) && onQuestionChange(q, a) } /> }\r\n );\r\n};\r\n\r\nQuestionW9TaxClassificationBlock.displayName = 'QuestionW9TaxClassificationBlock';\r\n\r\nQuestionW9TaxClassificationBlock.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n};\r\n\r\nexport default QuestionW9TaxClassificationBlock;\r\n","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\nimport moment from 'moment';\r\nimport format from 'date-fns/format';\r\n\r\nimport {\r\n answerBlock\r\n} from 'actions';\r\n\r\nimport QuestionnaireType from 'common/questionnaires/QuestionnaireType';\r\nimport QuestionBlock from 'components/Questionnaires/QuestionBlock';\r\nimport Question from 'components/Questionnaires/Question';\r\nimport { QuestionAddressBlock, QuestionBlockRepeater, QuestionTaxResidenceBlock } from 'components/Questionnaires/blocks';\r\nimport { QuestionTextField, QuestionDateDropdownField, QuestionDropDownField, QuestionJurisdictionDropDownField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator, validateQuestion } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionControllingPersonBlock = ({ block, onAnswer, preQualAnswers }) => {\r\n const dispatch = useDispatch();\r\n const [answer, setAnswer] = useState(block?.answers ?? {});\r\n\r\n const [firstName, setFirstName] = useState({\r\n id: 'firstName',\r\n label: 'questionnaire.crs.name.firstName.label',\r\n component: QuestionTextField,\r\n info: {\r\n instructions: 'questionnaire.crs.name.firstName.info'\r\n },\r\n className: 'col-12 col-lg-6',\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.name.firstName.errorMessage' }\r\n ]\r\n }\r\n });\r\n\r\n const [middleName, setMiddleName] = useState({\r\n id: 'middleName',\r\n label: 'questionnaire.crs.name.middleName.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-6',\r\n visible: true,\r\n });\r\n\r\n const [lastName, setLastName] = useState({\r\n id: 'lastName',\r\n label: 'questionnaire.crs.name.lastName.label',\r\n component: QuestionTextField,\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.name.lastName.errorMessage' }\r\n ]\r\n }\r\n });\r\n\r\n const [birthDate, setBirthDate] = useState({\r\n id: 'birthDate',\r\n label: 'questionnaire.birth.date.label',\r\n component: QuestionDateDropdownField,\r\n componentProps: {\r\n minDate: format(moment().subtract(125, 'years').toDate(), 'dd-MM-yyyy'),\r\n maxDate: format(moment().subtract(1, 'days').toDate(), 'dd-MM-yyyy'),\r\n dateFormat: 'dd-MM-yyyy',\r\n showToolTip: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.birth.date.info'\r\n },\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.birth.date.errorMessage' }\r\n ]\r\n }\r\n });\r\n\r\n const [birthCountry, setBirthCountry] = useState({\r\n id: 'birthCountry',\r\n label: 'questionnaire.birth.country.label',\r\n component: QuestionJurisdictionDropDownField,\r\n className: 'col-12 col-lg-6',\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.birth.country.errorMessage' }\r\n ]\r\n }\r\n });\r\n\r\n const [birthTown, setBirthTown] = useState({\r\n id: 'birthTown',\r\n label: 'questionnaire.birth.town.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-6',\r\n visible: true,\r\n });\r\n\r\n const [type, setType] = useState({\r\n id: 'type',\r\n label: 'questionnaire.fatcacrs.e.cp.type.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.fatcacrs.e.cp.type.items'\r\n },\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.fatcacrs.e.cp.type.errorMessage' }\r\n ]\r\n }\r\n });\r\n\r\n const [address, setAddress] = useState({\r\n id: 'address',\r\n title: 'questionnaire.address',\r\n component: QuestionAddressBlock,\r\n info: {\r\n instructions: 'questionnaire.address.1.info'\r\n },\r\n className: 'p-0 no-border nested',\r\n linkBlock: true,\r\n visible: true,\r\n });\r\n\r\n const [mailingAddress, setMailingAddress] = useState({\r\n id: 'mailingAddress',\r\n title: 'questionnaire.mailingAddress',\r\n component: QuestionAddressBlock,\r\n componentProps: {\r\n line1Label: 'questionnaire.mailingAddress.1.label',\r\n optional: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.mailingAddress.1.info'\r\n },\r\n className: 'p-0 no-border nested',\r\n linkBlock: true,\r\n visible: true\r\n });\r\n\r\n const [taxResidences, setTaxResidences] = useState({\r\n id: 'taxResidences',\r\n component: QuestionBlockRepeater,\r\n componentProps: {\r\n collapsible: true\r\n },\r\n className: 'no-border p-0',\r\n expandCollapse: false,\r\n repeatBlock: {\r\n id: 'taxResidence',\r\n title: 'questionnaire.taxResidence',\r\n component: QuestionTaxResidenceBlock,\r\n componentProps: {\r\n optional: true\r\n }\r\n },\r\n minSize: 0,\r\n maxSize: 3,\r\n addText: 'questionnaire.taxResidences.addLabel',\r\n visible: true,\r\n });\r\n\r\n const isEmptyObject = (obj) => {\r\n if (!obj) {\r\n return true;\r\n }\r\n let isEmpty = true;\r\n Object.keys(obj).forEach((key) => {\r\n if (obj[key]) {\r\n isEmpty = false;\r\n }\r\n });\r\n return isEmpty;\r\n };\r\n\r\n const isValid = () => {\r\n if (firstName.answer === undefined\r\n || lastName.answer === undefined\r\n || birthDate.answer === undefined\r\n || birthCountry.answer === undefined\r\n || type.answer === undefined\r\n || address.answer === undefined\r\n || taxResidences.answer === undefined) {\r\n return undefined;\r\n }\r\n return firstName.isValid\r\n && lastName.isValid\r\n && birthDate.isValid\r\n && birthCountry.isValid\r\n && type.isValid\r\n && (!isEmptyObject(address.answer) && address.isValid)\r\n && (!mailingAddress.answer || mailingAddress.isValid)\r\n && (!taxResidences.answer || taxResidences.answer.length > 0);\r\n };\r\n\r\n const onBlockAnswer = (b, a, v) => {\r\n switch (b.id) {\r\n case 'address': {\r\n const newBlock = { ...b, ...{ answer: a, isValid: v } };\r\n setAddress(newBlock);\r\n setAnswer({ ...answer, address: a });\r\n break;\r\n }\r\n case 'mailingAddress': {\r\n const newBlock = { ...b, ...{ answer: a, isValid: v } };\r\n setMailingAddress(newBlock);\r\n setAnswer({ ...answer, mailingAddress: a });\r\n break;\r\n }\r\n case 'taxResidences': {\r\n const newBlock = { ...b, ...{ answer: a, isValid: v } };\r\n setTaxResidences(newBlock);\r\n setAnswer({ ...answer, taxResidences: a });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!onAnswer || typeof onAnswer !== 'function') {\r\n dispatch(answerBlock(block.id, answer, isValid()));\r\n } else {\r\n onAnswer(block, answer, isValid());\r\n }\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n const onQuestionChange = (q, value) => {\r\n switch (q.id) {\r\n case 'firstName': {\r\n const newQuestion = { ...q, answer: value };\r\n validateQuestion(newQuestion);\r\n setFirstName(newQuestion);\r\n setAnswer({ ...answer, firstName: value });\r\n break;\r\n }\r\n case 'middleName': {\r\n const newQuestion = { ...q, answer: value };\r\n validateQuestion(newQuestion);\r\n setMiddleName(newQuestion);\r\n setAnswer({ ...answer, middleName: value });\r\n break;\r\n }\r\n case 'lastName': {\r\n const newQuestion = { ...q, answer: value };\r\n validateQuestion(newQuestion);\r\n setLastName(newQuestion);\r\n setAnswer({ ...answer, lastName: value });\r\n break;\r\n }\r\n case 'birthDate': {\r\n const newQuestion = { ...q, answer: value };\r\n validateQuestion(newQuestion);\r\n setBirthDate(newQuestion);\r\n setAnswer({ ...answer, birthDate: value });\r\n break;\r\n }\r\n case 'birthCountry': {\r\n const newQuestion = { ...q, answer: value };\r\n validateQuestion(newQuestion);\r\n setBirthCountry(newQuestion);\r\n setAnswer({ ...answer, birthCountry: value });\r\n break;\r\n }\r\n case 'birthTown': {\r\n const newQuestion = { ...q, answer: value };\r\n validateQuestion(newQuestion);\r\n setBirthTown(newQuestion);\r\n setAnswer({ ...answer, birthTown: value });\r\n break;\r\n }\r\n case 'type': {\r\n const newQuestion = { ...q, answer: value };\r\n validateQuestion(newQuestion);\r\n setType(newQuestion);\r\n setAnswer({ ...answer, type: value });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n if (!answer?.firstName) {\r\n onQuestionChange({ ...firstName, isForceEdited: true }, '');\r\n }\r\n if (!answer?.lastName) {\r\n onQuestionChange({ ...lastName, isForceEdited: true }, '');\r\n }\r\n if (!answer?.birthDate) {\r\n onQuestionChange({ ...birthDate, isForceEdited: true }, '');\r\n }\r\n if (!answer?.birthCountry) {\r\n onQuestionChange({ ...birthCountry, isForceEdited: true }, '');\r\n }\r\n if (!answer?.type) {\r\n onQuestionChange({ ...type, isForceEdited: true }, '');\r\n }\r\n if (!answer.address || isEmptyObject(answer.address)) {\r\n const newBlock = { ...address, ...{ isForceEdited: true } };\r\n setAddress(newBlock);\r\n }\r\n if (answer.mailingAddress) {\r\n const newBlock = { ...mailingAddress, ...{ isForceEdited: true } };\r\n setMailingAddress(newBlock);\r\n }\r\n if (!answer.taxResidences || answer.taxResidences.length > 0) {\r\n const newBlock = { ...taxResidences, ...{ isForceEdited: true } };\r\n setTaxResidences(newBlock);\r\n }\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return (
    \r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    );\r\n};\r\n\r\nQuestionControllingPersonBlock.displayName = 'QuestionControllingPersonBlock';\r\n\r\nQuestionControllingPersonBlock.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n onAnswer: PropTypes.func,\r\n preQualAnswers: PropTypes.shape()\r\n};\r\n\r\nQuestionControllingPersonBlock.defaultProps = {\r\n onAnswer: null,\r\n preQualAnswers: null\r\n};\r\n\r\nexport default QuestionControllingPersonBlock;\r\n","import React, { useEffect, useState, useMemo, useRef } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { answerBlock } from 'actions';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport Question from 'components/Questionnaires/Question';\r\nimport { QuestionDropDownField, QuestionYesNoField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator, validateQuestion, isRequired } from 'components/Questionnaires/validators';\r\nimport GetDictionaryArray from 'common/language/intlArrayHelper';\r\nimport showQuestion from 'components/Questionnaires/questions';\r\n\r\n// Hook\r\nfunction usePrevious(value) {\r\n // The ref object is a generic container whose current property is mutable ...\r\n // ... and can hold any value, similar to an instance property on a class\r\n const ref = useRef();\r\n // Store current value in ref\r\n useEffect(() => {\r\n ref.current = value;\r\n }, [value]); // Only re-run if value changes\r\n // Return previous value (happens before update in useEffect above)\r\n return ref.current;\r\n}\r\n\r\nexport const QuestionEntityTypeBlock = ({ block, onAnswer }) => {\r\n const dispatch = useDispatch();\r\n const { id, index, disabled } = block;\r\n const { formType } = useParams(window.location.href);\r\n\r\n const getValidCh4Combos = (validCh3Combos) => {\r\n const reversedObject = {};\r\n\r\n Object.entries(validCh3Combos).forEach(([key, array]) => {\r\n array.forEach((item) => {\r\n reversedObject[item] = reversedObject[item] ? [...reversedObject[item], key] : [key];\r\n });\r\n });\r\n\r\n return reversedObject;\r\n };\r\n\r\n const ch3Dictionary = GetDictionaryArray('questionnaire.ch3.items')[0] ?? [];\r\n const ch4Dictionary = GetDictionaryArray('questionnaire.ch4.items')[0] ?? [];\r\n const validCh3Combos = useSelector(state => state?.app?.onlineConfig?.validCh3Ch4Combinations[formType]) ?? [];\r\n const validCh4Combos = useMemo(() => getValidCh4Combos(validCh3Combos), [validCh3Combos]);\r\n\r\n const getStatuses = (dictionary, validCombos) => {\r\n const uniqueValues = Object.keys(validCombos);\r\n const result = uniqueValues.map((statusKey) => {\r\n const status = dictionary.find(item => item.value === statusKey);\r\n if (!status) {\r\n return null;\r\n }\r\n const { value, label, description } = status;\r\n return Object.assign({\r\n value,\r\n label,\r\n description\r\n });\r\n });\r\n\r\n return result;\r\n };\r\n\r\n const ch4Statuses = useMemo(() => getStatuses(ch4Dictionary, validCh4Combos), [ch4Dictionary]);\r\n const ch3Statuses = useMemo(() => getStatuses(ch3Dictionary, validCh3Combos), [ch3Dictionary]);\r\n\r\n const getValidStatuses = (answer, statuses, combos) => {\r\n if (!answer) {\r\n return statuses;\r\n }\r\n\r\n const validKeys = combos[answer];\r\n if (!validKeys) {\r\n return statuses;\r\n }\r\n\r\n const result = validKeys.map(key => statuses.find(element => element.value === key));\r\n return result;\r\n };\r\n\r\n const getValidCh3Statuses = ch4Answer => getValidStatuses(ch4Answer, ch3Statuses, validCh4Combos);\r\n const getValidCh4Statuses = ch3Answer => getValidStatuses(ch3Answer, ch4Statuses, validCh3Combos);\r\n\r\n const isComboValid = (ch3Answer, ch4Answer) => {\r\n if (!ch3Answer || !ch4Answer) {\r\n return false;\r\n }\r\n\r\n return validCh3Combos[ch3Answer].includes(ch4Answer);\r\n };\r\n\r\n const defaultCh3Option = useMemo(() => ch3Dictionary.find(item => item.value === ''), [ch3Dictionary]);\r\n const defaultCh4Option = useMemo(() => ch4Dictionary.find(item => item.value === ''), [ch4Dictionary]);\r\n\r\n const [answer, setAnswer] = useState(block?.answers ?? {});\r\n\r\n const defaultEntityTypeState = (questionId, defaultOption, allOptions) => ({\r\n id: questionId,\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: [defaultOption, ...allOptions],\r\n preventTranslation: true\r\n },\r\n className: 'col-6',\r\n label: `questionnaire.entityType.${ questionId }.label`,\r\n visible: true,\r\n disabled: disabled ?? undefined,\r\n validation: { conditions: [{ condition: requiredValidator, message: `questionnaire.entityType.${ questionId }.errorMessage` }] },\r\n answer: answer[questionId]\r\n });\r\n\r\n const [ch3Status, setCh3Status] = useState(defaultEntityTypeState('ch3Status', defaultCh3Option, ch3Statuses));\r\n const [ch4Status, setCh4Status] = useState(defaultEntityTypeState('ch4Status', defaultCh4Option, ch4Statuses));\r\n const prevCh3Status = usePrevious(ch3Status);\r\n const prevCh4Status = usePrevious(ch4Status);\r\n\r\n const validHybridEntityCh3 = ['DisregardedEntity', 'Partnership', 'SimpleTrust', 'GrantorTrust'];\r\n\r\n const isHybridEntityVisible = ch3 => validHybridEntityCh3.includes(ch3);\r\n\r\n const [hybridEntity, setHybridEntity] = useState({\r\n id: 'hybridEntity',\r\n component: QuestionYesNoField,\r\n label: 'questionnaire.entityType.hybridEntity.label',\r\n disabled: block.disabled ?? undefined,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.entityType.hybridEntity.errorMessage' }\r\n ]\r\n },\r\n answer: answer?.dreName,\r\n visible: false\r\n });\r\n\r\n const blockIdentifier = useMemo(() => ((block && id) ? `${ id }${ index !== undefined ? (`.${ index }`) : '' }` : undefined), [index]);\r\n const qAnswers = useSelector(state => state?.questionnaires?.formQuestionnaire?.answers);\r\n\r\n const isQuestionValid = (question) => {\r\n if (!showQuestion(question, block?.answers, qAnswers)) {\r\n return true;\r\n }\r\n\r\n if (!isRequired(question)) {\r\n return !question.answer || question.isValid;\r\n }\r\n\r\n if (question.answer === undefined) {\r\n return undefined;\r\n }\r\n\r\n return question.isValid;\r\n };\r\n\r\n const isValid = () => {\r\n const hybridEntityValid = isQuestionValid(hybridEntity);\r\n const ch3Valid = isQuestionValid(ch3Status);\r\n const ch4Valid = isQuestionValid(ch4Status);\r\n\r\n return ch3Valid && ch4Valid && isComboValid(ch3Status?.answer, ch4Status?.answer) && hybridEntityValid;\r\n };\r\n\r\n useEffect(() => {\r\n if (!onAnswer || typeof onAnswer !== 'function') {\r\n dispatch(answerBlock(block.id, answer, isValid()));\r\n } else {\r\n onAnswer(block, answer, isValid());\r\n }\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n useEffect(() => {\r\n if (prevCh3Status?.answer !== ch3Status.answer) {\r\n setCh4Status({ ...ch4Status,\r\n componentProps: {\r\n items: [defaultCh4Option, ...getValidCh4Statuses(ch3Status.answer)],\r\n preventTranslation: true\r\n } });\r\n }\r\n }, [ch3Status]);\r\n\r\n useEffect(() => {\r\n if (prevCh4Status?.answer !== ch4Status.answer) {\r\n setCh3Status({ ...ch3Status,\r\n componentProps: {\r\n items: [defaultCh3Option, ...getValidCh3Statuses(ch4Status.answer)],\r\n preventTranslation: true\r\n } });\r\n }\r\n }, [ch4Status]);\r\n\r\n const onChapter3Change = (question, value) => {\r\n const newCh3Status = { ...question, answer: value };\r\n validateQuestion(newCh3Status);\r\n setCh3Status(newCh3Status);\r\n const newAnswer = { ch3Status: value };\r\n const hybridVisible = isHybridEntityVisible(value);\r\n const newHybridEntity = { visible: hybridVisible };\r\n if (!hybridVisible) {\r\n newHybridEntity.answer = undefined;\r\n newHybridEntity.isValid = undefined;\r\n newHybridEntity.errorMessages = undefined;\r\n newAnswer.hybridEntity = undefined;\r\n }\r\n setHybridEntity({ ...hybridEntity, ...newHybridEntity });\r\n\r\n setAnswer({ ...answer, ...newAnswer });\r\n };\r\n\r\n const onChapter4Change = (question, value) => {\r\n const newCh4Status = { ...question, answer: value };\r\n validateQuestion(newCh4Status);\r\n setCh4Status(newCh4Status);\r\n setAnswer({ ...answer, ch4Status: value });\r\n };\r\n\r\n const onHybridEntityChange = (question, value) => {\r\n const newHybridEntity = { ...question, answer: value };\r\n validateQuestion(newHybridEntity);\r\n setHybridEntity(newHybridEntity);\r\n setAnswer({ ...answer, hybridEntity: value });\r\n };\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n if (!answer?.ch3Status) {\r\n onChapter3Change({ ...ch3Status, isForceEdited: true }, '');\r\n }\r\n if (!answer?.ch4Status) {\r\n onChapter4Change({ ...ch4Status, isForceEdited: true }, '');\r\n }\r\n if (!answer?.hybridEntity) {\r\n onHybridEntityChange({ ...hybridEntity, isForceEdited: true }, '');\r\n }\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n const getAnswerLabel = status => status.componentProps.items.find(element => element.value === status.answer).label ?? '';\r\n const getAnswerDescription = status => status.componentProps.items.find(element => element.value === status.answer).description ?? '';\r\n\r\n const showCertificationMessage = ch3Status?.answer || ch4Status?.answer;\r\n\r\n const renderSelectedEntityTypeDescription = status => (\r\n \r\n
    \r\n

    \r\n
    \r\n
    \r\n
    \r\n );\r\n\r\n return (\r\n \r\n onChapter3Change(q, a) } />\r\n onChapter4Change(q, a) } />\r\n { showCertificationMessage &&

    }\r\n { ch3Status?.answer && renderSelectedEntityTypeDescription(ch3Status) }\r\n { ch4Status?.answer && renderSelectedEntityTypeDescription(ch4Status) }\r\n {showQuestion(hybridEntity, block?.answers)\r\n && onHybridEntityChange(q, a) }\r\n />}\r\n
    \r\n );\r\n};\r\n\r\nQuestionEntityTypeBlock.displayName = 'QuestionEntityTypeBlock';\r\n\r\nQuestionEntityTypeBlock.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n onAnswer: PropTypes.func\r\n};\r\n\r\nQuestionEntityTypeBlock.defaultProps = {\r\n onAnswer: null,\r\n};\r\n\r\nexport default QuestionEntityTypeBlock;\r\n","const igaModel = Object.freeze({\r\n NoIga: 1,\r\n Model1AIga: 2,\r\n Model1BIga: 3,\r\n Model2Iga: 4,\r\n UsTerritory: 5,\r\n Us: 6\r\n});\r\n\r\nexport default igaModel;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { answerBlock } from 'actions';\r\n\r\nimport QuestionnaireType from 'common/questionnaires/QuestionnaireType';\r\nimport QuestionBlock from 'components/Questionnaires/QuestionBlock';\r\nimport Question from 'components/Questionnaires/Question';\r\nimport showQuestion from 'components/Questionnaires/questions';\r\nimport { QuestionGiinBlock, QuestionFtinBlock } from 'components/Questionnaires/blocks';\r\nimport { QuestionUsTinField } from 'components/Questionnaires/fields';\r\nimport { isEmptyObject, lengthValidator, validateQuestion, sameCharacterValidator, sequentialIntegerValidator, isBlockFullyValid, setValidators } from 'components/Questionnaires/validators';\r\nimport { jurisdictionIgaModel } from 'common/jurisdictions/jurisdictionsHelper';\r\nimport igaModel from 'common/forms/igaModel';\r\n\r\nexport const QuestionTaxIdentificationNumbersBlock = ({ block, onAnswer }) => {\r\n const dispatch = useDispatch();\r\n const { id, index, componentProps } = block;\r\n const { usTinProps, ftinProps } = componentProps || {};\r\n const { info: usTinInfo, required: usTinIsRequired } = usTinProps || {};\r\n const { required: ftinIsRequired } = ftinProps || {};\r\n const qAnswers = useSelector(state => state?.questionnaires?.formQuestionnaire?.answers);\r\n\r\n const blockIdentifier = useMemo(() => ((block && id) ? `${ id }${ index !== undefined ? (`.${ index }`) : '' }` : undefined), [index]);\r\n const [answer, setAnswer] = useState(block.answers ?? {});\r\n const [unvalidateBlock, setUnvalidateBlock] = useState(false);\r\n\r\n const jurisdictions = useSelector(state => state?.app?.staticData?.jurisdictions ?? []);\r\n\r\n const isGiinVisible = () => {\r\n const countryIgaModel = jurisdictionIgaModel(qAnswers?.nonReportingIgaFfi?.country, jurisdictions);\r\n\r\n if (qAnswers?.entityType?.ch4Status.toLowerCase() === 'nonreportingigaffi') {\r\n if (qAnswers?.nonReportingIgaFfi?.igaSubclassification === 'RdcFiSpInvtEntityControlledForeignCorp114715') {\r\n return true;\r\n }\r\n\r\n if (qAnswers?.nonReportingIgaFfi?.igaSubclassification === 'CdcFiFfiTrusteeDocumentedTrust' && qAnswers?.nonReportingIgaFfi?.isUSTrustee === 'No') {\r\n return true;\r\n }\r\n\r\n const validIgaSubClassifications = [\r\n 'CdcFiFfiSpInvtEntityControlledForeignCorp', 'CdcFiFfiRegisteredQualifiedCreditCardIssuer', 'RdcFiRegisteredQualifiedCreditCardIssuer114715',\r\n 'CdcFiFfiCollectiveInvtVehicle', 'RdcFiQualifiedCollectiveInvtVehicle114715', 'RdcFiFiLocalClientBase',\r\n 'SmallFinancialInstitutionWithLocalClientBase', 'RdcFiSmallFiLocalClientBase'\r\n ];\r\n\r\n if (countryIgaModel === igaModel.Model2Iga) {\r\n return validIgaSubClassifications.includes(qAnswers?.nonReportingIgaFfi?.igaSubclassification);\r\n }\r\n }\r\n\r\n const validCh4Statuses = [\r\n 'ParticipatingFfi', 'ReportingModel1Ffi', 'ReportingModel2Ffi', 'RegisteredDeemedCompliantFfi',\r\n 'DirectReportingNffe', 'SponsoredFfi', 'SponsoredDirectReportingNffe',\r\n ];\r\n\r\n return validCh4Statuses.includes(qAnswers?.entityType?.ch4Status);\r\n };\r\n\r\n const isTinRequired = () => {\r\n if (typeof usTinIsRequired === 'boolean') {\r\n return usTinIsRequired;\r\n }\r\n if (typeof usTinIsRequired === 'function') {\r\n return usTinIsRequired(qAnswers);\r\n }\r\n return false;\r\n };\r\n\r\n const isFtinRequired = () => {\r\n if (typeof ftinIsRequired === 'boolean') {\r\n return ftinIsRequired;\r\n }\r\n if (typeof ftinIsRequired === 'function') {\r\n return ftinIsRequired(qAnswers);\r\n }\r\n return false;\r\n };\r\n\r\n const getUsTinInfo = () => {\r\n if (!usTinInfo) return 'questionnaire.usTin.tin.info';\r\n if (typeof usTinInfo === 'function') {\r\n return usTinInfo(qAnswers) ?? 'questionnaire.usTin.tin.info';\r\n }\r\n if (typeof usTinInfo === 'string') {\r\n return usTinInfo;\r\n }\r\n return 'questionnaire.usTin.tin.info';\r\n };\r\n\r\n const giinCustomParameters = {};\r\n giinCustomParameters.jurisdictions = jurisdictions;\r\n\r\n const [giin, setGiin] = useState({\r\n id: 'giin',\r\n component: QuestionGiinBlock,\r\n expandCollapse: false,\r\n className: 'pl-3 pr-3 pt-0 pb-0 mt-0 no-border nested',\r\n visible: () => isGiinVisible(),\r\n });\r\n\r\n const [ftin, setFtin] = useState({\r\n id: 'ftin',\r\n component: QuestionFtinBlock,\r\n expandCollapse: false,\r\n className: 'pl-3 pr-3 pt-0 pb-0 mt-0 no-border nested',\r\n visible: true,\r\n componentProps: {\r\n required: false\r\n },\r\n });\r\n\r\n const onBlockAnswer = (b, a, v) => {\r\n switch (b.id) {\r\n case 'giin': {\r\n const newBlock = { ...b, ...{ answer: a, isValid: v } };\r\n setGiin(newBlock);\r\n setAnswer({ ...answer, giin: a });\r\n break;\r\n }\r\n case 'ftin': {\r\n const newBlock = { ...b, ...{ answer: a, isValid: v } };\r\n setFtin(newBlock);\r\n setAnswer({ ...answer, ftin: a });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const [usTin, setUsTin] = useState({\r\n id: 'usTin',\r\n component: QuestionUsTinField,\r\n componentProps: {\r\n tinFormat: 'EIN',\r\n length: 9\r\n },\r\n label: 'questionnaire.usTin',\r\n info: {\r\n instructions: () => getUsTinInfo()\r\n },\r\n visible: true,\r\n validation: setValidators(isTinRequired(), [\r\n { condition: lengthValidator, message: 'questionnaire.usTin.tin.lengthErrorMessage' },\r\n { condition: sameCharacterValidator, message: 'questionnaire.usTin.tin.sameCharErrorMessage' },\r\n { condition: sequentialIntegerValidator, message: 'questionnaire.usTin.tin.sequentialErrorMessage' },\r\n ], 'questionnaire.usTin.tin.requiredErrorMessage'),\r\n answer: answer?.usTin\r\n });\r\n\r\n const onUsTinChange = (question, value, setAns = true) => {\r\n const newUsTin = { ...question, answer: value };\r\n validateQuestion(newUsTin);\r\n setUsTin(newUsTin);\r\n if (setAns) {\r\n setAnswer({ ...answer, usTin: value });\r\n }\r\n };\r\n\r\n const isBlockValid = () => {\r\n const subBlocks = [ftin];\r\n if (isGiinVisible()) {\r\n subBlocks.push(giin);\r\n }\r\n const questions = [usTin];\r\n const result = isBlockFullyValid(subBlocks, questions, block?.answers, qAnswers, !isGiinVisible());\r\n return result;\r\n };\r\n\r\n useEffect(() => {\r\n if (!onAnswer || typeof onAnswer !== 'function') {\r\n dispatch(answerBlock(block.id, answer, isBlockValid()));\r\n } else {\r\n onAnswer(block, answer, isBlockValid());\r\n }\r\n }, [answer, qAnswers?.nonReportingIgaFfi, qAnswers?.entityType]);\r\n\r\n useEffect(() => {\r\n const validValue = isTinRequired() ? undefined : isBlockValid();\r\n if (!onAnswer || typeof onAnswer !== 'function') {\r\n dispatch(answerBlock(block.id, answer, validValue));\r\n } else {\r\n onAnswer(block, answer, validValue);\r\n }\r\n setUnvalidateBlock(false);\r\n }, [unvalidateBlock === true]);\r\n\r\n useEffect(() => {\r\n let newAnswer = { ...answer };\r\n const giinVisible = isGiinVisible();\r\n const giinChanges = { validation: setValidators(isGiinVisible(), [{ condition: lengthValidator, message: 'questionnaire.giin.lengthErrorMessage' }], 'questionnaire.giin.errorMessage') };\r\n if (!giinVisible && answer.giin) {\r\n giinChanges.answer = undefined;\r\n giinChanges.isValid = undefined;\r\n giinChanges.errorMessages = undefined;\r\n newAnswer = { ...newAnswer, giin: undefined };\r\n }\r\n setGiin({ ...giin, ...giinChanges });\r\n\r\n const tinChanges = {\r\n validation: setValidators(isTinRequired(), [\r\n { condition: lengthValidator, message: 'questionnaire.usTin.tin.lengthErrorMessage' },\r\n { condition: sameCharacterValidator, message: 'questionnaire.usTin.tin.sameCharErrorMessage' },\r\n { condition: sequentialIntegerValidator, message: 'questionnaire.usTin.tin.sequentialErrorMessage' },\r\n ], 'questionnaire.usTin.tin.requiredErrorMessage'),\r\n info: {\r\n instructions: getUsTinInfo() ?? ''\r\n }\r\n };\r\n if (usTin?.validation?.conditions.length !== tinChanges?.validation?.conditions.length) {\r\n if (isTinRequired() && (usTin.answer === undefined || usTin.answer === '')) {\r\n tinChanges.answer = undefined;\r\n tinChanges.isValid = undefined;\r\n setUnvalidateBlock(true);\r\n } else {\r\n const targetValue = 'questionnaire.usTin.tin.requiredErrorMessage';\r\n const foundIndex = usTin?.errorMessages?.findIndex(message => message === targetValue);\r\n let usTinErrors = { ...usTin.errorMessages };\r\n\r\n if (foundIndex !== undefined && foundIndex !== -1) {\r\n usTinErrors = usTinErrors?.errorMessages?.splice(index, 1);\r\n tinChanges.errorMessages = usTinErrors?.length > 0 ? usTinErrors : undefined;\r\n }\r\n\r\n if ((usTinErrors === undefined || usTinErrors?.length === 0) && usTin.isValid === false) {\r\n if (usTin.answer === '' || usTin.answer === undefined) {\r\n tinChanges.isValid = undefined;\r\n setUnvalidateBlock(true);\r\n }\r\n }\r\n }\r\n }\r\n setUsTin({ ...usTin, ...tinChanges });\r\n\r\n const ftinChanges = {};\r\n ftinChanges.componentProps = { ...ftin.componentProps, required: isFtinRequired() };\r\n if (!ftin.visible && (answer.ftin || answer.ftinNotRequired)) {\r\n ftinChanges.answer = undefined;\r\n ftinChanges.isValid = undefined;\r\n ftinChanges.errorMessages = undefined;\r\n newAnswer = { ...newAnswer, ftin: undefined };\r\n }\r\n setFtin({ ...ftin, ...ftinChanges });\r\n\r\n setAnswer(newAnswer);\r\n }, [answer, qAnswers?.nonReportingIgaFfi, qAnswers?.entityType, qAnswers?.nonqualifiedIntermediary?.isQsl, qAnswers?.qualifiedIntermediary?.entity]);\r\n\r\n useEffect(() => {\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n if (!giin.value || isEmptyObject(answer.giin)) {\r\n const newBlock = { ...giin, ...{ isForceEdited: true } };\r\n setGiin(newBlock);\r\n }\r\n if (!ftin.value || isEmptyObject(answer.ftin)) {\r\n const newBlock = { ...ftin, ...{ isForceEdited: true } };\r\n setFtin(newBlock);\r\n }\r\n const newAnswer = { ...answer };\r\n if (!answer?.usTin) {\r\n onUsTinChange({ ...usTin, isForceEdited: true }, '', false);\r\n newAnswer.usTin = '';\r\n }\r\n setAnswer({ ...newAnswer });\r\n } else {\r\n if (giin.isForceEdited !== block.isForceEdited) {\r\n const newBlock = { ...giin, ...{ isForceEdited: block.isForceEdited } };\r\n setGiin(newBlock);\r\n }\r\n if (ftin.isForceEdited !== block.isForceEdited) {\r\n const newBlock = { ...ftin, ...{ isForceEdited: block.isForceEdited } };\r\n setFtin(newBlock);\r\n }\r\n if (usTin.isForceEdited !== block.isForceEdited) {\r\n setUsTin({ ...usTin, isForceEdited: block.isForceEdited });\r\n }\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return (\r\n \r\n { giin.visible() && }\r\n { showQuestion(usTin, block?.answers, qAnswers) && onUsTinChange(q, a) } /> }\r\n { ftin.visible && }\r\n \r\n );\r\n};\r\n\r\nQuestionTaxIdentificationNumbersBlock.displayName = 'QuestionTaxIdentificationNumbersBlock';\r\n\r\nQuestionTaxIdentificationNumbersBlock.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n onAnswer: PropTypes.func,\r\n};\r\n\r\nQuestionTaxIdentificationNumbersBlock.defaultProps = {\r\n onAnswer: null,\r\n};\r\n\r\nexport default QuestionTaxIdentificationNumbersBlock;\r\n","export default function formatJurisdictions(jurisdictions) {\r\n return jurisdictions?.map(j => ({ key: j.countryCodeAlpha, value: j.isoJurisdictionName })) ?? [];\r\n}\r\n\r\nexport function jurisdictionIgaModel(countryCodeAlpha, jurisdictions) {\r\n if (jurisdictions === null) {\r\n return undefined;\r\n }\r\n return jurisdictions.find(j => j.countryCodeAlpha === countryCodeAlpha)?.igaModel;\r\n}\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport {\r\n answerBlock,\r\n getSpecialRateProvisions,\r\n clearSpecialRateProvisions,\r\n getOtherArticles,\r\n} from 'actions';\r\n\r\nimport QuestionnaireType from 'common/questionnaires/QuestionnaireType';\r\nimport QuestionBlock from 'components/Questionnaires/QuestionBlock';\r\nimport Question from 'components/Questionnaires/Question';\r\nimport GetDictionaryArray from 'common/language/intlArrayHelper';\r\nimport { QuestionCheckBoxField, QuestionDropDownField, QuestionJurisdictionDropDownField } from 'components/Questionnaires/fields';\r\nimport { QuestionBlockRepeater, QuestionTreatySpecialRatesClaimBlock } from 'components/Questionnaires/blocks';\r\nimport { requiredValidator, validateQuestion, isRequired } from 'components/Questionnaires/validators';\r\nimport showQuestion from 'components/Questionnaires/questions';\r\n\r\nexport const QuestionTaxTreatyClaimBlock = ({ block, onAnswer }) => {\r\n const dispatch = useDispatch();\r\n const intl = useIntl();\r\n const [answer, setAnswer] = useState(block?.answers ?? {});\r\n const otherArticlesByCountry = useSelector(state => state?.app?.otherArticles);\r\n const qAnswers = useSelector(state => state?.questionnaires?.formQuestionnaire?.answers);\r\n const lobStaticData = useSelector(state => state?.app?.staticData?.lobs);\r\n const lobArray = useMemo(() => GetDictionaryArray('questionnaire.taxTreatyClaim.limitationOnBenefit.items', intl), []);\r\n\r\n const getLobItems = (countryAnswer) => {\r\n let result = lobArray ?? [];\r\n const otherArticles = otherArticlesByCountry[countryAnswer] ?? [];\r\n if (!otherArticles || otherArticles.length === 0) {\r\n result = result.filter(item => item.value !== 'Other');\r\n }\r\n\r\n if (lobStaticData && lobStaticData.length > 0) {\r\n const countryLob = lobStaticData.find(item => item.countryCodeAlpha === countryAnswer);\r\n if (countryLob) {\r\n const valueMap = result.reduce((map, item) => {\r\n map[item.value] = item;\r\n return map;\r\n }, {});\r\n\r\n const newResult = [];\r\n newResult.push(valueMap['']);\r\n\r\n if (!countryLob.hasLobProvision) {\r\n newResult.push(valueMap.NoLOBArticleInTreaty);\r\n } else {\r\n if (countryLob.government) newResult.push(valueMap.Government);\r\n if (countryLob.taxExempt) newResult.push(valueMap.TaxExempt);\r\n if (countryLob.otherTaxExempt) newResult.push(valueMap.OtherTaxExempt);\r\n if (countryLob.publiclyTradedCorporation) newResult.push(valueMap.PublicTradedCorp);\r\n if (countryLob.subsidiary) newResult.push(valueMap.Subsidiary);\r\n if (countryLob.meetsOwnershipTest) newResult.push(valueMap.OwnershipAndBaseErosion);\r\n if (countryLob.derivativeBenefitsTest) newResult.push(valueMap.DerivativeBenefitsTest);\r\n if (countryLob.activeTradeBusinessTest) newResult.push(valueMap.ActiveTradeOrBusinessTest);\r\n if (countryLob.discretionaryDetermination) newResult.push(valueMap.FavourableDeterminationByUS);\r\n if (countryLob.others) newResult.push(valueMap.Other);\r\n }\r\n\r\n if (newResult.length > 0) {\r\n result = newResult;\r\n }\r\n }\r\n }\r\n\r\n result = result.map(item => Object.assign({ value: item.value, label: item.label }));\r\n\r\n return result;\r\n };\r\n\r\n const getOthers = (countryAnswer) => {\r\n if (!otherArticlesByCountry || !otherArticlesByCountry[countryAnswer]) {\r\n return [];\r\n }\r\n\r\n const otherArticles = otherArticlesByCountry[countryAnswer]\r\n .map(item => Object.assign({ value: item, label: item }));\r\n\r\n return [{ value: '', label: intl.formatMessage({ id: 'questionnaire.taxTreatyClaim.other.placeholder' }) }, ...otherArticles];\r\n };\r\n\r\n const isEmptyObject = (obj) => {\r\n if (!obj) {\r\n return true;\r\n }\r\n let isEmpty = true;\r\n Object.keys(obj).forEach((key) => {\r\n if (obj[key]) {\r\n isEmpty = false;\r\n }\r\n });\r\n return isEmpty;\r\n };\r\n\r\n const [country, setCountry] = useState({\r\n id: 'country',\r\n label: 'questionnaire.taxTreatyClaim.country.label',\r\n component: QuestionJurisdictionDropDownField,\r\n componentProps: {\r\n treatiesOnly: true\r\n },\r\n visible: true,\r\n answer: answer?.country ?? undefined,\r\n });\r\n const [limitationOnBenefit, setLimitationOnBenefit] = useState({\r\n id: 'limitationOnBenefit',\r\n label: 'questionnaire.taxTreatyClaim.limitationOnBenefit.label',\r\n component: QuestionDropDownField,\r\n componentProps:\r\n {\r\n items: [],\r\n preventTranslation: true\r\n },\r\n visible: bAnswers => bAnswers?.country,\r\n answer: answer?.limitationOnBenefit ?? undefined,\r\n });\r\n const [other, setOther] = useState({\r\n id: 'other',\r\n label: 'questionnaire.taxTreatyClaim.other.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: [],\r\n preventTranslation: true\r\n },\r\n visible: bAnswers => bAnswers?.limitationOnBenefit === 'Other',\r\n answer: answer?.other ?? undefined,\r\n });\r\n const [isUsSourceDividends, setIsUsSourceDividends] = useState({\r\n id: 'isUsSourceDividends',\r\n component: QuestionCheckBoxField,\r\n componentProps:\r\n {\r\n option: 'questionnaire.taxTreatyClaim.isUsSourceDividends.label'\r\n },\r\n visible: bAnswers => bAnswers?.country,\r\n answer: answer?.isUsSourceDividends ?? undefined,\r\n });\r\n const [treatySpecialRatesClaims, setTreatySpecialRatesClaims] = useState({\r\n id: 'treatySpecialRatesClaims',\r\n component: QuestionBlockRepeater,\r\n componentProps: {\r\n collapsible: true\r\n },\r\n className: 'no-border fix-indent',\r\n expandCollapse: false,\r\n repeatBlock: {\r\n id: 'treatySpecialRatesClaim',\r\n title: 'questionnaire.treatySpecialRatesClaim',\r\n component: QuestionTreatySpecialRatesClaimBlock,\r\n componentProps: {\r\n optional: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.treatySpecialRatesClaim.info'\r\n },\r\n },\r\n minSize: 0,\r\n maxSize: 1,\r\n addText: 'questionnaire.treatySpecialRatesClaim.addLabel',\r\n visible: bAnswers => bAnswers?.country,\r\n });\r\n\r\n const blockIdentifier = useMemo(() => ((block && block.id) ? `${ block.id }${ block.index !== undefined ? (`.${ block.index }`) : '' }` : undefined), [block.index]);\r\n const isSpecialRatesOpen = () => {\r\n if (!isEmptyObject(treatySpecialRatesClaims?.answer)) {\r\n return true;\r\n }\r\n\r\n const answers = treatySpecialRatesClaims?.answer ? Object.values(treatySpecialRatesClaims?.answer) : [];\r\n if (answers.length > 0) {\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n const getRequiredValidator = errorMessage => ({ validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: errorMessage }\r\n ]\r\n } });\r\n\r\n const isQuestionValid = (question) => {\r\n if (!showQuestion(question, block?.answers, qAnswers)) {\r\n return true;\r\n }\r\n\r\n if (!isRequired(question)) {\r\n return !question.answer || question.isValid;\r\n }\r\n\r\n if (question.answer === undefined) {\r\n return undefined;\r\n }\r\n\r\n return question.isValid;\r\n };\r\n\r\n const isBlockValid = () => {\r\n let forceValidation = false;\r\n if (typeof block.linkBlock === 'boolean') {\r\n forceValidation = block.linkBlock !== true;\r\n }\r\n if (typeof block.linkBlock === 'function') {\r\n forceValidation = block.linkBlock(block.answers, qAnswers) === false;\r\n }\r\n\r\n if (!forceValidation && (!answer || isEmptyObject(answer))) {\r\n return true;\r\n }\r\n\r\n if (block.componentProps?.optional === true && !forceValidation) {\r\n if (!country?.answer) {\r\n return true;\r\n }\r\n }\r\n\r\n if (forceValidation) {\r\n const newCountryValidation = getRequiredValidator('questionnaire.taxTreatyClaim.country.errorMessage');\r\n const newCountry = { ...country, ...newCountryValidation };\r\n setCountry(newCountry);\r\n }\r\n\r\n const isCountryValid = isQuestionValid(country);\r\n const isLimitationOnBenefitValid = isQuestionValid(limitationOnBenefit);\r\n const isOtherValid = isQuestionValid(other);\r\n if (isCountryValid === undefined && isLimitationOnBenefitValid === undefined && isOtherValid === undefined) {\r\n return undefined;\r\n }\r\n\r\n const isTreatySpecialRatesClaimValid = isSpecialRatesOpen()\r\n ? treatySpecialRatesClaims.isValid\r\n : true;\r\n\r\n return (isCountryValid && isLimitationOnBenefitValid && isOtherValid && isTreatySpecialRatesClaimValid);\r\n };\r\n\r\n const updateDependentQuestion = (existingQuestion, newAnswer, setState, required, items, errorMessage, isVisible) => {\r\n const newValidation = required\r\n ? getRequiredValidator(errorMessage)\r\n : { validation: { conditions: undefined } };\r\n\r\n const newQuestion = {\r\n ...existingQuestion,\r\n answer: newAnswer,\r\n isValid: undefined,\r\n errorMessages: undefined,\r\n componentProps: { ...existingQuestion.componentProps, items },\r\n ...newValidation,\r\n visible: isVisible\r\n };\r\n\r\n if (existingQuestion.id === 'other' && required === true) {\r\n newQuestion.className = 'col-6';\r\n } else if (existingQuestion.id === 'limitationOnBenefit' && newAnswer === 'Other') {\r\n newQuestion.className = 'col-6';\r\n } else {\r\n newQuestion.className = 'col-12';\r\n }\r\n\r\n validateQuestion(newQuestion);\r\n setState(newQuestion);\r\n\r\n return newQuestion;\r\n };\r\n\r\n const updateLimitationOnBenefit = (countryAnswer) => {\r\n const items = getLobItems(countryAnswer);\r\n let newAnswer;\r\n if (!countryAnswer || !items) {\r\n newAnswer = undefined;\r\n } else if (items?.length === 1 && items[0].value === '') {\r\n newAnswer = '';\r\n } else if (items?.length === 2 && items[0].value === '') {\r\n newAnswer = items[1].value;\r\n } else if (items?.find(item => item.value === limitationOnBenefit?.answer)) {\r\n newAnswer = limitationOnBenefit?.answer;\r\n }\r\n\r\n if ((items.length === 1 || items.length === 2) && items[0].value === '') {\r\n limitationOnBenefit.disabled = true;\r\n } else {\r\n limitationOnBenefit.disabled = false;\r\n }\r\n\r\n const newLimitationOnBenefit = updateDependentQuestion(\r\n limitationOnBenefit,\r\n newAnswer,\r\n setLimitationOnBenefit,\r\n countryAnswer,\r\n items,\r\n 'questionnaire.taxTreatyClaim.limitationOnBenefit.errorMessage',\r\n !!countryAnswer\r\n );\r\n\r\n return newLimitationOnBenefit;\r\n };\r\n\r\n const updateOther = (countryAnswer, limitationOnBenefitAnswer) => {\r\n const items = getOthers(countryAnswer);\r\n let newAnswer;\r\n const hasSingleSelectableValue = items.length === 2 && items[0].value === '';\r\n if (hasSingleSelectableValue) {\r\n newAnswer = items[1].value;\r\n }\r\n\r\n const required = limitationOnBenefitAnswer === 'Other';\r\n const newOther = updateDependentQuestion(\r\n other,\r\n newAnswer,\r\n setOther,\r\n required,\r\n items,\r\n 'questionnaire.taxTreatyClaim.other.errorMessage',\r\n required\r\n );\r\n\r\n return newOther;\r\n };\r\n\r\n const onTreatySpecialRatesClaimAnswer = (b, a, v) => {\r\n const newTreatySpecialRatesClaim = { ...b, answer: a, isValid: v };\r\n setTreatySpecialRatesClaims(newTreatySpecialRatesClaim);\r\n setAnswer({ ...answer, treatySpecialRatesClaims: a });\r\n };\r\n\r\n const onQuestionChange = (q, value) => {\r\n switch (q.id) {\r\n case 'country': {\r\n if (value) {\r\n dispatch(getSpecialRateProvisions(value, answer?.limitationOnBenefit === 'TaxExempt'));\r\n } else {\r\n dispatch(clearSpecialRateProvisions());\r\n }\r\n const newCountryValidation = value || block.linkBlock(null, qAnswers) === false\r\n ? getRequiredValidator('questionnaire.taxTreatyClaim.country.errorMessage')\r\n : { validation: { conditions: undefined } };\r\n const newCountry = { ...q, answer: value, ...newCountryValidation };\r\n validateQuestion(newCountry);\r\n setCountry(newCountry);\r\n const newLimitationOnBenefit = updateLimitationOnBenefit(value);\r\n const newOther = updateOther(value, newLimitationOnBenefit?.answer);\r\n setAnswer({\r\n ...answer,\r\n country: value,\r\n limitationOnBenefit: newLimitationOnBenefit?.answer ?? undefined,\r\n other: newOther?.answer ?? undefined });\r\n break;\r\n }\r\n case 'limitationOnBenefit': {\r\n if (limitationOnBenefit?.answer !== 'TaxExempt' && value === 'TaxExempt') {\r\n dispatch(getSpecialRateProvisions(answer?.country, true));\r\n } else if (limitationOnBenefit?.answer === 'TaxExempt' && value !== 'TaxExempt') {\r\n dispatch(getSpecialRateProvisions(answer?.country, false));\r\n }\r\n const newLimitationOnBenefit = {\r\n ...q,\r\n visible: bAnswers => bAnswers?.country,\r\n answer: value\r\n };\r\n\r\n if (value === 'Other') {\r\n newLimitationOnBenefit.className = 'col-6';\r\n } else {\r\n newLimitationOnBenefit.className = 'col-12';\r\n }\r\n\r\n validateQuestion(newLimitationOnBenefit);\r\n setLimitationOnBenefit(newLimitationOnBenefit);\r\n const newOther = updateOther(country?.answer, value);\r\n setAnswer({ ...answer,\r\n limitationOnBenefit: value,\r\n other: newOther?.answer ?? undefined });\r\n break;\r\n }\r\n case 'other': {\r\n const newOther = {\r\n ...q,\r\n visible: bAnswers => bAnswers?.limitationOnBenefit === 'Other',\r\n answer: value\r\n };\r\n validateQuestion(newOther);\r\n setOther(newOther);\r\n setAnswer({ ...answer, other: value });\r\n break;\r\n }\r\n case 'isUsSourceDividends': {\r\n const newIsUsSourceDividends = { ...q, answer: value };\r\n validateQuestion(newIsUsSourceDividends);\r\n setIsUsSourceDividends(newIsUsSourceDividends);\r\n setAnswer({ ...answer, isUsSourceDividends: value });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (block.linkBlock(null, qAnswers) === false) {\r\n const newCountryValidation = getRequiredValidator('questionnaire.taxTreatyClaim.country.errorMessage');\r\n const newCountry = { ...country, ...newCountryValidation };\r\n setCountry(newCountry);\r\n setAnswer({ ...answer, country: undefined });\r\n }\r\n }, [block.linkBlock(null, qAnswers)]);\r\n\r\n useEffect(() => {\r\n dispatch(getOtherArticles());\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!onAnswer || typeof onAnswer !== 'function') {\r\n dispatch(answerBlock(block.id, answer, isBlockValid()));\r\n } else {\r\n onAnswer(block, answer, isBlockValid());\r\n }\r\n }, [answer, qAnswers?.entityType]);\r\n\r\n useEffect(() => {\r\n if (country.answer !== block.answers?.country) {\r\n onQuestionChange(country, block.answers?.country);\r\n }\r\n if (limitationOnBenefit.answer !== block.answers?.limitationOnBenefit) {\r\n onQuestionChange(limitationOnBenefit, block.answers?.limitationOnBenefit);\r\n }\r\n if (other.answer !== block.answers?.other) {\r\n onQuestionChange(other, block.answers?.other);\r\n }\r\n if (isUsSourceDividends.answer !== block.answers?.isUsSourceDividends) {\r\n onQuestionChange(isUsSourceDividends, block.answers?.isUsSourceDividends);\r\n }\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n if (!answer?.country) {\r\n onQuestionChange({ ...country, isForceEdited: true }, '');\r\n }\r\n if (!answer?.limitationOnBenefit) {\r\n onQuestionChange({ ...limitationOnBenefit, isForceEdited: true }, '');\r\n }\r\n if (!answer?.other) {\r\n onQuestionChange({ ...other, isForceEdited: true }, '');\r\n }\r\n if (!answer?.isUsSourceDividends) {\r\n onQuestionChange({ ...isUsSourceDividends, isForceEdited: true }, '');\r\n }\r\n if (answer.treatySpecialRatesClaims) {\r\n const newBlock = { ...treatySpecialRatesClaims, isForceEdited: true };\r\n setTreatySpecialRatesClaims(newBlock);\r\n }\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n const isSpecialRatesClaimVisible = useMemo(() => {\r\n if (limitationOnBenefit?.answer === 'Other') {\r\n return country?.answer && other?.answer;\r\n }\r\n\r\n return country?.answer && limitationOnBenefit?.answer;\r\n }, [country?.answer, limitationOnBenefit?.answer, other?.answer]);\r\n\r\n return (\r\n
    \r\n
    \r\n onQuestionChange(q, a) } />\r\n { showQuestion(limitationOnBenefit, block?.answers, qAnswers)\r\n && onQuestionChange(q, a) } />}\r\n { showQuestion(other, block?.answers, qAnswers)\r\n && onQuestionChange(q, a) } />}\r\n { showQuestion(isUsSourceDividends, block?.answers, qAnswers)\r\n && onQuestionChange(q, a) } />}\r\n { isSpecialRatesClaimVisible\r\n && }\r\n
    \r\n
    );\r\n};\r\n\r\nQuestionTaxTreatyClaimBlock.displayName = 'QuestionTaxTreatyClaimBlock';\r\n\r\nQuestionTaxTreatyClaimBlock.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n onAnswer: PropTypes.func,\r\n preQualAnswers: PropTypes.shape()\r\n};\r\n\r\nQuestionTaxTreatyClaimBlock.defaultProps = {\r\n onAnswer: null,\r\n preQualAnswers: null\r\n};\r\n\r\nexport default QuestionTaxTreatyClaimBlock;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport {\r\n answerBlock,\r\n} from 'actions';\r\n\r\nimport Question from 'components/Questionnaires/Question';\r\nimport { QuestionDropDownField, QuestionTextField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator, validateQuestion, isBlockFullyValid } from 'components/Questionnaires/validators';\r\n\r\nconst NOT_APPLICABLE = 'Not Applicable';\r\n\r\nexport const QuestionTreatySpecialRatesClaimBlock = ({ block, onAnswer }) => {\r\n const dispatch = useDispatch();\r\n const intl = useIntl();\r\n const [answer, setAnswer] = useState(block?.answers ?? {});\r\n const qAnswers = useSelector(state => state?.questionnaires?.formQuestionnaire?.answers);\r\n const blockIdentifier = useMemo(() => ((block && block.id) ? `${ block.id }${ block.index !== undefined ? (`.${ block.index }`) : '' }` : undefined), [block.index]);\r\n\r\n const provisions = useSelector(state => state?.app?.specialRateProvisions);\r\n const getIncomeTypes = () => {\r\n if (!provisions) {\r\n return [];\r\n }\r\n const incomeTypes = provisions\r\n .map(item => item.incomeType)\r\n .filter((value, index, self) => self.indexOf(value) === index)\r\n .map(item => Object.assign({ value: item, label: item }));\r\n\r\n return [{ value: '', label: intl.formatMessage({ id: 'questionnaire.treatySpecialRatesClaim.incomeType.placeholder' }) }, ...incomeTypes];\r\n };\r\n\r\n const getArticles = (incomeType) => {\r\n if (!incomeType || !provisions) {\r\n return [];\r\n }\r\n const articles = provisions\r\n .filter(x => x.incomeType === incomeType)\r\n .map(item => (item.article === '' ? NOT_APPLICABLE : item.article))\r\n .filter((value, index, self) => self.indexOf(value) === index)\r\n .map(item => Object.assign({ value: item, label: item }));\r\n\r\n if (articles.length === 1 && articles[0].value === NOT_APPLICABLE) {\r\n return articles;\r\n }\r\n\r\n return [{ value: '', label: intl.formatMessage({ id: 'questionnaire.treatySpecialRatesClaim.articleParagraph.placeholder' }) }, ...articles];\r\n };\r\n\r\n const getRates = (incomeType, article) => {\r\n if (!incomeType || !article || !provisions) {\r\n return [];\r\n }\r\n\r\n const articleOverride = article === NOT_APPLICABLE ? '' : article;\r\n const rates = provisions\r\n .filter(x => x.incomeType === incomeType && x.article === articleOverride)\r\n .map(item => item.percentage.toString())\r\n .filter((value, index, self) => self.indexOf(value) === index)\r\n .map(item => Object.assign({ value: item, label: `${ item }%` }));\r\n\r\n return [{ value: '', label: '...' }, ...rates];\r\n };\r\n\r\n const getRequiredValidator = errorMessage => ({ validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: errorMessage }\r\n ]\r\n } });\r\n\r\n const [incomeType, setIncomeType] = useState({\r\n id: 'incomeType',\r\n label: 'questionnaire.treatySpecialRatesClaim.incomeType.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: getIncomeTypes(),\r\n preventTranslation: true\r\n },\r\n className: 'col-5',\r\n visible: true,\r\n answer: answer?.incomeType,\r\n ...getRequiredValidator('questionnaire.treatySpecialRatesClaim.incomeType.errorMessage')\r\n });\r\n const [articleParagraph, setArticleParagraph] = useState({\r\n id: 'articleParagraph',\r\n label: 'questionnaire.treatySpecialRatesClaim.articleParagraph.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: [],\r\n preventTranslation: true\r\n },\r\n className: 'col-5 pl-0',\r\n visible: true,\r\n answer: answer?.articleParagraph,\r\n disabled: true\r\n });\r\n const [rate, setRate] = useState({\r\n id: 'rate',\r\n label: 'questionnaire.treatySpecialRatesClaim.rate.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: [],\r\n preventTranslation: true\r\n },\r\n className: 'col-2 pl-0',\r\n visible: true,\r\n answer: answer?.rate,\r\n disabled: true\r\n });\r\n const [explanation, setExplanation] = useState({\r\n id: 'explanation',\r\n label: 'questionnaire.treatySpecialRatesClaim.explanation.label',\r\n component: QuestionTextField,\r\n visible: true,\r\n answer: answer?.explanation,\r\n ...getRequiredValidator('questionnaire.treatySpecialRatesClaim.explanation.errorMessage')\r\n });\r\n\r\n const isBlockValid = () => {\r\n const questions = [incomeType, articleParagraph, rate, explanation];\r\n return isBlockFullyValid(null, questions, block?.answers, qAnswers);\r\n };\r\n\r\n const updateDependentQuestion = (existingQuestion, newAnswer, setState, isDisabled, items, errorMessage) => {\r\n const newValidation = isDisabled\r\n ? { validation: { conditions: undefined } }\r\n : getRequiredValidator(errorMessage);\r\n\r\n const newQuestion = {\r\n ...existingQuestion,\r\n answer: newAnswer,\r\n isValid: undefined,\r\n errorMessages: undefined,\r\n componentProps: { ...existingQuestion.componentProps, items },\r\n disabled: isDisabled,\r\n ...newValidation\r\n };\r\n validateQuestion(newQuestion);\r\n setState(newQuestion);\r\n\r\n return newQuestion;\r\n };\r\n\r\n const updateArticle = (incomeTypeAnswer) => {\r\n const items = getArticles(incomeTypeAnswer);\r\n let newAnswer = '';\r\n if (items.length === 1 && items[0].value === NOT_APPLICABLE) {\r\n newAnswer = NOT_APPLICABLE;\r\n } else if (items.length === 2 && items[0].value === '') {\r\n newAnswer = items[1].value;\r\n }\r\n\r\n const newArticle = updateDependentQuestion(\r\n articleParagraph,\r\n newAnswer,\r\n setArticleParagraph,\r\n !incomeTypeAnswer || newAnswer !== '',\r\n getArticles(incomeTypeAnswer),\r\n 'questionnaire.treatySpecialRatesClaim.articleParagraph.errorMessage'\r\n );\r\n\r\n return newArticle;\r\n };\r\n\r\n const updateRate = (incomeTypeAnswer, articleAnswer) => {\r\n const items = getRates(incomeTypeAnswer, articleAnswer);\r\n let newAnswer = '';\r\n if (items.length === 2 && items[0].value === '') {\r\n newAnswer = items[1].value;\r\n }\r\n\r\n const newRate = updateDependentQuestion(\r\n rate,\r\n newAnswer,\r\n setRate,\r\n !articleAnswer || newAnswer !== '',\r\n items,\r\n 'questionnaire.treatySpecialRatesClaim.rate.errorMessage'\r\n );\r\n\r\n return newRate;\r\n };\r\n\r\n const onQuestionChange = (q, value, setAns = true) => {\r\n switch (q.id) {\r\n case 'incomeType': {\r\n const newQuestion = { ...q, answer: value };\r\n validateQuestion(newQuestion);\r\n setIncomeType(newQuestion);\r\n const newArticleParagraph = updateArticle(value);\r\n const newRate = updateRate(value, newArticleParagraph?.answer);\r\n if (setAns) {\r\n setAnswer({ ...answer, incomeType: value, articleParagraph: newArticleParagraph?.answer, rate: newRate?.answer });\r\n }\r\n break;\r\n }\r\n case 'articleParagraph': {\r\n const newQuestion = { ...q, answer: value };\r\n validateQuestion(newQuestion);\r\n setArticleParagraph(newQuestion);\r\n const newRate = updateRate(incomeType?.answer, value);\r\n if (setAns) {\r\n setAnswer({ ...answer, articleParagraph: value, rate: newRate?.answer });\r\n }\r\n break;\r\n }\r\n case 'rate': {\r\n const newQuestion = { ...q, answer: value };\r\n validateQuestion(newQuestion);\r\n setRate(newQuestion);\r\n if (setAns) {\r\n setAnswer({ ...answer, rate: value });\r\n }\r\n break;\r\n }\r\n case 'explanation': {\r\n const newQuestion = { ...q, answer: value };\r\n validateQuestion(newQuestion);\r\n setExplanation(newQuestion);\r\n if (setAns) {\r\n setAnswer({ ...answer, explanation: value });\r\n }\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const isDisabled = !provisions;\r\n const newIncomeType = {\r\n ...incomeType,\r\n answer: undefined,\r\n isValid: undefined,\r\n errorMessages: undefined,\r\n componentProps: {\r\n ...incomeType.componentProps,\r\n items: getIncomeTypes()\r\n },\r\n disabled: isDisabled,\r\n };\r\n\r\n onQuestionChange(newIncomeType, undefined, false);\r\n\r\n const newExplanation = { ...explanation, answer: undefined, isValid: undefined, errorMessages: undefined };\r\n onQuestionChange(newExplanation, undefined, false);\r\n\r\n setAnswer({ ...answer, incomeType: undefined, explanation: undefined });\r\n }, [provisions]);\r\n\r\n useEffect(() => {\r\n if (!onAnswer || typeof onAnswer !== 'function') {\r\n dispatch(answerBlock(block.id, answer, isBlockValid()));\r\n } else {\r\n onAnswer(block, answer, isBlockValid());\r\n }\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n if (incomeType.answer !== block.answers?.incomeType) {\r\n onQuestionChange(incomeType, block.answers?.incomeType);\r\n }\r\n if (articleParagraph.answer !== block.answers?.articleParagraph) {\r\n onQuestionChange(articleParagraph, block.answers?.articleParagraph);\r\n }\r\n if (rate.answer !== block.answers?.rate) {\r\n onQuestionChange(rate, block.answers?.rate);\r\n }\r\n if (explanation.answer !== block.answers?.explanation) {\r\n onQuestionChange(explanation, block.answers?.explanation);\r\n }\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n if (!answer?.incomeType) {\r\n onQuestionChange({ ...incomeType, isForceEdited: true }, '');\r\n }\r\n if (!answer?.articleParagraph) {\r\n onQuestionChange({ ...articleParagraph, isForceEdited: true }, '');\r\n }\r\n if (!answer?.rate) {\r\n onQuestionChange({ ...rate, isForceEdited: true }, '');\r\n }\r\n if (!answer?.explanation) {\r\n onQuestionChange({ ...explanation, isForceEdited: true }, '');\r\n }\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return (\r\n
    \r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n
    \r\n
    \r\n onQuestionChange(q, a) } />\r\n
    \r\n
    );\r\n};\r\n\r\nQuestionTreatySpecialRatesClaimBlock.displayName = 'QuestionTreatySpecialRatesClaim';\r\n\r\nQuestionTreatySpecialRatesClaimBlock.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n onAnswer: PropTypes.func,\r\n};\r\n\r\nQuestionTreatySpecialRatesClaimBlock.defaultProps = {\r\n onAnswer: null,\r\n};\r\n\r\nexport default QuestionTreatySpecialRatesClaimBlock;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport {\r\n answerBlock\r\n} from 'actions';\r\n\r\nimport Question from 'components/Questionnaires/Question';\r\nimport { QuestionTextField, QuestionJurisdictionDropDownField, QuestionIgaSubClassificationDropdownField, QuestionButtonsField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator, validateQuestion, isBlockFullyValid } from 'components/Questionnaires/validators';\r\nimport { getClassificationsForCountry } from 'common/igaSubClassification/igaSubClassificationHelper';\r\nimport showQuestion from 'components/Questionnaires/questions';\r\n\r\nexport const QuestionNonReportingIgaBlock = ({ block, onAnswer }) => {\r\n const dispatch = useDispatch();\r\n\r\n const { componentProps } = block;\r\n const { sponsorTrusteeProps } = componentProps;\r\n const [answer, setAnswer] = useState(block.answers ?? {});\r\n const igaSubClassificationCombos = useSelector(state => state?.app?.staticData?.igaSubClassificationsCombos ?? []);\r\n const jurisdictions = useSelector(state => state?.app?.staticData?.jurisdictions ?? []);\r\n const qAnswers = useSelector(state => state?.questionnaires?.formQuestionnaire?.answers);\r\n\r\n const countryHasIgaSubClassifications = (jurisdiction) => {\r\n const jurisdictionsDictionary = new Map(jurisdictions.map(j => [j.countryCodeAlpha, j.isoJurisdictionName]));\r\n const jurisdictionName = jurisdictionsDictionary.get(jurisdiction);\r\n const subclassificationsForCountry = getClassificationsForCountry(jurisdictionName, igaSubClassificationCombos);\r\n\r\n return subclassificationsForCountry && subclassificationsForCountry.length > 0;\r\n };\r\n\r\n const [country, setCountry] = useState({\r\n id: 'country',\r\n label: 'questionnaire.ch4.nonReportingIgaFfi.country.label',\r\n component: QuestionJurisdictionDropDownField,\r\n componentProps: {\r\n annexIIOnly: true\r\n },\r\n default: 'questionnaire.fields.questionJurisdictionDropDown.nonReportingIgaFfi.default',\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.nonReportingIgaFfi.country.errorMessage' }\r\n ]\r\n },\r\n answer: answer?.country\r\n });\r\n const [igaSubclassification, setSubclassification] = useState({\r\n id: 'igaSubclassification',\r\n label: 'questionnaire.ch4.nonReportingIgaFfi.igaSubclassification.label',\r\n component: QuestionIgaSubClassificationDropdownField,\r\n componentProps: {\r\n jurisdiction: ''\r\n },\r\n visible: false,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.nonReportingIgaFfi.igaSubclassification.errorMessage' }\r\n ]\r\n },\r\n answer: answer?.igaSubclassification\r\n });\r\n const [sponsorTrusteeName, setSponsorTrusteeName] = useState({\r\n id: 'sponsorTrusteeName',\r\n component: QuestionTextField,\r\n label: 'questionnaire.ch4.nonReportingIgaFfi.sponsorTrusteeName.label',\r\n info: {\r\n instructions: 'questionnaire.ch4.nonReportingIgaFfi.sponsorTrusteeName.info',\r\n },\r\n visible: sponsorTrusteeProps?.visible,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.nonReportingIgaFfi.sponsorTrusteeName.errorMessage' }\r\n ]\r\n },\r\n answer: answer?.sponsorTrusteeName\r\n });\r\n\r\n const [isUSTrustee, setIsUSTrustee] = useState({\r\n id: 'isUSTrustee',\r\n component: QuestionButtonsField,\r\n componentProps: {\r\n buttons: [\r\n { value: 'Yes', text: 'questionnaire.ch4.nonReportingIgaFfi.buttons.US' },\r\n { value: 'No', text: 'questionnaire.ch4.nonReportingIgaFfi.buttons.Foreign' }\r\n ]\r\n },\r\n label: 'questionnaire.ch4.nonReportingIgaFfi.isUSTrustee.label',\r\n visible: sponsorTrusteeProps?.visible,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.nonReportingIgaFfi.isUSTrustee.errorMessage' }\r\n ]\r\n },\r\n answer: answer?.isUSTrustee\r\n });\r\n\r\n const blockIdentifier = useMemo(() => ((block && block.id) ? `${ block.id }${ block.index !== undefined ? (`.${ block.index }`) : '' }` : undefined), [block.index]);\r\n\r\n const isBlockValid = () => {\r\n const questions = [country, igaSubclassification, sponsorTrusteeName, isUSTrustee];\r\n return isBlockFullyValid(null, questions, block?.answers, qAnswers);\r\n };\r\n\r\n useEffect(() => {\r\n let isValid;\r\n if (!onAnswer || typeof onAnswer !== 'function') {\r\n dispatch(answerBlock(block.id, answer, isBlockValid()));\r\n } else {\r\n onAnswer(block, answer, isValid);\r\n }\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n const onQuestionChange = (q, value) => {\r\n switch (q.id) {\r\n case 'country': {\r\n const newCountry = { ...q, answer: value };\r\n validateQuestion(newCountry);\r\n setCountry(newCountry);\r\n setAnswer({ ...answer, country: value, igaSubclassification: undefined });\r\n\r\n const newSubclassification = { ...igaSubclassification, answer: undefined, isValid: undefined, errorMessages: undefined };\r\n newSubclassification.visible = countryHasIgaSubClassifications(value);\r\n newSubclassification.componentProps.jurisdiction = value;\r\n setSubclassification(newSubclassification);\r\n break;\r\n }\r\n case 'igaSubclassification': {\r\n const newSubclassification = { ...q, answer: value };\r\n validateQuestion(newSubclassification);\r\n setSubclassification(newSubclassification);\r\n setAnswer({ ...answer, igaSubclassification: value, sponsorTrusteeName: undefined, isUSTrustee: undefined });\r\n\r\n const newSponsorTrusteeName = { ...sponsorTrusteeName, answer: undefined, isValid: undefined, errorMessages: undefined };\r\n const newIsUSTrustee = { ...isUSTrustee, answer: undefined, isValid: undefined, errorMessages: undefined };\r\n setSponsorTrusteeName(newSponsorTrusteeName);\r\n setIsUSTrustee(newIsUSTrustee);\r\n break;\r\n }\r\n case 'sponsorTrusteeName': {\r\n const newSponsorTrusteeName = { ...q, answer: value };\r\n validateQuestion(newSponsorTrusteeName);\r\n setSponsorTrusteeName(newSponsorTrusteeName);\r\n setAnswer({ ...answer, sponsorTrusteeName: value });\r\n break;\r\n }\r\n case 'isUSTrustee': {\r\n const newIsUSTrustee = { ...q, answer: value };\r\n validateQuestion(newIsUSTrustee);\r\n setIsUSTrustee(newIsUSTrustee);\r\n setAnswer({ ...answer, isUSTrustee: value });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n if (!answer?.country) {\r\n onQuestionChange({ ...country, isForceEdited: true }, '');\r\n }\r\n if (!answer?.igaSubclassification) {\r\n onQuestionChange({ ...igaSubclassification, isForceEdited: true }, '');\r\n }\r\n if (!answer?.sponsorTrusteeName) {\r\n onQuestionChange({ ...sponsorTrusteeName, isForceEdited: true }, '');\r\n }\r\n if (!answer?.isUSTrustee) {\r\n onQuestionChange({ ...isUSTrustee, isForceEdited: true }, '');\r\n }\r\n }\r\n\r\n if (block.isForceEdited === undefined) {\r\n if (country.isForceEdited === true) {\r\n setCountry({ ...country, isForceEdited: undefined });\r\n }\r\n if (igaSubclassification.isForceEdited === true) {\r\n setSubclassification({ ...igaSubclassification, isForceEdited: undefined });\r\n }\r\n if (sponsorTrusteeName.isForceEdited === true) {\r\n setSponsorTrusteeName({ ...sponsorTrusteeName, isForceEdited: undefined });\r\n }\r\n if (isUSTrustee.isForceEdited === true) {\r\n setIsUSTrustee({ ...isUSTrustee, isForceEdited: undefined });\r\n }\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return (\r\n onQuestionChange(q, a) } />\r\n {showQuestion(igaSubclassification, block?.answers, qAnswers)\r\n && onQuestionChange(q, a) } />}\r\n {showQuestion(sponsorTrusteeName, block?.answers, qAnswers)\r\n && onQuestionChange(q, a) } />}\r\n {showQuestion(isUSTrustee, block?.answers, qAnswers)\r\n && onQuestionChange(q, a) } />}\r\n );\r\n};\r\n\r\nQuestionNonReportingIgaBlock.displayName = 'QuestionNonReportingIgaBlock';\r\n\r\nQuestionNonReportingIgaBlock.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n onAnswer: PropTypes.func,\r\n preQualAnswers: PropTypes.shape(),\r\n};\r\n\r\nQuestionNonReportingIgaBlock.defaultProps = {\r\n onAnswer: null,\r\n preQualAnswers: null\r\n};\r\n\r\nexport default QuestionNonReportingIgaBlock;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\nimport { answerBlock } from 'actions';\r\n\r\nimport { QuestionAddressBlock } from 'components/Questionnaires/blocks';\r\nimport { QuestionTextField, QuestionUsTinField } from 'components/Questionnaires/fields';\r\nimport { validateQuestion, setValidators, isEmptyObject, requiredValidator, lengthValidator, sameCharacterValidator, sequentialIntegerValidator } from 'components/Questionnaires/validators';\r\nimport QuestionnaireType from 'common/questionnaires/QuestionnaireType';\r\nimport QuestionBlock from 'components/Questionnaires/QuestionBlock';\r\nimport Question from 'components/Questionnaires/Question';\r\n\r\nexport const QuestionSubstantialOwnerBlock = ({ block, onAnswer, preQualAnswers }) => {\r\n const dispatch = useDispatch();\r\n const [answer, setAnswer] = useState(block.answers ?? {});\r\n\r\n const blockIdentifier = useMemo(() => ((block && block.id) ? `${ block.id }${ block.index !== undefined ? (`.${ block.index }`) : '' }` : undefined), [block.index]);\r\n\r\n const [name, setName] = useState({\r\n id: 'name',\r\n component: QuestionTextField,\r\n label: 'questionnaire.substantialOwner.name.label',\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.substantialOwner.name.errorMessage' }\r\n ]\r\n },\r\n answer: answer?.name\r\n });\r\n\r\n const [tin, setTin] = useState({\r\n id: 'tin',\r\n component: QuestionUsTinField,\r\n label: 'questionnaire.usTin',\r\n info: {\r\n instructions: 'questionnaire.usTin.tin.info',\r\n },\r\n componentProps: {\r\n tinFormat: 'SSN',\r\n length: 9\r\n },\r\n visible: true,\r\n validation: setValidators(\r\n true,\r\n [\r\n { condition: lengthValidator, message: 'questionnaire.usTin.tin.lengthErrorMessage' },\r\n { condition: sameCharacterValidator, message: 'questionnaire.usTin.tin.sameCharErrorMessage' },\r\n { condition: sequentialIntegerValidator, message: 'questionnaire.usTin.tin.sequentialErrorMessage' },\r\n ],\r\n 'questionnaire.usTin.tin.errorMessage'\r\n ),\r\n answer: answer?.tin\r\n });\r\n\r\n const [address, setAddress] = useState({\r\n id: 'address',\r\n component: QuestionAddressBlock,\r\n info: {\r\n instructions: 'questionnaire.address.1.info'\r\n },\r\n componentProps: {\r\n line1Footnote: 'questionnaire.address.1.footnote.v2'\r\n },\r\n className: 'p-0 mt-0 no-border nested',\r\n visible: true,\r\n hideHeader: true\r\n });\r\n\r\n const onQuestionChange = (q, value) => {\r\n switch (q.id) {\r\n case 'name': {\r\n const newName = { ...q, answer: value };\r\n validateQuestion(newName);\r\n setName(newName);\r\n setAnswer({ ...answer, name: value });\r\n break;\r\n }\r\n case 'tin': {\r\n const newTin = { ...q, answer: value };\r\n validateQuestion(newTin);\r\n setTin(newTin);\r\n setAnswer({ ...answer, tin: value });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const onAddressAnswer = (b, a, v) => {\r\n const newBlock = { ...b, ...{ answer: a, isValid: v } };\r\n setAddress(newBlock);\r\n setAnswer({ ...answer, address: a });\r\n };\r\n\r\n const isValid = () => {\r\n if (name.answer === undefined\r\n && tin.answer === undefined) {\r\n return undefined;\r\n }\r\n\r\n if (isEmptyObject(address.answer)) {\r\n return name.isValid && tin.isValid;\r\n }\r\n\r\n return name.isValid && tin.isValid && address.isValid;\r\n };\r\n\r\n useEffect(() => {\r\n if (!onAnswer || typeof onAnswer !== 'function') {\r\n dispatch(answerBlock(block.id, answer, isValid()));\r\n } else {\r\n onAnswer(block, answer, isValid());\r\n }\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n if (answer?.name === undefined || answer.name === '') {\r\n onQuestionChange({ ...name, isForceEdited: true }, '');\r\n }\r\n if (answer?.tin === undefined || answer.tin === '') {\r\n onQuestionChange({ ...tin, isForceEdited: true }, '');\r\n }\r\n if (!answer.address || isEmptyObject(answer.address)) {\r\n const newBlock = { ...address, ...{ isForceEdited: true } };\r\n setAddress(newBlock);\r\n }\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return (\r\n
    \r\n
    \r\n onQuestionChange(q, a) }\r\n />\r\n
    \r\n
    \r\n onQuestionChange(q, a) }\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nQuestionSubstantialOwnerBlock.displayName = 'QuestionSubstantialOwnerBlock';\r\n\r\nQuestionSubstantialOwnerBlock.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n onAnswer: PropTypes.func,\r\n preQualAnswers: PropTypes.shape()\r\n};\r\n\r\nQuestionSubstantialOwnerBlock.defaultProps = {\r\n onAnswer: null,\r\n preQualAnswers: null\r\n};\r\n\r\nexport default QuestionSubstantialOwnerBlock;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport { answerBlock } from 'actions';\r\n\r\nimport QuestionnaireType from 'common/questionnaires/QuestionnaireType';\r\nimport Question from 'components/Questionnaires/Question';\r\nimport QuestionBlock from 'components/Questionnaires/QuestionBlock';\r\nimport { QuestionTextField, QuestionDropDownField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator, validateQuestion, isBlockFullyValid, isEmptyObject } from 'components/Questionnaires/validators';\r\nimport { QuestionAddressBlock, QuestionGiinBlock } from 'components/Questionnaires/blocks';\r\n\r\nexport const QuestionDreBlock = ({ block, onAnswer }) => {\r\n const dispatch = useDispatch();\r\n const [answer, setAnswer] = useState(block?.answers ?? {});\r\n\r\n const qAnswers = useSelector(state => state?.questionnaires?.formQuestionnaire?.answers);\r\n\r\n const getRequiredValidator = message => ({\r\n conditions: [\r\n { condition: requiredValidator, message }\r\n ]\r\n });\r\n\r\n const showBlock = (b) => {\r\n if (b) {\r\n if (Object.prototype.hasOwnProperty.call(b, 'visible')) {\r\n if (typeof b.visible === 'boolean') {\r\n return b.visible;\r\n }\r\n if (typeof b.visible === 'function') {\r\n return b.visible(qAnswers);\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n const isBlockOptional = () => {\r\n let isOptional = false;\r\n if (block?.componentProps && Object.prototype.hasOwnProperty.call(block?.componentProps, 'optional')) {\r\n if (typeof block.componentProps.optional === 'boolean') {\r\n isOptional = !!block.componentProps.optional;\r\n }\r\n if (typeof block.componentProps.optional === 'function') {\r\n isOptional = !!block.componentProps.optional(block.answers, qAnswers);\r\n }\r\n }\r\n\r\n return isOptional;\r\n };\r\n\r\n const defaultNameState = a => ({\r\n id: 'name',\r\n component: QuestionTextField,\r\n label: block?.componentProps?.dreNameLabel,\r\n disabled: block.disabled ?? undefined,\r\n validation: isBlockOptional() !== true ? {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.disregardedEntity.dreName.errorMessage' }\r\n ]\r\n } : undefined,\r\n answer: a,\r\n visible: true,\r\n });\r\n const [name, setName] = useState(defaultNameState(answer?.name));\r\n\r\n const defaultTypeState = a => ({\r\n id: 'type',\r\n component: QuestionDropDownField,\r\n label: block?.componentProps?.dreTypeLabel,\r\n disabled: block.disabled ?? undefined,\r\n answer: a,\r\n componentProps: {\r\n items: 'questionnaire.disregardedEntity.type.items',\r\n preventTranslation: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.disregardedEntity.type.info'\r\n },\r\n visible: true,\r\n });\r\n const [type, setType] = useState(defaultTypeState(answer?.type));\r\n\r\n const isGiinVisible = (dreTypeAnswer) => {\r\n const value = dreTypeAnswer && dreTypeAnswer !== '1' && dreTypeAnswer !== '';\r\n return !!value;\r\n };\r\n\r\n const defaultGiinState = () => ({\r\n id: 'giin',\r\n component: QuestionGiinBlock,\r\n componentProps: {\r\n giinInstructions: 'questionnaire.disregardedEntity.giin.info'\r\n },\r\n expandCollapse: false,\r\n className: 'pl-3 pr-3 pt-0 pb-0 mt-0 no-border nested',\r\n visible: () => isGiinVisible(),\r\n });\r\n const [giin, setGiin] = useState(defaultGiinState());\r\n\r\n const defaultAddressState = () => ({\r\n id: 'address',\r\n title: 'questionnaire.address',\r\n component: QuestionAddressBlock,\r\n className: 'p-0 no-border nested',\r\n info: {\r\n instructions: 'questionnaire.address.1.info'\r\n },\r\n visible: true,\r\n componentProps: {\r\n optional: isBlockOptional(),\r\n collapsible: true,\r\n line1footnote: 'questionnaire.disregardedEntity.address.1.footnote'\r\n },\r\n isCollapsed: false\r\n });\r\n const [address, setAddress] = useState(defaultAddressState());\r\n\r\n const blockIdentifier = useMemo(() => ((block && block.id) ? `${ block.id }${ block.index !== undefined ? (`.${ block.index }`) : '' }` : undefined), [block.index]);\r\n\r\n const updateNameValidators = (q, b, a) => {\r\n if (isBlockOptional() !== true) {\r\n if (q?.id === 'name') {\r\n if (q.answer?.length > 0) {\r\n q.isValid = undefined;\r\n q.errorMessages = undefined;\r\n }\r\n return q;\r\n }\r\n return name;\r\n }\r\n\r\n let nameEntered = answer?.name?.length > 0;\r\n let typeEntered = answer?.type?.length > 0;\r\n let giinValueEntered = answer?.giin?.value?.length > 0;\r\n let giinAppliedForEntered = answer?.giin?.appliedFor?.length > 0;\r\n let line1Entered = answer?.address?.line1?.length > 0;\r\n let countryEntered = answer?.address?.country?.length > 0;\r\n let optionaLinesEntered = answer?.address?.line2?.length > 0 || answer?.address?.line3?.length > 0 || answer?.address?.line4?.length > 0 || answer?.address?.postalCode?.length > 0;\r\n let typeAnswer = answer?.type;\r\n\r\n switch (q?.id) {\r\n case 'name':\r\n nameEntered = q.answer?.length > 0;\r\n break;\r\n case 'type':\r\n typeEntered = q.answer?.length > 0;\r\n typeAnswer = q.answer;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (b && a) {\r\n switch (b?.id) {\r\n case 'giin':\r\n giinValueEntered = a.value?.length > 0;\r\n giinAppliedForEntered = a.appliedFor?.length > 0;\r\n break;\r\n case 'address':\r\n line1Entered = a.line1?.length > 0;\r\n countryEntered = a.country?.length > 0;\r\n optionaLinesEntered = a.line2?.length > 0 || a.line3?.length > 0 || a.line4?.length > 0 || a.postalCode?.length > 0;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n if (!isGiinVisible(typeAnswer)) {\r\n giinValueEntered = false;\r\n giinAppliedForEntered = false;\r\n }\r\n\r\n const newName = q?.id === 'name' ? q : { ...name };\r\n\r\n if (nameEntered || typeEntered || giinValueEntered || giinAppliedForEntered || line1Entered || countryEntered || optionaLinesEntered) {\r\n newName.validation = newName.validation ?? getRequiredValidator('questionnaire.disregardedEntity.dreName.errorMessage');\r\n } else {\r\n newName.validation = undefined;\r\n newName.isValid = undefined;\r\n newName.errorMessages = undefined;\r\n }\r\n\r\n switch (q?.id) {\r\n case 'name':\r\n q.validation = newName.validation;\r\n q.isValid = newName.isValid;\r\n q.errorMessages = newName.errorMessages;\r\n break;\r\n default:\r\n if (\r\n // b.isForceEdited && b.isForceEdited === true && q.isForceEdited && q.isForceEdited === true && q.isValid && q.isValid !== undefined\r\n // &&\r\n (newName.isForceEdited === undefined || newName.isForceEdited !== true || newName.answer === undefined || newName.isValid === undefined)\r\n && ((q !== null && q !== undefined && q.isForceEdited) || (q !== null && q !== undefined && q.isForceEdited))) {\r\n newName.isForceEdited = true;\r\n newName.answer = '';\r\n setName(newName);\r\n validateQuestion(newName);\r\n } else {\r\n setName(newName);\r\n }\r\n break;\r\n }\r\n\r\n return newName;\r\n };\r\n\r\n const onQuestionChange = (q, value, setAns = true) => {\r\n switch (q.id) {\r\n case 'name': {\r\n let newName = { ...q, answer: value };\r\n newName = updateNameValidators(newName);\r\n validateQuestion(newName);\r\n setName(newName);\r\n if (setAns) {\r\n setAnswer({ ...answer, name: value });\r\n }\r\n break;\r\n }\r\n case 'type': {\r\n const newType = { ...q, answer: value };\r\n updateNameValidators(newType);\r\n validateQuestion(newType);\r\n setType(newType);\r\n if (value) {\r\n setAddress({ ...address, componentProps: { ...address.componentProps, optional: false } });\r\n } else {\r\n const newAddress = { ...address, componentProps: { ...address.componentProps, optional: isBlockOptional() } };\r\n if (isBlockOptional()) {\r\n const line1Entered = answer?.address?.line1?.length > 0;\r\n const countryEntered = answer?.address?.country?.length > 0;\r\n const optionaLinesEntered = answer?.address?.line2?.length > 0 || answer?.address?.line3?.length > 0 || answer?.address?.line4?.length > 0 || answer?.address?.postalCode?.length > 0;\r\n if (!line1Entered && !countryEntered && !optionaLinesEntered) {\r\n newAddress.isValid = undefined;\r\n newAddress.errorMessages = undefined;\r\n }\r\n }\r\n setAddress(newAddress);\r\n }\r\n const giinVisible = isGiinVisible(value);\r\n if (setAns) {\r\n setAnswer({ ...answer, type: value, giin: giinVisible ? answer.giin : undefined });\r\n }\r\n const giinChanges = {};\r\n if (giinVisible) {\r\n giinChanges.visible = true;\r\n } else {\r\n giinChanges.answers = undefined;\r\n giinChanges.isValid = undefined;\r\n giinChanges.visible = false;\r\n }\r\n setGiin({ ...giin, ...giinChanges });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const onBlockAnswer = (b, a, v) => {\r\n switch (b.id) {\r\n case 'address': {\r\n const newBlock = { ...b, ...{ answers: a, isValid: v } };\r\n updateNameValidators(null, newBlock, a);\r\n setAddress(newBlock);\r\n setAnswer({ ...answer, address: a });\r\n break;\r\n }\r\n case 'giin': {\r\n const newBlock = { ...b, ...{ answer: a, isValid: v } };\r\n updateNameValidators(null, newBlock, a);\r\n setGiin(newBlock);\r\n setAnswer({ ...answer, giin: a });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const isBlockValid = () => {\r\n let forceValidation = false;\r\n if (typeof block.linkBlock === 'boolean') {\r\n forceValidation = block.linkBlock !== true;\r\n }\r\n if (typeof block.linkBlock === 'function') {\r\n forceValidation = block.linkBlock(block.answers, qAnswers) === false;\r\n }\r\n\r\n if (forceValidation) {\r\n const newNameValidation = { ...name.validation, ...getRequiredValidator('questionnaire.disregardedEntity.dreName.errorMessage') };\r\n const newName = { ...name, ...newNameValidation };\r\n setName(newName);\r\n }\r\n\r\n const subBlocks = [address];\r\n if (isGiinVisible(type.answer)) {\r\n subBlocks.push(giin);\r\n }\r\n const questions = [name, type];\r\n\r\n if (questions.some(x => x.isForceEdited === true)) {\r\n const qsToCorrect = questions.filter(x => x.isForceEdited !== true || x.answer === undefined);\r\n qsToCorrect.forEach((correctedItem) => {\r\n if (correctedItem.answer === undefined) {\r\n correctedItem.answer = '';\r\n correctedItem.isForceEdited = true;\r\n }\r\n\r\n if (correctedItem.answer === '' && correctedItem.isForceEdited !== true) {\r\n correctedItem.isForceEdited = true;\r\n }\r\n\r\n const index = questions.findIndex(originalItem => originalItem === correctedItem);\r\n if (index !== -1) {\r\n questions[index] = correctedItem;\r\n }\r\n });\r\n }\r\n\r\n return isBlockFullyValid(subBlocks, questions, block?.answers, qAnswers);\r\n };\r\n\r\n useEffect(() => {\r\n if (!onAnswer || typeof onAnswer !== 'function') {\r\n dispatch(answerBlock(block.id, answer, isBlockValid()));\r\n } else {\r\n onAnswer(block, answer, isBlockValid());\r\n }\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n const nameMismatch = name.answer !== block.answers?.name;\r\n const typeMismatch = type.answer !== block.answers?.type;\r\n const addressMismatch = address.answers !== block.answers?.address;\r\n if ((nameMismatch && !block.answers?.name)\r\n && (typeMismatch && !block.answers?.type)\r\n && (addressMismatch && (!block.answers?.address || isEmptyObject(block.answers?.address)))\r\n ) {\r\n setName(defaultNameState(undefined));\r\n setType(defaultTypeState(undefined));\r\n setAddress(defaultAddressState());\r\n setGiin(defaultGiinState());\r\n setAnswer(block.answers ?? {});\r\n return;\r\n }\r\n\r\n if (nameMismatch) {\r\n if (block.answers?.name === undefined) {\r\n let newName = { ...name };\r\n newName.answer = undefined;\r\n newName = updateNameValidators(newName);\r\n newName.isForceEdited = false;\r\n setName(newName);\r\n } else {\r\n onQuestionChange(name, block.answers?.name);\r\n }\r\n }\r\n if (typeMismatch) {\r\n if (block.answers?.type === undefined) {\r\n const newType = { ...type };\r\n newType.isValid = undefined;\r\n newType.isForceEdited = undefined;\r\n newType.validation = undefined;\r\n newType.errorMessages = undefined;\r\n newType.answer = undefined;\r\n setType(newType);\r\n const giinChanges = {};\r\n giinChanges.answers = undefined;\r\n giinChanges.isValid = undefined;\r\n giinChanges.visible = false;\r\n setGiin({ ...giin, ...giinChanges });\r\n } else {\r\n onQuestionChange(type, block.answers?.type);\r\n }\r\n }\r\n if (addressMismatch) {\r\n const newBlock = { ...address, ...{ answers: block.answers.address ?? {} } };\r\n setAddress(newBlock);\r\n }\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n const newAnswer = { ...answer };\r\n if (!answer?.name) {\r\n onQuestionChange({ ...name, isForceEdited: true }, '', false);\r\n newAnswer.name = '';\r\n }\r\n if (!answer?.type) {\r\n onQuestionChange({ ...type, isForceEdited: true }, '', false);\r\n newAnswer.type = '';\r\n }\r\n setAnswer({ ...newAnswer });\r\n if (!answer?.giin || isEmptyObject(answer?.giin)) {\r\n const newBlock = { ...giin, ...{ isForceEdited: true } };\r\n setGiin(newBlock);\r\n }\r\n if (!answer?.address || isEmptyObject(answer?.address) || !answer?.address?.line1 || !answer?.address?.country) {\r\n const newBlock = { ...address, ...{ isForceEdited: true } };\r\n setAddress(newBlock);\r\n }\r\n } else {\r\n if (giin.isForceEdited !== block.isForceEdited) {\r\n const newBlock = { ...giin, ...{ isForceEdited: block.isForceEdited } };\r\n setGiin(newBlock);\r\n }\r\n if (address.isForceEdited !== block.isForceEdited) {\r\n const newBlock = { ...address, ...{ isForceEdited: block.isForceEdited } };\r\n setAddress(newBlock);\r\n }\r\n if (name.isForceEdited !== block.isForceEdited) {\r\n setName({ ...name, ...{ isForceEdited: block.isForceEdited } });\r\n }\r\n if (type.isForceEdited !== block.isForceEdited) {\r\n setType({ ...type, isForceEdited: block.isForceEdited });\r\n }\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n useEffect(() => {\r\n if (isBlockOptional() !== true) {\r\n const newNameValidation = { ...name.validation, ...getRequiredValidator('questionnaire.disregardedEntity.dreName.errorMessage') };\r\n const newName = { ...name, validation: newNameValidation };\r\n setName(newName);\r\n setAddress({ ...address, componentProps: { ...address.componentProps, optional: false } });\r\n } else {\r\n updateNameValidators();\r\n if ((!answer?.giin || isEmptyObject(answer?.giin)) && giin.isValid === false) {\r\n const giinChanges = { ...giin };\r\n giinChanges.answers = undefined;\r\n giinChanges.isValid = undefined;\r\n setGiin(giinChanges);\r\n }\r\n if ((!answer?.address || isEmptyObject(answer?.address) || !answer?.address?.line1 || !answer?.address?.country) && address.isValid === false) {\r\n const addressChanges = { ...address };\r\n addressChanges.answers = undefined;\r\n addressChanges.isValid = undefined;\r\n setAddress(addressChanges);\r\n }\r\n }\r\n }, [isBlockOptional()]);\r\n\r\n return (\r\n onQuestionChange(q, a) }\r\n />\r\n onQuestionChange(q, a) }\r\n />\r\n { showBlock(giin)\r\n && }\r\n { showBlock(address) &&
    \r\n \r\n
    }\r\n
    );\r\n};\r\n\r\nQuestionDreBlock.displayName = 'QuestionDreBlock';\r\n\r\nQuestionDreBlock.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n onAnswer: PropTypes.func,\r\n};\r\n\r\nQuestionDreBlock.defaultProps = {\r\n onAnswer: null,\r\n};\r\n\r\nexport default QuestionDreBlock;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport {\r\n answerBlock\r\n} from 'actions';\r\n\r\nimport QuestionnaireType from 'common/questionnaires/QuestionnaireType';\r\nimport QuestionBlock from 'components/Questionnaires/QuestionBlock';\r\nimport Question from 'components/Questionnaires/Question';\r\nimport { QuestionTextField } from 'components/Questionnaires/fields';\r\nimport { QuestionGiinBlock } from 'components/Questionnaires/blocks';\r\nimport { validateQuestion, isEmptyObject, requiredValidator } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionCloselyHeldInvestmentVehicleBlock = ({ block }) => {\r\n const dispatch = useDispatch();\r\n const [answer, setAnswer] = useState(block?.answers ?? { });\r\n\r\n const [name, setName] = useState({\r\n id: 'name',\r\n component: QuestionTextField,\r\n label: 'questionnaire.ch4.investmentVehicle.name',\r\n info: {\r\n instructions: 'questionnaire.ch4.investmentVehicle.name.info'\r\n },\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.investmentVehicle.name.errorMessage' }\r\n ]\r\n },\r\n visible: true\r\n });\r\n\r\n const [giin, setGiin] = useState({\r\n id: 'giin',\r\n component: QuestionGiinBlock,\r\n expandCollapse: false,\r\n className: 'p-0 no-border nested',\r\n visible: true\r\n });\r\n\r\n const blockIdentifier = useMemo(() => ((block && block.id) ? `${ block.id }${ block.index !== undefined ? (`.${ block.index }`) : '' }` : undefined), [block.index]);\r\n\r\n const isValid = () => giin.isValid && name.isValid;\r\n\r\n useEffect(() => {\r\n dispatch(answerBlock(block.id, answer, isValid()));\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n const onBlockAnswer = (b, a, v) => {\r\n switch (b.id) {\r\n case 'giin': {\r\n const newBlock = { ...b, ...{ answer: a, isValid: v } };\r\n setGiin(newBlock);\r\n setAnswer({ ...answer, giin: a });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const onQuestionChange = (q, value) => {\r\n switch (q.id) {\r\n case 'name': {\r\n const newName = { ...q, answer: value };\r\n validateQuestion(newName);\r\n setName(newName);\r\n setAnswer({ ...answer, name: value });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n if (!giin.value || isEmptyObject(answer.giin)) {\r\n const newBlock = { ...giin, ...{ isForceEdited: true } };\r\n setGiin(newBlock);\r\n }\r\n if (!answer?.name) {\r\n onQuestionChange({ ...name, isForceEdited: true }, '');\r\n }\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return (\r\n onQuestionChange(q, a) } />\r\n
    \r\n \r\n
    \r\n
    );\r\n};\r\n\r\nQuestionCloselyHeldInvestmentVehicleBlock.displayName = 'QuestionCloselyHeldInvestmentVehicleBlock';\r\n\r\nQuestionCloselyHeldInvestmentVehicleBlock.propTypes = {\r\n block: PropTypes.shape().isRequired\r\n};\r\n\r\nQuestionCloselyHeldInvestmentVehicleBlock.defaultProps = {\r\n};\r\n\r\nexport default QuestionCloselyHeldInvestmentVehicleBlock;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport {\r\n answerBlock\r\n} from 'actions';\r\n\r\nimport Question from 'components/Questionnaires/Question';\r\nimport { QuestionCheckBoxField, QuestionTextField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator, validateQuestion } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionFtinBlock = ({ block, onAnswer }) => {\r\n const dispatch = useDispatch();\r\n const [answer, setAnswer] = useState(block?.answers ?? { appliedFor: '' });\r\n\r\n const validators = {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.foreignTin.errorMessage' }\r\n ]\r\n };\r\n\r\n const [value, setValue] = useState({\r\n id: 'value',\r\n label: 'questionnaire.foreignTin',\r\n component: QuestionTextField,\r\n info: {\r\n instructions: 'questionnaire.foreignTin.info'\r\n },\r\n visible: true,\r\n validation: block.componentProps?.required === true ? validators : [],\r\n answer: answer?.value,\r\n });\r\n\r\n const ftinNotRequired = {\r\n id: 'ftinNotRequired',\r\n component: QuestionCheckBoxField,\r\n componentProps:\r\n {\r\n option: 'questionnaire.taxIdentificationNumbers.foreignTin.notRequired.label'\r\n },\r\n visible: block.componentProps?.showFtinNotRequired !== undefined ? block.componentProps?.showFtinNotRequired : true,\r\n answer: answer?.ftinNotRequired ?? undefined\r\n };\r\n\r\n const blockIdentifier = useMemo(() => ((block && block.id) ? `${ block.id }${ block.index !== undefined ? (`.${ block.index }`) : '' }` : undefined), [block.index]);\r\n\r\n const isValid = () => {\r\n if (block.componentProps?.showFtinNotRequired === false) {\r\n return value.isValid;\r\n }\r\n if (answer.value === undefined && (ftinNotRequired.answer === '' || ftinNotRequired.answer === undefined)) {\r\n return undefined;\r\n }\r\n return value.isValid || (!answer.value && answer.ftinNotRequired === 'true');\r\n };\r\n\r\n const onQuestionChange = (q, v) => {\r\n switch (q.id) {\r\n case 'value': {\r\n const newValue = { ...q, answer: v };\r\n validateQuestion(newValue);\r\n setValue(newValue);\r\n setAnswer({ ...answer, value: v });\r\n break;\r\n }\r\n case 'ftinNotRequired': {\r\n let newValidators = [];\r\n if (block.componentProps?.required === true) {\r\n newValidators = v === 'true' ? [] : validators;\r\n }\r\n const questionProps = v === 'true' ? { isValid: true, errorMessages: undefined, disabled: true } : { disabled: false };\r\n const newValue = { ...value, ...questionProps, ...{ validation: newValidators } };\r\n validateQuestion(newValue);\r\n setValue(newValue);\r\n setAnswer({ ...answer, ftinNotRequired: v });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n onQuestionChange(value, value?.answer);\r\n onQuestionChange(ftinNotRequired, ftinNotRequired?.answer);\r\n }, [block.componentProps?.required]);\r\n\r\n useEffect(() => {\r\n if (!onAnswer || typeof onAnswer !== 'function') {\r\n if (Object.keys(answer).length > 0 && answer.constructor === Object) {\r\n dispatch(answerBlock(block.id, answer, isValid()));\r\n } else {\r\n onQuestionChange(value, undefined);\r\n onQuestionChange(ftinNotRequired, undefined);\r\n }\r\n } else {\r\n onAnswer(block, answer, isValid());\r\n }\r\n dispatch(answerBlock(block.id, answer, isValid()));\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n onQuestionChange({ ...value, isForceEdited: true }, answer?.value ?? '');\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return (\r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n );\r\n};\r\n\r\nQuestionFtinBlock.displayName = 'QuestionFtinBlock';\r\n\r\nQuestionFtinBlock.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n onAnswer: PropTypes.func,\r\n};\r\n\r\nQuestionFtinBlock.defaultProps = {\r\n onAnswer: null\r\n};\r\n\r\nexport default QuestionFtinBlock;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport {\r\n answerBlock\r\n} from 'actions';\r\n\r\nimport Question from 'components/Questionnaires/Question';\r\nimport { QuestionButtonsField, QuestionUsTinField, QuestionYesNoField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator, lengthValidator, sameCharacterValidator, sequentialIntegerValidator, validateQuestion } from 'components/Questionnaires/validators';\r\nimport CollapsibleHeader from 'components/Questionnaires/CollapsibleHeader';\r\n\r\nexport const QuestionRcUsTaxResidentBlock = ({ block, onAnswer }) => {\r\n const dispatch = useDispatch();\r\n const { tinType } = block.componentProps ?? {};\r\n const [answer, setAnswer] = useState(block?.answers ?? { appliedFor: 'No' });\r\n const [collapsibleAreaShown, setCollapsibleAreaShown] = useState(false);\r\n const tinValidators = {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.usTin.tin.errorMessage' },\r\n { condition: lengthValidator, message: 'questionnaire.usTin.tin.lengthErrorMessage' },\r\n { condition: sameCharacterValidator, message: 'questionnaire.usTin.tin.sameCharErrorMessage' },\r\n { condition: sequentialIntegerValidator, message: 'questionnaire.usTin.tin.sequentialErrorMessage' },\r\n ]\r\n };\r\n\r\n const [isUsTaxResident, setIsUsTaxResident] = useState({\r\n id: 'isUsTaxResident',\r\n label: 'questionnaire.rc518.usTaxResident.isUsTaxResident.label',\r\n component: QuestionYesNoField,\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc518.usTaxResident.isUsTaxResident.errorMessage' }\r\n ]\r\n },\r\n answer: answer?.isUsTaxResident\r\n });\r\n const [usTin, setUsTin] = useState({\r\n id: 'tin',\r\n component: QuestionUsTinField,\r\n componentProps: {\r\n tinFormat: tinType,\r\n length: 9\r\n },\r\n label: 'questionnaire.rc518.usTaxResident.tin.label',\r\n info: {\r\n instructions: 'questionnaire.rc518.usTaxResident.tin.info',\r\n },\r\n className: 'col-12',\r\n visible: () => answer?.isUsTaxResident === 'Yes',\r\n validation: tinValidators,\r\n answer: answer?.usTin\r\n });\r\n const appliedFor = {\r\n id: 'appliedFor',\r\n label: 'questionnaire.usTin.appliedFor.label',\r\n component: QuestionButtonsField,\r\n componentProps: {\r\n buttons: [\r\n { value: 'Yes', text: 'questionnaire.buttons.Yes' },\r\n { value: 'No', text: 'questionnaire.buttons.No' }\r\n ]\r\n },\r\n visible: () => answer?.isUsTaxResident === 'Yes',\r\n answer: answer?.appliedFor\r\n };\r\n\r\n const blockIdentifier = useMemo(() => ((block && block.id) ? `${ block.id }${ block.index !== undefined ? (`.${ block.index }`) : '' }` : undefined), [block.index]);\r\n\r\n const isValid = () => {\r\n if (answer.isUsTaxResident === 'No') {\r\n return true;\r\n }\r\n if (answer.isUsTaxResident === 'Yes') {\r\n return usTin.isValid;\r\n }\r\n return isUsTaxResident.isValid && (usTin.isValid || (!answer.tin && answer.appliedFor === 'Yes'));\r\n };\r\n\r\n const onQuestionChange = (q, value) => {\r\n switch (q.id) {\r\n case 'isUsTaxResident': {\r\n const newIsUsTaxResident = { ...q, answer: value };\r\n validateQuestion(newIsUsTaxResident);\r\n setIsUsTaxResident(newIsUsTaxResident);\r\n const newComponentProps = { ...usTin.componentProps, ...{ disabled: false } };\r\n const newUsTin = { ...usTin, answer: undefined, ...{ validation: tinValidators, componentProps: newComponentProps } };\r\n validateQuestion(newUsTin);\r\n setUsTin(newUsTin);\r\n setAnswer({ ...answer, isUsTaxResident: value, tin: undefined, appliedFor: value ? appliedFor.value : undefined });\r\n break;\r\n }\r\n case 'tin': {\r\n const newUsTin = { ...q, answer: value };\r\n validateQuestion(newUsTin);\r\n setUsTin(newUsTin);\r\n setAnswer({ ...answer, tin: value });\r\n break;\r\n }\r\n case 'appliedFor': {\r\n const newComponentProps = { ...usTin.componentProps, ...{ disabled: value === 'Yes' } };\r\n const validators = value === 'Yes' ? null : tinValidators;\r\n const questionProps = value === 'Yes' ? { isValid: true, errorMessages: undefined } : null;\r\n const newUsTin = { ...usTin, ...questionProps, ...{ validation: validators, componentProps: newComponentProps } };\r\n validateQuestion(newUsTin);\r\n setUsTin(newUsTin);\r\n setAnswer({ ...answer, appliedFor: value });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!onAnswer || typeof onAnswer !== 'function') {\r\n if (Object.keys(answer).length > 0 && answer.constructor === Object) {\r\n dispatch(answerBlock(block.id, answer, isValid()));\r\n } else {\r\n onQuestionChange(isUsTaxResident, undefined);\r\n onQuestionChange(usTin, undefined);\r\n onQuestionChange(appliedFor, undefined);\r\n }\r\n } else {\r\n onAnswer(block, answer, isValid());\r\n }\r\n dispatch(answerBlock(block.id, answer, isValid()));\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n onQuestionChange({ ...isUsTaxResident, isForceEdited: true }, answer?.isUsTaxResident ?? '');\r\n onQuestionChange({ ...usTin, isForceEdited: true }, answer?.tin ?? '');\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return (
    \r\n onQuestionChange(q, a) } />\r\n { appliedFor.visible() && onQuestionChange(q, a) } /> }\r\n { appliedFor.visible() &&
    \r\n setCollapsibleAreaShown(value) } text=\"questionnaire.usTin.moreOptions\" />\r\n { collapsibleAreaShown && onQuestionChange(q, a) } /> }\r\n
    }\r\n
    );\r\n};\r\n\r\nQuestionRcUsTaxResidentBlock.displayName = 'QuestionRcUsTaxResidentBlock';\r\n\r\nQuestionRcUsTaxResidentBlock.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n onAnswer: PropTypes.func,\r\n};\r\n\r\nQuestionRcUsTaxResidentBlock.defaultProps = {\r\n onAnswer: null\r\n};\r\n\r\nexport default QuestionRcUsTaxResidentBlock;\r\n","import { QuestionJurisdictionDropDownField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator } from 'components/Questionnaires/validators';\r\n\r\nexport function incorporationCountryBlock() {\r\n return {\r\n id: 'incorporationCountry',\r\n title: 'questionnaire.incorporationCountry',\r\n component: undefined,\r\n info: {\r\n instructions: 'questionnaire.incorporationCountry.info'\r\n },\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'country',\r\n label: 'questionnaire.incorporationCountry.label',\r\n component: QuestionJurisdictionDropDownField,\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.incorporationCountry.errorMessage' }\r\n ]\r\n }\r\n },\r\n ],\r\n };\r\n}\r\n\r\nexport default incorporationCountryBlock;\r\n","import { QuestionRadioButtonsField, QuestionTextField, QuestionStockMarketAutocompleteField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator } from 'components/Questionnaires/validators';\r\n\r\nexport function publiclyTradedNffeBlock({ isVisible = true }) {\r\n return {\r\n id: 'publiclyTradedNffe',\r\n title: 'questionnaire.ch4.publiclyTradedNffe',\r\n component: undefined,\r\n info: {\r\n instructions: 'questionnaire.ch4.publiclyTradedNffe.info',\r\n },\r\n visible: isVisible,\r\n questions: [\r\n {\r\n id: 'certification',\r\n component: QuestionRadioButtonsField,\r\n componentProps: {\r\n items: 'questionnaire.ch4.publiclyTradedNffe.certification.items',\r\n inputName: 'regularlyTraded'\r\n },\r\n visible: true,\r\n label: 'questionnaire.ch4.publiclyTradedNffe.certification.label',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.publiclyTradedNffe.certification.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'entityName',\r\n label: 'questionnaire.ch4.publiclyTradedNffe.entityName.label',\r\n component: QuestionTextField,\r\n visible: bAnswers => bAnswers?.certification === '2',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.publiclyTradedNffe.entityName.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'securityMarket',\r\n label: 'questionnaire.ch4.publiclyTradedNffe.securityMarket.label',\r\n component: QuestionStockMarketAutocompleteField,\r\n placeholder: 'questionnaire.ch4.publiclyTradedNffe.securityMarket.placeholder',\r\n visible: bAnswers => bAnswers?.certification,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.publiclyTradedNffe.securityMarket.errorMessage' }\r\n ]\r\n }\r\n },\r\n ]\r\n };\r\n}\r\n\r\nexport default publiclyTradedNffeBlock;\r\n","import { QuestionSupportingDocUploadField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator } from 'components/Questionnaires/validators';\r\n\r\nexport function uploadSupportingDocField({ id, docType, visible, hasFootnote = false, isRequired = true }) {\r\n const label = `questionnaire.supportingDocUpload.${ docType }.label`;\r\n const placeholder = `questionnaire.supportingDocUpload.${ docType }.placeholder`;\r\n const footnote = hasFootnote ? `questionnaire.supportingDocUpload.${ docType }.footnote` : undefined;\r\n const validation = isRequired\r\n ? { conditions: [{ condition: requiredValidator, message: 'questionnaire.supportingDocUpload.errorMessage' }] }\r\n : undefined;\r\n return {\r\n id,\r\n component: QuestionSupportingDocUploadField,\r\n componentProps: {\r\n docType\r\n },\r\n info: {\r\n footnote\r\n },\r\n label,\r\n placeholder,\r\n visible,\r\n validation\r\n };\r\n}\r\n\r\nexport default uploadSupportingDocField;\r\n","export const DocumentKeys = {\r\n AFFIDAVIT: 'affidavitstatingnotprivatefoundation',\r\n ARMED_FORCES_ID: 'armedforcesidcard',\r\n ARTICLE_ASSOC: 'articleassoc',\r\n ARTICLE_INCORP: 'articleincorp',\r\n AUDITORS_LETTER: 'auditorsletter',\r\n BANK_ID_CARD: 'bankidcard',\r\n CEDULA: 'cedula',\r\n CERT_INCORP: 'certincorp',\r\n CERT_LTD_PARTNER: 'certltdpartner',\r\n CERT_LOSS_NATIONALITY: 'certlossnationality',\r\n CERT_PARTNERSHIP: 'certpartnership',\r\n CERT_REG: 'certreg',\r\n CERT_OF_RESIDENCE: 'certofresidence',\r\n CONTROLLING_PERSON_SELF_CERTIFICATION: 'controllingpersonselfcertification',\r\n DATE_OF_BIRTH_SUPPORTING_DOC: 'dateofbirthsupportingdoc',\r\n DRIVING_LICENCE: 'drivinglicence',\r\n FORM_8233: 'form8233',\r\n FORM_8832: 'form8832',\r\n IRS_DETERMINATION_LETTER: 'irsdeterminationletter',\r\n LIQUIDATION_AND_BANKRUPTCY: 'liquidationandbankruptcy',\r\n MEMORANDUM: 'memorandum',\r\n NATIONAL_ID_CARD: 'nationalidcard',\r\n OPINION_FROM_US_COUNSEL: 'opinionfromuscounsel',\r\n OTHER_GOV_ID: 'othergovid',\r\n OWNER_REPORTING_STATEMENT: 'ownerreportingstatement',\r\n PARTNERSHIP: 'partnership',\r\n PASSPORT: 'passport',\r\n PERMIT_OF_RESIDENCE: 'permitofresidence',\r\n POWER_OF_ATTORNEY: 'powerofattorney',\r\n QDD_DOCUMENTATION: 'qdddocumentation',\r\n QSL_STATEMENT: 'qslstatement',\r\n WRITTEN_EXPLANATION: 'writtenexplanation',\r\n REG_CERT: 'regcert',\r\n TAXPAYER_CERT: 'taxpayercert',\r\n TIN_NOT_ISSUED: 'tinnotissued',\r\n TRUST_AGREEMENT: 'trustagreement',\r\n TRUST_DEED: 'trustdeed',\r\n TRUSTEE_DOCUMENTED_TRUST_LETTER: 'trusteedocumentedtrustletter',\r\n VOTER_CARD: 'votercard',\r\n WILL: 'will',\r\n NOT_LISTED: 'notlisted',\r\n // Withholding Statements\r\n ALT_WHD_STATEMENT: 'altwhdstatement',\r\n DETAILED_WHD_STATEMENT: 'detailedwhdstatement',\r\n POOLED_WHD_STATEMENT: 'pooledwhdstatement',\r\n SIMPLE_WHD_STATEMENT: 'simplewhdstatement'\r\n};\r\n\r\nconst documentTypes = [\r\n { key: DocumentKeys.AFFIDAVIT, value: 'Affidavit Stating Not Private Foundation' },\r\n { key: DocumentKeys.ARMED_FORCES_ID, value: 'Armed Forces ID Card' },\r\n { key: DocumentKeys.ARTICLE_ASSOC, value: 'Articles of Association' },\r\n { key: DocumentKeys.ARTICLE_INCORP, value: 'Articles of Incorporation' },\r\n { key: DocumentKeys.AUDITORS_LETTER, value: 'Auditor\\'s Letter' },\r\n { key: DocumentKeys.BANK_ID_CARD, value: 'Bank Card' },\r\n { key: DocumentKeys.CEDULA, value: 'Identification Documents' },\r\n { key: DocumentKeys.CERT_INCORP, value: 'Certificate of Incorporation' },\r\n { key: DocumentKeys.CERT_LTD_PARTNER, value: 'Certificate of Limited Partnership' },\r\n { key: DocumentKeys.CERT_LOSS_NATIONALITY, value: 'Certificate of Loss of Nationality' },\r\n { key: DocumentKeys.CERT_PARTNERSHIP, value: 'Certificate of Partnership' },\r\n { key: DocumentKeys.CERT_REG, value: 'Certificate of Registration' },\r\n { key: DocumentKeys.CERT_OF_RESIDENCE, value: 'Certificate of Residence' },\r\n { key: DocumentKeys.CONTROLLING_PERSON_SELF_CERTIFICATION, value: 'Controlling Person Self-Certification' },\r\n { key: DocumentKeys.DATE_OF_BIRTH_SUPPORTING_DOC, value: 'Date of Birth Supporting Doc' },\r\n { key: DocumentKeys.DRIVING_LICENCE, value: 'Driver’s License' },\r\n { key: DocumentKeys.FORM_8233, value: 'Form 8233' },\r\n { key: DocumentKeys.FORM_8832, value: 'Form 8832' },\r\n { key: DocumentKeys.IRS_DETERMINATION_LETTER, value: 'IRS Determination Letter' },\r\n { key: DocumentKeys.LIQUIDATION_AND_BANKRUPTCY, value: 'Liquidation and Bankruptcy' },\r\n { key: DocumentKeys.MEMORANDUM, value: 'Memorandum of Association' },\r\n { key: DocumentKeys.NATIONAL_ID_CARD, value: 'National ID Card' },\r\n { key: DocumentKeys.OPINION_FROM_US_COUNSEL, value: 'Opinion From U.S. Counsel' },\r\n { key: DocumentKeys.OTHER_GOV_ID, value: 'Other Government ID' },\r\n { key: DocumentKeys.OWNER_REPORTING_STATEMENT, value: 'Owner Reporting Statement' },\r\n { key: DocumentKeys.PARTNERSHIP, value: 'Partnership Agreement' },\r\n { key: DocumentKeys.PASSPORT, value: 'Passport' },\r\n { key: DocumentKeys.PERMIT_OF_RESIDENCE, value: 'Permit of Residence' },\r\n { key: DocumentKeys.POWER_OF_ATTORNEY, value: 'Power Of Attorney' },\r\n { key: DocumentKeys.QDD_DOCUMENTATION, value: 'QDD Documentation' },\r\n { key: DocumentKeys.QSL_STATEMENT, value: 'QSL Statement' },\r\n { key: DocumentKeys.WRITTEN_EXPLANATION, value: 'Reasonable Written Explanation' },\r\n { key: DocumentKeys.REG_CERT, value: 'Registration Certificate' },\r\n { key: DocumentKeys.TAXPAYER_CERT, value: 'Taxpayer Certificate' },\r\n { key: DocumentKeys.TIN_NOT_ISSUED, value: 'Tin Not Issued' },\r\n { key: DocumentKeys.TRUST_AGREEMENT, value: 'Trust Agreement' },\r\n { key: DocumentKeys.TRUST_DEED, value: 'Trust Deed' },\r\n { key: DocumentKeys.TRUSTEE_DOCUMENTED_TRUST_LETTER, value: 'Trustee Documented Trust Letter' },\r\n { key: DocumentKeys.VOTER_CARD, value: 'Voter Registration Card' },\r\n { key: DocumentKeys.WILL, value: 'Will' },\r\n { key: DocumentKeys.NOT_LISTED, value: 'Other document type not listed above' },\r\n // Withholding Statements\r\n { key: DocumentKeys.ALT_WHD_STATEMENT, value: 'Alt Withholding Statement' },\r\n { key: DocumentKeys.DETAILED_WHD_STATEMENT, value: 'Detailed Withholding Statement' },\r\n { key: DocumentKeys.POOLED_WHD_STATEMENT, value: 'Pooled Withholding Statement' },\r\n { key: DocumentKeys.SIMPLE_WHD_STATEMENT, value: 'Simple Withholding Statement' },\r\n];\r\n\r\nexport default documentTypes;\r\n\r\nexport const getKey = (supportingDoc) => {\r\n const doc = documentTypes.find(d => d.key === supportingDoc);\r\n return doc ? doc.key : null;\r\n};\r\n","import { QuestionButtonsField, QuestionRadioButtonsField, QuestionYesNoField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator } from 'components/Questionnaires/validators';\r\nimport { uploadSupportingDocField } from 'common/questionnaires/definitions/fields';\r\nimport { getKey, DocumentKeys } from 'common/forms/documentTypes';\r\n\r\nexport function usPersonOrIntermediaryBlock({ id, title, info, visible, isCh4Block }) {\r\n return {\r\n id,\r\n title,\r\n component: undefined,\r\n visible,\r\n info,\r\n questions: [\r\n {\r\n id: 'entity',\r\n label: 'questionnaire.usPersonIntermediary.label',\r\n component: QuestionButtonsField,\r\n componentProps: {\r\n buttons: [\r\n { value: 'UsPerson', text: 'questionnaire.buttons.usPerson' },\r\n { value: 'Intermediary', text: 'questionnaire.buttons.intermediary' }\r\n ]\r\n },\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.usPersonIntermediary.errorMessage' }\r\n ]\r\n },\r\n },\r\n {\r\n id: 'usPersonCertification',\r\n component: QuestionRadioButtonsField,\r\n componentProps: {\r\n items: 'questionnaire.usPersonIntermediary.usPersonCertification.items',\r\n inputName: 'territoryFi'\r\n },\r\n label: 'questionnaire.usPersonIntermediary.usPersonCertification.label',\r\n visible: bAnswers => bAnswers?.entity === 'UsPerson',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.usPersonIntermediary.usPersonCertification.errorMessage' }\r\n ]\r\n },\r\n },\r\n {\r\n id: 'intermediaryCertification',\r\n component: QuestionYesNoField,\r\n label: 'questionnaire.usPersonIntermediary.intermediaryCertification.label',\r\n visible: bAnswers => bAnswers?.entity === 'Intermediary',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.usPersonIntermediary.intermediaryCertification.errorMessage' }\r\n ]\r\n },\r\n },\r\n uploadSupportingDocField({\r\n id: 'withholdingStatement',\r\n docType: getKey(DocumentKeys.SIMPLE_WHD_STATEMENT),\r\n visible: bAnswers => !isCh4Block && bAnswers?.entity === 'Intermediary',\r\n hasFootnote: true\r\n }),\r\n ]\r\n };\r\n}\r\n\r\nexport default usPersonOrIntermediaryBlock;\r\n","import { QuestionRadioButtonsField, QuestionYesNoField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator } from 'components/Questionnaires/validators';\r\nimport { getKey, DocumentKeys } from 'common/forms/documentTypes';\r\nimport { uploadSupportingDocField } from 'common/questionnaires/definitions/fields';\r\n\r\nexport function nonqualifiedIntermediaryBlock({ visible }) {\r\n return {\r\n id: 'nonqualifiedIntermediary',\r\n title: 'questionnaire.ch3.nonqualifiedIntermediary',\r\n component: undefined,\r\n info: {\r\n instructions: 'questionnaire.ch3.nonqualifiedIntermediary.info',\r\n },\r\n visible,\r\n questions: [\r\n {\r\n id: 'certification',\r\n component: QuestionRadioButtonsField,\r\n componentProps: {\r\n items: 'questionnaire.ch3.nonqualifiedIntermediary.certification.items',\r\n inputName: 'nonqualifiedIntermediary'\r\n },\r\n visible: true,\r\n label: 'questionnaire.ch3.nonqualifiedIntermediary.certification.label',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch3.nonqualifiedIntermediary.certification.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'isAltStatement',\r\n component: QuestionYesNoField,\r\n visible: true,\r\n label: 'questionnaire.ch3.nonqualifiedIntermediary.isAltStatement.label',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch3.nonqualifiedIntermediary.isAltStatement.errorMessage' }\r\n ]\r\n }\r\n },\r\n uploadSupportingDocField({\r\n id: 'simpleWithholdingStatement',\r\n docType: getKey(DocumentKeys.SIMPLE_WHD_STATEMENT),\r\n visible: bAnswers => bAnswers?.isAltStatement === 'No'\r\n && bAnswers?.certification === '1',\r\n hasFootnote: true\r\n }),\r\n uploadSupportingDocField({\r\n id: 'pooledWithholdingStatement',\r\n docType: getKey(DocumentKeys.POOLED_WHD_STATEMENT),\r\n visible: bAnswers => bAnswers?.isAltStatement === 'No'\r\n && bAnswers?.certification === '2',\r\n hasFootnote: true\r\n }),\r\n uploadSupportingDocField({\r\n id: 'altWithholdingStatement',\r\n docType: getKey(DocumentKeys.ALT_WHD_STATEMENT),\r\n visible: bAnswers => bAnswers?.isAltStatement === 'Yes',\r\n hasFootnote: true\r\n }),\r\n {\r\n id: 'isQsl',\r\n component: QuestionYesNoField,\r\n visible: true,\r\n label: 'questionnaire.ch3.nonqualifiedIntermediary.isQsl.label',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch3.nonqualifiedIntermediary.isQsl.errorMessage' }\r\n ]\r\n }\r\n },\r\n uploadSupportingDocField({\r\n id: 'qslStatement',\r\n docType: getKey(DocumentKeys.QSL_STATEMENT),\r\n visible: bAnswers => bAnswers?.isQsl === 'Yes'\r\n })\r\n ]\r\n };\r\n}\r\n\r\nexport default nonqualifiedIntermediaryBlock;\r\n","import { QuestionYesNoField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator } from 'components/Questionnaires/validators';\r\nimport { getKey, DocumentKeys } from 'common/forms/documentTypes';\r\nimport { uploadSupportingDocField } from 'common/questionnaires/definitions/fields';\r\n\r\nexport const NonwithholdingTypes = {\r\n FOREIGN_PARTNERSHIP: { id: 'nonwithholdingForeignPartnership', languageId: 'foreignPartnership' },\r\n FOREIGN_SIMPLE_TRUST: { id: 'nonwithholdingForeignSimpleTrust', languageId: 'foreignSimpleTrust' },\r\n FOREIGN_GRANTOR_TRUST: { id: 'nonwithholdingForeignGrantorTrust', languageId: 'foreignGrantorTrust' }\r\n};\r\n\r\nexport function nonwithholdingBlock({ nonwithholdingType, visible }) {\r\n const showIsLowerTierPartnership = () => nonwithholdingType === NonwithholdingTypes.FOREIGN_PARTNERSHIP || nonwithholdingType === NonwithholdingTypes.FOREIGN_GRANTOR_TRUST;\r\n const showIsProvidingEachGrantor = () => nonwithholdingType === NonwithholdingTypes.FOREIGN_GRANTOR_TRUST;\r\n const showIsSection1446f = () => nonwithholdingType === NonwithholdingTypes.FOREIGN_PARTNERSHIP;\r\n const showIsModifiedAmount = bAnswers => bAnswers?.isSection1446f === 'Yes';\r\n const showSimpleWithholdingStatement = bAnswers => bAnswers?.isAltStatement === 'No';\r\n const showAltWithholdingStatement = bAnswers => bAnswers?.isAltStatement === 'Yes';\r\n\r\n return {\r\n id: nonwithholdingType.id,\r\n title: `questionnaire.ch3.nonwithholding.${ nonwithholdingType.languageId }`,\r\n component: undefined,\r\n info: {\r\n instructions: `questionnaire.ch3.nonwithholding.${ nonwithholdingType.languageId }.info`,\r\n },\r\n visible,\r\n questions: [\r\n {\r\n id: 'isLowerTierPartnership',\r\n component: QuestionYesNoField,\r\n visible: showIsLowerTierPartnership,\r\n label: 'questionnaire.ch3.nonwithholding.isLowerTierPartnership.label',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch3.nonwithholding.isLowerTierPartnership.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'isProvidingEachGrantor',\r\n component: QuestionYesNoField,\r\n visible: showIsProvidingEachGrantor,\r\n label: 'questionnaire.ch3.nonwithholding.isProvidingEachGrantor.label',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch3.nonwithholding.isProvidingEachGrantor.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'isSection1446f',\r\n component: QuestionYesNoField,\r\n visible: showIsSection1446f,\r\n label: 'questionnaire.ch3.nonwithholding.isSection1446f.label',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch3.nonwithholding.isSection1446f.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'isModifiedAmount',\r\n component: QuestionYesNoField,\r\n visible: showIsModifiedAmount,\r\n label: 'questionnaire.ch3.nonwithholding.isModifiedAmount.label',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch3.nonwithholding.isModifiedAmount.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'isAltStatement',\r\n component: QuestionYesNoField,\r\n visible: true,\r\n label: 'questionnaire.ch3.nonwithholding.isAltStatement.label',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch3.nonwithholding.isAltStatement.errorMessage' }\r\n ]\r\n }\r\n },\r\n uploadSupportingDocField({\r\n id: 'simpleWithholdingStatement',\r\n docType: getKey(DocumentKeys.SIMPLE_WHD_STATEMENT),\r\n visible: showSimpleWithholdingStatement,\r\n hasFootnote: true\r\n }),\r\n uploadSupportingDocField({\r\n id: 'altWithholdingStatement',\r\n docType: getKey(DocumentKeys.ALT_WHD_STATEMENT),\r\n visible: showAltWithholdingStatement,\r\n hasFootnote: true\r\n })\r\n ]\r\n };\r\n}\r\n\r\nexport default nonwithholdingBlock;\r\n","import { QuestionRadioButtonsField, QuestionYesNoField, QuestionDropDownField, QuestionMultiCheckBoxField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator } from 'components/Questionnaires/validators';\r\nimport { getKey, DocumentKeys } from 'common/forms/documentTypes';\r\nimport { uploadSupportingDocField } from 'common/questionnaires/definitions/fields';\r\n\r\nexport function qualifiedIntermediaryBlock({ visible }) {\r\n const isQi = bAnswers => bAnswers?.entity === '1' || bAnswers?.entity === '3';\r\n const isQdd = bAnswers => bAnswers?.entity === '2' || bAnswers?.entity === '3';\r\n const isQslStatementVisible = bAnswers => bAnswers?.additionalResponsibilities?.includes('3');\r\n const isChapter4RatePoolVisible = bAnswers => bAnswers?.responsibility === '2';\r\n const isIntermediaryRatePoolVisible = bAnswers => bAnswers?.responsibility === '2';\r\n const isSimpleWhdStatementVisible = bAnswers => isQi(bAnswers) && bAnswers?.responsibility === '1';\r\n const isPooledWhdStatementVisible = bAnswers => isQi(bAnswers) && bAnswers?.responsibility === '2';\r\n\r\n return {\r\n id: 'qualifiedIntermediary',\r\n title: 'questionnaire.ch3.qualifiedIntermediary',\r\n component: undefined,\r\n info: {\r\n instructions: 'questionnaire.ch3.qualifiedIntermediary.info',\r\n },\r\n visible,\r\n questions: [\r\n {\r\n id: 'entity',\r\n label: 'questionnaire.ch3.qualifiedIntermediary.entity.label',\r\n component: QuestionRadioButtonsField,\r\n componentProps: {\r\n items: 'questionnaire.ch3.qualifiedIntermediary.entity.items',\r\n inputName: 'entity'\r\n },\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch3.qualifiedIntermediary.entity.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'responsibility',\r\n label: 'questionnaire.ch3.qualifiedIntermediary.responsibility.label',\r\n component: QuestionRadioButtonsField,\r\n componentProps: {\r\n items: 'questionnaire.ch3.qualifiedIntermediary.responsibility.items',\r\n inputName: 'responsibility'\r\n },\r\n visible: isQi,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch3.qualifiedIntermediary.responsibility.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'additionalResponsibilities',\r\n label: 'questionnaire.ch3.qualifiedIntermediary.additionalResponsibilities.label',\r\n component: QuestionMultiCheckBoxField,\r\n componentProps: {\r\n items: 'questionnaire.ch3.qualifiedIntermediary.additionalResponsibilities.items',\r\n inputName: 'additionalResponsibilities'\r\n },\r\n visible: isQi\r\n },\r\n {\r\n id: 'chapter4RatePool',\r\n component: QuestionYesNoField,\r\n visible: isChapter4RatePoolVisible,\r\n label: 'questionnaire.ch3.qualifiedIntermediary.chapter4RatePool.label',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch3.qualifiedIntermediary.chapter4RatePool.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'intermediaryRatePool',\r\n component: QuestionYesNoField,\r\n visible: isIntermediaryRatePoolVisible,\r\n label: 'questionnaire.ch3.qualifiedIntermediary.intermediaryRatePool.label',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch3.qualifiedIntermediary.intermediaryRatePool.errorMessage' }\r\n ]\r\n }\r\n },\r\n uploadSupportingDocField({\r\n id: 'simpleWhdStatement',\r\n docType: getKey(DocumentKeys.SIMPLE_WHD_STATEMENT),\r\n visible: isSimpleWhdStatementVisible,\r\n hasFootnote: true,\r\n isRequired: false\r\n }),\r\n uploadSupportingDocField({\r\n id: 'pooledWhdStatement',\r\n docType: getKey(DocumentKeys.POOLED_WHD_STATEMENT),\r\n visible: isPooledWhdStatementVisible,\r\n hasFootnote: true\r\n }),\r\n uploadSupportingDocField({\r\n id: 'qslStatement',\r\n docType: getKey(DocumentKeys.QSL_STATEMENT),\r\n visible: isQslStatementVisible,\r\n }),\r\n {\r\n id: 'qddType',\r\n label: 'questionnaire.ch3.qualifiedIntermediary.qddType.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.ch3.qualifiedIntermediary.qddType.items'\r\n },\r\n visible: isQdd,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch3.qualifiedIntermediary.qddType.errorMessage' }\r\n ]\r\n }\r\n },\r\n uploadSupportingDocField({\r\n id: 'qddDocumentation',\r\n docType: getKey(DocumentKeys.QDD_DOCUMENTATION),\r\n isRequired: false,\r\n visible: isQdd,\r\n }),\r\n\r\n ]\r\n };\r\n}\r\n\r\nexport default qualifiedIntermediaryBlock;\r\n","import { QuestionAddressBlock } from 'components/Questionnaires/blocks';\r\n\r\nexport function residentAddressBlock() {\r\n return {\r\n id: 'address',\r\n title: 'questionnaire.address',\r\n component: QuestionAddressBlock,\r\n info: {\r\n instructions: 'questionnaire.address.1.info'\r\n },\r\n visible: true,\r\n lockGroup: 'permanentAddress',\r\n };\r\n}\r\n\r\nexport default residentAddressBlock;\r\n","import { QuestionAddressBlock } from 'components/Questionnaires/blocks';\r\n\r\nexport function mailingAddressBlock() {\r\n return {\r\n id: 'mailingAddress',\r\n title: 'questionnaire.mailingAddress',\r\n component: QuestionAddressBlock,\r\n componentProps: {\r\n line1Label: 'questionnaire.mailingAddress.1.label',\r\n optional: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.mailingAddress.1.info'\r\n },\r\n visible: true,\r\n linkBlock: true,\r\n lockGroup: 'mailingAddress',\r\n };\r\n}\r\n\r\nexport default mailingAddressBlock;\r\n","import { QuestionBlockRepeater, QuestionTaxResidenceBlock } from 'components/Questionnaires/blocks';\r\n\r\nexport function rcTaxResidencesBlock() {\r\n return {\r\n id: 'taxResidences',\r\n title: 'questionnaire.rc.taxResidences',\r\n component: QuestionBlockRepeater,\r\n isCollapsed: true,\r\n componentProps: {\r\n collapsible: true,\r\n optional: true\r\n },\r\n repeatBlock: {\r\n id: 'taxResidence',\r\n title: 'questionnaire.rc.taxResidence.additional',\r\n component: QuestionTaxResidenceBlock,\r\n componentProps: {\r\n reasonItems: 'questionnaire.rc.taxResidence.reasons',\r\n reasonOtherValue: '3',\r\n optional: true\r\n }\r\n },\r\n minSize: 1,\r\n maxSize: 2,\r\n addText: 'questionnaire.rc.taxResidences.addLabel',\r\n visible: true,\r\n };\r\n}\r\n\r\nexport default rcTaxResidencesBlock;\r\n","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\nimport moment from 'moment';\r\nimport format from 'date-fns/format';\r\n\r\nimport {\r\n answerBlock\r\n} from 'actions';\r\n\r\nimport QuestionnaireType from 'common/questionnaires/QuestionnaireType';\r\nimport QuestionBlock from 'components/Questionnaires/QuestionBlock';\r\nimport Question from 'components/Questionnaires/Question';\r\nimport { QuestionAddressBlock, QuestionRcUsTaxResidentBlock, QuestionCanadianTaxResidentBlock } from 'components/Questionnaires/blocks';\r\nimport { QuestionTextField, QuestionDateDropdownField, QuestionDropDownField } from 'components/Questionnaires/fields';\r\nimport { requiredValidator, validateQuestion } from 'components/Questionnaires/validators';\r\nimport { rcTaxResidencesBlock } from 'common/questionnaires/definitions/blocks/blocks';\r\n\r\nexport const QuestionRcControllingPersonBlock = ({ block, onAnswer, preQualAnswers }) => {\r\n const dispatch = useDispatch();\r\n const [answer, setAnswer] = useState(block?.answers ?? {});\r\n\r\n const [firstName, setFirstName] = useState({\r\n id: 'firstName',\r\n label: 'questionnaire.rc518.name.firstName.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-9',\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc518.name.firstName.errorMessage' }\r\n ]\r\n }\r\n });\r\n\r\n const [initials, setInitials] = useState({\r\n id: 'initials',\r\n label: 'questionnaire.rc518.name.initials.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-3',\r\n visible: true,\r\n });\r\n\r\n const [lastName, setLastName] = useState({\r\n id: 'lastName',\r\n label: 'questionnaire.rc518.name.lastName.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-12',\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc518.name.lastName.errorMessage' }\r\n ]\r\n }\r\n });\r\n\r\n const [birthDate, setBirthDate] = useState({\r\n id: 'birthDate',\r\n label: 'questionnaire.rc518.birth.date.label',\r\n component: QuestionDateDropdownField,\r\n componentProps: {\r\n minDate: format(moment().subtract(125, 'years').toDate(), 'dd-MM-yyyy'),\r\n maxDate: format(moment().subtract(1, 'days').toDate(), 'dd-MM-yyyy'),\r\n dateFormat: 'dd-MM-yyyy',\r\n showToolTip: true\r\n },\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc518.birth.errorMessage' }\r\n ]\r\n }\r\n });\r\n\r\n const [type, setType] = useState({\r\n id: 'type',\r\n label: 'questionnaire.rc518.controllingPerson.type.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.rc518.controllingPerson.type.items'\r\n },\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc518.controllingPerson.type.errorMessage' }\r\n ]\r\n }\r\n });\r\n\r\n const [address, setAddress] = useState({\r\n id: 'address',\r\n title: 'questionnaire.address',\r\n component: QuestionAddressBlock,\r\n info: {\r\n instructions: 'questionnaire.address.1.info'\r\n },\r\n className: 'p-0 no-border nested',\r\n linkBlock: true,\r\n visible: true,\r\n });\r\n\r\n const [mailingAddress, setMailingAddress] = useState({\r\n id: 'mailingAddress',\r\n title: 'questionnaire.mailingAddress',\r\n component: QuestionAddressBlock,\r\n componentProps: {\r\n line1Label: 'questionnaire.mailingAddress.1.label',\r\n optional: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.mailingAddress.1.info'\r\n },\r\n className: 'p-0 no-border nested',\r\n linkBlock: true,\r\n visible: true\r\n });\r\n\r\n const [cpCanadianTaxResident, setCpCanadianTaxResident] = useState({\r\n id: 'cpCanadianTaxResident',\r\n component: QuestionCanadianTaxResidentBlock,\r\n title: 'questionnaire.rc518.canadianTaxResident',\r\n visible: true,\r\n className: 'p-0 no-border nested',\r\n linkBlock: true,\r\n });\r\n\r\n const [cpUsTaxResident, setCpUsTaxResident] = useState({\r\n id: 'cpUsTaxResident',\r\n title: 'questionnaire.rc518.usTaxResident',\r\n component: QuestionRcUsTaxResidentBlock,\r\n visible: true,\r\n componentProps: {\r\n tinType: 'SSN'\r\n },\r\n className: 'p-0 no-border nested',\r\n linkBlock: true,\r\n });\r\n\r\n const [taxResidences, setTaxResidences] = useState({\r\n ...rcTaxResidencesBlock(),\r\n isCollapsed: false,\r\n className: 'p-0 no-border nested',\r\n linkBlock: true\r\n });\r\n\r\n const isEmptyObject = (obj) => {\r\n if (!obj) {\r\n return true;\r\n }\r\n let isEmpty = true;\r\n Object.keys(obj).forEach((key) => {\r\n if (obj[key]) {\r\n isEmpty = false;\r\n }\r\n });\r\n return isEmpty;\r\n };\r\n\r\n const isValid = () => {\r\n if (firstName.answer === undefined\r\n || lastName.answer === undefined\r\n || birthDate.answer === undefined\r\n || type.answer === undefined\r\n || address.answer === undefined\r\n || cpCanadianTaxResident.answer === undefined\r\n || cpUsTaxResident.answer === undefined\r\n || taxResidences.answer === undefined) {\r\n return undefined;\r\n }\r\n return firstName.isValid\r\n && lastName.isValid\r\n && birthDate.isValid\r\n && type.isValid\r\n && (!isEmptyObject(address.answer) && address.isValid)\r\n && (!mailingAddress.answer || mailingAddress.isValid)\r\n && (!cpCanadianTaxResident.answer || cpCanadianTaxResident.isValid)\r\n && (!cpUsTaxResident.answer || cpUsTaxResident.isValid)\r\n && (!taxResidences.answer || taxResidences.answer.length > 0);\r\n };\r\n\r\n const onBlockAnswer = (b, a, v) => {\r\n switch (b.id) {\r\n case 'address': {\r\n const newBlock = { ...b, ...{ answer: a, isValid: v } };\r\n setAddress(newBlock);\r\n setAnswer({ ...answer, address: a });\r\n break;\r\n }\r\n case 'mailingAddress': {\r\n const newBlock = { ...b, ...{ answer: a, isValid: v } };\r\n setMailingAddress(newBlock);\r\n setAnswer({ ...answer, mailingAddress: a });\r\n break;\r\n }\r\n case 'taxResidences': {\r\n const newBlock = { ...b, ...{ answer: a, isValid: v } };\r\n setTaxResidences(newBlock);\r\n setAnswer({ ...answer, taxResidences: a });\r\n break;\r\n }\r\n case 'cpCanadianTaxResident': {\r\n const newBlock = { ...b, ...{ answer: a, isValid: v } };\r\n setCpCanadianTaxResident(newBlock);\r\n setAnswer({ ...answer, cpCanadianTaxResident: a });\r\n break;\r\n }\r\n case 'cpUsTaxResident': {\r\n const newBlock = { ...b, ...{ answer: a, isValid: v } };\r\n setCpUsTaxResident(newBlock);\r\n setAnswer({ ...answer, cpUsTaxResident: a });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!onAnswer || typeof onAnswer !== 'function') {\r\n dispatch(answerBlock(block.id, answer, isValid()));\r\n } else {\r\n onAnswer(block, answer, isValid());\r\n }\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n const onQuestionChange = (q, value) => {\r\n switch (q.id) {\r\n case 'firstName': {\r\n const newQuestion = { ...q, answer: value };\r\n validateQuestion(newQuestion);\r\n setFirstName(newQuestion);\r\n setAnswer({ ...answer, firstName: value });\r\n break;\r\n }\r\n case 'initials': {\r\n const newQuestion = { ...q, answer: value };\r\n validateQuestion(newQuestion);\r\n setInitials(newQuestion);\r\n setAnswer({ ...answer, initials: value });\r\n break;\r\n }\r\n case 'lastName': {\r\n const newQuestion = { ...q, answer: value };\r\n validateQuestion(newQuestion);\r\n setLastName(newQuestion);\r\n setAnswer({ ...answer, lastName: value });\r\n break;\r\n }\r\n case 'birthDate': {\r\n const newQuestion = { ...q, answer: value };\r\n validateQuestion(newQuestion);\r\n setBirthDate(newQuestion);\r\n setAnswer({ ...answer, birthDate: value });\r\n break;\r\n }\r\n case 'type': {\r\n const newQuestion = { ...q, answer: value };\r\n validateQuestion(newQuestion);\r\n setType(newQuestion);\r\n setAnswer({ ...answer, type: value });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n if (!answer?.firstName) {\r\n onQuestionChange({ ...firstName, isForceEdited: true }, '');\r\n }\r\n if (!answer?.lastName) {\r\n onQuestionChange({ ...lastName, isForceEdited: true }, '');\r\n }\r\n if (!answer?.birthDate) {\r\n onQuestionChange({ ...birthDate, isForceEdited: true }, '');\r\n }\r\n if (!answer?.type) {\r\n onQuestionChange({ ...type, isForceEdited: true }, '');\r\n }\r\n if (!answer.address || isEmptyObject(answer.address)) {\r\n const newBlock = { ...address, ...{ isForceEdited: true } };\r\n setAddress(newBlock);\r\n }\r\n if (answer.mailingAddress) {\r\n const newBlock = { ...mailingAddress, ...{ isForceEdited: true } };\r\n setMailingAddress(newBlock);\r\n }\r\n if (!answer.cpCanadianTaxResident || isEmptyObject(cpCanadianTaxResident)) {\r\n const newBlock = { ...cpCanadianTaxResident, ...{ isForceEdited: true } };\r\n setCpCanadianTaxResident(newBlock);\r\n }\r\n if (!answer.cpUsTaxResident || isEmptyObject(cpUsTaxResident)) {\r\n const newBlock = { ...cpUsTaxResident, ...{ isForceEdited: true } };\r\n setCpUsTaxResident(newBlock);\r\n }\r\n if (!answer.taxResidences || answer.taxResidences.length > 0) {\r\n const newBlock = { ...taxResidences, ...{ isForceEdited: true } };\r\n setTaxResidences(newBlock);\r\n }\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return (
    \r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    );\r\n};\r\n\r\nQuestionRcControllingPersonBlock.displayName = 'QuestionRcControllingPersonBlock';\r\n\r\nQuestionRcControllingPersonBlock.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n onAnswer: PropTypes.func,\r\n preQualAnswers: PropTypes.shape()\r\n};\r\n\r\nQuestionRcControllingPersonBlock.defaultProps = {\r\n onAnswer: null,\r\n preQualAnswers: null\r\n};\r\n\r\nexport default QuestionRcControllingPersonBlock;\r\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport {\r\n answerBlock\r\n} from 'actions';\r\n\r\nimport Question from 'components/Questionnaires/Question';\r\nimport { QuestionYesNoField, QuestionSocialInsuranceNumberField } from 'components/Questionnaires/fields';\r\nimport { validateQuestion, requiredValidator, lengthValidator, sequentialIntegerValidator, sameCharacterValidator } from 'components/Questionnaires/validators';\r\n\r\nexport const QuestionCanadianTaxResidentBlock = ({ block, onAnswer }) => {\r\n const dispatch = useDispatch();\r\n const [answer, setAnswer] = useState(block?.answers ?? {});\r\n\r\n const [isCanadianTaxResident, setIsCanadianTaxResident] = useState({\r\n id: 'isCanadianTaxResident',\r\n label: 'questionnaire.rc518.canadianTaxResident.isCanadianTaxResident.label',\r\n component: QuestionYesNoField,\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc518.canadianTaxResident.isCanadianTaxResident.errorMessage' }\r\n ]\r\n },\r\n answer: answer?.isCanadianTaxResident\r\n });\r\n\r\n const [socialInsuranceNumber, setSocialInsuranceNumber] = useState({\r\n id: 'socialInsuranceNumber',\r\n label: 'questionnaire.rc518.canadianTaxResident.socialInsuranceNumber.label',\r\n component: QuestionSocialInsuranceNumberField,\r\n componentProps: {\r\n length: 9\r\n },\r\n visible: true,\r\n info: {\r\n instructions: 'questionnaire.rc518.canadianTaxResident.socialInsuranceNumber.info'\r\n },\r\n validation: {\r\n conditions: [\r\n { condition: lengthValidator, message: 'questionnaire.rc518.canadianTaxResident.socialInsuranceNumber.errorMessage' },\r\n { condition: sequentialIntegerValidator, message: 'questionnaire.rc518.canadianTaxResident.socialInsuranceNumber.sequentialErrorMessage' },\r\n { condition: sameCharacterValidator, message: 'questionnaire.rc518.canadianTaxResident.socialInsuranceNumber.sameCharErrorMessage' }\r\n ]\r\n },\r\n answer: answer?.socialInsuranceNumber\r\n });\r\n\r\n const blockIdentifier = useMemo(() => ((block && block.id) ? `${ block.id }${ block.index !== undefined ? (`.${ block.index }`) : '' }` : undefined), [block.index]);\r\n\r\n const isValid = () => isCanadianTaxResident.isValid;\r\n\r\n const onQuestionChange = (q, value) => {\r\n switch (q.id) {\r\n case 'isCanadianTaxResident': {\r\n const newAnswer = { ...q, answer: value };\r\n validateQuestion(newAnswer);\r\n setIsCanadianTaxResident(newAnswer);\r\n setAnswer({ ...answer, isCanadianTaxResident: value });\r\n break;\r\n }\r\n case 'socialInsuranceNumber': {\r\n const newAnswer = { ...q, answer: value };\r\n validateQuestion(newAnswer);\r\n setSocialInsuranceNumber(newAnswer);\r\n setAnswer({ ...answer, socialInsuranceNumber: value });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!onAnswer || typeof onAnswer !== 'function') {\r\n if (Object.keys(answer).length > 0 && answer.constructor === Object) {\r\n dispatch(answerBlock(block.id, answer, isValid()));\r\n } else {\r\n onQuestionChange(isCanadianTaxResident, undefined);\r\n onQuestionChange(socialInsuranceNumber, undefined);\r\n }\r\n } else {\r\n onAnswer(block, answer, isValid());\r\n }\r\n dispatch(answerBlock(block.id, answer, isValid()));\r\n }, [answer]);\r\n\r\n useEffect(() => {\r\n setAnswer(block.answers ?? {});\r\n }, [block.answers]);\r\n\r\n useEffect(() => {\r\n if (block.isForceEdited === true) {\r\n if (!answer?.isCanadianTaxResident) {\r\n onQuestionChange({ ...isCanadianTaxResident, isForceEdited: true }, '');\r\n }\r\n if (!answer?.socialInsuranceNumber) {\r\n onQuestionChange({ ...socialInsuranceNumber, isForceEdited: true }, '');\r\n }\r\n }\r\n }, [block.isForceEdited]);\r\n\r\n return (\r\n onQuestionChange(q, a) } />\r\n onQuestionChange(q, a) } />\r\n );\r\n};\r\n\r\nQuestionCanadianTaxResidentBlock.displayName = 'QuestionCanadianTaxResidentBlock';\r\n\r\nQuestionCanadianTaxResidentBlock.propTypes = {\r\n block: PropTypes.shape().isRequired,\r\n onAnswer: PropTypes.func,\r\n};\r\n\r\nQuestionCanadianTaxResidentBlock.defaultProps = {\r\n onAnswer: null\r\n};\r\n\r\nexport default QuestionCanadianTaxResidentBlock;\r\n","import { QuestionTextField, QuestionDropDownField } from 'components/Questionnaires/fields';\r\nimport { QuestionAddressBlock, QuestionSignerBlock, QuestionUsTinBlock, QuestionW9TaxClassificationBlock } from 'components/Questionnaires/blocks';\r\nimport { requiredValidator } from 'components/Questionnaires/validators';\r\n\r\nconst w9 = {\r\n blocks: [\r\n {\r\n id: 'name',\r\n title: 'questionnaire.W9.name',\r\n component: undefined, // Component for Block\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'name',\r\n label: 'questionnaire.W9.name.name.label',\r\n component: QuestionTextField,\r\n info: {\r\n instructions: 'questionnaire.W9.name.name.info'\r\n },\r\n visible: true,\r\n lockGroup: 'name',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.W9.name.name.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'businessName',\r\n label: 'questionnaire.W9.name.businessName.label',\r\n component: QuestionTextField,\r\n info: {\r\n instructions: 'questionnaire.disregardedEntity.info'\r\n },\r\n visible: (bAnswers, qAnswers, preQualAnswers) => !preQualAnswers || Object.keys(preQualAnswers).length === 0 || preQualAnswers?.usIncome?.dbaDre === 'Yes',\r\n },\r\n ]\r\n },\r\n {\r\n id: 'address',\r\n title: 'questionnaire.address',\r\n component: QuestionAddressBlock,\r\n info: {\r\n instructions: 'questionnaire.address.1.info'\r\n },\r\n visible: true,\r\n lockGroup: 'permanentAddress',\r\n },\r\n {\r\n id: 'taxClassification',\r\n title: 'questionnaire.W9.taxClassification',\r\n component: QuestionW9TaxClassificationBlock,\r\n visible: (qAnswers, preQualAnswers) => !preQualAnswers || Object.keys(preQualAnswers).length === 0 || (preQualAnswers?.individual?.answer === 'No' && !preQualAnswers?.usIncome?.soleOwner === 'Yes'),\r\n },\r\n {\r\n id: 'exemptions',\r\n title: 'questionnaire.W9.exemptions',\r\n visible: (qAnswers, preQualAnswers) => !preQualAnswers || Object.keys(preQualAnswers).length === 0 || (preQualAnswers?.individual?.answer === 'No' && !preQualAnswers?.usIncome?.soleOwner === 'Yes'),\r\n questions: [\r\n {\r\n id: 'exemptPayeeCode',\r\n label: 'questionnaire.W9.exemptions.exemptPayeeCode.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.W9.exemptions.exemptPayeeCode.items',\r\n },\r\n default: '',\r\n info: {\r\n instructions: 'questionnaire.W9.exemptions.exemptPayeeCode.info'\r\n },\r\n visible: true,\r\n },\r\n {\r\n id: 'fatcaReportingCode',\r\n label: 'questionnaire.W9.exemptions.fatcaReportingCode.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.W9.exemptions.fatcaReportingCode.items',\r\n },\r\n default: '',\r\n info: {\r\n instructions: 'questionnaire.W9.exemptions.fatcaReportingCode.info'\r\n },\r\n visible: true,\r\n },\r\n ]\r\n },\r\n {\r\n id: 'usTin',\r\n title: 'questionnaire.usTin',\r\n component: QuestionUsTinBlock,\r\n visible: true\r\n },\r\n {\r\n id: 'signer',\r\n title: 'questionnaire.signer',\r\n component: QuestionSignerBlock,\r\n componentProps: {\r\n individualOnly: true,\r\n showBackupWhd: true\r\n },\r\n visible: true\r\n },\r\n ]\r\n};\r\n\r\nexport default w9;\r\n","import moment from 'moment';\r\nimport format from 'date-fns/format';\r\nimport { QuestionTextField, QuestionJurisdictionDropDownField, QuestionDateDropdownField } from 'components/Questionnaires/fields';\r\nimport { QuestionAddressBlock, QuestionSignerBlock, QuestionUsTinBlock, QuestionForeignTinBlock, QuestionTreatyClaimBlock } from 'components/Questionnaires/blocks';\r\nimport { requiredValidator } from 'components/Questionnaires/validators';\r\n\r\nconst w8Ben = {\r\n blocks: [\r\n {\r\n id: 'name',\r\n title: 'questionnaire.W8Ben.name',\r\n component: undefined, // Component for Block\r\n info: {\r\n instructions: 'questionnaire.W8Ben.name.name.info'\r\n },\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'name',\r\n label: 'questionnaire.W8Ben.name.name.label',\r\n component: QuestionTextField,\r\n visible: true,\r\n lockGroup: 'name',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.W8Ben.name.name.errorMessage' }\r\n ]\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n id: 'citizenshipCountry',\r\n title: 'questionnaire.W8Ben.citizenshipCountry',\r\n component: undefined, // Component for Block\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'country',\r\n label: 'questionnaire.W8Ben.citizenshipCountry.label',\r\n component: QuestionJurisdictionDropDownField,\r\n info: {\r\n instructions: 'questionnaire.citizenshipCountry.info'\r\n },\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.W8Ben.citizenshipCountry.errorMessage' }\r\n ]\r\n }\r\n },\r\n ],\r\n },\r\n {\r\n id: 'address',\r\n title: 'questionnaire.address',\r\n component: QuestionAddressBlock,\r\n info: {\r\n instructions: 'questionnaire.address.1.info'\r\n },\r\n visible: true,\r\n lockGroup: 'permanentAddress',\r\n },\r\n {\r\n id: 'mailingAddress',\r\n title: 'questionnaire.mailingAddress',\r\n component: QuestionAddressBlock,\r\n componentProps: {\r\n line1Label: 'questionnaire.mailingAddress.1.label',\r\n optional: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.mailingAddress.1.info'\r\n },\r\n visible: true,\r\n linkBlock: true,\r\n lockGroup: 'mailingAddress',\r\n },\r\n {\r\n id: 'foreignTin',\r\n title: 'questionnaire.foreignTin',\r\n component: QuestionForeignTinBlock,\r\n visible: true,\r\n },\r\n {\r\n id: 'usTin',\r\n title: 'questionnaire.usTin',\r\n component: QuestionUsTinBlock,\r\n componentProps: {\r\n showAppliedFor: false,\r\n tinRequired: false\r\n },\r\n visible: true\r\n },\r\n {\r\n id: 'birth',\r\n title: 'questionnaire.W8Ben.birth',\r\n component: undefined, // Component for Block\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'date',\r\n label: 'questionnaire.W8Ben.birth.date.label',\r\n component: QuestionDateDropdownField,\r\n componentProps: {\r\n minDate: format(moment().subtract(125, 'years').toDate(), 'MM-dd-yyyy'),\r\n maxDate: format(moment().subtract(1, 'days').toDate(), 'MM-dd-yyyy'),\r\n dateFormat: 'MM-dd-yyyy',\r\n showToolTip: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.birth.date.info'\r\n },\r\n className: 'col-12',\r\n visible: true,\r\n lockGroup: 'dateOfBirth',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.birth.date.errorMessage' }\r\n ]\r\n },\r\n },\r\n ]\r\n },\r\n {\r\n id: 'treatyClaim',\r\n title: 'questionnaire.treatyClaim',\r\n component: QuestionTreatyClaimBlock,\r\n visible: true,\r\n },\r\n {\r\n id: 'signer',\r\n title: 'questionnaire.signer',\r\n component: QuestionSignerBlock,\r\n componentProps: {\r\n individualOnly: true\r\n },\r\n visible: true\r\n },\r\n ]\r\n};\r\n\r\nexport default w8Ben;\r\n","import moment from 'moment';\r\nimport format from 'date-fns/format';\r\nimport {\r\n QuestionTextField,\r\n QuestionDateDropdownField,\r\n QuestionYesNoField,\r\n QuestionRadioButtonsField\r\n} from 'components/Questionnaires/fields';\r\nimport {\r\n QuestionSignerBlock,\r\n QuestionAddressBlock,\r\n QuestionEntityTypeBlock,\r\n QuestionTaxIdentificationNumbersBlock,\r\n QuestionNonReportingIgaBlock,\r\n QuestionTaxTreatyClaimBlock,\r\n QuestionBlockRepeater,\r\n QuestionSubstantialOwnerBlock,\r\n QuestionDreBlock,\r\n QuestionCloselyHeldInvestmentVehicleBlock\r\n} from 'components/Questionnaires/blocks';\r\nimport { requiredValidator } from 'components/Questionnaires/validators';\r\nimport { publiclyTradedNffeBlock, incorporationCountryBlock } from './blocks/blocks';\r\n\r\nconst isCh3AndCh4Selected = qAnswers => (qAnswers?.entityType?.ch3Status && qAnswers?.entityType?.ch4Status);\r\n\r\nconst isTaxIdentificationNumbersVisible = qAnswers => isCh3AndCh4Selected(qAnswers);\r\n\r\nconst isSponsorTrusteeVisible = qAnswers => ['CdcFiFfiTrusteeDocumentedTrust', 'CdcFiFfiSpCloselyHeldInvtVehicle', 'CdcFiFfiSpInvtEntityControlledForeignCorp'].includes(qAnswers?.igaSubclassification);\r\n\r\n// CH4 Selections:\r\nconst isOrganization501cVisible = qAnswers => isCh3AndCh4Selected(qAnswers) && qAnswers?.entityType?.ch4Status === 'Organization501C';\r\nconst isNonfinancialStartupVisible = qAnswers => isCh3AndCh4Selected(qAnswers) && qAnswers?.entityType?.ch4Status === 'NonfinancialStartUpCompany';\r\nconst isNonfinancialEntityVisible = qAnswers => isCh3AndCh4Selected(qAnswers) && qAnswers?.entityType?.ch4Status === 'NonfinancialEntityInLiquidation';\r\nconst isInternationalOrgVisible = qAnswers => isCh3AndCh4Selected(qAnswers) && qAnswers?.entityType?.ch4Status === 'InternationalOrganization';\r\nconst isPassiveNffeVisible = qAnswers => isCh3AndCh4Selected(qAnswers) && qAnswers?.entityType?.ch4Status === 'PassiveNffe';\r\nconst isSponsoredFfIVisible = qAnswers => isCh3AndCh4Selected(qAnswers) && (qAnswers?.entityType?.ch4Status === 'SponsoredFfi' || qAnswers?.entityType?.ch4Status === 'SponsoredDirectReportingNffe');\r\nconst isExemptRetirementPlansVisible = qAnswers => isCh3AndCh4Selected(qAnswers) && qAnswers?.entityType?.ch4Status === 'ExemptRetirementPlans';\r\nconst isRestrictedDistributorVisible = qAnswers => isCh3AndCh4Selected(qAnswers) && qAnswers?.entityType?.ch4Status === 'RestrictedDistributor';\r\nconst isOwnerDocumentedFfiVisible = qAnswers => isCh3AndCh4Selected(qAnswers) && qAnswers?.entityType?.ch4Status === 'OwnerDocumentedFfi';\r\nconst isNonReportingIgaFfiVisible = qAnswers => isCh3AndCh4Selected(qAnswers) && qAnswers?.entityType?.ch4Status === 'NonReportingIgaFfi';\r\nconst isPubliclyTradedNffeVisible = qAnswers => isCh3AndCh4Selected(qAnswers) && qAnswers?.entityType?.ch4Status === 'PubliclyTradedNffeorNffeAffiliate';\r\nconst isSponsoredCloselyHeldInvestmentVehicleVisible = qAnswers => isCh3AndCh4Selected(qAnswers) && qAnswers.entityType?.ch4Status === 'CertifiedSponsoredInvestmentVehicle';\r\nconst isSubstantialOwnerVisible = qAnswers => isCh3AndCh4Selected(qAnswers) && qAnswers?.passiveNffe?.answer === 'Yes';\r\n\r\n// CH3 Selections:\r\nconst isDreBlockRequired = (bAnswers, qAnswers) => isCh3AndCh4Selected(qAnswers) && qAnswers?.entityType?.ch3Status === 'DisregardedEntity';\r\nconst isHybridEntity = qAnswers => qAnswers?.entityType?.hybridEntity === 'Yes';\r\n\r\nconst validHybridEntityCh3 = ['DisregardedEntity', 'Partnership', 'SimpleTrust', 'GrantorTrust'];\r\nconst isHybridEntityVisible = ch3 => validHybridEntityCh3.includes(ch3);\r\n\r\nconst isTreatyClaimLinkBlock = (bAnswers, qAnswers) => {\r\n let isLinkBlock = true;\r\n if (!isCh3AndCh4Selected(qAnswers)) {\r\n return isLinkBlock;\r\n }\r\n if (isHybridEntityVisible(qAnswers?.entityType?.ch3Status) && isHybridEntity(qAnswers)) {\r\n isLinkBlock = false;\r\n }\r\n return isLinkBlock;\r\n};\r\n\r\nconst w8Bene = {\r\n blocks: [\r\n {\r\n id: 'name',\r\n title: 'questionnaire.w8bene.name',\r\n component: undefined, // Component for Block\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'name',\r\n label: 'questionnaire.w8bene.name.label',\r\n info: {\r\n instructions: 'questionnaire.w8bene.name.info'\r\n },\r\n component: QuestionTextField,\r\n visible: true,\r\n lockGroup: 'name',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.w8bene.name.errorMessage' }\r\n ]\r\n }\r\n },\r\n ]\r\n },\r\n incorporationCountryBlock(),\r\n {\r\n id: 'address',\r\n title: 'questionnaire.address',\r\n component: QuestionAddressBlock,\r\n componentProps: {\r\n line1Label: 'questionnaire.address.1.label'\r\n },\r\n info: {\r\n instructions: 'questionnaire.address.1.info'\r\n },\r\n visible: true,\r\n lockGroup: 'permanentAddress',\r\n },\r\n {\r\n id: 'mailingAddress',\r\n title: 'questionnaire.mailingAddress',\r\n component: QuestionAddressBlock,\r\n componentProps: {\r\n line1Label: 'questionnaire.mailingAddress.1.label',\r\n optional: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.mailingAddress.1.info'\r\n },\r\n visible: true,\r\n linkBlock: true,\r\n lockGroup: 'mailingAddress',\r\n },\r\n {\r\n id: 'entityType',\r\n title: 'questionnaire.entityType',\r\n component: QuestionEntityTypeBlock,\r\n label: 'questionnaire.entityType.label',\r\n info: {\r\n instructions: 'questionnaire.entityType.info',\r\n },\r\n visible: true\r\n },\r\n {\r\n id: 'disregardedEntity',\r\n title: 'questionnaire.disregardedEntity',\r\n component: QuestionDreBlock,\r\n componentProps: {\r\n optional: (bAnswers, qAnswers) => !isDreBlockRequired(bAnswers, qAnswers),\r\n dreNameLabel: 'questionnaire.disregardedEntity.name.label',\r\n dreTypeLabel: 'questionnaire.disregardedEntity.type.label',\r\n dreGiinLabel: 'questionnaire.giin.label'\r\n },\r\n visible: true,\r\n linkBlock: (bAnswers, qAnswers) => !isDreBlockRequired(bAnswers, qAnswers)\r\n },\r\n {\r\n id: 'investmentVehicle',\r\n title: 'questionnaire.ch4.investmentVehicle',\r\n component: QuestionCloselyHeldInvestmentVehicleBlock,\r\n visible: isSponsoredCloselyHeldInvestmentVehicleVisible,\r\n },\r\n publiclyTradedNffeBlock({ isVisible: isPubliclyTradedNffeVisible }),\r\n {\r\n id: 'nonfinancialStartup',\r\n title: 'questionnaire.ch4.nonfinancialStartup',\r\n component: undefined,\r\n visible: isNonfinancialStartupVisible,\r\n questions: [\r\n {\r\n id: 'date',\r\n component: QuestionDateDropdownField,\r\n componentProps: {\r\n minDate: format(moment().subtract(125, 'years').toDate(), 'MM-dd-yyyy'),\r\n maxDate: format(moment().subtract(1, 'days').toDate(), 'MM-dd-yyyy'),\r\n dateFormat: 'MM-dd-yyyy',\r\n showToolTip: true\r\n },\r\n visible: true,\r\n label: 'questionnaire.ch4.nonfinancialStartup.label',\r\n info: {\r\n footnote: 'questionnaire.ch4.nonfinancialStartup.footnote'\r\n },\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.nonfinancialStartup.errorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'nonfinancialEntity',\r\n title: 'questionnaire.ch4.nonfinancialEntity',\r\n component: undefined,\r\n visible: isNonfinancialEntityVisible,\r\n questions: [\r\n {\r\n id: 'date',\r\n component: QuestionDateDropdownField,\r\n componentProps: {\r\n minDate: format(moment().subtract(125, 'years').toDate(), 'MM-dd-yyyy'),\r\n maxDate: format(moment().subtract(1, 'days').toDate(), 'MM-dd-yyyy'),\r\n dateFormat: 'MM-dd-yyyy',\r\n showToolTip: true\r\n },\r\n visible: true,\r\n label: 'questionnaire.ch4.nonfinancialEntity.label',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.nonfinancialEntity.errorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'organization501c',\r\n title: 'questionnaire.w8bene.organization501c',\r\n component: undefined,\r\n info: {\r\n instructions: 'questionnaire.w8bene.organization501c.info',\r\n },\r\n visible: isOrganization501cVisible,\r\n questions: [\r\n {\r\n id: 'date',\r\n component: QuestionDateDropdownField,\r\n componentProps: {\r\n minDate: format(moment().subtract(125, 'years').toDate(), 'MM-dd-yyyy'),\r\n maxDate: format(moment().subtract(1, 'days').toDate(), 'MM-dd-yyyy'),\r\n dateFormat: 'MM-dd-yyyy',\r\n showToolTip: false\r\n },\r\n visible: true,\r\n label: 'questionnaire.w8bene.organization501c.label',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.w8bene.organization501c.errorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'exemptRetirementPlans',\r\n title: 'questionnaire.ch4.exemptRetirementPlans',\r\n component: undefined,\r\n visible: isExemptRetirementPlansVisible,\r\n info: {\r\n instructions: 'questionnaire.ch4.exemptRetirementPlans.info',\r\n },\r\n questions: [\r\n {\r\n id: 'items',\r\n component: QuestionRadioButtonsField,\r\n componentProps: {\r\n items: 'questionnaire.ch4.exemptRetirementPlans.items',\r\n inputName: 'exemptRetirementPlans'\r\n },\r\n label: 'questionnaire.ch4.exemptRetirementPlans.label',\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.exemptRetirementPlans.errorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'restrictedDistributor',\r\n title: 'questionnaire.ch4.restrictedDistributor',\r\n component: undefined,\r\n visible: isRestrictedDistributorVisible,\r\n info: {\r\n instructions: 'questionnaire.ch4.restrictedDistributor.info',\r\n },\r\n questions: [\r\n {\r\n id: 'items',\r\n component: QuestionRadioButtonsField,\r\n componentProps: {\r\n items: 'questionnaire.ch4.restrictedDistributor.items',\r\n inputName: 'restrictedDistributor'\r\n },\r\n label: 'questionnaire.ch4.restrictedDistributor.label',\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.restrictedDistributor.errorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'ownerDocumentedFfi',\r\n title: 'questionnaire.ch4.ownerDocumentedFfi',\r\n component: undefined,\r\n visible: isOwnerDocumentedFfiVisible,\r\n info: {\r\n instructions: 'questionnaire.ch4.ownerDocumentedFfi.info',\r\n },\r\n questions: [\r\n {\r\n id: 'items',\r\n component: QuestionRadioButtonsField,\r\n componentProps: {\r\n items: 'questionnaire.ch4.ownerDocumentedFfi.items',\r\n inputName: 'ownerDocumentedFfi'\r\n },\r\n label: 'questionnaire.ch4.ownerDocumentedFfi.label',\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.ownerDocumentedFfi.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'answer',\r\n component: QuestionYesNoField,\r\n visible: true,\r\n label: 'questionnaire.ch4.ownerDocumentedFfi.certify.label',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.ownerDocumentedFfi.certify.errorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'internationalOrg',\r\n title: 'questionnaire.w8bene.internationalOrg',\r\n component: undefined,\r\n info: {\r\n instructions: 'questionnaire.w8bene.internationalOrg.info',\r\n },\r\n visible: isInternationalOrgVisible,\r\n questions: [\r\n {\r\n id: 'answer',\r\n component: QuestionYesNoField,\r\n visible: true,\r\n label: 'questionnaire.w8bene.internationalOrg.label',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.w8bene.internationalOrg.errorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'passiveNffe',\r\n title: 'questionnaire.ch4.passiveNffe',\r\n component: undefined,\r\n info: {\r\n instructions: 'questionnaire.ch4.passiveNffe.info',\r\n },\r\n visible: isPassiveNffeVisible,\r\n questions: [\r\n {\r\n id: 'answer',\r\n component: QuestionYesNoField,\r\n visible: true,\r\n label: 'questionnaire.ch4.passiveNffe.label',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.passiveNffe.errorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'substantialOwners',\r\n title: 'questionnaire.substantialOwner',\r\n component: QuestionBlockRepeater,\r\n componentProps: {\r\n collapsible: true\r\n },\r\n repeatBlock: {\r\n id: 'substantialOwner',\r\n title: 'questionnaire.substantialOwner.additional',\r\n component: QuestionSubstantialOwnerBlock\r\n },\r\n info: {\r\n instructions: 'questionnaire.substantialOwner.info',\r\n },\r\n minSize: 1,\r\n maxSize: 9,\r\n addText: 'questionnaire.substantialOwners.addLabel',\r\n visible: isSubstantialOwnerVisible,\r\n },\r\n {\r\n id: 'sponsoredFfI',\r\n title: 'questionnaire.ch4.sponsoredFfI',\r\n component: undefined, // Component for Block\r\n visible: isSponsoredFfIVisible,\r\n questions: [\r\n {\r\n id: 'answer',\r\n component: QuestionYesNoField,\r\n visible: true,\r\n label: 'questionnaire.ch4.sponsoredFfI.investmentEntity.label',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.sponsoredFfI.investmentEntity.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'name',\r\n label: 'questionnaire.ch4.sponsoredFfI.name.label',\r\n placeholder: 'questionnaire.ch4.sponsoredFfI.name.placeholder',\r\n info: {\r\n instructions: 'questionnaire.ch4.sponsoredFfI.name.info'\r\n },\r\n component: QuestionTextField,\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.sponsoredFfI.name.errorMessage' }\r\n ]\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n id: 'nonReportingIgaFfi',\r\n title: 'questionnaire.ch4.nonReportingIgaFfi',\r\n component: QuestionNonReportingIgaBlock,\r\n componentProps: {\r\n sponsorTrusteeProps: {\r\n visible: isSponsorTrusteeVisible,\r\n },\r\n },\r\n visible: isNonReportingIgaFfiVisible,\r\n info: {\r\n instructions: 'questionnaire.ch4.nonReportingIgaFfi.info'\r\n },\r\n },\r\n {\r\n id: 'taxIdentificationNumbers',\r\n title: 'questionnaire.taxIdentificationNumbers',\r\n component: QuestionTaxIdentificationNumbersBlock,\r\n visible: isTaxIdentificationNumbersVisible\r\n },\r\n {\r\n id: 'taxTreatyClaim',\r\n title: 'questionnaire.taxTreatyClaim',\r\n component: QuestionTaxTreatyClaimBlock,\r\n componentProps: {\r\n optional: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.taxTreatyClaim.info'\r\n },\r\n linkBlock: isTreatyClaimLinkBlock,\r\n visible: true,\r\n },\r\n {\r\n id: 'signer',\r\n title: 'questionnaire.signer',\r\n component: QuestionSignerBlock,\r\n visible: true\r\n },\r\n ]\r\n};\r\n\r\nexport default w8Bene;\r\n","import { QuestionTextField, QuestionDropDownField, QuestionGiinField, QuestionStockMarketAutocompleteField } from 'components/Questionnaires/fields';\r\nimport { QuestionAddressBlock, QuestionTaxResidenceBlock, QuestionBlockRepeater, QuestionRepeater, QuestionSignerBlock } from 'components/Questionnaires/blocks';\r\nimport { requiredValidator, lengthValidator } from 'components/Questionnaires/validators';\r\nimport { incorporationCountryBlock } from './blocks/blocks';\r\n\r\nconst crsE = {\r\n blocks: [\r\n {\r\n id: 'name',\r\n title: 'questionnaire.crs.e.name',\r\n component: undefined, // Component for Block\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'name',\r\n label: 'questionnaire.crs.e.name.label',\r\n component: QuestionTextField,\r\n info: {\r\n instructions: 'questionnaire.crs.e.name.info'\r\n },\r\n visible: true,\r\n lockGroup: 'name',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.e.name.errorMessage' }\r\n ]\r\n }\r\n },\r\n ]\r\n },\r\n incorporationCountryBlock(),\r\n {\r\n id: 'address',\r\n title: 'questionnaire.address',\r\n component: QuestionAddressBlock,\r\n info: {\r\n instructions: 'questionnaire.address.1.info'\r\n },\r\n visible: true,\r\n lockGroup: 'permanentAddress',\r\n },\r\n {\r\n id: 'mailingAddress',\r\n title: 'questionnaire.mailingAddress',\r\n component: QuestionAddressBlock,\r\n componentProps: {\r\n line1Label: 'questionnaire.mailingAddress.1.label',\r\n optional: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.mailingAddress.1.info'\r\n },\r\n visible: true,\r\n linkBlock: true,\r\n lockGroup: 'mailingAddress',\r\n },\r\n {\r\n id: 'entityType',\r\n title: 'questionnaire.crs.e.entityType',\r\n component: undefined, // Component for Block\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'type',\r\n label: 'questionnaire.crs.e.entityType.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.crs.e.entityTypes'\r\n },\r\n info: {\r\n instructions: 'questionnaire.crs.e.entityType.info'\r\n },\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.e.entityType.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'fiType',\r\n label: 'questionnaire.crs.e.fiType.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.crs.e.fiTypes'\r\n },\r\n info: {\r\n instructions: 'questionnaire.crs.e.fiType.info'\r\n },\r\n visible: (bAnswers, qAnswers, preQualAnswers) => bAnswers?.type === 'FinancialInstitution',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.e.fiType.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'activeNffeType',\r\n label: 'questionnaire.crs.e.activeNffeType.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.crs.e.activeNffeTypes.items'\r\n },\r\n visible: (bAnswers, qAnswers, preQualAnswers) => bAnswers?.type === 'ActiveNFE',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.e.activeNffeType.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'securitiesMarket',\r\n label: 'questionnaire.ch4.publiclyTradedNffe.securityMarket.label',\r\n component: QuestionStockMarketAutocompleteField,\r\n visible: (bAnswers, qAnswers, preQualAnswers) => bAnswers?.type === 'ActiveNFE' && bAnswers?.activeNffeType === 'RegularlyTradedCorporation',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.e.securitiesMarket.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'relatedEntity',\r\n label: 'questionnaire.crs.e.relatedEntity.label',\r\n component: QuestionTextField,\r\n info: {\r\n instructions: 'questionnaire.crs.e.relatedEntity.info'\r\n },\r\n visible: (bAnswers, qAnswers, preQualAnswers) => bAnswers?.type === 'ActiveNFE' && bAnswers?.activeNffeType === 'RelatedEntity',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.e.relatedEntity.errorMessage' }\r\n ]\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n id: 'giin',\r\n title: 'questionnaire.giin',\r\n component: undefined, // Component for Block\r\n info: {\r\n instructions: 'questionnaire.giin.info'\r\n },\r\n visible: (qAnswers, preQualAnswers) => qAnswers?.entityType?.type === 'FinancialInstitution',\r\n questions: [\r\n {\r\n id: 'value',\r\n label: 'questionnaire.giin.label',\r\n component: QuestionGiinField,\r\n componentProps: {\r\n length: 16\r\n },\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: lengthValidator, message: 'questionnaire.giin.lengthErrorMessage' }\r\n ]\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n id: 'controllingPersons',\r\n title: 'questionnaire.crs.e.controllingPersons',\r\n component: QuestionRepeater, // Component for Block\r\n visible: (qAnswers, preQualAnswers) => qAnswers?.entityType?.type === 'PassiveNFE' || qAnswers?.entityType?.fiType === 'InvestmentEntity',\r\n question: {\r\n id: 'name',\r\n label: 'questionnaire.crs.e.cpName.label',\r\n component: QuestionTextField,\r\n info: {\r\n instructions: 'questionnaire.crs.e.cpName.info'\r\n },\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.e.cpName.errorMessage' }\r\n ]\r\n }\r\n },\r\n minSize: 1,\r\n maxSize: 3,\r\n },\r\n {\r\n id: 'taxResidences',\r\n title: 'questionnaire.taxResidences',\r\n component: QuestionBlockRepeater,\r\n componentProps: {\r\n collapsible: true\r\n },\r\n repeatBlock: {\r\n id: 'taxResidence',\r\n title: 'questionnaire.taxResidence.additional',\r\n component: QuestionTaxResidenceBlock,\r\n },\r\n minSize: 1,\r\n maxSize: 3,\r\n addText: 'questionnaire.taxResidences.addLabel',\r\n visible: true,\r\n },\r\n {\r\n id: 'signer',\r\n title: 'questionnaire.signer',\r\n component: QuestionSignerBlock,\r\n componentProps: {\r\n entityOnly: true\r\n },\r\n visible: true\r\n },\r\n ]\r\n};\r\n\r\nexport default crsE;\r\n","import moment from 'moment';\r\nimport format from 'date-fns/format';\r\nimport { QuestionTextField, QuestionDropDownField, QuestionJurisdictionDropDownField, QuestionDateDropdownField } from 'components/Questionnaires/fields';\r\nimport { QuestionAddressBlock, QuestionTaxResidenceBlock, QuestionBlockRepeater, QuestionSignerBlock } from 'components/Questionnaires/blocks';\r\nimport { requiredValidator } from 'components/Questionnaires/validators';\r\n\r\nconst crsI = {\r\n blocks: [\r\n {\r\n id: 'name',\r\n title: 'questionnaire.crs.name',\r\n component: undefined, // Component for Block\r\n info: {\r\n instructions: 'questionnaire.crs.name.firstName.info'\r\n },\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'title',\r\n label: 'questionnaire.crs.name.title.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.crs.name.titles'\r\n },\r\n className: 'col-12 col-lg-3',\r\n visible: true,\r\n lockGroup: 'name',\r\n },\r\n {\r\n id: 'titleOther',\r\n label: 'questionnaire.crs.name.titleOther.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-9',\r\n visible: (bAnswers, qAnswers, preQualAnswers) => bAnswers?.title === 'Other',\r\n lockGroup: 'name',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.name.titleOther.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'firstName',\r\n label: 'questionnaire.crs.name.firstName.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-9',\r\n visible: true,\r\n lockGroup: 'name',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.name.firstName.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'middleName',\r\n label: 'questionnaire.crs.name.middleName.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-4',\r\n visible: true,\r\n lockGroup: 'name',\r\n },\r\n {\r\n id: 'lastName',\r\n label: 'questionnaire.crs.name.lastName.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-8',\r\n visible: true,\r\n lockGroup: 'name',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.name.lastName.errorMessage' }\r\n ]\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n id: 'address',\r\n title: 'questionnaire.address',\r\n component: QuestionAddressBlock,\r\n info: {\r\n instructions: 'questionnaire.address.1.info'\r\n },\r\n visible: true,\r\n lockGroup: 'permanentAddress',\r\n },\r\n {\r\n id: 'mailingAddress',\r\n title: 'questionnaire.mailingAddress',\r\n component: QuestionAddressBlock,\r\n componentProps: {\r\n line1Label: 'questionnaire.mailingAddress.1.label',\r\n optional: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.mailingAddress.1.info'\r\n },\r\n visible: true,\r\n linkBlock: true,\r\n lockGroup: 'mailingAddress',\r\n },\r\n {\r\n id: 'taxResidences',\r\n title: 'questionnaire.taxResidences',\r\n component: QuestionBlockRepeater,\r\n componentProps: {\r\n collapsible: true\r\n },\r\n repeatBlock: {\r\n id: 'taxResidence',\r\n title: 'questionnaire.taxResidence.additional',\r\n component: QuestionTaxResidenceBlock,\r\n componentProps: {\r\n optional: true\r\n }\r\n },\r\n minSize: 1,\r\n maxSize: 5,\r\n addText: 'questionnaire.taxResidences.addLabel',\r\n visible: true,\r\n },\r\n {\r\n id: 'birth',\r\n title: 'questionnaire.birth',\r\n component: undefined, // Component for Block\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'date',\r\n label: 'questionnaire.birth.date.label',\r\n component: QuestionDateDropdownField,\r\n componentProps: {\r\n minDate: format(moment().subtract(125, 'years').toDate(), 'dd-MM-yyyy'),\r\n maxDate: format(moment().subtract(1, 'days').toDate(), 'dd-MM-yyyy'),\r\n dateFormat: 'dd-MM-yyyy',\r\n showToolTip: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.birth.date.info'\r\n },\r\n className: 'col-12',\r\n visible: true,\r\n lockGroup: 'dateOfBirth',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.birth.date.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'town',\r\n label: 'questionnaire.birth.town.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-5',\r\n visible: true,\r\n lockGroup: 'countryOfBirth',\r\n },\r\n {\r\n id: 'country',\r\n label: 'questionnaire.birth.country.label',\r\n component: QuestionJurisdictionDropDownField,\r\n className: 'col-12 col-lg-7',\r\n visible: true,\r\n lockGroup: 'countryOfBirth'\r\n },\r\n ]\r\n },\r\n {\r\n id: 'signer',\r\n title: 'questionnaire.signer',\r\n component: QuestionSignerBlock,\r\n componentProps: {\r\n individualOnly: true\r\n },\r\n visible: true\r\n },\r\n ]\r\n};\r\n\r\nexport default crsI;\r\n","import moment from 'moment';\r\nimport format from 'date-fns/format';\r\nimport { QuestionTextField, QuestionDropDownField, QuestionJurisdictionDropDownField, QuestionDateDropdownField } from 'components/Questionnaires/fields';\r\nimport { QuestionAddressBlock, QuestionTaxResidenceBlock, QuestionBlockRepeater, QuestionControllingPersonEntityBlock, QuestionSignerBlock } from 'components/Questionnaires/blocks';\r\nimport { requiredValidator } from 'components/Questionnaires/validators';\r\n\r\nconst crsCp = {\r\n blocks: [\r\n {\r\n id: 'name',\r\n title: 'questionnaire.crs.name',\r\n component: undefined, // Component for Block\r\n info: {\r\n instructions: 'questionnaire.crs.name.firstName.info'\r\n },\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'title',\r\n label: 'questionnaire.crs.name.title.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.crs.name.titles'\r\n },\r\n className: 'col-12 col-lg-3',\r\n visible: true,\r\n lockGroup: 'name',\r\n },\r\n {\r\n id: 'titleOther',\r\n label: 'questionnaire.crs.name.titleOther.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-9',\r\n visible: (bAnswers, qAnswers, preQualAnswers) => bAnswers?.title === 'Other',\r\n lockGroup: 'name',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.name.titleOther.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'firstName',\r\n label: 'questionnaire.crs.name.firstName.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-9',\r\n visible: true,\r\n lockGroup: 'name',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.name.firstName.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'middleName',\r\n label: 'questionnaire.crs.name.middleName.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-4',\r\n visible: true,\r\n lockGroup: 'name',\r\n },\r\n {\r\n id: 'lastName',\r\n label: 'questionnaire.crs.name.lastName.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-8',\r\n visible: true,\r\n lockGroup: 'name',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.name.lastName.errorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'address',\r\n title: 'questionnaire.address',\r\n component: QuestionAddressBlock,\r\n info: {\r\n instructions: 'questionnaire.address.1.info'\r\n },\r\n visible: true,\r\n lockGroup: 'permanentAddress',\r\n },\r\n {\r\n id: 'mailingAddress',\r\n title: 'questionnaire.mailingAddress',\r\n component: QuestionAddressBlock,\r\n componentProps: {\r\n line1Label: 'questionnaire.mailingAddress.1.label',\r\n optional: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.mailingAddress.1.info'\r\n },\r\n visible: true,\r\n linkBlock: true,\r\n lockGroup: 'mailingAddress',\r\n },\r\n {\r\n id: 'taxResidences',\r\n title: 'questionnaire.taxResidences',\r\n component: QuestionBlockRepeater,\r\n componentProps: {\r\n collapsible: true\r\n },\r\n repeatBlock: {\r\n id: 'taxResidence',\r\n title: 'questionnaire.taxResidence.additional',\r\n component: QuestionTaxResidenceBlock\r\n },\r\n minSize: 1,\r\n maxSize: 3,\r\n addText: 'questionnaire.taxResidences.addLabel',\r\n visible: true,\r\n },\r\n {\r\n id: 'birth',\r\n title: 'questionnaire.birth',\r\n component: undefined, // Component for Block\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'date',\r\n label: 'questionnaire.birth.date.label',\r\n component: QuestionDateDropdownField,\r\n componentProps: {\r\n minDate: format(moment().subtract(125, 'years').toDate(), 'dd-MM-yyyy'),\r\n maxDate: format(moment().subtract(1, 'days').toDate(), 'dd-MM-yyyy'),\r\n dateFormat: 'dd-MM-yyyy',\r\n showToolTip: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.birth.date.info'\r\n },\r\n className: 'col-12',\r\n visible: true,\r\n lockGroup: 'dateOfBirth',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.birth.date.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'town',\r\n label: 'questionnaire.birth.town.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-5',\r\n visible: true,\r\n lockGroup: 'countryOfBirth',\r\n },\r\n {\r\n id: 'country',\r\n label: 'questionnaire.birth.country.label',\r\n component: QuestionJurisdictionDropDownField,\r\n className: 'col-12 col-lg-7',\r\n visible: true,\r\n lockGroup: 'countryOfBirth'\r\n },\r\n ]\r\n },\r\n {\r\n id: 'entities',\r\n title: 'questionnaire.crs.cp.entities',\r\n component: QuestionBlockRepeater,\r\n repeatBlock: {\r\n id: 'cpEntity',\r\n component: QuestionControllingPersonEntityBlock,\r\n },\r\n minSize: 1,\r\n maxSize: 3,\r\n visible: true,\r\n },\r\n {\r\n id: 'signer',\r\n title: 'questionnaire.signer',\r\n component: QuestionSignerBlock,\r\n componentProps: {\r\n individualOnly: true\r\n },\r\n visible: true\r\n },\r\n ]\r\n};\r\n\r\nexport default crsCp;\r\n","import moment from 'moment';\r\nimport format from 'date-fns/format';\r\nimport { QuestionTextField, QuestionDropDownField, QuestionJurisdictionDropDownField, QuestionDateDropdownField } from 'components/Questionnaires/fields';\r\nimport { QuestionAddressBlock, QuestionTaxResidenceBlock, QuestionBlockRepeater, QuestionTreatyClaimBlock, QuestionUsTinBlock, QuestionSignerBlock } from 'components/Questionnaires/blocks';\r\nimport { requiredValidator } from 'components/Questionnaires/validators';\r\n\r\nconst crsIWBen = {\r\n blocks: [\r\n {\r\n id: 'name',\r\n title: 'questionnaire.crs.name',\r\n component: undefined, // Component for Block\r\n info: {\r\n instructions: 'questionnaire.crs.name.firstName.info'\r\n },\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'title',\r\n label: 'questionnaire.crs.name.title.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.crs.name.titles'\r\n },\r\n className: 'col-12 col-lg-3',\r\n visible: true,\r\n lockGroup: 'name',\r\n },\r\n {\r\n id: 'titleOther',\r\n label: 'questionnaire.crs.name.titleOther.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-9',\r\n visible: (bAnswers, qAnswers, preQualAnswers) => bAnswers?.title === 'Other',\r\n lockGroup: 'name',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.name.titleOther.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'firstName',\r\n label: 'questionnaire.crs.name.firstName.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-9',\r\n visible: true,\r\n lockGroup: 'name',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.name.firstName.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'middleName',\r\n label: 'questionnaire.crs.name.middleName.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-4',\r\n visible: true,\r\n lockGroup: 'name',\r\n },\r\n {\r\n id: 'lastName',\r\n label: 'questionnaire.crs.name.lastName.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-8',\r\n visible: true,\r\n lockGroup: 'name',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.name.lastName.errorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'address',\r\n title: 'questionnaire.address',\r\n component: QuestionAddressBlock,\r\n info: {\r\n instructions: 'questionnaire.address.1.info'\r\n },\r\n visible: true,\r\n lockGroup: 'permanentAddress',\r\n },\r\n {\r\n id: 'mailingAddress',\r\n title: 'questionnaire.mailingAddress',\r\n component: QuestionAddressBlock,\r\n componentProps: {\r\n line1Label: 'questionnaire.mailingAddress.1.label',\r\n optional: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.mailingAddress.1.info'\r\n },\r\n visible: true,\r\n linkBlock: true,\r\n lockGroup: 'mailingAddress',\r\n },\r\n {\r\n id: 'citizenshipCountry',\r\n title: 'questionnaire.W8Ben.citizenshipCountry',\r\n component: undefined, // Component for Block\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'country',\r\n label: 'questionnaire.W8Ben.citizenshipCountry.label',\r\n component: QuestionJurisdictionDropDownField,\r\n info: {\r\n instructions: 'questionnaire.citizenshipCountry.info'\r\n },\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.W8Ben.citizenshipCountry.errorMessage' }\r\n ]\r\n }\r\n },\r\n ],\r\n },\r\n {\r\n id: 'birth',\r\n title: 'questionnaire.birth',\r\n component: undefined, // Component for Block\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'date',\r\n label: 'questionnaire.birth.date.label',\r\n component: QuestionDateDropdownField,\r\n componentProps: {\r\n minDate: format(moment().subtract(125, 'years').toDate(), 'dd-MM-yyyy'),\r\n maxDate: format(moment().subtract(1, 'days').toDate(), 'dd-MM-yyyy'),\r\n dateFormat: 'dd-MM-yyyy',\r\n showToolTip: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.birth.date.info'\r\n },\r\n className: 'col-12',\r\n visible: true,\r\n lockGroup: 'dateOfBirth',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.birth.date.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'town',\r\n label: 'questionnaire.birth.town.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-5',\r\n visible: true,\r\n lockGroup: 'countryOfBirth',\r\n },\r\n {\r\n id: 'country',\r\n label: 'questionnaire.birth.country.label',\r\n component: QuestionJurisdictionDropDownField,\r\n className: 'col-12 col-lg-7',\r\n visible: true,\r\n lockGroup: 'countryOfBirth'\r\n },\r\n ]\r\n },\r\n {\r\n id: 'taxResidences',\r\n title: 'questionnaire.taxResidences',\r\n component: QuestionBlockRepeater,\r\n componentProps: {\r\n collapsible: true\r\n },\r\n repeatBlock: {\r\n id: 'taxResidence',\r\n title: 'questionnaire.taxResidence.additional',\r\n component: QuestionTaxResidenceBlock,\r\n componentProps: {\r\n optional: true\r\n }\r\n },\r\n minSize: 1,\r\n maxSize: 3,\r\n addText: 'questionnaire.taxResidences.addLabel',\r\n visible: true,\r\n },\r\n {\r\n id: 'usTin',\r\n title: 'questionnaire.usTin',\r\n component: QuestionUsTinBlock,\r\n componentProps: {\r\n showAppliedFor: false,\r\n tinRequired: false\r\n },\r\n visible: true\r\n },\r\n {\r\n id: 'treatyClaim',\r\n title: 'questionnaire.treatyClaim',\r\n component: QuestionTreatyClaimBlock,\r\n visible: true,\r\n },\r\n {\r\n id: 'signer',\r\n title: 'questionnaire.signer',\r\n component: QuestionSignerBlock,\r\n componentProps: {\r\n individualOnly: true\r\n },\r\n visible: true\r\n },\r\n ]\r\n};\r\n\r\nexport default crsIWBen;\r\n","import { QuestionTextField, QuestionDropDownField, QuestionGiinField, QuestionYesNoField, QuestionStockMarketAutocompleteField } from 'components/Questionnaires/fields';\r\nimport { QuestionAddressBlock, QuestionUsTinBlock, QuestionGiinBlock, QuestionTaxResidenceBlock, QuestionBlockRepeater, QuestionControllingPersonBlock, QuestionSignerBlock } from 'components/Questionnaires/blocks';\r\nimport { requiredValidator, lengthValidator } from 'components/Questionnaires/validators';\r\nimport { incorporationCountryBlock } from './blocks/blocks';\r\n\r\nconst fatcaCrsE = {\r\n blocks: [\r\n {\r\n id: 'name',\r\n title: 'questionnaire.crs.e.name',\r\n component: undefined, // Component for Block\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'name',\r\n label: 'questionnaire.crs.e.name.label',\r\n component: QuestionTextField,\r\n info: {\r\n instructions: 'questionnaire.crs.e.name.info'\r\n },\r\n visible: true,\r\n lockGroup: 'name',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.e.name.errorMessage' }\r\n ]\r\n }\r\n },\r\n ]\r\n },\r\n incorporationCountryBlock(),\r\n {\r\n id: 'address',\r\n title: 'questionnaire.address',\r\n component: QuestionAddressBlock,\r\n componentProps: {\r\n line1Label: 'questionnaire.address.1.label'\r\n },\r\n info: {\r\n instructions: 'questionnaire.address.1.info'\r\n },\r\n visible: true,\r\n lockGroup: 'permanentAddress',\r\n },\r\n {\r\n id: 'mailingAddress',\r\n title: 'questionnaire.mailingAddress',\r\n component: QuestionAddressBlock,\r\n componentProps: {\r\n line1Label: 'questionnaire.mailingAddress.1.label',\r\n optional: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.mailingAddress.1.info'\r\n },\r\n linkBlock: true,\r\n visible: true,\r\n lockGroup: 'mailingAddress',\r\n },\r\n {\r\n id: 'taxResidences',\r\n title: 'questionnaire.taxResidences',\r\n component: QuestionBlockRepeater,\r\n componentProps: {\r\n collapsible: true\r\n },\r\n repeatBlock: {\r\n id: 'taxResidence',\r\n title: 'questionnaire.taxResidence',\r\n component: QuestionTaxResidenceBlock\r\n },\r\n minSize: 1,\r\n maxSize: 5,\r\n addText: 'questionnaire.taxResidences.addLabel',\r\n visible: true,\r\n },\r\n {\r\n id: 'usDetermination',\r\n title: 'questionnaire.fatcacrs.usDetermination',\r\n info: {\r\n instructions: 'questionnaire.fatcacrs.usDetermination.info'\r\n },\r\n questions: [\r\n {\r\n id: 'isUsPerson',\r\n label: 'questionnaire.fatcacrs.usDetermination.label',\r\n component: QuestionYesNoField,\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.fatcacrs.usDetermination.errorMessage' }\r\n ]\r\n }\r\n }\r\n ],\r\n visible: true\r\n },\r\n {\r\n id: 'usTin',\r\n title: 'questionnaire.usTin',\r\n component: QuestionUsTinBlock,\r\n componentProps: {\r\n showAppliedFor: false,\r\n default: 'Ein'\r\n },\r\n info: {\r\n footnote: 'questionnaire.usTin.footnote'\r\n },\r\n visible: (qAnswers, preQualAnswers) => qAnswers?.usDetermination?.isUsPerson === 'Yes'\r\n },\r\n {\r\n id: 'entityType',\r\n title: 'questionnaire.fatcacrs.e.entityType',\r\n component: undefined, // Component for Block,\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'type',\r\n label: 'questionnaire.fatcacrs.e.entityType.type.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.fatcacrs.e.entityType.type.items'\r\n },\r\n info: {\r\n instructions: 'questionnaire.fatcacrs.e.entityType.type.info'\r\n },\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.fatcacrs.e.entityType.type.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'fatcaType',\r\n label: 'questionnaire.fatcacrs.e.entityType.fatcaType.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.fatcacrs.e.entityType.fatcaType.items'\r\n },\r\n className: 'col-6',\r\n info: {\r\n instructions: 'questionnaire.fatcacrs.e.entityType.fatcaType.info'\r\n },\r\n visible: (bAnswers, qAnswers, preQualAnswers) => qAnswers?.usDetermination?.isUsPerson === 'No' && bAnswers?.type === 'FinancialInstitution',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.fatcacrs.e.entityType.fatcaType.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'crsType',\r\n label: 'questionnaire.fatcacrs.e.entityType.crsType.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.fatcacrs.e.entityType.crsType.items'\r\n },\r\n className: 'col-6',\r\n info: {\r\n instructions: 'questionnaire.fatcacrs.e.entityType.crsType.info'\r\n },\r\n visible: (bAnswers, qAnswers, preQualAnswers) => bAnswers?.type === 'FinancialInstitution',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.fatcacrs.e.entityType.crsType.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'fatcaOther',\r\n label: 'questionnaire.fatcacrs.e.entityType.fatcaOther.label',\r\n component: QuestionTextField,\r\n visible: (bAnswers, qAnswers, preQualAnswers) => bAnswers?.type === 'FinancialInstitution' && bAnswers?.fatcaType === 'Other',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.fatcacrs.e.entityType.fatcaOther.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'crsOther',\r\n label: 'questionnaire.fatcacrs.e.entityType.crsOther.label',\r\n component: QuestionTextField,\r\n visible: (bAnswers, qAnswers, preQualAnswers) => bAnswers?.type === 'FinancialInstitution'\r\n && (bAnswers?.crsType === 'Other'\r\n || (bAnswers?.crsType === 'InvestmentEntityInNonParticipatingJurisdiction' && bAnswers?.inNonCrsParticipatingCountry === 'No')),\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.fatcacrs.e.entityType.crsOther.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'activeNffeType',\r\n label: 'questionnaire.crs.e.activeNffeType.label',\r\n component: QuestionDropDownField,\r\n componentProps: {\r\n items: 'questionnaire.fatcacrs.e.activeNffeType.items'\r\n },\r\n visible: (bAnswers, qAnswers, preQualAnswers) => bAnswers?.type === 'ActiveNFE',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.e.activeNffeType.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'relatedEntity',\r\n label: 'questionnaire.crs.e.relatedEntity.label',\r\n component: QuestionTextField,\r\n info: {\r\n instructions: 'questionnaire.crs.e.relatedEntity.info'\r\n },\r\n visible: (bAnswers, qAnswers, preQualAnswers) => bAnswers?.type === 'ActiveNFE' && bAnswers?.activeNffeType === 'ActiveNfeRegularlyTraded',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.e.relatedEntity.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'securitiesMarket',\r\n label: 'questionnaire.ch4.publiclyTradedNffe.securityMarket.label',\r\n component: QuestionStockMarketAutocompleteField,\r\n visible: (bAnswers, qAnswers, preQualAnswers) => bAnswers?.type === 'ActiveNFE' && bAnswers?.activeNffeType === 'ActiveNfeRegularlyTraded',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.e.securitiesMarket.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'usControllingPersons',\r\n label: 'questionnaire.fatcacrs.e.usControllingPersons.label',\r\n component: QuestionYesNoField,\r\n visible: (bAnswers, qAnswers, preQualAnswers) => bAnswers?.type === 'PassiveNFE',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.fatcacrs.e.usControllingPersons.errorMessage' }\r\n ]\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n id: 'sponsorTrustee',\r\n title: 'questionnaire.fatcacrs.e.sponsorTrustee',\r\n questions: [\r\n {\r\n id: 'sponsorTrusteeName',\r\n label: 'questionnaire.fatcacrs.e.sponsorTrusteeName.label',\r\n component: QuestionTextField,\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.fatcacrs.e.sponsorTrusteeName.errorMessage' },\r\n ]\r\n }\r\n },\r\n {\r\n id: 'sponsorTrusteeGiin',\r\n label: 'questionnaire.fatcacrs.e.sponsorTrusteeGiin.label',\r\n component: QuestionGiinField,\r\n componentProps: {\r\n length: 16\r\n },\r\n info: {\r\n instructions: 'questionnaire.giin.info'\r\n },\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.giin.errorMessage' },\r\n { condition: lengthValidator, message: 'questionnaire.giin.lengthErrorMessage' }\r\n ]\r\n }\r\n },\r\n ],\r\n visible: (qAnswers, preQualAnswers) => qAnswers?.entityType?.type === 'FinancialInstitution'\r\n && ['TrusteeDocumentedTrust', 'SponsoredCloselyHeldInvestmentVehicle'].includes(qAnswers?.entityType?.fatcaType)\r\n },\r\n {\r\n id: 'giin',\r\n title: 'questionnaire.giin',\r\n component: QuestionGiinBlock,\r\n info: {\r\n instructions: 'questionnaire.giin.info'\r\n },\r\n visible: (qAnswers, preQualAnswers) => (qAnswers?.entityType?.type === 'FinancialInstitution'\r\n && ['ReportingModel1IgaFfi', 'ReportingModel2IgaFfi', 'ParticipatingFfi', 'SponsoredFfi'].includes(qAnswers?.entityType?.fatcaType)),\r\n },\r\n {\r\n id: 'controllingPersons',\r\n title: 'questionnaire.crs.e.controllingPersons',\r\n component: QuestionBlockRepeater, // Component for Block\r\n visible: (qAnswers, preQualAnswers) => (qAnswers?.entityType?.type === 'PassiveNFE' && qAnswers?.entityType?.usControllingPersons !== undefined)\r\n || qAnswers?.crsEntityType?.type === 'PassiveNFE'\r\n || (qAnswers?.entityType?.type === 'FinancialInstitution' && qAnswers?.entityType?.crsType === 'InvestmentEntityInNonParticipatingJurisdiction'),\r\n repeatBlock: {\r\n id: 'controllingPerson',\r\n component: QuestionControllingPersonBlock\r\n },\r\n minSize: 1,\r\n maxSize: 6,\r\n addText: 'questionnaire.crs.e.controllingPersons.addLabel',\r\n },\r\n {\r\n id: 'signer',\r\n title: 'questionnaire.signer',\r\n component: QuestionSignerBlock,\r\n componentProps: {\r\n entityOnly: true\r\n },\r\n visible: true\r\n },\r\n ]\r\n};\r\n\r\nexport default fatcaCrsE;\r\n","import moment from 'moment';\r\nimport format from 'date-fns/format';\r\nimport { QuestionTextField, QuestionJurisdictionDropDownField, QuestionDateDropdownField, QuestionYesNoField } from 'components/Questionnaires/fields';\r\nimport { QuestionAddressBlock, QuestionTaxResidenceBlock, QuestionBlockRepeater, QuestionSignerBlock, QuestionUsTinBlock } from 'components/Questionnaires/blocks';\r\nimport { requiredValidator } from 'components/Questionnaires/validators';\r\n\r\nconst fatcaCrsI = {\r\n blocks: [\r\n {\r\n id: 'name',\r\n title: 'questionnaire.crs.name',\r\n component: undefined, // Component for Block\r\n info: {\r\n instructions: 'questionnaire.crs.name.firstName.info'\r\n },\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'firstName',\r\n label: 'questionnaire.crs.name.firstName.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-6',\r\n visible: true,\r\n lockGroup: 'name',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.name.firstName.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'middleName',\r\n label: 'questionnaire.crs.name.middleName.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-6',\r\n visible: true,\r\n lockGroup: 'name',\r\n },\r\n {\r\n id: 'lastName',\r\n label: 'questionnaire.crs.name.lastName.label',\r\n component: QuestionTextField,\r\n className: 'col-12',\r\n visible: true,\r\n lockGroup: 'name',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.crs.name.lastName.errorMessage' }\r\n ]\r\n }\r\n },\r\n ],\r\n },\r\n {\r\n id: 'businessName',\r\n title: 'questionnaire.fatcacrs.i.businessName',\r\n component: undefined, // Component for Block\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'name',\r\n label: 'questionnaire.fatcacrs.i.businessName.name.label',\r\n component: QuestionTextField,\r\n visible: true,\r\n },\r\n ]\r\n },\r\n {\r\n id: 'address',\r\n title: 'questionnaire.address',\r\n component: QuestionAddressBlock,\r\n componentProps: {\r\n line1Label: 'questionnaire.address.1.label',\r\n },\r\n info: {\r\n instructions: 'questionnaire.address.1.info'\r\n },\r\n visible: true,\r\n lockGroup: 'permanentAddress',\r\n },\r\n {\r\n id: 'mailingAddress',\r\n title: 'questionnaire.mailingAddress',\r\n component: QuestionAddressBlock,\r\n componentProps: {\r\n line1Label: 'questionnaire.mailingAddress.1.label',\r\n optional: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.mailingAddress.1.info'\r\n },\r\n visible: true,\r\n linkBlock: true,\r\n lockGroup: 'mailingAddress',\r\n },\r\n {\r\n id: 'usDetermination',\r\n title: 'questionnaire.fatcacrs.usDetermination',\r\n info: {\r\n instructions: 'questionnaire.fatcacrs.usDetermination.info'\r\n },\r\n questions: [\r\n {\r\n id: 'isUsPerson',\r\n label: 'questionnaire.fatcacrs.usDetermination.label',\r\n component: QuestionYesNoField,\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.fatcacrs.usDetermination.errorMessage' }\r\n ]\r\n }\r\n }\r\n ],\r\n visible: true\r\n },\r\n {\r\n id: 'usTin',\r\n title: 'questionnaire.usTin',\r\n component: QuestionUsTinBlock,\r\n componentProps: {\r\n showAppliedFor: false\r\n },\r\n info: {\r\n footnote: 'questionnaire.usTin.footnote'\r\n },\r\n visible: (qAnswers, preQualAnswers) => qAnswers?.usDetermination?.isUsPerson === 'Yes'\r\n },\r\n {\r\n id: 'taxResidences',\r\n title: 'questionnaire.taxResidences',\r\n component: QuestionBlockRepeater,\r\n componentProps: {\r\n collapsible: true\r\n },\r\n repeatBlock: {\r\n id: 'taxResidence',\r\n title: 'questionnaire.taxResidence',\r\n component: QuestionTaxResidenceBlock,\r\n },\r\n minSize: 1,\r\n maxSize: 5,\r\n addText: 'questionnaire.taxResidences.addLabel',\r\n visible: true,\r\n },\r\n {\r\n id: 'birth',\r\n title: 'questionnaire.birth',\r\n component: undefined, // Component for Block\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'date',\r\n label: 'questionnaire.birth.date.label',\r\n component: QuestionDateDropdownField,\r\n componentProps: {\r\n minDate: format(moment().subtract(125, 'years').toDate(), 'dd-MM-yyyy'),\r\n maxDate: format(moment().subtract(1, 'days').toDate(), 'dd-MM-yyyy'),\r\n dateFormat: 'dd-MM-yyyy',\r\n showToolTip: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.birth.date.info'\r\n },\r\n visible: true,\r\n lockGroup: 'dateOfBirth',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.birth.date.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'town',\r\n label: 'questionnaire.birth.town.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-5',\r\n visible: true,\r\n lockGroup: 'countryOfBirth',\r\n },\r\n {\r\n id: 'country',\r\n label: 'questionnaire.birth.country.label',\r\n component: QuestionJurisdictionDropDownField,\r\n className: 'col-12 col-lg-7',\r\n visible: true,\r\n lockGroup: 'countryOfBirth',\r\n },\r\n ]\r\n },\r\n {\r\n id: 'signer',\r\n title: 'questionnaire.signer',\r\n component: QuestionSignerBlock,\r\n componentProps: {\r\n individualOnly: true\r\n },\r\n visible: true\r\n },\r\n ]\r\n};\r\n\r\nexport default fatcaCrsI;\r\n","import moment from 'moment';\r\nimport format from 'date-fns/format';\r\nimport {\r\n QuestionTextField,\r\n QuestionRadioButtonsField,\r\n QuestionDateDropdownField,\r\n QuestionYesNoField\r\n} from 'components/Questionnaires/fields';\r\nimport {\r\n QuestionAddressBlock,\r\n QuestionEntityTypeBlock,\r\n QuestionSignerBlock,\r\n QuestionTaxIdentificationNumbersBlock,\r\n QuestionCloselyHeldInvestmentVehicleBlock,\r\n QuestionNonReportingIgaBlock,\r\n QuestionDreBlock\r\n} from 'components/Questionnaires/blocks';\r\nimport { requiredValidator } from 'components/Questionnaires/validators';\r\nimport { getKey, DocumentKeys } from 'common/forms/documentTypes';\r\nimport { uploadSupportingDocField } from 'common/questionnaires/definitions/fields';\r\nimport {\r\n usPersonOrIntermediaryBlock,\r\n incorporationCountryBlock,\r\n publiclyTradedNffeBlock,\r\n nonqualifiedIntermediaryBlock,\r\n nonwithholdingBlock,\r\n qualifiedIntermediaryBlock\r\n} from './blocks/blocks';\r\nimport { NonwithholdingTypes } from './blocks/nonwithholdingBlock';\r\n\r\nconst isCh3AndCh4Selected = qAnswers => (qAnswers?.entityType?.ch3Status && qAnswers?.entityType?.ch4Status);\r\n\r\n// CH3 Selections:\r\nconst isCh3BlockVisible = (qAnswers, ch3Status) => isCh3AndCh4Selected(qAnswers) && qAnswers?.entityType?.ch3Status === ch3Status;\r\nconst isCertainUsBranchesVisible = qAnswers => isCh3BlockVisible(qAnswers, 'UsBranch');\r\nconst isCh3TerritoryFinancialInstitutionVisible = qAnswers => isCh3BlockVisible(qAnswers, 'TerritoryFinancialInstitution');\r\nconst isQualifiedIntermediaryVisible = qAnswers => isCh3BlockVisible(qAnswers, 'QualifiedIntermediary');\r\nconst isNonqualifiedIntermediaryVisible = qAnswers => isCh3BlockVisible(qAnswers, 'NonQualifiedIntermediary');\r\nconst isNonwithholdingForeignPartnershipVisible = qAnswers => isCh3BlockVisible(qAnswers, 'NonwithholdingForeignPartnership');\r\nconst isNonwithholdingForeignSimpleTrustVisible = qAnswers => isCh3BlockVisible(qAnswers, 'NonwithholdingForeignSimpleTrust');\r\nconst isNonwithholdingForeignGrantorTrustVisible = qAnswers => isCh3BlockVisible(qAnswers, 'NonwithholdingForeignGrantorTrust');\r\n\r\n// CH4 Selections:\r\nconst isCh4BlockVisible = (qAnswers, ch4Status) => isCh3AndCh4Selected(qAnswers) && qAnswers?.entityType?.ch4Status === ch4Status;\r\nconst isSponsoredFfIVisible = qAnswers => isCh4BlockVisible(qAnswers, 'SponsoredFfi');\r\nconst isCertifiedDeemedCompliantVisible = qAnswers => isCh4BlockVisible(qAnswers, 'CertDeemedCompliantSponsored');\r\nconst isOwnerDocumentedFfiVisible = qAnswers => isCh4BlockVisible(qAnswers, 'OwnerDocumentedFfi');\r\nconst isRestrictedDistributorVisible = qAnswers => isCh4BlockVisible(qAnswers, 'RestrictedDistributor');\r\nconst isExemptRetirementPlansVisible = qAnswers => isCh4BlockVisible(qAnswers, 'ExemptRetirementPlans');\r\nconst isNonfinancialStartupVisible = qAnswers => isCh4BlockVisible(qAnswers, 'ExceptedNonfinancialStartUpCompany');\r\nconst isNonfinancialEntityVisible = qAnswers => isCh4BlockVisible(qAnswers, 'ExceptedNonfinancialEntityInLiquidation');\r\nconst isCh4TerritoryFinancialInstitutionVisible = qAnswers => !isCh3TerritoryFinancialInstitutionVisible(qAnswers) && isCh4BlockVisible(qAnswers, 'TerritoryFinancialInstitution');\r\nconst isPubliclyTradedNffeVisible = qAnswers => isCh4BlockVisible(qAnswers, 'PubliclyTradedNffeOrNffeAffiliate');\r\nconst isNonReportingIgaFfiVisible = qAnswers => isCh4BlockVisible(qAnswers, 'NonreportingIgaFfi');\r\nconst isSponsoredNffeVisible = qAnswers => isCh4BlockVisible(qAnswers, 'SponsoredDirectReportingNffe');\r\n\r\n// Other:\r\nconst isTaxIdentificationNumbersVisible = qAnswers => isCh3AndCh4Selected(qAnswers);\r\nconst isSponsorTrusteeVisible = qAnswers => ['CdcFiFfiTrusteeDocumentedTrust', 'CdcFiFfiSpCloselyHeldInvtVehicle', 'CdcFiFfiSpInvtEntityControlledForeignCorp'].includes(qAnswers?.igaSubclassification);\r\nconst getUniqueUsTinInfo = (qAnswers) => {\r\n const ch3StatusesRequiringUniqueInfo = ['QualifiedIntermediary', 'WithholdingForeignPartnership', 'WithholdingForeignTrust', 'TerritoryFinancialInstitution', 'UsBranch'];\r\n const ch4StatusesRequiringUniqueInfo = ['TerritoryFinancialInstitution'];\r\n const electionRequiresUniqueInfo = ch3StatusesRequiringUniqueInfo.includes(qAnswers?.entityType?.ch3Status) || ch4StatusesRequiringUniqueInfo.includes(qAnswers?.entityType?.ch4Status);\r\n return electionRequiresUniqueInfo ? 'questionnaire.w8imy.taxIdentificationNumbers.usTin.info' : undefined;\r\n};\r\nconst isUsTinRequired = (qAnswers) => {\r\n const requiredCh3Statuses = [\r\n 'QualifiedIntermediary',\r\n 'TerritoryFinancialInstitution',\r\n 'UsBranch',\r\n 'WithholdingForeignPartnership',\r\n 'WithholdingForeignTrust'\r\n ];\r\n const requiredCh4Statuses = [\r\n 'TerritoryFinancialInstitution'\r\n ];\r\n const ch3OrCh4StatusRequiresTin = requiredCh3Statuses.includes(qAnswers?.entityType?.ch3Status) || requiredCh4Statuses.includes(qAnswers?.entityType?.ch4Status);\r\n if (ch3OrCh4StatusRequiresTin === true) return true;\r\n\r\n if (qAnswers?.nonqualifiedIntermediary?.isQsl === 'Yes') return true;\r\n\r\n return false;\r\n};\r\n\r\nconst isFtinRequired = (qAnswers) => {\r\n const isQdd = qAnswers?.qualifiedIntermediary?.entity === '2' || qAnswers?.qualifiedIntermediary?.entity === '3';\r\n\r\n return isQdd;\r\n};\r\n\r\nconst w8Imy = {\r\n blocks: [\r\n {\r\n id: 'organizationName',\r\n title: 'questionnaire.w8imy.name',\r\n component: undefined,\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'name',\r\n label: 'questionnaire.w8imy.name.label',\r\n info: {\r\n instructions: 'questionnaire.w8imy.name.info'\r\n },\r\n component: QuestionTextField,\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.w8imy.name.errorMessage' }\r\n ]\r\n }\r\n },\r\n ]\r\n },\r\n incorporationCountryBlock(),\r\n {\r\n id: 'address',\r\n title: 'questionnaire.address',\r\n component: QuestionAddressBlock,\r\n componentProps: {\r\n line1Label: 'questionnaire.address.1.label'\r\n },\r\n info: {\r\n instructions: 'questionnaire.address.1.info'\r\n },\r\n visible: true,\r\n lockGroup: 'permanentAddress'\r\n },\r\n {\r\n id: 'mailingAddress',\r\n title: 'questionnaire.mailingAddress',\r\n component: QuestionAddressBlock,\r\n componentProps: {\r\n line1Label: 'questionnaire.mailingAddress.1.label',\r\n optional: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.mailingAddress.1.info'\r\n },\r\n visible: true,\r\n linkBlock: true,\r\n lockGroup: 'mailingAddress'\r\n },\r\n {\r\n id: 'entityType',\r\n title: 'questionnaire.entityType',\r\n component: QuestionEntityTypeBlock,\r\n label: 'questionnaire.entityType.label',\r\n info: {\r\n instructions: 'questionnaire.entityType.info',\r\n },\r\n visible: true\r\n },\r\n {\r\n id: 'disregardedEntity',\r\n title: 'questionnaire.disregardedEntity',\r\n component: QuestionDreBlock,\r\n componentProps: {\r\n optional: true,\r\n dreNameLabel: 'questionnaire.disregardedEntity.name.label',\r\n dreTypeLabel: 'questionnaire.disregardedEntity.type.label',\r\n dreGiinLabel: 'questionnaire.giin.label'\r\n },\r\n visible: true,\r\n linkBlock: true\r\n },\r\n qualifiedIntermediaryBlock({ visible: isQualifiedIntermediaryVisible }),\r\n nonqualifiedIntermediaryBlock({ visible: isNonqualifiedIntermediaryVisible }),\r\n nonwithholdingBlock({\r\n nonwithholdingType: NonwithholdingTypes.FOREIGN_PARTNERSHIP,\r\n visible: isNonwithholdingForeignPartnershipVisible\r\n }),\r\n nonwithholdingBlock({\r\n nonwithholdingType: NonwithholdingTypes.FOREIGN_SIMPLE_TRUST,\r\n visible: isNonwithholdingForeignSimpleTrustVisible\r\n }),\r\n nonwithholdingBlock({\r\n nonwithholdingType: NonwithholdingTypes.FOREIGN_GRANTOR_TRUST,\r\n visible: isNonwithholdingForeignGrantorTrustVisible\r\n }),\r\n usPersonOrIntermediaryBlock({\r\n id: 'usBranches',\r\n title: 'questionnaire.w8imy.usBranches',\r\n info: {\r\n instructions: 'questionnaire.w8imy.usBranches.info'\r\n },\r\n visible: isCertainUsBranchesVisible\r\n }),\r\n usPersonOrIntermediaryBlock({\r\n id: 'territoryFiCh3',\r\n title: 'questionnaire.w8imy.territoryFi',\r\n info: {\r\n instructions: 'questionnaire.w8imy.territoryFi.info',\r\n },\r\n visible: isCh3TerritoryFinancialInstitutionVisible,\r\n }),\r\n {\r\n id: 'sponsoredFfi',\r\n title: 'questionnaire.ch4.sponsoredFfI',\r\n component: undefined,\r\n visible: isSponsoredFfIVisible,\r\n questions: [\r\n {\r\n id: 'answer',\r\n component: QuestionYesNoField,\r\n visible: true,\r\n label: 'questionnaire.ch4.sponsoredFfI.investmentEntity.label',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.sponsoredFfI.investmentEntity.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'name',\r\n label: 'questionnaire.ch4.sponsoredFfI.name.label',\r\n placeholder: 'questionnaire.ch4.sponsoredFfI.name.placeholder',\r\n info: {\r\n instructions: 'questionnaire.ch4.sponsoredFfI.name.info'\r\n },\r\n component: QuestionTextField,\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.sponsoredFfI.name.errorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'sponsoredNffe',\r\n title: 'questionnaire.ch4.sponsoredNffe',\r\n component: undefined,\r\n visible: isSponsoredNffeVisible,\r\n questions: [\r\n {\r\n id: 'name',\r\n label: 'questionnaire.ch4.sponsoredFfI.name.label',\r\n placeholder: 'questionnaire.ch4.sponsoredFfI.name.placeholder',\r\n info: {\r\n instructions: 'questionnaire.ch4.sponsoredFfI.name.info'\r\n },\r\n component: QuestionTextField,\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.sponsoredFfI.name.errorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'investmentVehicle',\r\n title: 'questionnaire.ch4.investmentVehicle',\r\n component: QuestionCloselyHeldInvestmentVehicleBlock,\r\n visible: isCertifiedDeemedCompliantVisible,\r\n },\r\n {\r\n id: 'ownerDocumentedFfi',\r\n title: 'questionnaire.ch4.ownerDocumentedFfi',\r\n component: undefined,\r\n visible: isOwnerDocumentedFfiVisible,\r\n info: {\r\n instructions: 'questionnaire.ch4.ownerDocumentedFfi.info',\r\n },\r\n questions: [\r\n {\r\n id: 'items',\r\n component: QuestionRadioButtonsField,\r\n componentProps: {\r\n items: 'questionnaire.ch4.ownerDocumentedFfi.items',\r\n inputName: 'ownerDocumentedFfi'\r\n },\r\n label: 'questionnaire.ch4.ownerDocumentedFfi.label',\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.ownerDocumentedFfi.errorMessage' }\r\n ]\r\n }\r\n },\r\n uploadSupportingDocField({\r\n id: 'ownerReportingStatement',\r\n docType: getKey(DocumentKeys.OWNER_REPORTING_STATEMENT),\r\n visible: bAnswers => bAnswers?.items === '1'\r\n }),\r\n uploadSupportingDocField({\r\n id: 'auditorsLetter',\r\n docType: getKey(DocumentKeys.AUDITORS_LETTER),\r\n visible: bAnswers => bAnswers?.items === '2'\r\n }),\r\n ]\r\n },\r\n {\r\n id: 'restrictedDistributor',\r\n title: 'questionnaire.ch4.restrictedDistributor',\r\n component: undefined,\r\n visible: isRestrictedDistributorVisible,\r\n info: {\r\n instructions: 'questionnaire.ch4.restrictedDistributor.info',\r\n },\r\n questions: [\r\n {\r\n id: 'items',\r\n component: QuestionRadioButtonsField,\r\n componentProps: {\r\n items: 'questionnaire.ch4.restrictedDistributor.items',\r\n inputName: 'restrictedDistributor'\r\n },\r\n label: 'questionnaire.ch4.restrictedDistributor.label',\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.restrictedDistributor.errorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'exemptRetirementPlans',\r\n title: 'questionnaire.ch4.exemptRetirementPlans',\r\n component: undefined,\r\n visible: isExemptRetirementPlansVisible,\r\n info: {\r\n instructions: 'questionnaire.ch4.exemptRetirementPlans.info',\r\n },\r\n questions: [\r\n {\r\n id: 'items',\r\n component: QuestionRadioButtonsField,\r\n componentProps: {\r\n items: 'questionnaire.ch4.exemptRetirementPlans.items',\r\n inputName: 'exemptRetirementPlans'\r\n },\r\n label: 'questionnaire.ch4.exemptRetirementPlans.label',\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.exemptRetirementPlans.errorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'nonfinancialStartup',\r\n title: 'questionnaire.ch4.nonfinancialStartup',\r\n component: undefined,\r\n visible: isNonfinancialStartupVisible,\r\n questions: [\r\n {\r\n id: 'date',\r\n component: QuestionDateDropdownField,\r\n componentProps: {\r\n minDate: format(moment().subtract(125, 'years').toDate(), 'MM-dd-yyyy'),\r\n maxDate: format(moment().subtract(1, 'days').toDate(), 'MM-dd-yyyy'),\r\n dateFormat: 'MM-dd-yyyy',\r\n showToolTip: true\r\n },\r\n visible: true,\r\n label: 'questionnaire.ch4.nonfinancialStartup.label',\r\n info: {\r\n footnote: 'questionnaire.ch4.nonfinancialStartup.footnote'\r\n },\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.nonfinancialStartup.errorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'nonfinancialEntity',\r\n title: 'questionnaire.ch4.nonfinancialEntity',\r\n component: undefined,\r\n visible: isNonfinancialEntityVisible,\r\n questions: [\r\n {\r\n id: 'date',\r\n component: QuestionDateDropdownField,\r\n componentProps: {\r\n minDate: format(moment().subtract(125, 'years').toDate(), 'MM-dd-yyyy'),\r\n maxDate: format(moment().subtract(1, 'days').toDate(), 'MM-dd-yyyy'),\r\n dateFormat: 'MM-dd-yyyy',\r\n showToolTip: true\r\n },\r\n visible: true,\r\n label: 'questionnaire.ch4.nonfinancialEntity.label',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.ch4.nonfinancialEntity.errorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n usPersonOrIntermediaryBlock({\r\n id: 'territoryFiCh4',\r\n title: 'questionnaire.w8imy.territoryFi',\r\n info: {\r\n instructions: 'questionnaire.w8imy.territoryFi.info',\r\n },\r\n visible: isCh4TerritoryFinancialInstitutionVisible,\r\n isCh4Block: true\r\n }),\r\n publiclyTradedNffeBlock({ isVisible: isPubliclyTradedNffeVisible }),\r\n {\r\n id: 'nonReportingIgaFfi',\r\n title: 'questionnaire.ch4.nonReportingIgaFfi',\r\n component: QuestionNonReportingIgaBlock,\r\n componentProps: {\r\n sponsorTrusteeProps: {\r\n visible: isSponsorTrusteeVisible,\r\n },\r\n },\r\n visible: isNonReportingIgaFfiVisible,\r\n info: {\r\n instructions: 'questionnaire.ch4.nonReportingIgaFfi.info'\r\n },\r\n },\r\n {\r\n id: 'taxIdentificationNumbers',\r\n title: 'questionnaire.taxIdentificationNumbers',\r\n component: QuestionTaxIdentificationNumbersBlock,\r\n visible: isTaxIdentificationNumbersVisible,\r\n componentProps: {\r\n usTinProps: {\r\n required: qAnswers => isUsTinRequired(qAnswers),\r\n info: getUniqueUsTinInfo\r\n },\r\n ftinProps: {\r\n required: qAnswers => isFtinRequired(qAnswers)\r\n }\r\n }\r\n },\r\n {\r\n id: 'signer',\r\n title: 'questionnaire.signer',\r\n component: QuestionSignerBlock,\r\n visible: true\r\n }\r\n ]\r\n};\r\n\r\nexport default w8Imy;\r\n","import moment from 'moment';\r\nimport format from 'date-fns/format';\r\nimport { QuestionTextField, QuestionYesNoField, QuestionSocialInsuranceNumberField, QuestionDateDropdownField, QuestionDropDownField } from 'components/Questionnaires/fields';\r\nimport { QuestionSignerBlock, QuestionRcUsTaxResidentBlock } from 'components/Questionnaires/blocks';\r\nimport { requiredValidator, lengthValidator, sequentialIntegerValidator, sameCharacterValidator } from 'components/Questionnaires/validators';\r\nimport { residentAddressBlock, mailingAddressBlock, rcTaxResidencesBlock } from './blocks/blocks';\r\n\r\nconst rc518 = {\r\n blocks: [\r\n {\r\n id: 'name',\r\n title: 'questionnaire.rc518.name',\r\n info: {\r\n instructions: 'questionnaire.rc518.name.info'\r\n },\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'firstName',\r\n label: 'questionnaire.rc518.name.firstName.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-9',\r\n visible: true,\r\n lockGroup: 'name',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc518.name.firstName.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'initials',\r\n label: 'questionnaire.rc518.name.initials.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-3',\r\n visible: true,\r\n lockGroup: 'name',\r\n },\r\n {\r\n id: 'lastName',\r\n label: 'questionnaire.rc518.name.lastName.label',\r\n component: QuestionTextField,\r\n className: 'col-12 col-lg-12',\r\n visible: true,\r\n lockGroup: 'name',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc518.name.lastName.errorMessage' }\r\n ]\r\n }\r\n },\r\n ]\r\n },\r\n residentAddressBlock(),\r\n mailingAddressBlock(),\r\n {\r\n id: 'canadianTaxResident',\r\n title: 'questionnaire.rc518.canadianTaxResident',\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'isCanadianTaxResident',\r\n label: 'questionnaire.rc518.canadianTaxResident.isCanadianTaxResident.label',\r\n component: QuestionYesNoField,\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc518.canadianTaxResident.isCanadianTaxResident.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'socialInsuranceNumber',\r\n label: 'questionnaire.rc518.canadianTaxResident.socialInsuranceNumber.label',\r\n component: QuestionSocialInsuranceNumberField,\r\n componentProps: {\r\n length: 9\r\n },\r\n visible: true,\r\n info: {\r\n instructions: 'questionnaire.rc518.canadianTaxResident.socialInsuranceNumber.info'\r\n },\r\n validation: {\r\n conditions: [\r\n { condition: lengthValidator, message: 'questionnaire.rc518.canadianTaxResident.socialInsuranceNumber.errorMessage' },\r\n { condition: sequentialIntegerValidator, message: 'questionnaire.rc518.canadianTaxResident.socialInsuranceNumber.sequentialErrorMessage' },\r\n { condition: sameCharacterValidator, message: 'questionnaire.rc518.canadianTaxResident.socialInsuranceNumber.sameCharErrorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'usTaxResident',\r\n title: 'questionnaire.rc518.usTaxResident',\r\n component: QuestionRcUsTaxResidentBlock,\r\n visible: true,\r\n componentProps: {\r\n tinType: 'SSN'\r\n }\r\n },\r\n rcTaxResidencesBlock(),\r\n {\r\n id: 'birth',\r\n title: 'questionnaire.rc518.birth',\r\n visible: true,\r\n info: {\r\n instructions: 'questionnaire.rc518.birth.info'\r\n },\r\n questions: [\r\n {\r\n id: 'date',\r\n label: 'questionnaire.rc518.birth.date.label',\r\n component: QuestionDateDropdownField,\r\n componentProps: {\r\n minDate: format(moment().subtract(125, 'years').toDate(), 'dd-MM-yyyy'),\r\n maxDate: format(moment().subtract(1, 'days').toDate(), 'dd-MM-yyyy'),\r\n dateFormat: 'dd-MM-yyyy',\r\n showToolTip: true\r\n },\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc518.birth.errorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'controllingPerson',\r\n title: 'questionnaire.rc518.controllingPerson',\r\n visible: true,\r\n linkBlock: true,\r\n componentProps: {\r\n optional: true\r\n },\r\n info: {\r\n instructions: 'questionnaire.rc518.controllingPerson.info'\r\n },\r\n questions: [\r\n {\r\n id: 'type',\r\n label: 'questionnaire.rc518.controllingPerson.type.label',\r\n component: QuestionDropDownField,\r\n visible: true,\r\n optional: true,\r\n componentProps: {\r\n items: 'questionnaire.rc518.controllingPerson.type.items'\r\n },\r\n }\r\n ]\r\n },\r\n {\r\n id: 'signer',\r\n title: 'questionnaire.signer',\r\n component: QuestionSignerBlock,\r\n componentProps: {\r\n individualOnly: true,\r\n capacityInfo: 'questionnaire.rc518.signer.capacity.info'\r\n },\r\n visible: true\r\n },\r\n ]\r\n};\r\n\r\nexport default rc518;\r\n","/* eslint-disable no-unused-vars */\r\nimport moment from 'moment';\r\nimport format from 'date-fns/format';\r\nimport {\r\n QuestionTextField, QuestionBusinessNumberField, QuestionButtonsField, QuestionRadioButtonsField, QuestionTrustAccountNumberField,\r\n QuestionDropDownField, QuestionJurisdictionDropDownField, QuestionDateDropdownField, QuestionYesNoField, QuestionGiinField } from 'components/Questionnaires/fields';\r\nimport { QuestionAddressBlock, QuestionSignerBlock, QuestionBlockRepeater, QuestionRcUsTaxResidentBlock, QuestionGiinBlock, QuestionRcControllingPersonBlock } from 'components/Questionnaires/blocks';\r\nimport { requiredValidator, lengthValidator } from 'components/Questionnaires/validators';\r\nimport { incorporationCountryBlock, residentAddressBlock, mailingAddressBlock, rcTaxResidencesBlock } from './blocks/blocks';\r\n\r\nconst rc519 = {\r\n blocks: [\r\n {\r\n id: 'name',\r\n title: 'questionnaire.rc519.name',\r\n info: {\r\n instructions: 'questionnaire.rc519.name.name.info'\r\n },\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'name',\r\n label: 'questionnaire.rc519.name.name.label',\r\n component: QuestionTextField,\r\n visible: true,\r\n lockGroup: 'name',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc519.name.name.errorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n incorporationCountryBlock(),\r\n residentAddressBlock(),\r\n mailingAddressBlock(),\r\n {\r\n id: 'canadianTaxResident',\r\n title: 'questionnaire.rc519.canadianTaxResident',\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'isCanadianTaxResident',\r\n label: 'questionnaire.rc519.canadianTaxResident.isCanadianTaxResident.label',\r\n component: QuestionYesNoField,\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc519.canadianTaxResident.isCanadianTaxResident.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'businessNumber',\r\n label: 'questionnaire.rc519.canadianTaxResident.businessNumber.label',\r\n component: QuestionBusinessNumberField,\r\n visible: bAnswers => bAnswers?.isCanadianTaxResident === 'Yes',\r\n validation: {\r\n conditions: [\r\n { condition: lengthValidator, message: 'questionnaire.rc519.canadianTaxResident.businessNumber.lengthErrorMessage' }\r\n ]\r\n },\r\n componentProps: {\r\n length: 15\r\n },\r\n },\r\n {\r\n id: 'trustAccountNumber',\r\n label: 'questionnaire.rc519.canadianTaxResident.trustAccountNumber.label',\r\n component: QuestionTrustAccountNumberField,\r\n visible: bAnswers => bAnswers?.isCanadianTaxResident === 'Yes',\r\n validation: {\r\n conditions: [\r\n { condition: lengthValidator, message: 'questionnaire.rc519.canadianTaxResident.trustAccountNumber.lengthErrorMessage' }\r\n ]\r\n },\r\n componentProps: {\r\n length: 8\r\n },\r\n info: {\r\n instructions: 'questionnaire.rc519.canadianTaxResident.trustAccountNumber.info'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'usTaxResident',\r\n title: 'questionnaire.rc518.usTaxResident',\r\n component: QuestionRcUsTaxResidentBlock,\r\n visible: true,\r\n info: {\r\n instructions: 'questionnaire.rc518.usTaxResident.info'\r\n },\r\n componentProps: {\r\n tinType: 'EIN'\r\n }\r\n },\r\n rcTaxResidencesBlock(),\r\n {\r\n id: 'entityType',\r\n title: 'questionnaire.rc519.entityType',\r\n visible: true,\r\n questions: [\r\n {\r\n id: 'type',\r\n label: 'questionnaire.rc519.type.label',\r\n component: QuestionDropDownField,\r\n visible: true,\r\n info: {\r\n instructions: 'questionnaire.rc519.type.info'\r\n },\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc519.type.errorMessage' }\r\n ]\r\n },\r\n componentProps: {\r\n items: 'questionnaire.rc519.type.items'\r\n },\r\n },\r\n {\r\n id: 'nonParticipatingJurisdiction',\r\n label: 'questionnaire.rc519.entityType.financialInstitution.nonParticipatingJurisdiction.label',\r\n component: QuestionYesNoField,\r\n visible: bAnswers => bAnswers?.type === '2',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc519.entityType.financialInstitution.nonParticipatingJurisdiction.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'managedByAnother',\r\n label: 'questionnaire.rc519.entityType.financialInstitution.managedByAnother.label',\r\n component: QuestionYesNoField,\r\n visible: bAnswers => bAnswers?.nonParticipatingJurisdiction === 'Yes',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc519.entityType.financialInstitution.managedByAnother.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'investingFinancialAssets',\r\n label: 'questionnaire.rc519.entityType.financialInstitution.investingFinancialAssets.label',\r\n component: QuestionYesNoField,\r\n visible: bAnswers => bAnswers?.managedByAnother === 'Yes',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc519.entityType.financialInstitution.investingFinancialAssets.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'strataCondominium',\r\n label: 'questionnaire.rc519.entityType.strataCondominium.label',\r\n component: QuestionYesNoField,\r\n visible: bAnswers => bAnswers?.type === '1' || bAnswers?.type === '3',\r\n info: {\r\n instructions: 'questionnaire.rc519.entityType.strataCondominium.info'\r\n },\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc519.entityType.strataCondominium.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'activeNonFinancialEntityType',\r\n label: 'questionnaire.rc519.entityType.activeNonFinancialEntityType.label',\r\n component: QuestionRadioButtonsField,\r\n visible: bAnswers => bAnswers?.type === '1',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc519.entityType.activeNonFinancialEntityType.errorMessage' }\r\n ]\r\n },\r\n componentProps: {\r\n items: 'questionnaire.rc519.entityType.activeNonFinancialEntityType.items'\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'giin',\r\n title: 'questionnaire.rc519.giin',\r\n info: {\r\n instructions: 'questionnaire.rc519.giin.info'\r\n },\r\n visible: qAnswers => qAnswers?.entityType?.type === '2',\r\n questions: [\r\n {\r\n id: 'hasGiin',\r\n label: 'questionnaire.rc519.giin.hasGiin.label',\r\n component: QuestionYesNoField,\r\n visible: true,\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc519.giin.hasGiin.errorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'giin',\r\n label: 'questionnaire.rc519.giin.giin.label',\r\n component: QuestionGiinField,\r\n componentProps: {\r\n length: 16\r\n },\r\n visible: bAnswers => bAnswers?.hasGiin === 'Yes',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc519.giin.giin.errorMessage' },\r\n { condition: lengthValidator, message: 'questionnaire.rc519.giin.giin.lengthErrorMessage' }\r\n ]\r\n }\r\n },\r\n {\r\n id: 'noGiinReason',\r\n label: 'questionnaire.rc519.giin.noGiinReason.label',\r\n component: QuestionTextField,\r\n visible: bAnswers => bAnswers?.hasGiin === 'No',\r\n validation: {\r\n conditions: [\r\n { condition: requiredValidator, message: 'questionnaire.rc519.giin.noGiinReason.errorMessage' }\r\n ]\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n id: 'controllingPersons',\r\n title: 'questionnaire.rc519.controllingPersons',\r\n component: QuestionBlockRepeater,\r\n info: {\r\n instructions: 'questionnaire.rc519.controllingPersons.info'\r\n },\r\n visible: qAnswers => qAnswers?.entityType?.type === '3' || qAnswers?.entityType?.investingFinancialAssets === 'Yes',\r\n repeatBlock: {\r\n id: 'controllingPerson',\r\n component: QuestionRcControllingPersonBlock\r\n },\r\n minSize: 1,\r\n maxSize: 2,\r\n addText: 'questionnaire.rc519.controllingPersons.addLabel',\r\n },\r\n {\r\n id: 'signer',\r\n title: 'questionnaire.signer',\r\n component: QuestionSignerBlock,\r\n componentProps: {\r\n entityOnly: true,\r\n capacityInfo: 'questionnaire.rc519.signer.capacity.info'\r\n },\r\n visible: true\r\n },\r\n ]\r\n};\r\n\r\nexport default rc519;\r\n","import parse from 'date-fns/parse';\r\nimport format from 'date-fns/format';\r\n\r\nimport { validateQuestion } from 'components/Questionnaires/validators';\r\n\r\nconst checkLock = (question, formSettings) => {\r\n if (question.lockGroup && formSettings) {\r\n question.disabled = formSettings[question.lockGroup] === true;\r\n }\r\n};\r\n\r\nconst populateQuestion = (questionnaire, blockId, questionId, value, lockSettings) => {\r\n if (value) {\r\n const block = questionnaire.blocks.find(x => x.id === blockId);\r\n if (block) {\r\n block.answers = block.answers ?? {};\r\n const question = block.questions.find(x => x.id === questionId);\r\n if (question) {\r\n checkLock(question, lockSettings?.formSettings);\r\n\r\n question.answer = value;\r\n validateQuestion(question);\r\n block.answers[questionId] = value;\r\n block.isValid = block.questions?.every(q => q.isValid === undefined || q.isValid === true) ?? true;\r\n }\r\n questionnaire.answers[blockId] = block.answers;\r\n }\r\n }\r\n};\r\n\r\nconst populateNameParts = (questionnaire, blockId, name, lockSettings) => {\r\n if (name) {\r\n const nameBlock = questionnaire.blocks.find(x => x.id === blockId);\r\n if (nameBlock) {\r\n nameBlock.answers = nameBlock.answers ?? {};\r\n const firstSpaceIndex = name.indexOf(' ');\r\n const lastSpaceIndex = name.lastIndexOf(' ');\r\n\r\n const firstName = nameBlock.questions.find(x => x.id === 'firstName' && x.component.displayName === 'QuestionTextField');\r\n if (firstName) {\r\n checkLock(firstName, lockSettings?.formSettings);\r\n if (firstSpaceIndex === -1) {\r\n firstName.answer = name;\r\n } else {\r\n firstName.answer = name.substring(0, firstSpaceIndex).trim();\r\n }\r\n validateQuestion(firstName);\r\n nameBlock.answers.firstName = firstName.answer;\r\n }\r\n\r\n const middleName = nameBlock.questions.find(x => x.id === 'middleName' && x.component.displayName === 'QuestionTextField');\r\n if (middleName) {\r\n checkLock(middleName, lockSettings?.formSettings);\r\n if (firstSpaceIndex !== -1 && lastSpaceIndex !== -1 && firstSpaceIndex !== lastSpaceIndex) {\r\n middleName.answer = name.substring(firstSpaceIndex + 1, lastSpaceIndex).trim();\r\n validateQuestion(middleName);\r\n nameBlock.answers.middleName = middleName.answer;\r\n }\r\n }\r\n\r\n const lastName = nameBlock.questions.find(x => x.id === 'lastName' && x.component.displayName === 'QuestionTextField');\r\n if (lastName) {\r\n checkLock(lastName, lockSettings?.formSettings);\r\n if (lastSpaceIndex !== -1) {\r\n lastName.answer = name.substring(lastSpaceIndex).trim();\r\n validateQuestion(lastName);\r\n nameBlock.answers.lastName = lastName.answer;\r\n }\r\n }\r\n\r\n const title = nameBlock.questions.find(x => x.id === 'title' && x.component.displayName === 'QuestionDropDownField');\r\n if (title) {\r\n checkLock(title, lockSettings?.formSettings);\r\n }\r\n\r\n nameBlock.isValid = nameBlock.questions?.every(q => q.isValid === undefined || q.isValid === true) ?? true;\r\n questionnaire.answers[blockId] = nameBlock.answers;\r\n }\r\n }\r\n};\r\n\r\nconst populateAddress = (questionnaire, blockId, address, lockSettings) => {\r\n if (address && (address.line1 || address.line2 || address.line3 || address.line4\r\n || address.postalCode || address.country)) {\r\n const addressBlock = questionnaire.blocks.find(x => x.id === blockId && x.component.displayName === 'QuestionAddressBlock');\r\n if (addressBlock) {\r\n checkLock(addressBlock, lockSettings?.formSettings);\r\n addressBlock.answers = Object.assign({}, address);\r\n questionnaire.answers[blockId] = addressBlock.answers;\r\n }\r\n }\r\n};\r\n\r\nconst populateBirthData = (questionnaire, blockId, birthDate, birthCountry, lockSettings) => {\r\n const birthBlock = questionnaire.blocks.find(x => x.id === blockId);\r\n if (!birthBlock) {\r\n return;\r\n }\r\n\r\n birthBlock.answers = birthBlock.answers ?? {};\r\n if (birthDate) {\r\n const date = birthBlock.questions.find(x => x.id === 'date' && x.component.displayName === 'QuestionDateDropdownField');\r\n if (date) {\r\n checkLock(date, lockSettings?.formSettings);\r\n const parsed = parse(birthDate, 'MM-dd-yyyy', new Date());\r\n const formattedDate = format(parsed, date.componentProps?.dateFormat ?? 'MM-dd-yyyy');\r\n date.answer = formattedDate;\r\n validateQuestion(date);\r\n birthBlock.answers.date = formattedDate;\r\n }\r\n }\r\n\r\n if (birthCountry) {\r\n const country = birthBlock.questions.find(x => x.id === 'country' && x.component.displayName === 'QuestionJurisdictionDropDownField');\r\n if (country) {\r\n checkLock(country, lockSettings?.formSettings);\r\n country.answer = birthCountry;\r\n validateQuestion(country);\r\n birthBlock.answers.country = country;\r\n }\r\n }\r\n birthBlock.isValid = birthBlock.questions?.every(q => q.isValid === undefined || q.isValid === true) ?? true;\r\n questionnaire.answers[blockId] = birthBlock.answers;\r\n};\r\n\r\nexport const prePopulateAnswers = (questionnaire, accountId, customerData, lockSettings) => {\r\n if (!questionnaire || !questionnaire.answers || !customerData) {\r\n return;\r\n }\r\n\r\n populateQuestion(questionnaire, 'name', 'name', customerData.CustomerName, lockSettings);\r\n populateNameParts(questionnaire, 'name', customerData.CustomerName, lockSettings);\r\n populateQuestion(questionnaire, 'citizenshipCountry', 'country', customerData.CountryOfCitizenship, lockSettings);\r\n\r\n populateAddress(questionnaire, 'address', {\r\n line1: customerData.FatcaAddress?.Line1,\r\n line2: customerData.FatcaAddress?.Line2,\r\n line3: customerData.FatcaAddress?.Line3,\r\n line4: customerData.FatcaAddress?.Line4,\r\n postalCode: customerData.FatcaAddress?.PostCode,\r\n country: customerData.FatcaAddress?.Country\r\n }, lockSettings);\r\n\r\n populateAddress(questionnaire, 'mailingAddress', {\r\n line1: customerData.MailingAddress?.Line1,\r\n line2: customerData.MailingAddress?.Line2,\r\n line3: customerData.MailingAddress?.Line3,\r\n line4: customerData.MailingAddress?.Line4,\r\n postalCode: customerData.MailingAddress?.PostCode,\r\n country: customerData.MailingAddress?.Country\r\n }, lockSettings);\r\n\r\n populateBirthData(questionnaire, 'birth', customerData.DateOfBirth, customerData.CountryOfBirth, lockSettings);\r\n};\r\n\r\nexport default prePopulateAnswers;\r\n","import cloneDeep from 'lodash/cloneDeep';\r\n\r\nimport preQualifyingQuestionnaire from 'common/questionnaires/definitions/preQual';\r\nimport w9Questionnaire from 'common/questionnaires/definitions/w9';\r\nimport w8BenQuestionnaire from 'common/questionnaires/definitions/w8Ben';\r\nimport w8BeneQuestionnaire from 'common/questionnaires/definitions/w8Bene';\r\nimport crsEQuestionnaire from 'common/questionnaires/definitions/crse';\r\nimport crsIQuestionnaire from 'common/questionnaires/definitions/crsi';\r\nimport crsCpQuestionnaire from 'common/questionnaires/definitions/crscp';\r\nimport crsIW8BenQuestionnaire from 'common/questionnaires/definitions/crsiw8ben';\r\nimport fatcaCrsEQuestionnaire from 'common/questionnaires/definitions/fatcacrse';\r\nimport fatcaCrsIQuestionnaire from 'common/questionnaires/definitions/fatcacrsi';\r\nimport w8ImyQuestionnaire from 'common/questionnaires/definitions/w8Imy';\r\nimport rc518Questionnaire from 'common/questionnaires/definitions/rc518';\r\nimport rc519Questionnaire from 'common/questionnaires/definitions/rc519';\r\n\r\nimport { prePopulateAnswers } from 'common/questionnaires/prePopulater';\r\n\r\nexport const createPreQualQuestionnaire = rcEnabled => Object.assign({ answers: {} }, cloneDeep(preQualifyingQuestionnaire(rcEnabled)));\r\n\r\nexport const createFormQuestionnaire = (formType, accountId, customerData, lockSettings) => {\r\n let questionnaire = {};\r\n switch (formType) {\r\n case 'w9_2018':\r\n case 'w9_2024':\r\n questionnaire = Object.assign({ answers: {} }, cloneDeep(w9Questionnaire));\r\n break;\r\n case 'w8ben':\r\n case 'w8ben_2021':\r\n questionnaire = Object.assign({ answers: {} }, cloneDeep(w8BenQuestionnaire));\r\n break;\r\n case 'w8bene_2021':\r\n questionnaire = Object.assign({ answers: {} }, cloneDeep(w8BeneQuestionnaire));\r\n break;\r\n case 'crse':\r\n questionnaire = Object.assign({ answers: {} }, cloneDeep(crsEQuestionnaire));\r\n break;\r\n case 'crsi':\r\n case 'crsi_2024':\r\n questionnaire = Object.assign({ answers: {} }, cloneDeep(crsIQuestionnaire));\r\n break;\r\n case 'crscp':\r\n questionnaire = Object.assign({ answers: {} }, cloneDeep(crsCpQuestionnaire));\r\n break;\r\n case 'crsiw8ben':\r\n questionnaire = Object.assign({ answers: {} }, cloneDeep(crsIW8BenQuestionnaire));\r\n break;\r\n case 'fatca_crse_2023':\r\n questionnaire = Object.assign({ answers: {} }, cloneDeep(fatcaCrsEQuestionnaire));\r\n break;\r\n case 'fatca_crsi_2023':\r\n questionnaire = Object.assign({ answers: {} }, cloneDeep(fatcaCrsIQuestionnaire));\r\n break;\r\n case 'w8imy_2021':\r\n questionnaire = Object.assign({ answers: {} }, cloneDeep(w8ImyQuestionnaire));\r\n break;\r\n case 'rc518':\r\n questionnaire = Object.assign({ answers: {} }, cloneDeep(rc518Questionnaire));\r\n break;\r\n case 'rc519':\r\n questionnaire = Object.assign({ answers: {} }, cloneDeep(rc519Questionnaire));\r\n break;\r\n default:\r\n return null;\r\n }\r\n prePopulateAnswers(questionnaire, accountId, customerData, lockSettings);\r\n return questionnaire;\r\n};\r\n\r\nexport default createFormQuestionnaire;\r\n","import {\r\n QUESTIONNAIRE_NEW,\r\n QUESTIONNAIRE_DIRTY_RESET,\r\n QUESTIONNAIRE_CLEAR,\r\n BLOCK_ANSWERED,\r\n QUESTION_ANSWERED,\r\n VALIDATE_QUESTIONNAIRE_BLOCKS\r\n} from 'actions';\r\n\r\nimport { createFormQuestionnaire, createPreQualQuestionnaire } from 'common/questionnaires/creater';\r\nimport { validateQuestion } from 'components/Questionnaires/validators';\r\nimport QuestionnaireType from 'common/questionnaires/QuestionnaireType';\r\n\r\nconst isVisible = (q, blockAnswers, formAnswers, preQualAnswers) => {\r\n if (typeof q.visible === 'boolean') {\r\n return q.visible;\r\n }\r\n if (typeof q.visible === 'function') {\r\n return q.visible(blockAnswers, formAnswers, preQualAnswers);\r\n }\r\n return false;\r\n};\r\n\r\nconst isBlockVisible = (b, formAnswers, preQualAnswers) => {\r\n if (b.linkBlock === true && !b.answers) {\r\n return false;\r\n }\r\n if (typeof b.visible === 'boolean') {\r\n return b.visible;\r\n }\r\n if (typeof b.visible === 'function') {\r\n return b.visible(formAnswers, preQualAnswers);\r\n }\r\n return false;\r\n};\r\n\r\nconst isEmptyObject = (obj) => {\r\n if (!obj) {\r\n return true;\r\n }\r\n let isEmpty = true;\r\n Object.keys(obj).forEach((key) => {\r\n if (obj[key]) {\r\n isEmpty = false;\r\n }\r\n });\r\n return isEmpty;\r\n};\r\n\r\n// eslint-disable-next-line default-param-last\r\nfunction questionnaires(state = {\r\n preQualQuestionnaire: { answers: { } },\r\n formQuestionnaire: null,\r\n isValidating: false,\r\n validationResult: null\r\n}, action) {\r\n switch (action.type) {\r\n case QUESTIONNAIRE_NEW: {\r\n const createPreQual = action.questionnaireType === QuestionnaireType.PreQualifying;\r\n const questionnaire = createPreQual ? createPreQualQuestionnaire(action.rcEnabled) : createFormQuestionnaire(action.formType, action.selectedAccountId, action.customerDetails, action.lockSettings);\r\n return {\r\n ...state,\r\n preQualQuestionnaire: createPreQual ? questionnaire : state.preQualQuestionnaire,\r\n formQuestionnaire: !createPreQual ? questionnaire : state.formQuestionnaire,\r\n };\r\n }\r\n case QUESTIONNAIRE_DIRTY_RESET: {\r\n let updated = {};\r\n const isPreQual = action.questionnaireType === QuestionnaireType.PreQualifying;\r\n if (isPreQual) {\r\n updated = { ...state.preQualQuestionnaire, dirty: false };\r\n } else {\r\n updated = { ...state.formQuestionnaire, dirty: false };\r\n }\r\n return {\r\n ...state,\r\n preQualQuestionnaire: isPreQual ? updated : state.preQualQuestionnaire,\r\n formQuestionnaire: !isPreQual ? updated : state.formQuestionnaire,\r\n };\r\n }\r\n case QUESTIONNAIRE_CLEAR: {\r\n const isPreQual = action.questionnaireType === QuestionnaireType.PreQualifying;\r\n return {\r\n ...state,\r\n preQualQuestionnaire: isPreQual ? { answers: {} } : state.preQualQuestionnaire,\r\n formQuestionnaire: !isPreQual ? null : state.formQuestionnaire,\r\n };\r\n }\r\n case BLOCK_ANSWERED: {\r\n let updated = {};\r\n const isPreQual = action.questionnaireType === QuestionnaireType.PreQualifying;\r\n if (isPreQual) {\r\n updated = { ...state.preQualQuestionnaire, dirty: true };\r\n } else {\r\n updated = { ...state.formQuestionnaire, dirty: true };\r\n }\r\n\r\n if (!updated.blocks) {\r\n return { ...state };\r\n }\r\n\r\n if (!updated.answers) {\r\n updated.answers = {};\r\n }\r\n\r\n if (updated.answers && !Object.getOwnPropertyDescriptor.hasOwnProperty.call(updated.answers, action.blockId)) {\r\n updated.answers[action.blockId] = {};\r\n }\r\n updated.answers[action.blockId] = action.answer;\r\n\r\n const updatedBlocks = updated.blocks.map((b, i) => {\r\n if (b.id === action.blockId) {\r\n if (!Object.getOwnPropertyDescriptor.hasOwnProperty.call(b, 'answers')) {\r\n b = { ...b, answers: {} };\r\n } else {\r\n b = { ...b };\r\n }\r\n b.answers = action.answer;\r\n b.isValid = action.isValid;\r\n } else if (!isPreQual && !isEmptyObject(b.answers) && !isBlockVisible(b, updated?.answers, state.preQualQuestionnaire?.answers)) {\r\n b = Object.assign({}, b);\r\n b.answers = {};\r\n b.isValid = undefined;\r\n if (b.questions?.length > 0) {\r\n b.questions = b.questions.map((q) => {\r\n q.isValid = undefined;\r\n q.errorMessages = undefined;\r\n q.answer = undefined;\r\n\r\n return q;\r\n });\r\n }\r\n updated.answers[b.id] = {};\r\n } else if (b.questions?.length > 0) {\r\n b.questions = b.questions.map((q) => {\r\n const questionIndex = b.questions.findIndex(x => x.id === action.questionId);\r\n if (isPreQual && questionIndex !== -1 && i > questionIndex) {\r\n // clear Pre-Qual Questionnaire answers after answered question\r\n q.isValid = undefined;\r\n q.errorMessages = undefined;\r\n q.answer = undefined;\r\n if (updated.answers && updated.answers[b.id]) {\r\n updated.answers[b.id][q.id] = undefined;\r\n }\r\n if (b.answers && b.answers[b.id]) {\r\n b.answers[q.id] = undefined;\r\n }\r\n } else if (!isPreQual && !isVisible(q, b.answers, updated?.answers, state.preQualQuestionnaire?.answers)) {\r\n q.isValid = undefined;\r\n q.errorMessages = undefined;\r\n q.answer = undefined;\r\n if (updated.answers && updated.answers[b.id]) {\r\n updated.answers[b.id][q.id] = undefined;\r\n }\r\n if (b.answers && b.answers[q.id]) {\r\n b.answers[q.id] = undefined;\r\n }\r\n }\r\n return q;\r\n });\r\n b.isValid = b.questions?.every(q => q.isValid === undefined || q.isValid === true) ?? true;\r\n }\r\n b.isForceEdited = undefined;\r\n return b;\r\n });\r\n\r\n updated = { ...updated, blocks: updatedBlocks };\r\n\r\n return {\r\n ...state,\r\n formQuestionnaire: updated,\r\n };\r\n }\r\n case QUESTION_ANSWERED: {\r\n let updated = {};\r\n const isPreQual = action.questionnaireType === QuestionnaireType.PreQualifying;\r\n if (isPreQual) {\r\n updated = { ...state.preQualQuestionnaire, dirty: true };\r\n } else {\r\n updated = { ...state.formQuestionnaire, dirty: true };\r\n }\r\n\r\n if (!updated.blocks) {\r\n return { ...state };\r\n }\r\n\r\n if (!updated.answers) {\r\n updated.answers = {};\r\n }\r\n\r\n if (updated.answers && !Object.getOwnPropertyDescriptor.hasOwnProperty.call(updated.answers, action.blockId)) {\r\n updated.answers[action.blockId] = {};\r\n }\r\n\r\n updated.answers[action.blockId][action.questionId] = action.answer;\r\n\r\n const blockIndex = updated.blocks.findIndex(b => b.id === action.blockId);\r\n\r\n const updatedBlocks = updated.blocks.map((b, i) => {\r\n if (b.id === action.blockId) {\r\n if (!Object.getOwnPropertyDescriptor.hasOwnProperty.call(b, 'answers')) {\r\n b = { ...b, answers: {} };\r\n } else {\r\n b = { ...b };\r\n }\r\n b.answers[action.questionId] = action.answer;\r\n const questionIndex = b.questions.findIndex(q => q.id === action.questionId);\r\n b.questions = b.questions.map((q) => {\r\n if (q.id === action.questionId) {\r\n q = { ...q, answer: action.answer };\r\n validateQuestion(q);\r\n q.isForceEdited = undefined;\r\n } else if (isPreQual && questionIndex !== -1 && i > questionIndex) {\r\n // clear Pre-Qual Questionnaire answers after answered question\r\n q.isValid = undefined;\r\n q.errorMessages = undefined;\r\n q.answer = undefined;\r\n if (updated.answers && updated.answers[b.id]) {\r\n updated.answers[b.id][q.id] = undefined;\r\n }\r\n if (b.answers && b.answers[b.id]) {\r\n b.answers[q.id] = undefined;\r\n }\r\n } else if (!isPreQual && !isVisible(q, b.answers, updated?.answers, state.preQualQuestionnaire?.answers)) {\r\n q.isValid = undefined;\r\n q.errorMessages = undefined;\r\n q.answer = undefined;\r\n if (updated.answers && updated.answers[b.id]) {\r\n updated.answers[b.id][q.id] = undefined;\r\n }\r\n if (b.answers && b.answers[q.id]) {\r\n b.answers[q.id] = undefined;\r\n }\r\n }\r\n return q;\r\n });\r\n b.isValid = b.questions?.every(q => q.isValid === undefined || q.isValid === true) ?? true;\r\n b.isForceEdited = undefined;\r\n } else if (isPreQual && blockIndex !== -1 && i > blockIndex) {\r\n // clear Pre-Qual Questionnaire answers after answered block\r\n const blockQuestions = b.questions.map(q => Object.assign(q, { isValid: undefined, errorMessages: undefined, answer: undefined }));\r\n if (updated.answers) {\r\n updated.answers[b.id] = {};\r\n }\r\n b = Object.assign({}, b);\r\n b.questions = [...blockQuestions];\r\n b.isValid = undefined;\r\n b.answers = {};\r\n } else {\r\n // Clear any isForceEdited flags\r\n b.isForceEdited = undefined;\r\n if (b.questions?.length > 0) {\r\n const bQuestions = b.questions.map((q) => {\r\n const qChanges = {};\r\n let hasChanged = false;\r\n if (q.isForceEdited !== undefined) {\r\n qChanges.isForceEdited = undefined;\r\n hasChanged = true;\r\n }\r\n if (!isPreQual && q.answer && !isVisible(q, b.answers, updated?.answers, state.preQualQuestionnaire?.answers)) {\r\n qChanges.isValid = undefined;\r\n qChanges.errorMessages = undefined;\r\n qChanges.answer = undefined;\r\n b.answers[q.id] = undefined;\r\n updated.answers[b.id][q.id] = undefined;\r\n hasChanged = true;\r\n }\r\n\r\n return hasChanged ? Object.assign(q, qChanges) : q;\r\n });\r\n b.questions = bQuestions;\r\n } else if (!isPreQual && !isEmptyObject(b.answers) && !isBlockVisible(b, updated?.answers, state.preQualQuestionnaire?.answers)) {\r\n b = Object.assign({}, b);\r\n b.answers = {};\r\n updated.answers[b.id] = undefined;\r\n }\r\n }\r\n\r\n return b;\r\n });\r\n\r\n updated = { ...updated, blocks: [...updatedBlocks] };\r\n\r\n return {\r\n ...state,\r\n preQualQuestionnaire: isPreQual ? updated : state.preQualQuestionnaire,\r\n formQuestionnaire: !isPreQual ? updated : state.formQuestionnaire,\r\n };\r\n }\r\n case VALIDATE_QUESTIONNAIRE_BLOCKS: {\r\n let updated = {};\r\n const isPreQual = action.questionnaireType === QuestionnaireType.PreQualifying;\r\n if (isPreQual) {\r\n updated = { ...state.preQualQuestionnaire, dirty: true };\r\n } else {\r\n updated = { ...state.formQuestionnaire, dirty: true };\r\n }\r\n\r\n const updatedBlocks = updated.blocks.map((b, i) => {\r\n let blockValid = b?.isValid ?? true;\r\n if (b?.questions?.length > 0) {\r\n b.questions = b.questions.map((q) => {\r\n let questionVisible = false;\r\n if (Object.prototype.hasOwnProperty.call(q, 'visible')) {\r\n if (typeof q.visible === 'boolean') {\r\n questionVisible = q.visible;\r\n }\r\n if (typeof q.visible === 'function') {\r\n questionVisible = q.visible(b.answers, state.formQuestionnaire?.answers, state.preQualQuestionnaire?.answers);\r\n }\r\n }\r\n if (q.isValid !== true && questionVisible) {\r\n q.answer = '';\r\n validateQuestion(q);\r\n return { ...q, isForceEdited: true };\r\n }\r\n return { ...q };\r\n });\r\n blockValid = b.questions?.every(q => q.isValid === undefined || q.isValid === true) ?? true;\r\n }\r\n b = { ...b, isValid: blockValid, isForceEdited: true };\r\n return b;\r\n });\r\n\r\n updated = { ...updated, blocks: [...updatedBlocks] };\r\n\r\n return {\r\n ...state,\r\n preQualQuestionnaire: isPreQual ? updated : state.preQualQuestionnaire,\r\n formQuestionnaire: !isPreQual ? updated : state.formQuestionnaire,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default questionnaires;\r\n","import { combineReducers } from 'redux';\r\nimport { connectRouter } from 'connected-react-router';\r\nimport { reducer as formReducer } from 'redux-form';\r\nimport app from './app';\r\nimport authentaLink from './authentaLink';\r\nimport exceptions from './exceptions';\r\nimport taxForm from './form';\r\nimport supportingDocuments from './supportingDocuments';\r\nimport fileUploads from './fileUploads';\r\nimport questionnaires from './questionnaires';\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 app,\r\n authentaLink,\r\n exceptions,\r\n form: combinedFormReducer,\r\n supportingDocuments,\r\n fileUploads,\r\n questionnaires,\r\n router: connectRouter(history)\r\n});\r\n\r\nexport default createRootReducer;\r\n","import { applyMiddleware, createStore } 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\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","import axios from 'axios';\r\nimport { updateConnectionStatus } from 'actions/app';\r\nimport { history } from 'containers/App';\r\nimport EnvConfig from 'env.config';\r\nimport { detectLocale } from 'common/language/localeHelper';\r\nimport { isTranslatedForm } from 'common/forms/formTypeHelper';\r\n\r\nconst {\r\n tokenName,\r\n baseApiUrl,\r\n apiEndpoints: {\r\n authentaLink: authentaLinkUri,\r\n login: loginUri,\r\n logout: logoutUri,\r\n forms: formsUri,\r\n language: languageUri,\r\n config: configUri,\r\n auth: authUri,\r\n validatePin: validatePinUri,\r\n supportingDocuments: supportingDocumentsUri,\r\n questionnaire: questionnaireUri,\r\n formGroups: formGroupsUri,\r\n }\r\n} = EnvConfig;\r\n\r\n// const HTTP_400_BADREQUEST = 400;\r\nconst HTTP_401_UNAUTHORIZED = 401;\r\nconst HTTP_403_FORBIDDEN = 403;\r\n// const HTTP_404_NOTFOUND = 404;\r\nconst HTTP_408_REQUESTTIMEOUT = 408;\r\nconst HTTP_429_TOOMANYREQUESTS = 429;\r\nconst HTTP_498_SESSIONTIMEOUT = 498;\r\nconst HTTP_501_NOTIMPLEMENTED = 501;\r\nconst HTTP_502_BADGATEWAY = 502;\r\nconst HTTP_503_SERVICEUNAVAILABLE = 503;\r\n// const HTTP_504_GATEWAYTIMEOUT = 504;\r\n\r\nconst getDefaultConfig = () => {\r\n const locale = detectLocale();\r\n const config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n 'Accept-Language': locale\r\n },\r\n withCredentials: true\r\n };\r\n\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 // AUTH API\r\n\r\n static getAuthTokenName() {\r\n return tokenName;\r\n }\r\n\r\n static getBaseApiUrl() {\r\n return baseApiUrl;\r\n }\r\n\r\n static getLoginUrl(queryString) {\r\n return `${ baseApiUrl }${ loginUri }${ queryString || '' }`;\r\n }\r\n\r\n static getLogoutUrl() {\r\n return `${ baseApiUrl }${ logoutUri }`;\r\n }\r\n\r\n static postAuthentaLink(formData) {\r\n return ApiService.axios.post(\r\n `${ baseApiUrl }${ authentaLinkUri }`,\r\n formData,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n // LANGUAGE API\r\n\r\n static getLanguages() {\r\n return ApiService.axios.get(\r\n `${ baseApiUrl }${ languageUri }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static async getLanguage(language) {\r\n const config = getDefaultConfig();\r\n return ApiService.axios.get(\r\n `${ baseApiUrl }${ languageUri }/${ language }`,\r\n config\r\n );\r\n }\r\n\r\n static getAuthState() {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ authUri }/state`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n // TAX TREATY API\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 getOtherArticles() {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ configUri }/otherarticles`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n // JURISDICTIONS API\r\n\r\n static getJurisdictions() {\r\n const config = { ...getDefaultConfig() };\r\n return ApiService.axios.get(\r\n `${ baseApiUrl }${ configUri }/jurisdictions`,\r\n config\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 async getOnlineConfig() {\r\n return ApiService.axios.get(\r\n `${ baseApiUrl }${ configUri }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getPaymentTypes() {\r\n return ApiService.axios.get(\r\n `${ baseApiUrl }${ configUri }/payment-types`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n // FORM API\r\n\r\n static addForm(formData) {\r\n return ApiService.axios\r\n .put(\r\n `${ baseApiUrl }${ formsUri }`,\r\n formData,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getFormById(formType, formId) {\r\n const config = getDefaultConfig();\r\n if (!isTranslatedForm(formType)) {\r\n config.headers['Accept-Language'] = 'en';\r\n }\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ formsUri }/${ formId }`,\r\n config\r\n );\r\n }\r\n\r\n static validateForm(formType, formId, formData) {\r\n const config = getDefaultConfig();\r\n if (!isTranslatedForm(formType)) {\r\n config.headers['Accept-Language'] = 'en';\r\n }\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ formsUri }/${ formType }/${ formId }/validate`,\r\n formData,\r\n config\r\n );\r\n }\r\n\r\n static validateQuestionnaireForm(formType, formId, formData) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ questionnaireUri }/${ formType }/${ formId }/validate`,\r\n formData,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getFormPdf(formId, config) {\r\n return ApiService.axios({\r\n url: `${ baseApiUrl }${ formsUri }/${ formId }/pdf/download`,\r\n method: 'get',\r\n transformResponse: (data, headers) => {\r\n const blob = new Blob([data], { type: 'application/octet-stream' });\r\n if (/CriOS/i.test(navigator.userAgent) && /iphone|ipod|ipad/i.test(navigator.userAgent)) {\r\n // Chrome iOS specific\r\n const reader = new FileReader();\r\n reader.onloadend = function () {\r\n let url = reader.result;\r\n const popup = window.open(url, '_blank');\r\n if (!popup) {\r\n window.location.href = url;\r\n }\r\n url = undefined; // release reference before dispatching\r\n };\r\n reader.readAsDataURL(blob);\r\n return null;\r\n }\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob && config) {\r\n // IE specific\r\n window.navigator.msSaveOrOpenBlob(blob, this.getFileNameFromHeaders(headers));\r\n return null;\r\n }\r\n // All other browsers\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 getPreviewPdf(formId, config) {\r\n return ApiService.axios({\r\n url: `${ baseApiUrl }${ formsUri }/${ formId }/pdf/preview`,\r\n method: 'get',\r\n transformResponse: (data, headers) => {\r\n const blob = new Blob([data], { type: 'application/octet-stream' });\r\n if (/CriOS/i.test(navigator.userAgent) && /iphone|ipod|ipad/i.test(navigator.userAgent)) {\r\n // Chrome iOS specific\r\n const reader = new FileReader();\r\n reader.onloadend = function () {\r\n let url = reader.result;\r\n const popup = window.open(url, '_blank');\r\n if (!popup) {\r\n window.location.href = url;\r\n }\r\n url = undefined; // release reference before dispatching\r\n };\r\n reader.readAsDataURL(blob);\r\n return null;\r\n }\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob && config) {\r\n // IE specific\r\n window.navigator.msSaveOrOpenBlob(blob, this.getFileNameFromHeaders(headers));\r\n return null;\r\n }\r\n // All other browsers\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 getCollectableSupportingDocPdf(requestData, isPreview, config) {\r\n const requestUrl = isPreview ? 'preview' : `${ requestData.supportingDocId }/download`;\r\n return ApiService.axios({\r\n url: `${ baseApiUrl }${ supportingDocumentsUri }/${ requestUrl }`,\r\n method: isPreview ? 'post' : 'get',\r\n data: isPreview ? requestData : null,\r\n transformResponse: (data, headers) => {\r\n const blob = new Blob([data], { type: 'application/octet-stream' });\r\n if (/CriOS/i.test(navigator.userAgent) && /iphone|ipod|ipad/i.test(navigator.userAgent)) {\r\n // Chrome iOS specific\r\n const reader = new FileReader();\r\n reader.onloadend = function () {\r\n let url = reader.result;\r\n const popup = window.open(url, '_blank');\r\n if (!popup) {\r\n window.location.href = url;\r\n }\r\n url = undefined; // release reference before dispatching\r\n };\r\n reader.readAsDataURL(blob);\r\n return null;\r\n }\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob && config) {\r\n // IE specific\r\n window.navigator.msSaveOrOpenBlob(blob, this.getFileNameFromHeaders(headers));\r\n return null;\r\n }\r\n // All other browsers\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 getSignedCollectableSupportingDocPdf(formId, requestData, isPreview, config) {\r\n return ApiService.axios({\r\n url: `${ baseApiUrl }${ supportingDocumentsUri }/${ formId }/pdf/download`,\r\n method: 'get',\r\n transformResponse: (data, headers) => {\r\n const blob = new Blob([data], { type: 'application/octet-stream' });\r\n if (/CriOS/i.test(navigator.userAgent) && /iphone|ipod|ipad/i.test(navigator.userAgent)) {\r\n // Chrome iOS specific\r\n const reader = new FileReader();\r\n reader.onloadend = function () {\r\n let url = reader.result;\r\n const popup = window.open(url, '_blank');\r\n if (!popup) {\r\n window.location.href = url;\r\n }\r\n url = undefined; // release reference before dispatching\r\n };\r\n reader.readAsDataURL(blob);\r\n return null;\r\n }\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob && config) {\r\n // IE specific\r\n window.navigator.msSaveOrOpenBlob(blob, this.getFileNameFromHeaders(headers));\r\n return null;\r\n }\r\n // All other browsers\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 confirm(id) {\r\n return ApiService.axios\r\n .put(\r\n `${ baseApiUrl }${ formsUri }/${ id }/confirm`,\r\n null,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static submit(id) {\r\n return ApiService.axios\r\n .put(\r\n `${ baseApiUrl }${ formsUri }/${ id }/submit`,\r\n null,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static certify(id) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ formsUri }/${ id }/certify`,\r\n null,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static revert(id) {\r\n return ApiService.axios\r\n .put(\r\n `${ baseApiUrl }${ formsUri }/${ id }/revert`,\r\n null,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static sign(id, printName, capacity, signDate, collectableSupportingDocData) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ formsUri }/${ id }/sign`,\r\n {\r\n printName,\r\n capacity,\r\n signDate,\r\n collectableSupportingDocData\r\n },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n // FILE UPLOAD API\r\n\r\n static getFileUploadUrl() {\r\n return `${ baseApiUrl }${ supportingDocumentsUri }`;\r\n }\r\n\r\n static deleteFileUpload(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 // SUPPORTING DOCUMENTS API\r\n\r\n static deleteSupportingDoc(id) {\r\n return ApiService.axios\r\n .delete(\r\n `${ baseApiUrl }${ supportingDocumentsUri }/${ id }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static sendPinToRecipient(pinType) {\r\n return ApiService.axios\r\n .put(\r\n `${ baseApiUrl }${ authUri }/sendpin`,\r\n {\r\n pinType\r\n },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static sendPinConfirmation(pinType, resendReference) {\r\n return ApiService.axios\r\n .put(\r\n `${ baseApiUrl }${ authUri }/sendnoemailpin`,\r\n {\r\n pinType,\r\n resendReference\r\n },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static validatePin(pin, pinType) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ validatePinUri }`,\r\n {\r\n pin,\r\n pinType\r\n },\r\n getDefaultConfig()\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 // FORM GROUPS API\r\n\r\n static addFormGroup(formGroupData) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ formGroupsUri }`,\r\n formGroupData,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getFormGroupById(formType, formGroupId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ formGroupsUri }/${ formGroupId }`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static validateFormGroupQuestionnaire(formGroupType, formGroupId, formData) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ formGroupsUri }/${ formGroupType }/${ formGroupId }/validate`,\r\n formData,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static submitFormGroup(id) {\r\n return ApiService.axios\r\n .put(\r\n `${ baseApiUrl }${ formGroupsUri }/${ id }/submit`,\r\n null,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getFormGroupFormPreviewPdf(formGroupId, formType, config) {\r\n return ApiService.axios({\r\n url: `${ baseApiUrl }${ formGroupsUri }/${ formGroupId }/${ formType }/pdf/preview`,\r\n method: 'get',\r\n transformResponse: (data, headers) => {\r\n const blob = new Blob([data], { type: 'application/octet-stream' });\r\n if (/CriOS/i.test(navigator.userAgent) && /iphone|ipod|ipad/i.test(navigator.userAgent)) {\r\n // Chrome iOS specific\r\n const reader = new FileReader();\r\n reader.onloadend = function () {\r\n let url = reader.result;\r\n const popup = window.open(url, '_blank');\r\n if (!popup) {\r\n window.location.href = url;\r\n }\r\n url = undefined; // release reference before dispatching\r\n };\r\n reader.readAsDataURL(blob);\r\n return null;\r\n }\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob && config) {\r\n // IE specific\r\n window.navigator.msSaveOrOpenBlob(blob, this.getFileNameFromHeaders(headers));\r\n return null;\r\n }\r\n // All other browsers\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 getFormLinkedCollectableSupportingDocId(uploadedFormId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ supportingDocumentsUri }/${ uploadedFormId }/form/getLinkedCollectableDocId`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getFormGroupLinkedCollectableSupportingDocId(formGroupId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ supportingDocumentsUri }/${ formGroupId }/formGroup/getLinkedCollectableDocId`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static confirmFormGroup(id) {\r\n return ApiService.axios\r\n .put(\r\n `${ baseApiUrl }${ formGroupsUri }/${ id }/confirm`,\r\n null,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static certifyFormGroup(id) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ formGroupsUri }/${ id }/certify`,\r\n null,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static signFormGroup(id, printName, capacity, signDate, collectableSupportingDocData) {\r\n return ApiService.axios\r\n .post(\r\n `${ baseApiUrl }${ formGroupsUri }/${ id }/sign`,\r\n {\r\n printName,\r\n capacity,\r\n signDate,\r\n collectableSupportingDocData\r\n },\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getFormGroupPdf(formGroupId, formType, config) {\r\n return ApiService.axios({\r\n url: `${ baseApiUrl }${ formGroupsUri }/${ formGroupId }/${ formType }/pdf/download`,\r\n method: 'get',\r\n transformResponse: (data, headers) => {\r\n const blob = new Blob([data], { type: 'application/octet-stream' });\r\n if (/CriOS/i.test(navigator.userAgent) && /iphone|ipod|ipad/i.test(navigator.userAgent)) {\r\n // Chrome iOS specific\r\n const reader = new FileReader();\r\n reader.onloadend = function () {\r\n let url = reader.result;\r\n const popup = window.open(url, '_blank');\r\n if (!popup) {\r\n window.location.href = url;\r\n }\r\n url = undefined; // release reference before dispatching\r\n };\r\n reader.readAsDataURL(blob);\r\n return null;\r\n }\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob && config) {\r\n // IE specific\r\n window.navigator.msSaveOrOpenBlob(blob, this.getFileNameFromHeaders(headers));\r\n return null;\r\n }\r\n // All other browsers\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 revertFormGroup(id) {\r\n return ApiService.axios\r\n .put(\r\n `${ baseApiUrl }${ formGroupsUri }/${ id }/revert`,\r\n null,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getSupportingDocsByFormGroupId(formGroupId) {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ formGroupsUri }/${ formGroupId }/supporting-docs`,\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 }${ configUri }/stockmarkets`,\r\n getDefaultConfig()\r\n );\r\n }\r\n\r\n static getLobs() {\r\n return ApiService.axios\r\n .get(\r\n `${ baseApiUrl }${ configUri }/lobs`,\r\n getDefaultConfig()\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 addQueuedPromise(promise, error) {\r\n if (promise != null) {\r\n this.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\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 // console.log(`processQueuedPromises - bypass: ${ bypassCheck || false }, isProcessingQueue: ${ ApiService.isProcessingQueue }, queuedPromises(length): ${ ApiService.queuedPromises.length }`);\r\n if (!bypassCheck && this.isProcessingQueue) {\r\n return;\r\n }\r\n\r\n this.isProcessingQueue = true;\r\n this.startQueuedRequestRetryTimeout = 0;\r\n clearTimeout(this.startQueuedRequestRetryTimeout);\r\n\r\n if (this.queuedPromises && this.queuedPromises.length > 0) {\r\n const request = this.queuedPromises.pop();\r\n this.retryPromise(\r\n request\r\n ).then(() => {\r\n // Should only hit here if successful?\r\n this.startQueuedRequestRetryTimeout = 0;\r\n clearTimeout(this.startQueuedRequestRetryTimeout);\r\n this.isProcessingQueue = false;\r\n if (ApiService.globalRetryCount < 2) {\r\n this.processQueuedPromises(false);\r\n }\r\n // Promise.resolve(response);\r\n }).catch((error) => {\r\n this.isProcessingQueue = false;\r\n Promise.reject(error);\r\n });\r\n } else {\r\n this.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.startsWith(`${ baseApiUrl }${ configUri }`)) {\r\n history.push('/unauthorized');\r\n } else {\r\n window.location = ApiService.getLoginUrl(window.location.search);\r\n }\r\n }\r\n if (error.response.status === HTTP_403_FORBIDDEN) {\r\n if (error.response.data && error.response.data.code === HTTP_498_SESSIONTIMEOUT) {\r\n history.push('/sessiontimeout');\r\n } else {\r\n history.push('/unlicensed');\r\n }\r\n }\r\n if (error.response.status === HTTP_429_TOOMANYREQUESTS || error.response.status === HTTP_503_SERVICEUNAVAILABLE) {\r\n history.push('/unavailable');\r\n }\r\n\r\n if ([HTTP_408_REQUESTTIMEOUT,\r\n HTTP_429_TOOMANYREQUESTS,\r\n HTTP_501_NOTIMPLEMENTED,\r\n HTTP_502_BADGATEWAY,\r\n 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.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, message: error.message };\r\n if (error.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","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;","const PreloadBrands = ['hsbc'];\r\nexport default PreloadBrands;\r\n","import React, { useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect, useDispatch } from 'react-redux';\r\nimport { IntlProvider } from 'react-intl';\r\nimport Helmet from 'react-helmet';\r\n\r\nimport { loadLanguages } from 'actions/languages';\r\n\r\nconst AppProvider = ({ locale, messages, children }) => {\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n dispatch(loadLanguages());\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n { children }\r\n \r\n );\r\n};\r\n\r\nAppProvider.propTypes = {\r\n locale: PropTypes.string.isRequired,\r\n messages: PropTypes.shape({}),\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ])\r\n};\r\n\r\nAppProvider.defaultProps = {\r\n children: null,\r\n messages: null\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n app: { locale, messages }\r\n } = state;\r\n\r\n return {\r\n locale,\r\n messages\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(AppProvider);\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nimport { clearException, closeException } from 'actions/exceptions/clearException';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport Button from 'components/Common/Buttons';\r\n\r\nclass Notifications extends Component {\r\n clear(index) {\r\n const { dispatch } = this.props;\r\n dispatch(closeException(index));\r\n dispatch(clearException(index));\r\n }\r\n\r\n render() {\r\n const { notifs, intl } = this.props;\r\n\r\n return (\r\n notifs != null && notifs.length > 0 &&
    \r\n
    \r\n
    \r\n { notifs.map((item, i) =>
    \r\n { `${ item.code } - ${ item.message }`}\r\n this.clear(i) }\r\n ariaLabel={ intl.formatMessage({ id: 'accessibility.notification.close' }) }\r\n >\r\n \r\n \r\n
    )}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nNotifications.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n notifs: PropTypes.arrayOf(PropTypes.shape({\r\n type: PropTypes.number,\r\n code: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n message: PropTypes.string,\r\n adding: PropTypes.bool,\r\n closing: PropTypes.bool\r\n })),\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired\r\n};\r\n\r\nNotifications.defaultProps = {\r\n notifs: []\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n exceptions: { items }\r\n } = state;\r\n\r\n return {\r\n notifs: items\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(injectIntl(Notifications));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport Button from 'components/Common/Buttons';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nconst ErrorPage = ({ title, titleTextId, type, showButton, buttonText, buttonTextId, onButtonClick, children, intl }) =>
    \r\n
    \r\n
    \r\n

    \r\n { type === 'network' && \r\n \r\n \r\n }\r\n { type === 'notfound' && \r\n \r\n }\r\n { type === 'server' && \r\n \r\n }\r\n { type === 'unsupported' && \r\n \r\n }\r\n { children }\r\n {showButton &&
    \r\n
    \r\n
    ;\r\n\r\nErrorPage.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n type: PropTypes.oneOf(['network', 'notfound', 'server', 'unsupported']).isRequired,\r\n showButton: PropTypes.bool,\r\n buttonText: PropTypes.string,\r\n onButtonClick: PropTypes.func,\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ]),\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired,\r\n titleTextId: PropTypes.string,\r\n buttonTextId: PropTypes.string\r\n};\r\n\r\nErrorPage.defaultProps = {\r\n showButton: false,\r\n buttonText: 'Reload',\r\n onButtonClick: () => { window.location.reload(); },\r\n children: null,\r\n titleTextId: null,\r\n buttonTextId: 'error.buttonText'\r\n};\r\n\r\nexport default injectIntl(ErrorPage);\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nimport { history } from 'containers/App';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nimport ErrorPage from 'components/Errors/ErrorPage';\r\n\r\nconst ServerError = ({ code, message, titleTextId }) => history.go(-1) }>\r\n

    \r\n

    { code != null ? code : 500 }

    \r\n \r\n
    ;\r\n\r\nServerError.propTypes = {\r\n code: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n message: PropTypes.string,\r\n titleTextId: PropTypes.string\r\n};\r\n\r\nServerError.defaultProps = {\r\n code: 500,\r\n message: 'server.defaultMessage',\r\n titleTextId: 'server.title'\r\n};\r\n\r\nexport default injectIntl(ServerError);\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport { handleException } from 'actions/exceptions';\r\n\r\nimport ServerError from 'components/Errors/ServerError';\r\n\r\nclass ErrorBoundary 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 }\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 console.error(`An unexpected error has occurred in ${ origin } and been handled: ${ info.componentStack }`);\r\n handleException(error, info);\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 ErrorBoundary;\r\n","import React from 'react';\r\nimport { injectIntl } from 'react-intl';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { history } from 'containers/App';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nimport ErrorPage from 'components/Errors/ErrorPage';\r\n\r\nconst NotFoundError = ({ titleTextId }) => history.go(-1) }>\r\n

    { chunks }

    \r\n } }\r\n />\r\n
    ;\r\n\r\nNotFoundError.propTypes = {\r\n titleTextId: PropTypes.string\r\n};\r\n\r\nNotFoundError.defaultProps = {\r\n titleTextId: 'notFound.title'\r\n};\r\n\r\nexport default injectIntl(NotFoundError);\r\n","import React from 'react';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nimport ErrorPage from 'components/Errors/ErrorPage';\r\n\r\nconst InternetConnectionError = () => { window.location.href = '/'; } }\r\n>\r\n \r\n;\r\n\r\nexport default InternetConnectionError;\r\n","import React, { useEffect } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\nimport { connect } from 'react-redux';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport { redirectToLogin } from 'actions/auth/redirectToLogin';\r\n\r\nimport ErrorPage from 'components/Errors/ErrorPage';\r\n\r\nimport { timeOutSession } from 'actions/app';\r\n\r\nconst SessionTimeoutError = ({ intl, dispatch, titleTextId, buttonTextId }) => {\r\n useEffect(() => {\r\n dispatch(timeOutSession());\r\n }, []);\r\n\r\n const onClick = () => {\r\n const actionUrl = intl?.messages?.sessionTimeoutActionUrl;\r\n if (actionUrl) {\r\n window.location = actionUrl;\r\n return;\r\n }\r\n redirectToLogin();\r\n };\r\n\r\n return (\r\n onClick() }\r\n type=\"server\"\r\n >\r\n \r\n \r\n );\r\n};\r\n\r\nSessionTimeoutError.propTypes = {\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired,\r\n messages: PropTypes.shape().isRequired\r\n }).isRequired,\r\n dispatch: PropTypes.func.isRequired,\r\n titleTextId: PropTypes.string,\r\n buttonTextId: PropTypes.string\r\n};\r\n\r\nSessionTimeoutError.defaultProps = {\r\n titleTextId: 'sessionTimeout.title',\r\n buttonTextId: 'sessionTimeout.buttonText'\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default injectIntl(connect(\r\n null,\r\n mapDispatchToProps\r\n)(SessionTimeoutError));\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport ErrorPage from 'components/Errors/ErrorPage';\r\nimport { history } from 'containers/App';\r\n\r\nconst InsufficientFormInformationError = ({ showButton }) => \r\n \r\n;\r\n\r\nInsufficientFormInformationError.propTypes = {\r\n showButton: PropTypes.bool,\r\n};\r\nInsufficientFormInformationError.defaultProps = {\r\n showButton: true,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n app: { onlineConfig },\r\n } = state;\r\n\r\n const activeFormTypes = onlineConfig?.formTypes?.filter(x => x.isEnabled && x.isVisible) ?? [];\r\n const activeFormGroups = onlineConfig?.formGroups?.filter(x => x.isEnabled && x.isVisible) ?? [];\r\n\r\n const showButton = activeFormTypes.length + activeFormGroups.length > 1;\r\n\r\n return {\r\n showButton,\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps)(InsufficientFormInformationError);\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nimport { history } from 'containers/App';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nimport ErrorPage from 'components/Errors/ErrorPage';\r\n\r\nconst UnsupportedError = ({ titleTextId, buttonTextId }) => { history.push('/'); window.location.reload(); } }\r\n>\r\n

    \r\n;\r\n\r\nUnsupportedError.propTypes = {\r\n titleTextId: PropTypes.string,\r\n buttonTextId: PropTypes.string\r\n};\r\n\r\nUnsupportedError.defaultProps = {\r\n titleTextId: 'unsupported.title',\r\n buttonTextId: 'unsupported.buttonText'\r\n};\r\n\r\nexport default injectIntl(UnsupportedError);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { history } from 'containers/App';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nimport ErrorPage from 'components/Errors/ErrorPage';\r\n\r\nconst UnauthorisedError = ({ titleTextId }) => {\r\n const actionUrl = useSelector(state => state?.app?.messages?.unauthorisedActionUrl);\r\n\r\n const onClick = () => {\r\n if (actionUrl) {\r\n window.location = actionUrl;\r\n return;\r\n }\r\n history.push('/'); window.location.reload();\r\n };\r\n\r\n return (\r\n onClick() }>\r\n

    { chunks }

    \r\n } }\r\n />\r\n
    \r\n );\r\n};\r\n\r\nUnauthorisedError.propTypes = {\r\n titleTextId: PropTypes.string\r\n};\r\n\r\nUnauthorisedError.defaultProps = {\r\n titleTextId: 'unauthorized.title'\r\n};\r\n\r\nexport default UnauthorisedError;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nimport ErrorPage from 'components/Errors/ErrorPage';\r\n\r\nconst UnlicensedError = ({ titleTextId }) => \r\n \r\n;\r\n\r\nUnlicensedError.propTypes = {\r\n titleTextId: PropTypes.string\r\n};\r\n\r\nUnlicensedError.defaultProps = {\r\n titleTextId: 'unlicensed.title'\r\n};\r\n\r\nexport default injectIntl(UnlicensedError);\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nimport { history } from 'containers/App';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nimport ErrorPage from 'components/Errors/ErrorPage';\r\n\r\nconst ServiceUnavailableError = ({ titleTextId }) => history.go(-1) }\r\n>\r\n \r\n;\r\n\r\nServiceUnavailableError.propTypes = {\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired,\r\n history: PropTypes.shape({\r\n go: PropTypes.func,\r\n }).isRequired,\r\n titleTextId: PropTypes.string\r\n};\r\nServiceUnavailableError.defaultProps = {\r\n titleTextId: 'unavailable.title'\r\n};\r\n\r\nexport default injectIntl(ServiceUnavailableError);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport CryptoJS from 'crypto-js';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nconst CustomerAvatar = ({ className, customerName, selectedAccountId, accounts }) => {\r\n const accountDescription = () => {\r\n const selectedAccount = accounts != null ? accounts.filter(x => x.id === selectedAccountId) : null;\r\n return selectedAccount && selectedAccount.length === 1 ? selectedAccount[0].displayName : '';\r\n };\r\n\r\n return (\r\n { customerName != null &&
    \r\n
    \r\n \r\n
    \r\n

    { customerName }

    \r\n { selectedAccountId > 0 &&

    ACC: { accountDescription() }

    }\r\n
    \r\n { `${ customerName } - ${ selectedAccountId > 0 ? accountDescription() : '' }` }\r\n
    \r\n
    }\r\n
    );\r\n};\r\n\r\nCustomerAvatar.propTypes = {\r\n className: PropTypes.string,\r\n customerName: PropTypes.string,\r\n selectedAccountId: PropTypes.number,\r\n accounts: PropTypes.arrayOf(PropTypes.shape())\r\n};\r\n\r\nCustomerAvatar.defaultProps = {\r\n className: null,\r\n customerName: null,\r\n selectedAccountId: null,\r\n accounts: null\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n app: {\r\n onlineConfig,\r\n customerData,\r\n key\r\n },\r\n form: {\r\n selectedAccountId\r\n }\r\n } = state;\r\n\r\n const decryptedArray = customerData ? CryptoJS.AES.decrypt(customerData, key) : null;\r\n const decryptedText = decryptedArray ? decryptedArray.toString(CryptoJS.enc.Utf8) : null;\r\n const customerDetails = decryptedText ? JSON.parse(decryptedText) : null;\r\n\r\n return {\r\n customerName: customerDetails && customerDetails.CustomerName,\r\n selectedAccountId,\r\n accounts: onlineConfig?.customer != null ? onlineConfig.customer.accounts : null\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)(CustomerAvatar);\r\n","import React, { useRef, useState, useEffect } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { Link, useRouteMatch } from 'react-router-dom';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { PropTypes } from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nimport FormGroupTypes from 'common/forms/formGroupTypes';\r\n\r\nimport Button from 'components/Common/Buttons';\r\nimport CustomerAvatar from 'components/CustomerAvatar';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nimport {\r\n getFormPdf,\r\n clearDefaultForm,\r\n getFormGroupPdf,\r\n clearPdfDownload,\r\n getCollectableSupportingDocPdf,\r\n getFormLinkedCollectableSupportingDocId,\r\n getFormGroupLinkedCollectableSupportingDocId\r\n} from 'actions';\r\n\r\n// Hook\r\nfunction usePrevious(value) {\r\n // The ref object is a generic container whose current property is mutable ...\r\n // ... and can hold any value, similar to an instance property on a class\r\n const ref = useRef();\r\n // Store current value in ref\r\n useEffect(() => {\r\n ref.current = value;\r\n }, [value]); // Only re-run if value changes\r\n // Return previous value (happens before update in useEffect above)\r\n return ref.current;\r\n}\r\n\r\nconst SuccessPage = ({ intl }) => {\r\n const dispatch = useDispatch();\r\n const match = useRouteMatch();\r\n\r\n const formTypes = useSelector(state => state.app.onlineConfig?.formTypes);\r\n const previewOnlyMode = useSelector(state => state.app.onlineConfig?.previewOnlyMode || null);\r\n const defaultFormType = useSelector(state => state.app.onlineConfig?.defaultFormType) || null;\r\n const pdfData = useSelector(state => state.form.pdfData);\r\n const isFetchingPdfForm = useSelector(state => state.form.isFetchingPdfForm);\r\n const downloadRequestFormType = useSelector(state => state.form.downloadRequestFormType);\r\n const linkedCollectableSupportingDocId = useSelector(state => state.form.linkedCollectableSupportingDocId);\r\n const isFetchingCollectablePdf = useSelector(state => state.supportingDocuments.isFetchingCollectablePdf);\r\n const collectableSupportingDocPdfData = useSelector(state => state.supportingDocuments.collectableSupportingDocPdfData);\r\n\r\n const prevIsFetchingPdfForm = usePrevious(isFetchingPdfForm);\r\n const prevIsFetchingCollectablePdfForm = usePrevious(isFetchingCollectablePdf);\r\n const prevDownloadRequestFormType = usePrevious(downloadRequestFormType);\r\n const [pdfDownload, setPdfDownload] = useState(null);\r\n\r\n useEffect(() => {\r\n if (defaultFormType) {\r\n dispatch(clearDefaultForm());\r\n }\r\n\r\n return () => {\r\n if (pdfDownload) {\r\n URL.revokeObjectURL(pdfDownload);\r\n }\r\n dispatch(clearPdfDownload());\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n const { params: { formType } } = match;\r\n\r\n if (prevIsFetchingPdfForm && !isFetchingPdfForm && pdfData) {\r\n setPdfDownload(pdfData);\r\n const link = document.createElement('a');\r\n link.href = pdfData;\r\n link.setAttribute('download', `${ formType ?? prevDownloadRequestFormType }.pdf`);\r\n link.setAttribute('target', '_blank');\r\n document.body.appendChild(link);\r\n link.click();\r\n }\r\n }, [isFetchingPdfForm, pdfData]);\r\n\r\n useEffect(() => {\r\n if (prevIsFetchingCollectablePdfForm && !isFetchingCollectablePdf && collectableSupportingDocPdfData) {\r\n setPdfDownload(collectableSupportingDocPdfData);\r\n const link = document.createElement('a');\r\n link.href = collectableSupportingDocPdfData;\r\n link.setAttribute('download', 'affidavit.pdf');\r\n link.setAttribute('target', '_blank');\r\n document.body.appendChild(link);\r\n link.click();\r\n }\r\n }, [isFetchingCollectablePdf, collectableSupportingDocPdfData]);\r\n\r\n useEffect(() => {\r\n if (linkedCollectableSupportingDocId === null) {\r\n const { params: { formId, groupId } } = match;\r\n if (groupId) {\r\n dispatch(getFormGroupLinkedCollectableSupportingDocId(groupId, intl));\r\n } else {\r\n dispatch(getFormLinkedCollectableSupportingDocId(formId, intl));\r\n }\r\n }\r\n }, []);\r\n\r\n const getFormTypeMarkup = () => {\r\n const { params: { formType, formGroupType } } = match;\r\n let form = 'form';\r\n let version = 'revision';\r\n\r\n if (formTypes) {\r\n const formTypeDetails = formTypes.filter(ft => ft.formType === formType);\r\n\r\n if (formTypeDetails && formTypeDetails[0]) {\r\n const { title, revision } = formTypeDetails[0];\r\n form = title;\r\n version = revision;\r\n }\r\n }\r\n\r\n if (formGroupType) {\r\n const formGroup = FormGroupTypes.find(group => group.key === formGroupType);\r\n const markup = formGroup.formTypes.map((f) => {\r\n const formTypeDetails = formTypes.filter(ft => ft.formType === f);\r\n if (formTypeDetails && formTypeDetails[0]) {\r\n const { title, revision } = formTypeDetails[0];\r\n form = title;\r\n version = revision;\r\n }\r\n return (\r\n
    \r\n

    { form }

    \r\n {version &&

    Rev. { version }

    }\r\n
    \r\n );\r\n });\r\n\r\n return markup;\r\n }\r\n\r\n return (\r\n
    \r\n

    { form }

    \r\n { version &&

    Rev. { version }

    }\r\n
    \r\n );\r\n };\r\n\r\n const downloadPdf = (groupFormType) => {\r\n const { params: { formType, formId, groupId } } = match;\r\n\r\n if (formId) {\r\n dispatch(getFormPdf(formId, formType, intl));\r\n }\r\n\r\n if (groupFormType && groupId) {\r\n dispatch(getFormGroupPdf(groupId, groupFormType, intl));\r\n }\r\n };\r\n\r\n const downloadCollectableSupportingDoc = () => {\r\n if (linkedCollectableSupportingDocId !== null) {\r\n dispatch(getCollectableSupportingDocPdf(\r\n {\r\n supportingDocId: linkedCollectableSupportingDocId,\r\n collectableSupportingDocType: 'AffidavitOfUnchangedStatus',\r\n signature: null\r\n },\r\n intl,\r\n false\r\n ));\r\n }\r\n };\r\n\r\n const { params: { formType, formGroupType } } = match;\r\n const formGroup = FormGroupTypes.find(group => group.key === formGroupType);\r\n\r\n const buttonText = intl.formatMessage({ id: isFetchingPdfForm ? 'formPreview.downloading.buttonText' : 'buttons.download.buttonText' });\r\n const affidavitText = intl.formatMessage({ id: isFetchingCollectablePdf ? 'formPreview.downloading.buttonText' : 'formPreview.download.affidavit.buttonText' });\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 { getFormTypeMarkup() }\r\n

    \r\n
    \r\n
    \r\n { formType && ft.formType === formType.toLowerCase())?.title }` }\r\n onClick={ () => downloadPdf() }\r\n /> }\r\n { formGroup && formGroup.formTypes.map(f => ft.formType === f) ? formTypes.filter(ft => ft.formType === f)[0].title : f.toUpperCase() }` }\r\n className={ `btn-secondary btn-download mr-0 ${ isFetchingPdfForm && downloadRequestFormType === f ? 'btn-active' : '' }` }\r\n disabled={ isFetchingPdfForm }\r\n onClick={ () => downloadPdf(f) }\r\n />) }\r\n { linkedCollectableSupportingDocId && downloadCollectableSupportingDoc() }\r\n /> }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nSuccessPage.propTypes = {\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired\r\n};\r\n\r\nexport default injectIntl(SuccessPage);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport NotFoundError from 'components/Errors/NotFoundError';\r\n\r\nconst FooterLinkPage = ({ intl, match }) => {\r\n const messageId = () => {\r\n let id = `footer.${ match.params.pageType }`;\r\n if (match.params.pageType === 'eula') {\r\n id = 'eula';\r\n }\r\n return id;\r\n };\r\n\r\n const preamble = () => {\r\n const preambleId = `${ messageId() }.preamble`;\r\n if (intl && intl.messages && !!intl.messages[preambleId]) {\r\n return
    ;\r\n }\r\n return null;\r\n };\r\n\r\n const contentExists = () => {\r\n const msgId = messageId();\r\n return intl\r\n && intl.formatMessage({ id: msgId }) !== msgId\r\n && !!intl.formatMessage({ id: msgId });\r\n };\r\n\r\n return
    \r\n { preamble() }\r\n { contentExists() &&
    \r\n
    \r\n \r\n
    \r\n
    }\r\n { !contentExists() && }\r\n
    ;\r\n};\r\n\r\nFooterLinkPage.propTypes = {\r\n match: PropTypes.shape({\r\n params: PropTypes.shape({\r\n pageType: PropTypes.string\r\n })\r\n }).isRequired,\r\n intl: PropTypes.shape({\r\n messages: PropTypes.any,\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired\r\n};\r\n\r\nexport default (injectIntl(FooterLinkPage));\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport { history } from 'containers/App';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nconst LogoutPage = ({ intl }) => {\r\n function login() {\r\n const actionUrl = intl?.messages?.sessionTimeoutActionUrl;\r\n\r\n if (actionUrl) {\r\n window.location = actionUrl;\r\n return;\r\n }\r\n\r\n history.push('/');\r\n window.location.reload();\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\nLogoutPage.propTypes = {\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired,\r\n messages: PropTypes.shape().isRequired\r\n }).isRequired,\r\n};\r\n\r\nexport default injectIntl(LogoutPage);\r\n","// eslint-disable-next-line import/prefer-default-export\r\nconst pinType = {\r\n ElectornicSignaturePin: 1,\r\n NoEmailConfirmationPin: 2\r\n};\r\n\r\nexport default pinType;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { injectIntl } from 'react-intl';\r\nimport { sendPinConfirmation, AuthState, getAuthState, clearAuthentalinkResendResponse } from 'actions';\r\nimport { getOnlineConfig } from 'actions/app';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport { getCookie } from 'common/cookies';\r\nimport pinType from 'common/pinType';\r\nimport EnvConfig from 'env.config';\r\n\r\nconst AuthentaLinkPinConfirmation = ({ sendingConfirmation, confirmationMessage, confirmationStatus, resendReference, authState, dispatch, intl }) => {\r\n const [visible, setIsVisible] = useState(false);\r\n const [localResendReference, setLocalResendReference] = useState(getCookie(EnvConfig.autentaLinkResendName));\r\n\r\n useEffect(() => {\r\n if (!confirmationMessage) {\r\n setIsVisible(false);\r\n return;\r\n }\r\n setIsVisible(true);\r\n const timer = setTimeout(() => {\r\n setIsVisible(false);\r\n dispatch(clearAuthentalinkResendResponse());\r\n }, 5000);\r\n // eslint-disable-next-line no-return-assign, consistent-return\r\n return () => {\r\n clearTimeout(timer);\r\n dispatch(clearAuthentalinkResendResponse());\r\n };\r\n }, [confirmationMessage]);\r\n\r\n useEffect(() => {\r\n dispatch(getAuthState());\r\n if (authState === AuthState.Authorised) {\r\n dispatch(getOnlineConfig());\r\n }\r\n if (resendReference !== null) {\r\n document.cookie = `${ EnvConfig.autentaLinkResendName }=${ resendReference }; expires=${ new Date().getHours() + 1 }; samesite=lax`;\r\n setLocalResendReference(resendReference);\r\n }\r\n }, []);\r\n\r\n const resendPinConfirmation = () => {\r\n dispatch(sendPinConfirmation(pinType.NoEmailConfirmationPin, localResendReference));\r\n };\r\n\r\n const error = visible && \r\n \r\n { confirmationMessage }\r\n ;\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n

    \r\n

    \r\n

    \r\n

    \r\n { localResendReference && resendPinConfirmation() }\r\n >\r\n { !sendingConfirmation && `${ intl.formatMessage({ id: 'authentalink.pinConfirmation.ResendEmailText' }) }` }\r\n }\r\n
    { error }
    \r\n
    \r\n
    \r\n
    { intl.formatMessage({ id: 'authentalink.confirmation.formFooter' }) }
    Authent-A-Link
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nAuthentaLinkPinConfirmation.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n authState: PropTypes.string,\r\n resendReference: PropTypes.number,\r\n sendingConfirmation: PropTypes.bool,\r\n confirmationMessage: PropTypes.string,\r\n confirmationStatus: PropTypes.bool,\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired\r\n};\r\n\r\nAuthentaLinkPinConfirmation.defaultProps = {\r\n authState: AuthState.Unknown,\r\n resendReference: null,\r\n sendingConfirmation: false,\r\n confirmationMessage: null,\r\n confirmationStatus: false\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n app: { authState },\r\n authentaLink: { sendingConfirmation, confirmationMessage, confirmationStatus, resendReference }\r\n } = state;\r\n\r\n return {\r\n authState,\r\n sendingConfirmation,\r\n confirmationMessage,\r\n confirmationStatus,\r\n resendReference\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)(injectIntl(AuthentaLinkPinConfirmation));\r\n","import React, { useRef, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport Modal from 'react-modal';\r\n\r\nModal.setAppElement('#root');\r\n\r\nconst ModalWrapper = ({\r\n title,\r\n content,\r\n footer,\r\n className,\r\n id,\r\n showFooter,\r\n showCancel,\r\n showConfirm,\r\n showClose,\r\n disableConfirm,\r\n btnConfirmTitle,\r\n btnConfirmClass,\r\n btnCancelTitle,\r\n btnCancelClass,\r\n onConfirm,\r\n onCancel,\r\n closeButtonName,\r\n intl }) => {\r\n const buttonReference = useRef(null);\r\n useEffect(() => {\r\n buttonReference.current?.focus();\r\n }, []);\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { showClose && { onCancel(); } }\r\n aria-label={ closeButtonName !== null ? `${ intl.formatMessage({ id: 'accessibility.modal.close' }) } ${ closeButtonName }` : undefined }\r\n >\r\n \r\n }\r\n
    { title }
    \r\n
    \r\n
    \r\n
    \r\n { content }\r\n
    \r\n
    \r\n { showFooter &&
    \r\n
    \r\n { footer }\r\n
    \r\n
    \r\n { showCancel\r\n &&
    \r\n { showCancel && onCancel() }\r\n >{ btnCancelTitle } }\r\n
    }\r\n\r\n
    \r\n { showConfirm && onConfirm() }\r\n id={ id ? `${ id }-confirm-btn` : '' }\r\n >\r\n { btnConfirmTitle }\r\n }\r\n
    \r\n\r\n
    \r\n
    }\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nModalWrapper.propTypes = {\r\n title: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node\r\n ]),\r\n content: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ]),\r\n footer: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node\r\n ]),\r\n className: PropTypes.string,\r\n showFooter: PropTypes.bool,\r\n showCancel: PropTypes.bool,\r\n showConfirm: PropTypes.bool,\r\n showClose: PropTypes.bool,\r\n disableConfirm: PropTypes.bool,\r\n btnConfirmTitle: PropTypes.string,\r\n btnConfirmClass: PropTypes.string,\r\n btnCancelTitle: PropTypes.string,\r\n btnCancelClass: PropTypes.string,\r\n onCancel: PropTypes.func,\r\n onConfirm: PropTypes.func,\r\n id: PropTypes.string,\r\n closeButtonName: PropTypes.string,\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired\r\n};\r\n\r\nModalWrapper.defaultProps = {\r\n title: 'Title',\r\n content: null,\r\n footer: '',\r\n className: null,\r\n id: null,\r\n showFooter: true,\r\n showCancel: true,\r\n showConfirm: true,\r\n showClose: true,\r\n disableConfirm: true,\r\n btnConfirmTitle: 'Continue',\r\n btnConfirmClass: 'btn-primary',\r\n btnCancelTitle: 'Return',\r\n btnCancelClass: 'btn-secondary',\r\n onConfirm: () => {},\r\n onCancel: () => {},\r\n closeButtonName: null,\r\n};\r\n\r\nexport default injectIntl(ModalWrapper);\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\nimport { connect } from 'react-redux';\r\nimport { confirmAuthentaLink, clearAuthentaLinkError, AuthState } from 'actions';\r\nimport { getOnlineConfig } from 'actions/app';\r\nimport { history } from 'containers/App';\r\n\r\nimport SubmitButton from 'components/Common/Buttons';\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nclass AuthentaLinkReferenceConfirmation extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n email: '',\r\n uniqueRef: '',\r\n name: ''\r\n };\r\n\r\n this.onInputChange = this.onInputChange.bind(this);\r\n this.onSubmitAuth = this.onSubmitAuth.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.redirectOnAuthorised();\r\n }\r\n\r\n componentDidUpdate() {\r\n this.redirectOnAuthorised();\r\n }\r\n\r\n onCloseError() {\r\n const { dispatch } = this.props;\r\n dispatch(clearAuthentaLinkError());\r\n }\r\n\r\n onInputChange(event) {\r\n const { name, value } = event.target;\r\n this.setState({ [name]: value });\r\n }\r\n\r\n onSubmitAuth(event) {\r\n const { dispatch } = this.props;\r\n const { email, uniqueRef, name } = this.state;\r\n\r\n event.preventDefault();\r\n dispatch(confirmAuthentaLink(email, uniqueRef, name));\r\n }\r\n\r\n redirectOnAuthorised() {\r\n const { authState, dispatch } = this.props;\r\n\r\n if (authState === AuthState.Authorised) {\r\n dispatch(getOnlineConfig());\r\n history.push('/');\r\n }\r\n }\r\n\r\n render() {\r\n const { isAuthenticating, isFailed, errorMessage, intl } = this.props;\r\n const { email, uniqueRef, name } = this.state;\r\n return (\r\n
    this.onSubmitAuth(e) } id=\"authentaLinkDetails\" className=\"authentalink cards\">\r\n
    \r\n \r\n

    {intl.formatMessage({ id: 'authentaLink.enterCode.instructions' })}

    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n { !isAuthenticating && isFailed && this.onCloseError() }\r\n onConfirm={ () => this.onCloseError() }\r\n disableConfirm={ false }\r\n btnConfirmTitle={ intl.formatMessage({ id: 'buttons.close' }) }\r\n btnConfirmClass=\"col-5\"\r\n content={\r\n
    \r\n
    \r\n \r\n { errorMessage || }\r\n
    \r\n }\r\n /> }\r\n
    \r\n
    { intl.formatMessage({ id: 'authentalink.confirmation.formFooter' }) }
    Authent-A-Link
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nAuthentaLinkReferenceConfirmation.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n authState: PropTypes.string,\r\n isAuthenticating: PropTypes.bool,\r\n isFailed: PropTypes.bool,\r\n errorMessage: PropTypes.string,\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired\r\n};\r\n\r\nAuthentaLinkReferenceConfirmation.defaultProps = {\r\n authState: AuthState.Unknown,\r\n isAuthenticating: false,\r\n isFailed: false,\r\n errorMessage: null\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n app: { authState },\r\n authentaLink: { isAuthenticating, isFailed, errorMessage }\r\n } = state;\r\n\r\n return {\r\n authState,\r\n isAuthenticating: isAuthenticating && true,\r\n isFailed: isFailed && true,\r\n errorMessage\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)(injectIntl(AuthentaLinkReferenceConfirmation));\r\n","import React, { useState } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\n\r\nimport { setAccount } from 'actions/app';\r\n\r\nconst SelectAccountModal = ({ dispatch, customerAccounts, selectedAccountId }) => {\r\n const [accountId, setAccountId] = useState(selectedAccountId);\r\n const intl = useIntl();\r\n const onAccountChange = () => {\r\n dispatch(setAccount(accountId));\r\n };\r\n\r\n return (\r\n }\r\n className=\"select-account\"\r\n disableConfirm={ !accountId }\r\n showCancel={ false }\r\n showClose={ false }\r\n btnConfirmTitle={ intl.formatMessage({ id: 'account.selection.continue.button' }) }\r\n content={ customerAccounts && customerAccounts.length > 1 &&
    \r\n
    \r\n \r\n
    \r\n
    }\r\n id=\"select-account-modal\"\r\n onConfirm={ () => onAccountChange() }\r\n />\r\n );\r\n};\r\n\r\nSelectAccountModal.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n selectedAccountId: PropTypes.number,\r\n customerAccounts: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number,\r\n displayName: PropTypes.string\r\n }))\r\n};\r\n\r\nSelectAccountModal.defaultProps = {\r\n customerAccounts: [],\r\n selectedAccountId: null,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n app: { onlineConfig },\r\n form: {\r\n selectedAccountId\r\n }\r\n } = state;\r\n\r\n return {\r\n customerAccounts: onlineConfig && onlineConfig.customer && onlineConfig.customer.accounts,\r\n selectedAccountId\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)(SelectAccountModal);\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nconst w8ben = {\r\n FormName: 'W-8BEN',\r\n FormChoiceTitle:
    \r\n
    \r\n Form
    \r\n W-8BEN\r\n
    \r\n
    \r\n
    \r\n
    ,\r\n FormChoiceContent:
    \r\n \r\n
    ,\r\n CertificationContent:
    \r\n \r\n \r\n \r\n
    \r\n};\r\nconst w8ben2021 = {\r\n FormName: 'W-8BEN',\r\n FormChoiceTitle:
    \r\n
    \r\n Form
    \r\n W-8BEN\r\n
    \r\n
    \r\n
    \r\n
    ,\r\n FormChoiceContent:
    \r\n \r\n
    ,\r\n CertificationContent:
    \r\n \r\n \r\n \r\n
    \r\n};\r\nconst w8bene2017 = {\r\n FormName: 'W-8BEN-E',\r\n FormChoiceTitle:
    \r\n
    \r\n Form
    \r\n W-8BEN-E\r\n
    \r\n
    \r\n
    \r\n
    ,\r\n FormChoiceContent:
    \r\n \r\n
    ,\r\n CertificationContent:
    \r\n \r\n \r\n \r\n
    \r\n};\r\nconst w8bene2021 = {\r\n FormName: 'W-8BEN-E',\r\n FormChoiceTitle:
    \r\n
    \r\n Form
    \r\n W-8BEN-E\r\n
    \r\n
    \r\n
    \r\n
    ,\r\n FormChoiceContent:
    \r\n \r\n
    ,\r\n CertificationContent:
    \r\n \r\n \r\n \r\n
    \r\n};\r\nfunction w92018(subjectToBackupWithholding) {\r\n return {\r\n FormName: 'W-9',\r\n FormChoiceTitle:
    \r\n
    \r\n Form
    \r\n W-9\r\n
    \r\n
    \r\n
    \r\n
    ,\r\n FormChoiceContent:
    \r\n \r\n
    ,\r\n CertificationContent:
    \r\n \r\n \r\n \r\n
      \r\n
    1. \r\n
    2. { subjectToBackupWithholding ? : }
    3. \r\n
    4. \r\n
    5. \r\n
    \r\n \r\n
    \r\n };\r\n}\r\nfunction w92024(subjectToBackupWithholding) {\r\n return {\r\n FormChoiceTitle:
    \r\n
    \r\n Form
    \r\n W-9\r\n
    \r\n
    \r\n
    \r\n
    ,\r\n FormChoiceContent:
    \r\n \r\n
    ,\r\n CertificationContent:
    \r\n \r\n \r\n \r\n
      \r\n
    1. \r\n
    2. { subjectToBackupWithholding ? : }
    3. \r\n
    4. \r\n
    5. \r\n
    \r\n \r\n
    \r\n };\r\n}\r\nconst w8imy2017 = {\r\n FormName: 'W-8IMY',\r\n FormChoiceTitle:
    \r\n
    \r\n Form
    \r\n W-8IMY\r\n
    \r\n
    (Rev. June 2017)
    \r\n
    Certificate of Foreign Intermediary, Foreign Flow-Through Entity, or Certain U.S. Branches for United States Tax Withholding and Reporting
    \r\n
    ,\r\n FormChoiceContent:
    \r\n
    \r\n
      \r\n
    • Section references are to the Internal Revenue Code.
    • \r\n
    • Go to www.irs.gov/FormW8IMY for instructions and the latest information.
    • \r\n
    • Give this form to the withholding agent or payer. Do not send to the IRS.
    • \r\n
    \r\n
    \r\n
    _________________________
    \r\n
    \r\n
    Do NOT use this form if:
    \r\n
    \r\n
      \r\n
    • A beneficial owner solely claiming foreign status or treaty benefits (other than a qualified intermediary (QI) acting as a qualified derivatives dealer (QDD))..... use form W-8BEN or W-8BEN-E.
    • \r\n
    • A hybrid entity claiming treaty benefits on its own behalf (other than a QI acting as a QDD)..... use form W-8BEN-E.
    • \r\n
    • A foreign person claiming that income is effectively connected with the conduct of a trade or business in the United States..... use form W-8ECI.
    • \r\n
    • A disregarded entity with a single foreign owner that is the beneficial owner (other than a QI acting as a QDD) of the income to which this form relates. Instead, the single foreign owner should use..... use form W-8BEN, W-8ECI, or W-8BEN-E
    • \r\n
    • A foreign government, international organization, foreign central bank of issue, foreign tax-exempt organization, foreign private foundation, or government of a U.S. possession claiming the applicability of section(s) 115(2), 501(c), 892, 895, or 1443(b)..... use form W-8EXP.
    • \r\n
    • U.S. entity or U.S. citizen or resident..... use form W-9.
    • \r\n
    • A foreign person documenting itself for purposes of section 6050W..... use form W-8BEN, W-8BEN-E, or W-8ECI.
    • \r\n
    \r\n
    \r\n
    \r\n
    ,\r\n CertificationContent:
    \r\n

    Electronic Signature Consent

    \r\n \r\n

    Part XXIX Certification

    \r\n Under penalties of perjury, I declare that I have examined the information on this form, and to the best of my knowledge and belief, it is true, correct, and complete. Furthermore, I authorize this form to be provided to any withholding agent that has control, receipt, or custody of the income for which I am providing this form or any withholding agent that can disburse or make payments of the amounts for which I am providing this form.\r\n

    \r\n I agree that I will submit a new form within 30 days if any certification made on this form becomes incorrect.\r\n
    \r\n};\r\nconst w8imy2021 = {\r\n FormName: 'W-8IMY',\r\n FormChoiceTitle:
    \r\n
    \r\n Form
    \r\n W-8IMY\r\n
    \r\n
    (Rev. October 2021)
    \r\n
    Certificate of Foreign Intermediary, Foreign Flow-Through Entity, or Certain U.S. Branches for United States Tax Withholding and Reporting
    \r\n
    ,\r\n FormChoiceContent:
    \r\n
    \r\n
      \r\n
    • Section references are to the Internal Revenue Code.
    • \r\n
    • Go to www.irs.gov/FormW8IMY for instructions and the latest information.
    • \r\n
    • Give this form to the withholding agent or payer. Do not send to the IRS.
    • \r\n
    \r\n
    \r\n
    _________________________
    \r\n
    \r\n
    Do NOT use this form if:
    \r\n
    \r\n
      \r\n
    • A beneficial owner solely claiming foreign status or treaty benefits (other than a qualified intermediary (QI) acting as a qualified derivatives dealer (QDD))..... use form W-8BEN or W-8BEN-E.
    • \r\n
    • A hybrid entity claiming treaty benefits on its own behalf (other than a QI acting as a QDD)..... use form W-8BEN-E.
    • \r\n
    • A foreign person claiming that income is effectively connected with the conduct of a trade or business in the United States..... use form W-8ECI.
    • \r\n
    • A disregarded entity with a single foreign owner that is the beneficial owner (other than a QI acting as a QDD) of the income to which this form relates. Instead, the single foreign owner should use..... use form W-8BEN, W-8ECI, or W-8BEN-E
    • \r\n
    • A foreign government, international organization, foreign central bank of issue, foreign tax-exempt organization, foreign private foundation, or government of a U.S. possession claiming the applicability of section(s) 115(2), 501(c), 892, 895, or 1443(b)..... use form W-8EXP.
    • \r\n
    • U.S. entity or U.S. citizen or resident..... use form W-9.
    • \r\n
    • A foreign person documenting itself for purposes of section 6050W..... use form W-8BEN, W-8BEN-E, or W-8ECI.
    • \r\n
    \r\n
    \r\n
    \r\n
    ,\r\n CertificationContent:
    \r\n

    Electronic Signature Consent

    \r\n \r\n

    Part XXIX Certification

    \r\n Under penalties of perjury, I declare that I have examined the information on this form, and to the best of my knowledge and belief, it is true, correct, and complete. Furthermore, I authorize this form to be provided to any withholding agent that has control, receipt, or custody of the income for which I am providing this form or any withholding agent that can disburse or make payments of the amounts for which I am providing this form.\r\n

    \r\n I agree that I will submit a new form within 30 days if any certification made on this form becomes incorrect.\r\n
    \r\n};\r\nconst w8eci = {\r\n FormName: 'W-8ECI',\r\n FormChoiceTitle:
    \r\n
    \r\n Form
    \r\n W-8ECI\r\n
    \r\n
    (Rev. July 2017)
    \r\n
    Certificate of Foreign Person's Claim That Income Is Effectively Connected With the Conduct of a Trade or Business in the United States
    \r\n
    ,\r\n FormChoiceContent:
    \r\n
    \r\n
      \r\n
    • Section references are to the Internal Revenue Code.
    • \r\n
    • Go to www.irs.gov/FormW8ECI for instructions and the latest information.
    • \r\n
    • Give this form to the withholding agent or payer. Do not send to the IRS.
    • \r\n
    \r\n
    \r\n
    \r\n Note. Persons submitting this form must file an annual U.S. income tax return to report income claimed to be effectively connected with a U.S. trade or business (see instructions).\r\n
    \r\n
    _________________________
    \r\n
    \r\n
    Do NOT use this form if:
    \r\n
    \r\n
      \r\n
    • A beneficial owner solely claiming foreign status or treaty benefits..... use form W-8BEN or W-8BEN-E.
    • \r\n
    • A foreign government, international organization, foreign central bank of issue, foreign tax-exempt organization, foreign private foundation, or government of a U.S. possession claiming the applicability of section(s) 115(2), 501(c), 892, 895, or 1443(b)..... use form W-8EXP.
    • \r\n
      \r\n Note. These entities should use Form W-8ECI if they received effectively connected income and are not eligible to claim an exemption for chapter 3 or 4 purposes on Form W-8EXP.\r\n
      \r\n
    • A foreign partnership or a foreign trust (unless claiming an exemption from U.S. withholding on income effectively connected with the conduct of a trade or business in the United States)..... use form W-8BEN-E or W-8IMY.
    • \r\n
    • You are a person acting as an intermediary..... use form W-8IMY.
    • \r\n
    \r\n
    \r\n
    \r\n Note. See instructions for additional exceptions.\r\n
    \r\n
    \r\n
    ,\r\n CertificationContent:
    \r\n

    Electronic Signature Consent

    \r\n \r\n

    Part II Certification

    \r\n Under penalties of perjury, I declare that I have examined the information on this form and to the best of my knowledge and belief it is true, correct, and complete. I further certify under penalties of perjury that:\r\n
      \r\n
    • I am the beneficial owner (or I am authorized to sign for the beneficial owner) of all the payments to which this form relates,
    • \r\n
    • The amounts for which this certification is provided are effectively connected with the conduct of a trade or business in the United States,
    • \r\n
    • The income for which this form was provided is includible in my gross income (or the beneficial owner's gross income) for the taxable year, and
    • \r\n
    • The beneficial owner is not a U.S. person.
    • \r\n
    \r\n
    \r\n Furthermore, I authorize this form to be provided to any withholding agent that has control, receipt, or custody of the payments of which I am the beneficial owner or any withholding agent that can disburse or make payments of the amounts of which I am the beneficial owner.\r\n

    \r\n \r\n I agree that I will submit a new form within 30 days if any certification made on this form becomes incorrect.\r\n \r\n
    \r\n};\r\nconst w8eci2021 = {\r\n FormName: 'W-8ECI',\r\n FormChoiceTitle:
    \r\n
    \r\n Form
    \r\n W-8ECI\r\n
    \r\n
    (Rev. Oct 2021)
    \r\n
    Certificate of Foreign Person's Claim That Income Is Effectively Connected With the Conduct of a Trade or Business in the United States
    \r\n
    ,\r\n FormChoiceContent:
    \r\n
    \r\n
      \r\n
    • Section references are to the Internal Revenue Code.
    • \r\n
    • Go to www.irs.gov/FormW8ECI for instructions and the latest information.
    • \r\n
    • Give this form to the withholding agent or payer. Do not send to the IRS.
    • \r\n
    \r\n
    \r\n
    \r\n Note. Persons submitting this form must file an annual U.S. income tax return to report income claimed to be effectively connected with a U.S. trade or business (see instructions).\r\n
    \r\n
    _________________________
    \r\n
    \r\n
    Do NOT use this form if:
    \r\n
    \r\n
      \r\n
    • A beneficial owner solely claiming foreign status or treaty benefits..... use form W-8BEN or W-8BEN-E.
    • \r\n
    • A foreign government, international organization, foreign central bank of issue, foreign tax-exempt organization, foreign private foundation, or government of a U.S. possession claiming the applicability of section(s) 115(2), 501(c), 892, 895, or 1443(b)..... use form W-8EXP.
    • \r\n
      \r\n Note. These entities should use Form W-8ECI if they received effectively connected income and are not eligible to claim an exemption for chapter 3 or 4 purposes on Form W-8EXP.\r\n
      \r\n
    • A foreign partnership or a foreign trust (unless claiming an exemption from U.S. withholding on income effectively connected with the conduct of a trade or business in the United States)..... use form W-8BEN-E or W-8IMY.
    • \r\n
    • You are a person acting as an intermediary..... use form W-8IMY.
    • \r\n
    \r\n
    \r\n
    \r\n Note. See instructions for additional exceptions.\r\n
    \r\n
    \r\n
    ,\r\n CertificationContent:
    \r\n

    Electronic Signature Consent

    \r\n \r\n

    Part II Certification

    \r\n Under penalties of perjury, I declare that I have examined the information on this form and to the best of my knowledge and belief it is true, correct, and complete. I further certify under penalties of perjury that:\r\n
      \r\n
    • I am the beneficial owner (or I am authorized to sign for the beneficial owner) of all the payments to which this form relates,
    • \r\n
    • The amounts for which this certification is provided are effectively connected with the conduct of a trade or business in the United States,
    • \r\n
    • The income for which this form was provided is includible in my gross income (or the beneficial owner's gross income) for the taxable year, and
    • \r\n
    • The beneficial owner is not a U.S. person.
    • \r\n
    \r\n
    \r\n Furthermore, I authorize this form to be provided to any withholding agent that has control, receipt, or custody of the payments of which I am the beneficial owner or any withholding agent that can disburse or make payments of the amounts of which I am the beneficial owner.\r\n

    \r\n \r\n I agree that I will submit a new form within 30 days if any certification made on this form becomes incorrect.\r\n \r\n
    \r\n};\r\nconst w8exp = {\r\n FormName: 'W-8EXP',\r\n FormChoiceTitle:
    \r\n
    \r\n Form
    \r\n W-8EXP\r\n
    \r\n
    (Rev. July 2017)
    \r\n
    Certificate of Foreign Government or Other Foreign
    Organization for United States Tax
    Withholding and Reporting
    \r\n
    ,\r\n FormChoiceContent:
    \r\n

    For use by foreign governments, international organizations, foreign central banks of issue, foreign tax-exempt organizations, foreign private foundations, and governments of U.S. possessions.

    \r\n
    \r\n
      \r\n
    • Information about Form W-8EXP and its separate instructions is at www.irs.gov/formw8exp.
    • \r\n
    • Section references are to the Internal Revenue Code.
    • \r\n
    • Give this form to the withholding agent or payer. Do not send to the IRS.
    • \r\n
    \r\n
    \r\n
    _________________________
    \r\n
    \r\n
    Do NOT use this form if:
    \r\n
    \r\n
      \r\n
    • A foreign government or other foreign organization that is not claiming the applicability of section(s) 115(2), 501(c), 892, 895, or 1443(b)..... use form W-8BEN-E or W-8ECI.
    • \r\n
    • A beneficial owner solely claiming foreign status or treaty benefits..... use form W-8BEN or W-8BEN-E.
    • \r\n
    • A foreign partnership or a foreign trust..... use form W-8BEN-E or W-8IMY.
    • \r\n
    • A person claiming that income is effectively connected with the conduct of a trade or business in the United States..... use form W-8ECI.
    • \r\n
    • You are a person acting as an intermediary..... use form W-8IMY.
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n Note: If you are resident in a FATCA partner jurisdiction (i.e., a Model 1 IGA jurisdiction with reciprocity), certain tax account information may be provided to your jurisdiction of residence.\r\n
    \r\n
    ,\r\n CertificationContent:
    \r\n

    Electronic Signature Consent

    \r\n \r\n

    Part IV Certification

    \r\n Under penalties of perjury, I declare that I have examined the information on this form and to the best of my knowledge and belief it is true, correct, and complete. I further certify under penalties of perjury that:\r\n
      \r\n
    • The organization for which I am signing is the beneficial owner of the income and other payments to which this form relates,
    • \r\n
    • The beneficial owner is not a U.S. person,
    • \r\n
    • For a beneficial owner that is a controlled entity of a foreign sovereign (other than a central bank of issue wholly owned by a foreign sovereign), the beneficial owner is not engaged in commercial activities within or outside the United States, and
    • \r\n
    • For a beneficial owner that is a central bank of issue wholly owned by a foreign sovereign, the beneficial owner is not engaged in commercial activities within the United States.
    • \r\n
    \r\n
    \r\n Furthermore, I authorize this form to be provided to any withholding agent that has control, receipt, or custody of the payments of which I am the beneficial owner or any withholding agent that can disburse or make payments of the amounts of which I am the beneficial owner.\r\n

    \r\n \r\n I agree that I will submit a new form within 30 days if any certification made on this form becomes incorrect.\r\n \r\n
    \r\n};\r\nconst w8exp2023 = {\r\n FormChoiceTitle:
    \r\n
    \r\n Form
    \r\n W-8EXP\r\n
    \r\n
    (Rev. October 2023)
    \r\n
    Certificate of Foreign Government or Other Foreign
    Organization for United States Tax
    Withholding and Reporting
    \r\n
    ,\r\n FormChoiceContent:
    \r\n

    For use by foreign government, international organization, foreign central bank of issue, foreign tax-exempt organization, foreign private foundation, or government of a U.S. territory receiving an amount subject to withholding under sections 1441 through 1443 or a withholdable payment subject to chapter 4, or are such an entity maintaining an account with an FFI requesting this form;

    \r\n
    \r\n
      \r\n
    • A withholding qualified holder claiming an exemption to withholding under section 1445;
    • \r\n
    • A foreign tax-exempt organization claiming an exemption to withholding under section 1446(a) on your allocable share of ECTI that is not includible under section 512 and section 513 for purposes of computing unrelated business taxable income;
    • \r\n
    • A qualified holder claiming an exemption to withholding under section 1446(a) on its allocable share of ECTI that is income subject to section 897; or
    • \r\n
    • Otherwise establishing your status as a non-U.S. person (for an entity permitted to use this form under applicable regulations).
    • \r\n
    • Information about Form W-8EXP and its separate instructions is at www.irs.gov/formw8exp.
    • \r\n
    • Section references are to the Internal Revenue Code.
    • \r\n
    • Give this form to the withholding agent or payer. Do not send to the IRS.
    • \r\n
    \r\n
    \r\n
    _________________________
    \r\n
    \r\n
    Do NOT use this form if:
    \r\n
    \r\n
      \r\n
    • A foreign government or other foreign organization that is not claiming the applicability of section(s) 115(2), 501(c), 892, 895, or 1443(b)..... use form W-8BEN-E or W-8ECI.
    • \r\n
    • A beneficial owner solely claiming foreign status or treaty benefits..... use form W-8BEN or W-8BEN-E.
    • \r\n
    • A foreign partnership (except for a withholding qualified holder under section 1445) or a foreign trust..... use form W-8BEN-E or W-8IMY.
    • \r\n
    • A person claiming that income is effectively connected with the conduct of a trade or business in the United States..... use form W-8ECI.
    • \r\n
    • You are a person acting as an intermediary..... use form W-8IMY.
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n Note: If you are resident in a FATCA partner jurisdiction (i.e., a Model 1 IGA jurisdiction with reciprocity), certain tax account information may be provided to your jurisdiction of residence.\r\n
    \r\n
    ,\r\n CertificationContent:
    \r\n

    Electronic Signature Consent

    \r\n \r\n

    Part IV Certification

    \r\n Under penalties of perjury, I declare that I have examined the information on this form and to the best of my knowledge and belief it is true, correct, and complete. I further certify under penalties of perjury that:\r\n
      \r\n
    • The organization for which I am signing is the beneficial owner of the income and other payments to which this form relates,
    • \r\n
    • The beneficial owner is not a U.S. person,
    • \r\n
    • For a beneficial owner that is a controlled entity of a foreign sovereign (other than a central bank of issue wholly owned by a foreign sovereign), the beneficial owner is not engaged in commercial activities within or outside the United States, and
    • \r\n
    • For a beneficial owner that is a central bank of issue wholly owned by a foreign sovereign, the beneficial owner is not engaged in commercial activities within the United States.
    • \r\n
    \r\n
    \r\n Furthermore, I authorize this form to be provided to any withholding agent that has control, receipt, or custody of the payments of which I am the beneficial owner or any withholding agent that can disburse or make payments of the amounts of which I am the beneficial owner.\r\n

    \r\n \r\n I agree that I will submit a new form within 30 days if any certification made on this form becomes incorrect.\r\n \r\n
    \r\n};\r\nconst crsi = {\r\n FormName: 'CRS-I',\r\n FormChoiceTitle:
    \r\n
    \r\n CRS-I\r\n
    \r\n
    \r\n
    ,\r\n FormChoiceContent:
    ,\r\n CertificationContent:
    \r\n};\r\nconst crsi2024 = {\r\n FormName: 'CRS-I',\r\n FormChoiceTitle:
    \r\n
    \r\n CRS-I\r\n
    \r\n
    \r\n
    ,\r\n FormChoiceContent:
    ,\r\n CertificationContent:
    \r\n};\r\nconst crse = {\r\n FormName: 'CRS-E',\r\n FormChoiceTitle:
    \r\n
    \r\n CRS-E\r\n
    \r\n
    \r\n
    ,\r\n FormChoiceContent:
    ,\r\n CertificationContent:
    \r\n};\r\nconst crscp = {\r\n FormName: 'CRS-CP',\r\n FormChoiceTitle:
    \r\n
    \r\n CRS-CP\r\n
    \r\n
    \r\n
    ,\r\n FormChoiceContent:
    ,\r\n CertificationContent:
    \r\n};\r\nconst crsiw8ben = {\r\n FormName: 'CRS-I/W-8BEN',\r\n FormChoiceTitle:
    \r\n
    \r\n CRS-I & W-8BEN\r\n
    \r\n
    \r\n
    \r\n
    ,\r\n CertificationContent:
    \r\n \r\n \r\n \r\n
    \r\n};\r\nconst fatcacrse = {\r\n FormChoiceTitle:
    \r\n
    \r\n FATCA/CRS-E\r\n
    \r\n
    \r\n
    ,\r\n FormChoiceContent:
    ,\r\n CertificationContent:
    \r\n};\r\nconst fatcacrsi = {\r\n FormChoiceTitle:
    \r\n
    \r\n FATCA/CRS-I\r\n
    \r\n
    \r\n
    ,\r\n FormChoiceContent:
    ,\r\n CertificationContent:
    \r\n};\r\nconst rc518 = {\r\n FormName: 'RC518',\r\n FormChoiceTitle:
    \r\n
    \r\n RC518\r\n
    \r\n
    \r\n
    ,\r\n FormChoiceContent:
    ,\r\n CertificationContent:
    \r\n};\r\nconst rc519 = {\r\n FormName: 'RC519',\r\n FormChoiceTitle:
    \r\n
    \r\n RC519\r\n
    \r\n
    \r\n
    ,\r\n FormChoiceContent:
    ,\r\n CertificationContent:
    \r\n};\r\n\r\nconst ModalInstructions = (formType, subjectToBackupWithholding) => {\r\n switch (formType) {\r\n case 'w9_2018':\r\n return w92018(subjectToBackupWithholding);\r\n case 'w9_2024':\r\n return w92024(subjectToBackupWithholding);\r\n case 'w8ben':\r\n return w8ben;\r\n case 'w8ben_2021':\r\n return w8ben2021;\r\n case 'w8bene_2017':\r\n return w8bene2017;\r\n case 'w8bene_2021':\r\n return w8bene2021;\r\n case 'w8eci':\r\n return w8eci;\r\n case 'w8eci_2021':\r\n return w8eci2021;\r\n case 'w8exp':\r\n return w8exp;\r\n case 'w8exp_2023':\r\n return w8exp2023;\r\n case 'w8imy_2017':\r\n return w8imy2017;\r\n case 'w8imy_2021':\r\n return w8imy2021;\r\n case 'crsi':\r\n return crsi;\r\n case 'crsi_2024':\r\n return crsi2024;\r\n case 'crse':\r\n return crse;\r\n case 'crscp':\r\n return crscp;\r\n case 'crsiw8ben':\r\n return crsiw8ben;\r\n case 'fatca_crse_2023':\r\n return fatcacrse;\r\n case 'fatca_crsi_2023':\r\n return fatcacrsi;\r\n case 'rc518':\r\n return rc518;\r\n case 'rc519':\r\n return rc519;\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\nexport default ModalInstructions;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nclass MustHaveReadText extends Component {\r\n static propTypes = {\r\n content: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ]),\r\n IsTextRead: PropTypes.func,\r\n };\r\n\r\n static defaultProps = {\r\n content: '',\r\n IsTextRead: () => {}\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.container = React.createRef();\r\n this.handleResize = this.handleResize.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.enableContinueButton();\r\n window.addEventListener('resize', this.handleResize, false);\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('resize', this.handleResize, false);\r\n }\r\n\r\n handleScroll = (e) => {\r\n const element = e.target;\r\n const { IsTextRead } = this.props;\r\n // + 1 resolves issue in IE where clientHeight is 1 pixel less than scrollHeight when the content is just long enough to fit in container\r\n if (Math.floor(element.scrollHeight - element.scrollTop) <= element.clientHeight + 1) {\r\n IsTextRead(true);\r\n }\r\n };\r\n\r\n handleResize() {\r\n this.enableContinueButton();\r\n }\r\n\r\n enableContinueButton() {\r\n const { IsTextRead } = this.props;\r\n\r\n // + 1 resolves issue in IE where clientHeight is 1 pixel less than scrollHeight when the content is just long enough to fit in container\r\n if ((this.container.current.clientHeight + 1) >= this.container.current.scrollHeight) {\r\n IsTextRead(true);\r\n }\r\n }\r\n\r\n render() {\r\n const { content } = this.props;\r\n\r\n return (\r\n
    \r\n
    \r\n { content }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default MustHaveReadText;\r\n","import React, { useState } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { createIntlCache, createIntl, useIntl } from 'react-intl';\r\n\r\nimport { hideFormChoiceModal, addOnlineForm } from 'actions/form';\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport ModalInstructions from 'components/ModalInstructions';\r\nimport MustHaveReadText from 'components/MustHaveReadText';\r\nimport { defaultLanguage } from 'common/language/localeHelper';\r\nimport { isTranslatedForm } from 'common/forms/formTypeHelper';\r\n\r\nconst FormChoiceModal = ({ formType, dispatch, selectedAccountId, locale, messages, englishMessages, availableFormTypes }) => {\r\n const [allRead, setAllRead] = useState(false);\r\n const modalInstruction = ModalInstructions(formType);\r\n\r\n const localeToDisplay = formType !== null && isTranslatedForm(formType)\r\n ? locale\r\n : defaultLanguage.key;\r\n const messagesToDisplay = localeToDisplay === defaultLanguage.key ? englishMessages : messages;\r\n const cache = createIntlCache();\r\n const intl = localeToDisplay === defaultLanguage.key ? createIntl({ locale: localeToDisplay, messages: messagesToDisplay }, cache) : useIntl();\r\n\r\n const formTypeInfo = availableFormTypes.find(ft => ft.formType === formType.toLowerCase());\r\n\r\n return (\r\n setAllRead(value) }\r\n /> }\r\n btnCancelTitle={ intl.formatMessage({ id: 'formChoiceModal.buttonCancelTitle' }) }\r\n btnConfirmTitle={ intl.formatMessage({ id: 'formChoiceModal.buttonConfirmTitle' }) }\r\n footer={ !allRead ? intl.formatMessage({ id: 'formChoiceModal.NotAllRead' }) : intl.formatMessage({ id: 'formChoiceModal.AllRead' }) }\r\n onCancel={ () => dispatch(hideFormChoiceModal()) }\r\n onConfirm={ () => { dispatch(hideFormChoiceModal()); dispatch(addOnlineForm(formTypeInfo, selectedAccountId)); } }\r\n />);\r\n};\r\n\r\nFormChoiceModal.defaultProps = {\r\n formType: '',\r\n selectedAccountId: 0,\r\n availableFormTypes: [],\r\n};\r\n\r\nFormChoiceModal.propTypes = {\r\n formType: PropTypes.string,\r\n dispatch: PropTypes.func.isRequired,\r\n selectedAccountId: PropTypes.number,\r\n locale: PropTypes.string.isRequired,\r\n messages: PropTypes.shape({}).isRequired,\r\n englishMessages: PropTypes.shape({}).isRequired,\r\n availableFormTypes: PropTypes.arrayOf(PropTypes.shape),\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n app: {\r\n locale,\r\n messages,\r\n englishMessages,\r\n onlineConfig\r\n },\r\n form: {\r\n formType,\r\n isFormChoiceShown,\r\n selectedAccountId\r\n }\r\n } = state;\r\n\r\n const activeFormTypes = onlineConfig?.formTypes?.filter(x => x.isEnabled && x.isVisible) ?? [];\r\n const activeFormGroups = onlineConfig?.formGroups?.filter(x => x.isEnabled && x.isVisible) ?? [];\r\n const availableFormTypes = [...activeFormTypes, ...activeFormGroups];\r\n\r\n return {\r\n locale,\r\n messages,\r\n englishMessages,\r\n formType,\r\n isFormChoiceShown,\r\n selectedAccountId,\r\n availableFormTypes\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)(FormChoiceModal);\r\n","import React, { memo } from 'react';\r\nimport { addOnlineForm, showFormChoiceModal, clearDefaultForm } from 'actions';\r\nimport { connect } from 'react-redux';\r\nimport { replace } from 'react-router-redux';\r\nimport { PropTypes } from 'prop-types';\r\nimport SelectAccountModal from 'components/Modals/SelectAccountModal';\r\nimport FormChoiceModal from 'components/Modals/FormChoiceModal';\r\n\r\nclass DefaultFormDisplay extends React.Component {\r\n componentDidMount() {\r\n this.onAddForm();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { accountId } = this.props;\r\n if (prevProps.accountId === 0 && prevProps.accountId !== accountId) {\r\n this.onAddForm();\r\n }\r\n }\r\n\r\n onAddForm() {\r\n const { dispatch, formType, showModalUpFront, accountId, availableFormTypes } = this.props;\r\n\r\n if (formType == null) {\r\n return;\r\n }\r\n\r\n if (this.validateDefaultFormChoice()) {\r\n if (accountId !== 0) {\r\n const formTypeInfo = availableFormTypes.find(ft => ft.formType === formType.toLowerCase());\r\n if (formTypeInfo && !formTypeInfo.canPrepopulate) {\r\n dispatch(replace('/insufficient-information'));\r\n } else if (showModalUpFront) {\r\n dispatch(showFormChoiceModal(formType));\r\n } else {\r\n dispatch(addOnlineForm(formTypeInfo, accountId));\r\n }\r\n }\r\n } else {\r\n dispatch(clearDefaultForm());\r\n }\r\n }\r\n\r\n validateDefaultFormChoice() {\r\n const { formType, availableFormTypes } = this.props;\r\n return formType && availableFormTypes && availableFormTypes.find(ft => ft.formType === formType.toLowerCase());\r\n }\r\n\r\n render() {\r\n const { formType, accountId, showModalUpFront, isFormChoiceShown } = this.props;\r\n\r\n return (\r\n {(formType && !accountId) && }\r\n {(showModalUpFront && isFormChoiceShown && formType && accountId) && }\r\n );\r\n }\r\n}\r\n\r\nDefaultFormDisplay.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n formType: PropTypes.string,\r\n showModalUpFront: PropTypes.bool,\r\n accountId: PropTypes.number,\r\n isFormChoiceShown: PropTypes.bool,\r\n availableFormTypes: PropTypes.arrayOf(PropTypes.shape)\r\n};\r\n\r\nDefaultFormDisplay.defaultProps = {\r\n formType: null,\r\n showModalUpFront: false,\r\n accountId: 0,\r\n availableFormTypes: [],\r\n isFormChoiceShown: true\r\n};\r\n\r\nconst getFormTypes = (config) => {\r\n if (!config) {\r\n return [];\r\n }\r\n\r\n return (config.formTypes || []);\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n app: { onlineConfig },\r\n form: { selectedAccountId, isFormChoiceShown }\r\n } = state;\r\n\r\n return {\r\n formType: onlineConfig && onlineConfig.defaultFormType && onlineConfig.defaultFormType.toLowerCase(),\r\n showModalUpFront: onlineConfig && onlineConfig.showFormInstructionsUpFront,\r\n accountId: selectedAccountId,\r\n isFormChoiceShown,\r\n availableFormTypes: getFormTypes(onlineConfig)\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)(memo(DefaultFormDisplay));\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nimport { ApiService } from 'services';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nimport ErrorPage from 'components/Errors/ErrorPage';\r\n\r\nconst NoInternetPage = ({ caption, buttonText, titleTextId }) => {\r\n const processRetries = () => {\r\n ApiService.processQueuedPromises();\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\nNoInternetPage.propTypes = {\r\n caption: PropTypes.string,\r\n buttonText: PropTypes.string,\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired,\r\n titleTextId: PropTypes.string\r\n};\r\n\r\nNoInternetPage.defaultProps = {\r\n caption: 'connectionStatus.content',\r\n buttonText: 'connectionStatus.buttonText',\r\n titleTextId: 'connectionStatus.title'\r\n};\r\n\r\nexport default injectIntl(NoInternetPage);\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nimport { ApiService } from 'services';\r\nimport NoInternetPage from 'components/Errors/NoInternetPage';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nimport { updateConnectionStatus } from 'actions/app';\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 shortDictionaryLoaded: 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 shortDictionaryLoaded: 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 handleConnectionStateChanged = this.handleConnectionStateChanged.bind(this);\r\n /* eslint-enable no-dupe-class-members */\r\n\r\n setEventListeners() {\r\n const connection = null;\r\n\r\n const crypto = window.crypto || window.msCrypto;\r\n const randomArray = new Uint32Array(1);\r\n crypto.getRandomValues(randomArray);\r\n\r\n const lockKey = randomArray[0] * (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, shortDictionaryLoaded } = this.props;\r\n\r\n return \r\n { !isOnline && shortDictionaryLoaded && showFullScreen &&
    }\r\n { (!fullScreenOnly || !isOnline) && shortDictionaryLoaded &&
    \r\n { !isOnline && !showFullScreen && children != null && children }\r\n { !isOnline && showFullScreen && }\r\n { isOnline && }\r\n
    }\r\n ;\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n app: {\r\n isOnline,\r\n connectionInfo,\r\n shortDictionaryLoaded\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 shortDictionaryLoaded\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 { connect } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport Button from 'components/Common/Buttons';\r\n\r\nimport { redirectToLogout } from 'actions';\r\n\r\nclass MenuMobile extends React.Component {\r\n static propTypes = {\r\n showLogout: PropTypes.bool,\r\n usePreQualifyingQuestionnaire: PropTypes.bool,\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired\r\n };\r\n\r\n static defaultProps = {\r\n showLogout: false,\r\n usePreQualifyingQuestionnaire: false\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isMenuOpen: false\r\n };\r\n }\r\n\r\n toggle() { const { isMenuOpen } = this.state; this.setState({ isMenuOpen: !isMenuOpen }); }\r\n\r\n render() {\r\n const { showLogout, usePreQualifyingQuestionnaire, intl } = this.props;\r\n const { isMenuOpen } = this.state;\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n app: {\r\n onlineConfig\r\n },\r\n } = state;\r\n\r\n return {\r\n usePreQualifyingQuestionnaire: onlineConfig && onlineConfig.usePreQualifyingQuestionnaire,\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(injectIntl(MenuMobile));\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 { connect } from 'react-redux';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nimport { getLanguage, changeLocale } from 'actions';\r\n\r\nconst contains = (intl, messageId) => intl && intl.messages && !!intl.messages[messageId] && intl.messages[messageId] !== 'End-User License Agreement';\r\n\r\nconst LanguageSelector = ({ dispatch, intl, locale, languages, fullDictionaryLoaded }) => {\r\n const onLanguageChange = (language) => {\r\n dispatch(changeLocale(language, !fullDictionaryLoaded));\r\n if (fullDictionaryLoaded) {\r\n dispatch(getLanguage(language));\r\n }\r\n };\r\n\r\n const selector = languages && languages.length > 1 &&
    \r\n \r\n
    ;\r\n\r\n return selector || null;\r\n};\r\n\r\nLanguageSelector.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n locale: PropTypes.string.isRequired,\r\n languages: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n key: PropTypes.string,\r\n value: PropTypes.string\r\n })\r\n ).isRequired,\r\n intl: PropTypes.shape({\r\n messages: PropTypes.shape(),\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired,\r\n fullDictionaryLoaded: PropTypes.bool.isRequired\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n app: {\r\n locale,\r\n fullDictionaryLoaded\r\n }\r\n } = state;\r\n\r\n return { locale, fullDictionaryLoaded };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(injectIntl(LanguageSelector));\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { injectIntl } from 'react-intl';\r\nimport { Link } from 'react-router-dom';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport CustomerAvatar from 'components/CustomerAvatar';\r\nimport ConnectionStatus from 'components/Common/ConnectionStatus';\r\nimport MenuMobile from 'components/MenuMobile';\r\nimport PoweredBy from 'components/PoweredBy';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport LanguageSelector from 'components/LanguageSelector';\r\n\r\nconst contains = (intl, messageId) => intl && intl.messages && !!intl.messages[messageId];\r\n\r\nconst Header = ({ intl, isAuthenticated, languages, showMenu, isLogoutEnabled, isOnline, fullDictionaryLoaded }) =>
    \r\n
    \r\n
    \r\n
    \r\n { !isLogoutEnabled && isAuthenticated && \r\n \r\n }\r\n { isAuthenticated && fullDictionaryLoaded && isLogoutEnabled && showMenu && }\r\n
    \r\n { isAuthenticated && showMenu && }\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { contains(intl, 'header.help') && \r\n \r\n \r\n \r\n \r\n }\r\n
    \r\n { languages && languages?.length > 1 &&
    \r\n \r\n
    }\r\n
    \r\n \r\n
    ;\r\n\r\nHeader.propTypes = {\r\n intl: PropTypes.shape({\r\n messages: PropTypes.any\r\n }).isRequired,\r\n isAuthenticated: PropTypes.bool.isRequired,\r\n languages: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n key: PropTypes.string,\r\n value: PropTypes.string\r\n })\r\n ),\r\n showMenu: PropTypes.bool,\r\n isLogoutEnabled: PropTypes.bool,\r\n isOnline: PropTypes.bool,\r\n fullDictionaryLoaded: PropTypes.bool\r\n};\r\n\r\nHeader.defaultProps = {\r\n languages: [{\r\n key: 'en',\r\n value: 'English'\r\n }],\r\n isLogoutEnabled: false,\r\n isOnline: true,\r\n showMenu: true,\r\n fullDictionaryLoaded: false\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n const {\r\n app: {\r\n isAuthenticated,\r\n languages,\r\n onlineConfig,\r\n isOnline,\r\n fullDictionaryLoaded\r\n }\r\n } = state;\r\n\r\n return {\r\n isAuthenticated,\r\n isOnline,\r\n languages,\r\n fullDictionaryLoaded,\r\n isLogoutEnabled: onlineConfig && onlineConfig.isLogoutEnabled\r\n };\r\n}\r\n\r\nexport default injectIntl(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(Header));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nconst contains = (intl, messageId) => intl && intl.messages && !!intl.messages[messageId];\r\nconst Footer = ({ intl, className }) => {\r\n const { linkOverrides } = intl.messages;\r\n\r\n const privacyLink = linkOverrides?.find(link => link.key === 'privacy' && link.value !== '')?.value ?? '/links/privacy';\r\n const cookiesLink = linkOverrides?.find(link => link.key === 'cookies' && link.value !== '')?.value ?? '/links/cookies';\r\n const termsOfUseLink = linkOverrides?.find(link => link.key === 'termsOfUse' && link.value !== '')?.value ?? '/links/termsOfUse';\r\n\r\n return (
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n {contains(intl, 'footer.privacy') &&
    • }\r\n {contains(intl, 'footer.cookies') &&
    • }\r\n {contains(intl, 'footer.termsOfUse') &&
    • }\r\n
    \r\n
    \r\n {contains(intl, 'footer.allRightsReserved') &&
    © 
    }\r\n
    \r\n
    \r\n
    \r\n
    );\r\n};\r\n\r\nFooter.propTypes = {\r\n intl: PropTypes.shape({\r\n messages: PropTypes.any,\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired,\r\n className: PropTypes.string\r\n};\r\n\r\nFooter.defaultProps = {\r\n className: null\r\n};\r\n\r\nexport default injectIntl(Footer);\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport EnvConfig from 'env.config';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nconst contains = (intl, messageId) => intl && !!intl.messages[messageId];\r\n\r\nconst CookieBanner = ({ intl }) => {\r\n const [show, setShow] = useState(true);\r\n\r\n const setCookies = () => {\r\n document.cookie = `${ EnvConfig.cookieConsentName }=true; path=/; expires=Fri, 01 Jan 2038 00:00:00 GMT; samesite=lax`;\r\n setShow(false);\r\n };\r\n\r\n const getCookieLinks = () => {\r\n const privacyLink = contains(intl, 'footer.privacy');\r\n const termsOfUseLink = contains(intl, 'footer.termsOfUse');\r\n const cookiesLink = contains(intl, 'footer.cookies');\r\n const links = (privacyLink ? 1 : 0) + (termsOfUseLink ? 1 : 0) + (cookiesLink ? 1 : 0);\r\n if (links === 0) {\r\n return '';\r\n }\r\n return
      \r\n { privacyLink &&
    • }\r\n { termsOfUseLink &&
    • }\r\n { cookiesLink &&
    • }\r\n
    ;\r\n };\r\n\r\n return (\r\n show &&
    \r\n
    \r\n
    \r\n setCookies() }\r\n onKeyDown={ () => setCookies() }\r\n >\r\n \r\n \r\n
    \r\n
    \r\n \r\n { getCookieLinks() }\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nCookieBanner.propTypes = {\r\n intl: PropTypes.shape({\r\n messages: PropTypes.any,\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired\r\n};\r\n\r\nexport default injectIntl(CookieBanner);\r\n","import React, { useEffect } from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { history } from 'containers/App';\r\nimport { ApiService } from 'services';\r\nimport { PropTypes } from 'prop-types';\r\n\r\nconst KeepAlive = ({ unprotectedRoutes }) => {\r\n const keepAliveUrl = useSelector(state => state.app.onlineConfig?.keepAliveUrl || null);\r\n\r\n const cacheBuster = useSelector(() => {\r\n const timestamp = new Date().getTime();\r\n const twentySecondInterval = Math.round(timestamp / 20_000);\r\n return twentySecondInterval;\r\n });\r\n\r\n useEffect(() => {\r\n if (!unprotectedRoutes.includes(window.location.pathname)) {\r\n ApiService.getAuthState()\r\n .then((a) => {\r\n if (a?.data?.authState !== 'Authorised') {\r\n history.push('/sessiontimeout');\r\n }\r\n })\r\n .catch((e) => {\r\n // unable to extend session\r\n });\r\n }\r\n }, [cacheBuster]);\r\n\r\n return (\r\n \r\n { keepAliveUrl && \"keep }\r\n \r\n );\r\n};\r\n\r\nKeepAlive.propTypes = {\r\n unprotectedRoutes: PropTypes.arrayOf(PropTypes.string).isRequired\r\n};\r\n\r\nexport default KeepAlive;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nimport { getCookie } from 'common/cookies';\r\nimport EnvConfig from 'env.config';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport MustHaveReadText from 'components/MustHaveReadText';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\n\r\nimport { acceptEula } from 'actions';\r\n\r\nconst contains = (intl, messageId) => intl && intl.messages && !!intl.messages[messageId] && intl.messages[messageId] !== 'End-User License Agreement';\r\n\r\nconst { eulaCookieName } = EnvConfig;\r\n\r\nconst Eula = ({ dispatch, intl, fullDictionaryLoaded, onConfirm, onCancel }) => {\r\n const [allRead, setAllRead] = useState(false);\r\n\r\n const eulaAccepted = !!getCookie(eulaCookieName);\r\n const isEulaEnabled = contains(intl, 'eula');\r\n const content =
    ;\r\n\r\n useEffect(() => {\r\n if (fullDictionaryLoaded && !isEulaEnabled) {\r\n dispatch(acceptEula());\r\n }\r\n }, []);\r\n\r\n const onCancelClick = () => {\r\n if (onCancel) {\r\n onCancel();\r\n }\r\n };\r\n\r\n const onConfirmClick = () => {\r\n dispatch(acceptEula(true));\r\n\r\n if (onConfirm) {\r\n onConfirm();\r\n }\r\n };\r\n\r\n return (\r\n { (!eulaAccepted && isEulaEnabled && content) && }\r\n className=\"modal-eula\"\r\n disableConfirm={ !allRead }\r\n showCancel={ false }\r\n showClose={ false }\r\n btnConfirmTitle={ intl.formatMessage({ id: 'eula.agreementButton' }) }\r\n content={ setAllRead(value) }\r\n /> }\r\n footer={ !allRead ? : }\r\n onConfirm={ onConfirmClick }\r\n onCancel={ onCancelClick }\r\n />}\r\n );\r\n};\r\n\r\nEula.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired,\r\n onConfirm: PropTypes.func,\r\n onCancel: PropTypes.func,\r\n fullDictionaryLoaded: PropTypes.bool\r\n};\r\n\r\nEula.defaultProps = {\r\n onConfirm: null,\r\n onCancel: null,\r\n fullDictionaryLoaded: false\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n app: {\r\n fullDictionaryLoaded\r\n }\r\n } = state;\r\n\r\n return {\r\n fullDictionaryLoaded\r\n };\r\n}\r\n\r\nexport default injectIntl(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(Eula));\r\n","import { library } from '@fortawesome/fontawesome-svg-core';\r\nimport {\r\n faCheck, faCheckCircle, faSearch, faBars, faPlus, faMinus, faTimes, faInfo, faInfoCircle, faUser, faUsers, faCloud, faSlash, faExclamationCircle, faChevronUp, faChevronDown, faCircle, faFlag, faCamera, faTrashAlt,\r\n faUpload, faLightbulb, faExclamation, faArrowUp, faEllipsisV, faFile, faSignOutAlt, faTh, faQuestionCircle, faFileUpload, faHome, faUserCircle\r\n} from '@fortawesome/free-solid-svg-icons';\r\n\r\nlibrary.add(\r\n faCheck,\r\n faCheckCircle,\r\n faSearch,\r\n faBars,\r\n faPlus,\r\n faMinus,\r\n faTimes,\r\n faInfo,\r\n faInfoCircle,\r\n faUser,\r\n faUsers,\r\n faCloud,\r\n faSlash,\r\n faExclamationCircle,\r\n faChevronUp,\r\n faChevronDown,\r\n faCircle,\r\n faFlag,\r\n faCamera,\r\n faTrashAlt,\r\n faUpload,\r\n faLightbulb,\r\n faExclamation,\r\n faArrowUp,\r\n faEllipsisV,\r\n faFile,\r\n faSignOutAlt,\r\n faTh,\r\n faQuestionCircle,\r\n faFileUpload,\r\n faHome,\r\n faUserCircle\r\n);\r\n","import React, { useEffect, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect, useDispatch } from 'react-redux';\r\nimport CryptoJS from 'crypto-js';\r\n\r\nimport { history } from 'containers/App';\r\n\r\nimport QuestionnaireType from 'common/questionnaires/QuestionnaireType';\r\nimport FormGroupTypes from 'common/questionnaires/FormGroupTypes';\r\nimport SelectAccountModal from 'components/Modals/SelectAccountModal';\r\nimport QuestionBlock from 'components/Questionnaires/QuestionBlock';\r\n\r\nimport {\r\n newPreQualQuestionnaire\r\n} from 'actions';\r\n\r\nconst PreQualifyingQuestionnaire = ({ usePreQualifyingQuestionnaire, customerName, selectedAccountId, questionnaire, rcEnabled }) => {\r\n const dispatch = useDispatch();\r\n const messageValues = useMemo(() => ({ CustomerName: customerName, DerivedName: customerName }), [customerName]);\r\n\r\n if (usePreQualifyingQuestionnaire === false) {\r\n history.push('/form-selection');\r\n }\r\n\r\n const showBlock = (b) => {\r\n if (b) {\r\n if (Object.prototype.hasOwnProperty.call(b, 'visible')) {\r\n if (typeof b.visible === 'boolean') {\r\n return b.visible;\r\n }\r\n if (typeof b.visible === 'function') {\r\n return b.visible(questionnaire?.answers, questionnaire?.answers);\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n const showResult = (r) => {\r\n if (r) {\r\n if (Object.prototype.hasOwnProperty.call(r, 'condition')) {\r\n if (typeof r.condition === 'boolean') {\r\n return r.condition;\r\n }\r\n if (typeof r.condition === 'function') {\r\n return r.condition(questionnaire?.answers);\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n const getFormGroupForms = formGroup => FormGroupTypes.find(f => f.key === formGroup);\r\n\r\n useEffect(() => {\r\n dispatch(newPreQualQuestionnaire(rcEnabled));\r\n }, []);\r\n\r\n return (\r\n \r\n { selectedAccountId === 0 && }\r\n { selectedAccountId > 0 &&
    \r\n { questionnaire && questionnaire.blocks && questionnaire.blocks.map(b => b && showBlock(b) && ) }\r\n { questionnaire && questionnaire.results && questionnaire.results.map(r => r && showResult(r)\r\n && React.createElement(r.component, { ...r.componentProps, key: r.id, id: r.id, info: r.info, formType: r.formType, formGroup: r.formGroup && getFormGroupForms(r.formGroup), title: r.title, accountId: selectedAccountId, messageValues })) }\r\n
    }\r\n\r\n
    \r\n );\r\n};\r\n\r\nPreQualifyingQuestionnaire.propTypes = {\r\n usePreQualifyingQuestionnaire: PropTypes.bool,\r\n customerName: PropTypes.string,\r\n selectedAccountId: PropTypes.number,\r\n questionnaire: PropTypes.shape(),\r\n rcEnabled: PropTypes.bool,\r\n};\r\n\r\nPreQualifyingQuestionnaire.defaultProps = {\r\n usePreQualifyingQuestionnaire: true,\r\n customerName: '',\r\n selectedAccountId: 0,\r\n questionnaire: null,\r\n rcEnabled: false\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n app: {\r\n onlineConfig,\r\n customerData,\r\n key\r\n },\r\n questionnaires: { preQualQuestionnaire },\r\n form: { selectedAccountId }\r\n } = state;\r\n\r\n const decryptedArray = CryptoJS.AES.decrypt(customerData, key);\r\n const decryptedText = decryptedArray.toString(CryptoJS.enc.Utf8);\r\n const customerDetails = JSON.parse(decryptedText);\r\n\r\n return {\r\n usePreQualifyingQuestionnaire: onlineConfig && onlineConfig.usePreQualifyingQuestionnaire,\r\n customerName: customerDetails && customerDetails.CustomerName,\r\n selectedAccountId,\r\n questionnaire: preQualQuestionnaire,\r\n rcEnabled: onlineConfig?.formTypes?.some(obj => obj.formType === 'rc518' || obj.formType === 'rc519')\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n)(PreQualifyingQuestionnaire);\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nimport { displayMode } from 'common/forms/displayMode';\r\n\r\nimport Button from 'components/Common/Buttons';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nimport { addOnlineForm, showFormChoiceModal, addFormGroup } from 'actions/form';\r\n\r\nfunction isNullOrWhitespace(input) {\r\n return !input || input.trim() === '';\r\n}\r\n\r\nclass FormSelectionCard extends React.Component {\r\n onAddForm() {\r\n const { dispatch, formType, formDisplayMode, selectedAccountId, formGroup, singleFormJourney, availableOnlineForms } = this.props;\r\n const maxMobileWidth = 992;\r\n\r\n const formTypeInfo = availableOnlineForms.find(ft => ft.formType === formType);\r\n\r\n if (formGroup) {\r\n dispatch(addFormGroup(formGroup.formTypes, selectedAccountId, formGroup.key));\r\n } else if (singleFormJourney || (formDisplayMode === displayMode.Stacked || window.innerWidth <= maxMobileWidth)) {\r\n dispatch(showFormChoiceModal(formType));\r\n } else {\r\n dispatch(addOnlineForm(formTypeInfo, selectedAccountId));\r\n }\r\n }\r\n\r\n render() {\r\n const { title, introductionMessageId, isEnabled, isAddingForm, formType, selectedAccountId, intl } = this.props;\r\n return (\r\n
    \r\n

    { title }

    \r\n

    { !isNullOrWhitespace(introductionMessageId) && }

    \r\n isEnabled && this.onAddForm() }\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nFormSelectionCard.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n formType: PropTypes.string.isRequired,\r\n introductionMessageId: PropTypes.string.isRequired,\r\n isEnabled: PropTypes.bool,\r\n isAddingForm: PropTypes.string,\r\n formDisplayMode: PropTypes.number.isRequired,\r\n selectedAccountId: PropTypes.number,\r\n formGroup: PropTypes.shape({\r\n key: PropTypes.string,\r\n formTypes: PropTypes.arrayOf(PropTypes.string)\r\n }),\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired,\r\n singleFormJourney: PropTypes.bool,\r\n availableOnlineForms: PropTypes.arrayOf(PropTypes.shape),\r\n};\r\n\r\nFormSelectionCard.defaultProps = {\r\n isEnabled: false,\r\n isAddingForm: null,\r\n selectedAccountId: 0,\r\n formGroup: null,\r\n singleFormJourney: false,\r\n availableOnlineForms: [],\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n form: {\r\n isAddingForm,\r\n selectedAccountId\r\n },\r\n app: {\r\n onlineConfig\r\n }\r\n } = state;\r\n\r\n const activeFormTypes = onlineConfig?.formTypes?.filter(x => x.isEnabled && x.isVisible) ?? [];\r\n const activeFormGroups = onlineConfig?.formGroups?.filter(x => x.isEnabled && x.isVisible) ?? [];\r\n\r\n const availableOnlineForms = [...activeFormTypes, ...activeFormGroups];\r\n\r\n return {\r\n isAddingForm,\r\n formDisplayMode: onlineConfig ? onlineConfig.formDisplayMode : displayMode.Irs,\r\n singleFormJourney: (activeFormTypes?.length === 1 && (!activeFormGroups?.length)),\r\n selectedAccountId,\r\n availableOnlineForms\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)(injectIntl(FormSelectionCard));\r\n","import React, { useEffect } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport CryptoJS from 'crypto-js';\r\n\r\nimport { setAccount } from 'actions/app';\r\nimport FormGroupTypes from 'common/forms/formGroupTypes';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport FormSelectionCard from 'components/FormSelectionCard';\r\nimport FormChoiceModal from 'components/Modals/FormChoiceModal';\r\n\r\nconst FormSelection = ({ formTypes, formGroups, selectedFormtype, isFormChoiceShown, customerName, usePreQualifyingQuestionnaire, customerAccounts, dispatch, selectedAccountId, intl }) => {\r\n useEffect(() => {\r\n if (customerAccounts && customerAccounts.length === 1) {\r\n dispatch(setAccount(customerAccounts[0].id));\r\n } else {\r\n dispatch(setAccount(selectedAccountId));\r\n }\r\n }, []);\r\n\r\n const isCrsParticipating = usePreQualifyingQuestionnaire && (selectedAccountId ? customerAccounts.filter(x => x.id === selectedAccountId && x.isCrsParticipating).length > 0 : false);\r\n\r\n return (
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n

    { customerName }

    \r\n { customerName }\r\n
    \r\n
    \r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n { usePreQualifyingQuestionnaire &&
    \r\n

    \r\n
    }\r\n
    \r\n
    \r\n {customerAccounts === null &&
    \r\n
    \r\n
    \r\n

    \r\n
    \r\n
    \r\n
    }\r\n { customerAccounts && customerAccounts.length > 1 &&
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    }\r\n
    \r\n
    \r\n
    \r\n
    \r\n { formTypes && formTypes.map(item => item.isVisible &&
    \r\n \r\n
    ) }\r\n { formGroups && formGroups.map(item => item.isVisible && (selectedAccountId > 0 && (!item.crsRestricted || (item.crsRestricted && isCrsParticipating))) &&
    \r\n group.key === item.formType) } />\r\n
    )}\r\n { isFormChoiceShown\r\n && }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    );\r\n};\r\n\r\nFormSelection.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n formTypes: PropTypes.arrayOf(PropTypes.shape({})),\r\n formGroups: PropTypes.arrayOf(PropTypes.shape({})),\r\n selectedFormtype: PropTypes.string,\r\n isFormChoiceShown: PropTypes.bool,\r\n customerName: PropTypes.string.isRequired,\r\n usePreQualifyingQuestionnaire: PropTypes.bool,\r\n selectedAccountId: PropTypes.number,\r\n customerAccounts: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number,\r\n displayName: PropTypes.string\r\n })),\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired\r\n};\r\n\r\nFormSelection.defaultProps = {\r\n formTypes: [],\r\n formGroups: [],\r\n selectedFormtype: '',\r\n isFormChoiceShown: false,\r\n usePreQualifyingQuestionnaire: false,\r\n selectedAccountId: 0,\r\n customerAccounts: []\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n app: {\r\n onlineConfig,\r\n customerData,\r\n key\r\n },\r\n form: {\r\n formType,\r\n isFormChoiceShown,\r\n selectedAccountId\r\n }\r\n } = state;\r\n\r\n const decryptedArray = customerData ? CryptoJS.AES.decrypt(customerData, key) : null;\r\n const decryptedText = decryptedArray ? decryptedArray.toString(CryptoJS.enc.Utf8) : null;\r\n const customerDetails = decryptedText ? JSON.parse(decryptedText) : null;\r\n\r\n return {\r\n formTypes: onlineConfig && onlineConfig.formTypes,\r\n formGroups: onlineConfig && onlineConfig.formGroups,\r\n selectedFormtype: formType,\r\n isFormChoiceShown,\r\n customerName: customerDetails && customerDetails.CustomerName,\r\n usePreQualifyingQuestionnaire: onlineConfig && onlineConfig.usePreQualifyingQuestionnaire,\r\n customerAccounts: onlineConfig && onlineConfig.customer && onlineConfig.customer.accounts,\r\n selectedAccountId\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)(injectIntl(FormSelection));\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { Redirect, Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport Button from 'components/Common/Buttons';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nimport { history } from 'containers/App';\r\n\r\nimport { clearPreQualQuestionnaire } from 'actions/questionnaires';\r\n\r\nconst Home = ({ usePreQualifyingQuestionnaire, defaultFormUrl, dispatch }) => {\r\n const startNewPQQuestionnaire = () => {\r\n dispatch(clearPreQualQuestionnaire());\r\n history.push('/pre-qualifying-questionnaire');\r\n };\r\n\r\n const intl = useIntl();\r\n return (\r\n usePreQualifyingQuestionnaire ?
    \r\n
    \r\n
    \r\n

    \r\n
    \r\n

    \r\n
    \r\n
    \r\n
    \r\n
    : \r\n );\r\n};\r\n\r\nHome.propTypes = {\r\n usePreQualifyingQuestionnaire: PropTypes.bool,\r\n defaultFormUrl: PropTypes.string,\r\n dispatch: PropTypes.func.isRequired\r\n};\r\n\r\nHome.defaultProps = {\r\n usePreQualifyingQuestionnaire: false,\r\n defaultFormUrl: null\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n app: { onlineConfig }\r\n } = state;\r\n\r\n return {\r\n usePreQualifyingQuestionnaire: onlineConfig && onlineConfig.usePreQualifyingQuestionnaire,\r\n defaultFormUrl: onlineConfig && onlineConfig.defaultFormUrl\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(Home);\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nconst ScrollToTop = ({ elementId, intl }) => (\r\n {\r\n if (elementId) {\r\n const element = document.getElementById(elementId);\r\n if (element) {\r\n element.scrollTo({ top: 0, left: 0, behavior: 'smooth' });\r\n }\r\n } else {\r\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });\r\n }\r\n } }\r\n aria-label={ intl.formatMessage({ id: 'scrollToTop.text' }) }\r\n >\r\n \r\n );\r\n\r\nScrollToTop.propTypes = {\r\n elementId: PropTypes.string,\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired\r\n};\r\n\r\nScrollToTop.defaultProps = {\r\n elementId: null\r\n};\r\n\r\nexport default injectIntl(ScrollToTop);\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nclass Accordion extends Component {\r\n static propTypes = {\r\n title: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.node\r\n ]).isRequired,\r\n openIcon: PropTypes.string,\r\n closeIcon: PropTypes.string,\r\n className: PropTypes.string,\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ]),\r\n isOpen: PropTypes.bool,\r\n onClick: PropTypes.func\r\n };\r\n\r\n static defaultProps = {\r\n children: null,\r\n openIcon: 'plus',\r\n closeIcon: 'minus',\r\n className: null,\r\n isOpen: false,\r\n onClick: null\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.closeWithEscapeKey = this.closeWithEscapeKey.bind(this);\r\n const { isOpen } = this.props;\r\n\r\n this.state = {\r\n lastPropValue: isOpen,\r\n isOpen,\r\n };\r\n }\r\n\r\n static getDerivedStateFromProps(props, state) {\r\n if (props.isOpen !== state.lastPropValue) {\r\n return {\r\n isOpen: props.isOpen,\r\n lastPropValue: props.isOpen\r\n };\r\n }\r\n return {\r\n isOpen: state.isOpen\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n document.addEventListener('keydown', this.closeWithEscapeKey, false);\r\n }\r\n\r\n componentWillUnmount() {\r\n document.removeEventListener('keydown', this.closeWithEscapeKey, false);\r\n }\r\n\r\n closeWithEscapeKey(event) {\r\n if (event.keyCode === 27) {\r\n const { onClick } = this.props;\r\n this.setState({\r\n isOpen: false\r\n });\r\n\r\n onClick(false);\r\n }\r\n }\r\n\r\n toggle() {\r\n const { isOpen } = this.state;\r\n const { onClick } = this.props;\r\n this.setState({\r\n isOpen: !isOpen\r\n });\r\n\r\n if (onClick) {\r\n onClick(!isOpen);\r\n }\r\n }\r\n\r\n render() {\r\n const { title, openIcon, closeIcon, className, children } = this.props;\r\n const { isOpen } = this.state;\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n { children }\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default Accordion;\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport Accordion from 'components/Common/Accordion';\r\nimport Button from 'components/Common/Buttons';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nconst ValidationResults = ({ result, showResult, dirty, onClick, onUploadDocumentClick, onSignAndSubmit, intl, previewOnlyMode }) => {\r\n function signSubmitButtonText() {\r\n const messageId = previewOnlyMode ? 'signSubmit.previewOnlyMode.buttonText' : 'signSubmit.buttonText';\r\n return intl.formatMessage({ id: messageId });\r\n }\r\n\r\n function signSubmitDescription() {\r\n const messageId = previewOnlyMode ? 'signSubmit.previewOnlyMode.description' : 'signSubmit.description';\r\n return ;\r\n }\r\n\r\n function title() {\r\n if (result != null) {\r\n if (result.valid) {\r\n if (!dirty) {\r\n return
    \r\n Results\r\n \r\n \r\n \r\n \r\n \r\n { result.rejections != null && result.rejections.length } s\r\n \r\n
    ;\r\n }\r\n return
    \r\n Results\r\n \r\n \r\n \r\n \r\n \r\n Press ''\r\n \r\n
    ;\r\n }\r\n return
    \r\n Results\r\n \r\n \r\n \r\n \r\n \r\n { result.rejections != null && result.rejections.length } { `${ result.rejections.length !== 1 ? 's' : '' }` }\r\n \r\n
    ;\r\n }\r\n return
    No Results - Press ''
    ;\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 { result && result.rejections && result.rejections.length === 0 && !dirty && \r\n

    { signSubmitDescription() }

    \r\n { (onSignAndSubmit != null) &&
    \r\n
    \r\n { result && result.warnings && result.warnings.filter(item => item.code.substring(0, 3) === 'WRN').length > 0 && \r\n

    \r\n
      \r\n { result.warnings.map(item => item.code.substring(0, 3) === 'WRN'\r\n &&
    • {item.codeDescription}
    • ) }\r\n
    \r\n
    }\r\n
    \r\n
    \r\n { result && result.warnings && result.warnings.filter(item => item.code.substring(0, 3) === 'REC').length > 0 &&
    \r\n
    \r\n

    \r\n
      \r\n { result.warnings.map(item => item.code.substring(0, 3) === 'REC'\r\n &&
    • {item.codeDescription}
    • ) }\r\n
    \r\n
    \r\n
    }\r\n
    \r\n
    \r\n
    \r\n \r\n
    ;\r\n};\r\n\r\nValidationResults.propTypes = {\r\n result: PropTypes.shape({\r\n valid: PropTypes.bool,\r\n formType: PropTypes.string,\r\n rejections: PropTypes.arrayOf(PropTypes.shape()),\r\n warnings: PropTypes.arrayOf(PropTypes.shape())\r\n }),\r\n showResult: PropTypes.bool.isRequired,\r\n dirty: PropTypes.bool,\r\n onClick: PropTypes.func.isRequired,\r\n onSignAndSubmit: PropTypes.func,\r\n onUploadDocumentClick: PropTypes.func.isRequired,\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired,\r\n previewOnlyMode: PropTypes.bool.isRequired\r\n};\r\n\r\nValidationResults.defaultProps = {\r\n result: null,\r\n dirty: false,\r\n onSignAndSubmit: null\r\n};\r\n\r\nexport default injectIntl(ValidationResults);\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nconst ValidationResultsStacked = ({ result, dirty, isGettingForm, previewOnlyMode }) => {\r\n function title() {\r\n if (result != null) {\r\n if (result.valid) {\r\n if (!dirty) {\r\n return
    \r\n Results\r\n \r\n \r\n \r\n \r\n \r\n { result.rejections != null && result.rejections.length } \r\n \r\n
    ;\r\n }\r\n return
    \r\n Results\r\n
    \r\n \r\n \r\n \r\n \r\n Press ''\r\n
    \r\n
    ;\r\n }\r\n return
    \r\n Results\r\n \r\n \r\n \r\n \r\n \r\n { result.rejections != null && result.rejections.length } { `${ result.rejections.length !== 1 ? 's' : '' }` }\r\n \r\n
    ;\r\n }\r\n return
    Results
    ;\r\n }\r\n\r\n return
    \r\n
    \r\n { isGettingForm &&
    }\r\n
    {title()}\r\n
    \r\n
    \r\n { !result && !isGettingForm && \r\n

    Please answer the questions and press "Check".

    \r\n { previewOnlyMode && \r\n

    Please complete these questions and then press the check button below to see if there are any problems.

    \r\n

    When any problems are resolved you will be able to download your answers in a tax form format for submitting to your tax advisor or relevant institution.

    \r\n
    }\r\n { !previewOnlyMode && \r\n

    Please complete these questions and then press the check button below to see if there are any problems.

    \r\n

    When any problems are resolved you will be able to sign and submit your answers.

    \r\n
    }\r\n
    }\r\n
    \r\n
    \r\n { result && result.rejections && result.rejections.length === 0 && dirty &&

    There have been changes made to the form, please press 'Check' again to see if there are any more changes needed.

    }\r\n { result && result.rejections && result.rejections.length > 0 && \r\n

    \r\n
      \r\n { result.rejections.map(item =>
    • {item.codeDescription}
    • ) }\r\n
    \r\n
    }\r\n
    \r\n
    \r\n { result && result.warnings && result.warnings.filter(item => item.code.substring(0, 3) === 'WRN').length > 0 && \r\n

    \r\n
      \r\n { result.warnings.map(item => item.code.substring(0, 3) === 'WRN'\r\n &&
    • {item.codeDescription}
    • ) }\r\n
    \r\n
    }\r\n
    \r\n { result && result.warnings && result.warnings.filter(item => item.code.substring(0, 3) === 'REC').length > 0 &&
    \r\n
    \r\n

    \r\n
      \r\n { result.warnings.map(item => item.code.substring(0, 3) === 'REC'\r\n &&
    • {item.codeDescription}
    • ) }\r\n
    \r\n
    \r\n
    }\r\n
    \r\n
    \r\n
    ;\r\n};\r\n\r\nValidationResultsStacked.propTypes = {\r\n result: PropTypes.shape({\r\n valid: PropTypes.bool,\r\n formType: PropTypes.string,\r\n rejections: PropTypes.arrayOf(PropTypes.shape()),\r\n warnings: PropTypes.arrayOf(PropTypes.shape())\r\n }),\r\n dirty: PropTypes.bool,\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired,\r\n isGettingForm: PropTypes.bool.isRequired,\r\n previewOnlyMode: PropTypes.bool.isRequired\r\n};\r\n\r\nValidationResultsStacked.defaultProps = {\r\n result: null,\r\n dirty: false\r\n};\r\n\r\nexport default injectIntl(ValidationResultsStacked);\r\n","import React, { useState } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router';\r\nimport { useIntl } from 'react-intl';\r\nimport { useParams } from 'react-router-dom';\r\n\r\nimport Button from 'components/Common/Buttons';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\n\r\nconst FormConfirmation = ({\r\n onConfirm,\r\n onCancel,\r\n previewOnlyMode,\r\n isFetchingPdf,\r\n downloadFormType,\r\n onClickHandler,\r\n formGroup,\r\n formTypes,\r\n showAffidavit,\r\n supportingDocOnClickHandler,\r\n isFetchingCollectablePdf\r\n}) => {\r\n const intl = useIntl();\r\n const [isConfirmed, setIsConfirmed] = useState(false);\r\n const formConfirmationTitle =

    ;\r\n const { formType } = useParams();\r\n\r\n const formConfirmationMessage = \r\n \r\n
    \r\n { formGroup && formGroup.formTypes.map(f => ft.formType === f) ? formTypes.filter(ft => ft.formType === f)[0].title : f.toUpperCase() }` }\r\n disabled={ isFetchingPdf }\r\n className={ `btn-secondary btn-download mr-0 ${ isFetchingPdf && downloadFormType === f ? 'btn-active' : '' }` }\r\n onClick={ () => onClickHandler(f) }\r\n />) }\r\n { !formGroup && ft.formType === formType.toLowerCase())?.title }` }\r\n disabled={ isFetchingPdf }\r\n className={ `btn-download-preview-pdf mr-0 ${ isFetchingPdf ? 'btn-active-download' : '' }` }\r\n onClick={ () => onClickHandler() }\r\n /> }\r\n { showAffidavit && supportingDocOnClickHandler('AffidavitOfUnchangedStatus') }\r\n /> }\r\n
    \r\n { !previewOnlyMode && }\r\n
    ;\r\n\r\n return (\r\n }\r\n />\r\n );\r\n};\r\n\r\nFormConfirmation.defaultProps = {\r\n previewOnlyMode: false,\r\n isFetchingPdf: false,\r\n downloadFormType: null,\r\n formGroup: null,\r\n formTypes: [],\r\n showAffidavit: false,\r\n isFetchingCollectablePdf: false\r\n};\r\n\r\nFormConfirmation.propTypes = {\r\n onConfirm: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onClickHandler: PropTypes.func.isRequired,\r\n isFetchingPdf: PropTypes.bool,\r\n downloadFormType: PropTypes.string,\r\n previewOnlyMode: PropTypes.bool,\r\n formGroup: PropTypes.shape({\r\n key: PropTypes.string,\r\n formTypes: PropTypes.arrayOf(PropTypes.string)\r\n }),\r\n formTypes: PropTypes.arrayOf(PropTypes.shape({})),\r\n showAffidavit: PropTypes.bool,\r\n supportingDocOnClickHandler: PropTypes.func.isRequired,\r\n isFetchingCollectablePdf: PropTypes.bool\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n app: {\r\n onlineConfig,\r\n },\r\n questionnaires: {\r\n formQuestionnaire,\r\n }\r\n } = state;\r\n\r\n return {\r\n formTypes: onlineConfig && onlineConfig.formTypes,\r\n showAffidavit: formQuestionnaire?.blocks?.find(b => b.id === 'signer')?.answers?.generateAffidavit === 'true'\r\n };\r\n}\r\n\r\n// export default FormConfirmation;\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(FormConfirmation));\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport format from 'date-fns/format';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\n\r\nimport { hideFormSigning, revertForm, signForm, signFormGroup, revertFormGroup } from 'actions/form';\r\n\r\nclass FormSigning extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n formType: PropTypes.string,\r\n id: PropTypes.string,\r\n onCancel: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func,\r\n formData: PropTypes.shape({}),\r\n questionnaire: PropTypes.shape({\r\n name: PropTypes.shape({\r\n name: PropTypes.string,\r\n firstName: PropTypes.string,\r\n lastName: PropTypes.string\r\n }),\r\n signer: PropTypes.shape({\r\n name: PropTypes.string,\r\n capacity: PropTypes.string\r\n })\r\n }),\r\n isSigningForm: PropTypes.bool,\r\n isNameInvalid: PropTypes.bool,\r\n usePreQualifyingQuestionnaire: PropTypes.bool,\r\n formGroup: PropTypes.shape({\r\n key: PropTypes.string,\r\n formTypes: PropTypes.arrayOf(PropTypes.string)\r\n }),\r\n formGroupId: PropTypes.string,\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired,\r\n messages: PropTypes.shape()\r\n }).isRequired,\r\n selectedAccountId: PropTypes.number,\r\n customerId: PropTypes.string,\r\n showAffidavit: PropTypes.bool\r\n };\r\n\r\n static defaultProps = {\r\n formType: '',\r\n id: null,\r\n formData: null,\r\n questionnaire: null,\r\n onSubmit: null,\r\n isSigningForm: false,\r\n isNameInvalid: false,\r\n usePreQualifyingQuestionnaire: false,\r\n formGroup: null,\r\n formGroupId: null,\r\n selectedAccountId: null,\r\n customerId: null,\r\n showAffidavit: false\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n printName: '',\r\n signDate: '',\r\n signName: '',\r\n capacity: ''\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.setStateParameters();\r\n }\r\n\r\n onChangePrintName(event) { this.setState({ signName: event.target.value }); }\r\n\r\n onChangeCapacity(event) { this.setState({ capacity: event.target.value }); }\r\n\r\n onCancel() {\r\n const { dispatch, id, onCancel, formGroupId } = this.props;\r\n dispatch(hideFormSigning());\r\n\r\n if (id) {\r\n dispatch(revertForm(id));\r\n }\r\n\r\n if (formGroupId) {\r\n dispatch(revertFormGroup(formGroupId));\r\n }\r\n\r\n if (onCancel) {\r\n onCancel();\r\n }\r\n }\r\n\r\n onSignForm() {\r\n const {\r\n formType,\r\n id,\r\n dispatch,\r\n onSubmit,\r\n formData,\r\n formGroupId,\r\n formGroup,\r\n questionnaire,\r\n selectedAccountId,\r\n customerId,\r\n showAffidavit\r\n } = this.props;\r\n const { capacity, signDate } = this.state;\r\n let { printName, signName } = this.state;\r\n\r\n if (!printName) {\r\n printName = '';\r\n }\r\n\r\n if (!signName) {\r\n signName = '';\r\n }\r\n\r\n let collectableSupportingDocData = null;\r\n\r\n if (showAffidavit) {\r\n collectableSupportingDocData = {\r\n accountId: selectedAccountId,\r\n customerName: formGroup ? `${ questionnaire?.name?.firstName } ${ questionnaire?.name?.lastName }` : questionnaire?.name?.name,\r\n printName,\r\n customerId,\r\n collectableSupportingDocType: 'AffidavitOfUnchangedStatus',\r\n signature: signName || printName\r\n };\r\n }\r\n\r\n if (formType) {\r\n dispatch(signForm(formType, id, signName || printName, capacity, signDate, collectableSupportingDocData));\r\n }\r\n\r\n if (formGroup) {\r\n dispatch(signFormGroup(formGroup.key, formGroupId, signName || printName, capacity, signDate, collectableSupportingDocData));\r\n }\r\n\r\n if (onSubmit) {\r\n onSubmit(signName, capacity, formData);\r\n }\r\n }\r\n\r\n setCapacityField() {\r\n const { formType, formGroup, usePreQualifyingQuestionnaire, questionnaire, intl } = this.props;\r\n let capacity = '';\r\n if (usePreQualifyingQuestionnaire) {\r\n capacity = questionnaire?.signer?.capacity;\r\n switch (formType) {\r\n case 'w8ben':\r\n case 'w8ben_2021':\r\n case 'w9_2018':\r\n case 'w9_2024':\r\n case 'crsi':\r\n case 'crsi_2024':\r\n case 'crscp': {\r\n const capacities = intl.messages['questionnaire.signer.capacities.individual'];\r\n if (!capacities) {\r\n break;\r\n }\r\n const matchedCapacity = capacities.find(x => x.value === capacity);\r\n if (matchedCapacity?.label) {\r\n capacity = matchedCapacity.label;\r\n }\r\n break;\r\n }\r\n case 'crse': {\r\n const capacities = intl.messages['questionnaire.signer.capacities.entity'];\r\n if (!capacities) {\r\n break;\r\n }\r\n const matchedCapacity = capacities.find(x => x.value === capacity);\r\n if (matchedCapacity?.label) {\r\n capacity = matchedCapacity.label;\r\n }\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n switch (formGroup?.key) {\r\n case 'crsiw8ben': {\r\n const capacities = intl.messages['questionnaire.signer.capacities.individual'];\r\n if (!capacities) {\r\n break;\r\n }\r\n const matchedCapacity = capacities.find(x => x.value === capacity);\r\n if (matchedCapacity?.label) {\r\n capacity = matchedCapacity.label;\r\n }\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n this.setState({ capacity });\r\n } else {\r\n let elementName = document.getElementsByName('capacityField');\r\n if (elementName && elementName.length >= 1) {\r\n capacity = document.getElementById(elementName[0].id);\r\n if (capacity != null) {\r\n if (capacity.options[capacity.selectedIndex].text === 'Other') {\r\n elementName = document.getElementsByName('capacityFieldOther');\r\n capacity = document.getElementById(elementName[0].id);\r\n this.setState({ capacity: capacity.value });\r\n return;\r\n }\r\n this.setState({ capacity: capacity.options[capacity.selectedIndex].text });\r\n }\r\n } else {\r\n const form = document.getElementById('blankForm');\r\n if (form && form.elements) {\r\n switch (formType) {\r\n case 'w8ben':\r\n capacity = form.elements.namedItem('part3.actingCapacity').value;\r\n break;\r\n case 'w8ben_2021':\r\n capacity = null;\r\n break;\r\n case 'crsi':\r\n case 'crsi_2024':\r\n capacity = form.elements.namedItem('part3.capacity').value;\r\n break;\r\n case 'crse':\r\n case 'crscp':\r\n capacity = form.elements.namedItem('part4.capacity').value;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n this.setState({ capacity });\r\n }\r\n }\r\n }\r\n\r\n setStateParameters() {\r\n const { formType, formGroup, usePreQualifyingQuestionnaire, questionnaire } = this.props;\r\n let formPrintName = null;\r\n let formDate = null;\r\n\r\n if (usePreQualifyingQuestionnaire) {\r\n formPrintName = questionnaire?.signer?.name ?? null;\r\n\r\n switch (formType) {\r\n case 'w9_2018':\r\n case 'w9_2024':\r\n formDate = format(new Date(), 'MM-dd-yyyy');\r\n break;\r\n case 'w8ben':\r\n case 'w8ben_2021':\r\n formDate = format(new Date(), 'MM-dd-yyyy');\r\n break;\r\n case 'w8bene_2021':\r\n case 'w8imy_2021':\r\n formDate = format(new Date(), 'MM-dd-yyyy');\r\n break;\r\n case 'crsi':\r\n case 'crsi_2024':\r\n case 'crscp':\r\n case 'crse':\r\n case 'fatca_crse_2023':\r\n case 'fatca_crsi_2023':\r\n formDate = format(new Date(), 'dd-MM-yyyy');\r\n break;\r\n case 'rc518':\r\n case 'rc519':\r\n formDate = format(new Date(), 'yyyy-MM-dd');\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (formGroup) {\r\n switch (formGroup.key) {\r\n case 'crsiw8ben':\r\n formDate = format(new Date(), 'MMMM dd, yyyy');\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n const form = document.getElementById('blankForm');\r\n if (form && form.elements) {\r\n switch (formType) {\r\n case 'w8bene_2017':\r\n case 'w8bene_2021':\r\n formPrintName = form.elements.namedItem('part30.printName').value;\r\n formDate = form.elements.namedItem('part30.date').value;\r\n break;\r\n case 'w8ben':\r\n case 'w8ben_2021':\r\n formPrintName = form.elements.namedItem('part3.printName').value;\r\n formDate = form.elements.namedItem('part3.date').value;\r\n break;\r\n case 'w9_2018':\r\n case 'w9_2024':\r\n formPrintName = form.elements.namedItem('name').value;\r\n formDate = form.elements.namedItem('certification.date').value;\r\n break;\r\n case 'w8eci':\r\n case 'w8eci_2021':\r\n formPrintName = form.elements.namedItem('part2.printName').value;\r\n formDate = form.elements.namedItem('part2.date').value;\r\n break;\r\n case 'w8exp':\r\n case 'w8exp_2023':\r\n formPrintName = form.elements.namedItem('part4.printName').value;\r\n formDate = form.elements.namedItem('part4.date').value;\r\n break;\r\n case 'w8imy_2017':\r\n case 'w8imy_2021':\r\n formPrintName = form.elements.namedItem('part29.printName').value;\r\n formDate = form.elements.namedItem('part29.date').value;\r\n break;\r\n case 'crsi':\r\n case 'crsi_2024':\r\n formPrintName = form.elements.namedItem('part3.printName').value;\r\n formDate = form.elements.namedItem('part3.dateSigned').value;\r\n break;\r\n case 'crse':\r\n formPrintName = form.elements.namedItem('part4.printName').value;\r\n formDate = form.elements.namedItem('part4.dateSigned').value;\r\n break;\r\n case 'crscp':\r\n formPrintName = form.elements.namedItem('part4.printName').value;\r\n formDate = form.elements.namedItem('part4.dateSigned').value;\r\n break;\r\n default:\r\n formPrintName = null;\r\n formDate = null;\r\n }\r\n }\r\n\r\n this.setState({ printName: formPrintName, signDate: formDate });\r\n this.setCapacityField();\r\n }\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n getBtnConfirmTitle(formGroup, isSigningForm, intl) {\r\n this.baseId = 'formSigning.button.';\r\n\r\n if (!formGroup) {\r\n this.baseId += isSigningForm ? 'signingForm' : 'signForm';\r\n } else {\r\n this.baseId += isSigningForm ? 'signingForms' : 'signForms';\r\n }\r\n\r\n return intl.formatMessage({ id: this.baseId });\r\n }\r\n\r\n isW8Form() {\r\n const { formType } = this.props;\r\n return formType.indexOf('w8') !== -1;\r\n }\r\n\r\n isW9Form() {\r\n const { formType } = this.props;\r\n return formType === 'w9_2018' || formType === 'w9_2024';\r\n }\r\n\r\n isCrsForm() {\r\n const { formType } = this.props;\r\n return formType.startsWith('crs');\r\n }\r\n\r\n render() {\r\n const { isSigningForm, isNameInvalid, usePreQualifyingQuestionnaire, formGroup, intl } = this.props;\r\n const { printName, signDate, signName, capacity } = this.state;\r\n\r\n const title =

    ;\r\n const otherFormData =
    \r\n { this.isW8Form() &&

    \r\n \r\n

    }\r\n { !formGroup\r\n && \r\n


    \r\n { printName }\r\n

    \r\n

    { usePreQualifyingQuestionnaire\r\n && `(${ this.isCrsForm() ? intl.formatMessage({ id: 'formSigning.crsDateFormat' }) : intl.formatMessage({ id: 'formSigning.nonCrsDateFormat' }) })` }
    \r\n { signDate }\r\n

    \r\n
    }\r\n { usePreQualifyingQuestionnaire && !formGroup\r\n &&


    \r\n { capacity }\r\n

    }\r\n {formGroup && usePreQualifyingQuestionnaire\r\n && \r\n


    \r\n { signDate }\r\n

    \r\n

    W-8BEN
    \r\n { printName }\r\n

    \r\n

    W-8BEN
    \r\n { capacity }\r\n

    \r\n

    CRS-I
    \r\n { printName }\r\n

    \r\n

    CRS-I
    \r\n { capacity }\r\n

    \r\n
    }\r\n
    ;\r\n const w9FormInput =
    \r\n

    \r\n \r\n

    \r\n


    \r\n {usePreQualifyingQuestionnaire ? { printName } : this.onChangePrintName(event) } /> }\r\n

    \r\n

    { usePreQualifyingQuestionnaire && intl.formatMessage({ id: 'formSigning.nonCrsDateFormat' }) }
    \r\n { signDate }\r\n

    \r\n

    { usePreQualifyingQuestionnaire ? : 'Capacity In Which Acting (if not person named on Line 1)'}
    \r\n { usePreQualifyingQuestionnaire ? { capacity } : this.onChangeCapacity(event) } value={ capacity } /> }\r\n

    \r\n
    ;\r\n\r\n const content =
    \r\n { !formGroup ? :
    }\r\n { this.isW9Form() ? w9FormInput : otherFormData }\r\n { isNameInvalid &&
    \r\n
    \r\n \r\n
    \r\n
    }\r\n
    ;\r\n\r\n return ( this.onCancel() }\r\n onConfirm={ () => this.onSignForm() }\r\n showCancel={ false }\r\n btnConfirmTitle={ this.getBtnConfirmTitle(formGroup, isSigningForm, intl) }\r\n btnConfirmClass={ isSigningForm ? 'btn-active-form-signing' : '' }\r\n disableConfirm={ false }\r\n id=\"form-signing\"\r\n />);\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n form: {\r\n formData,\r\n isSigningForm,\r\n isNameInvalid,\r\n selectedAccountId,\r\n validationResult: {\r\n customerId\r\n }\r\n },\r\n questionnaires: {\r\n formQuestionnaire\r\n },\r\n app: { onlineConfig },\r\n } = state;\r\n\r\n return {\r\n formData,\r\n questionnaire: formQuestionnaire?.answers,\r\n isSigningForm,\r\n isNameInvalid,\r\n usePreQualifyingQuestionnaire: onlineConfig && onlineConfig.usePreQualifyingQuestionnaire,\r\n selectedAccountId,\r\n customerId,\r\n showAffidavit: formQuestionnaire?.blocks?.find(b => b.id === 'signer')?.answers?.generateAffidavit === 'true'\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)(injectIntl(FormSigning));\r\n","import React, { useState, useEffect } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport CryptoJS from 'crypto-js';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\nimport BoxInputField from 'components/Common/Inputs/BoxInputField';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport {\r\n sendVerificationPin,\r\n} from 'actions';\r\nimport pinType from 'common/pinType';\r\n\r\nconst PinVerificationModal = ({ email, onCancel, onConfirm, authenticatingVerificationPin, requestingVerificationPin, pinVerificationMessages, pinRequestStatus, dispatch }) => {\r\n const [pin, setPin] = useState(null);\r\n const [visible, setIsVisible] = React.useState(false);\r\n const intl = useIntl();\r\n\r\n const resendPinVerifcation = () => {\r\n dispatch(sendVerificationPin(pinType.ElectornicSignaturePin));\r\n };\r\n\r\n useEffect(() => {\r\n if (!pinVerificationMessages) {\r\n setIsVisible(false);\r\n return;\r\n }\r\n setIsVisible(true);\r\n const timer = setTimeout(() => {\r\n setIsVisible(false);\r\n }, 5000);\r\n // eslint-disable-next-line no-return-assign, consistent-return\r\n return () => clearTimeout(timer);\r\n }, [pinVerificationMessages]);\r\n\r\n const error = visible && { pinVerificationMessages };\r\n\r\n const content = \r\n

    \r\n

    \r\n

    \r\n

    \r\n

    \r\n resendPinVerifcation() }\r\n >\r\n { !requestingVerificationPin && `${ intl.formatMessage({ id: 'authentalink.pinConfirmation.ResendEmailText' }) }` }\r\n \r\n

    \r\n \r\n
    ;\r\n\r\n return (\r\n }\r\n closeButtonName={ intl.formatMessage({ id: 'pinVerificationText.title' }) }\r\n className=\"authentalink-verification\"\r\n content={ content }\r\n showCancel={ false }\r\n btnConfirmTitle={ intl.formatMessage({ id: 'authentalink.pinVerification.buttonText' }) }\r\n onCancel={ () => onCancel() }\r\n disableConfirm={ pin === null || pin.length !== 6 || authenticatingVerificationPin }\r\n onConfirm={ () => onConfirm(pin, pinType.ElectornicSignaturePin) }\r\n btnConfirmClass={ `${ authenticatingVerificationPin ? 'btn-active' : '' }` }\r\n footer={ pinVerificationMessages !== null && error }\r\n />\r\n );\r\n};\r\n\r\nPinVerificationModal.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n email: PropTypes.string.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onConfirm: PropTypes.func.isRequired,\r\n authenticatingVerificationPin: PropTypes.bool,\r\n requestingVerificationPin: PropTypes.bool,\r\n pinVerificationMessages: PropTypes.string,\r\n pinRequestStatus: PropTypes.bool,\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired\r\n};\r\n\r\nPinVerificationModal.defaultProps = {\r\n authenticatingVerificationPin: false,\r\n requestingVerificationPin: false,\r\n pinVerificationMessages: null,\r\n pinRequestStatus: false\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n app: {\r\n customerData,\r\n key\r\n },\r\n authentaLink: { authenticatingVerificationPin, pinVerificationMessages, requestingVerificationPin, pinRequestStatus }\r\n } = state;\r\n\r\n const decryptedArray = CryptoJS.AES.decrypt(customerData, key);\r\n const decryptedText = decryptedArray.toString(CryptoJS.enc.Utf8);\r\n const customerDetails = JSON.parse(decryptedText);\r\n\r\n return {\r\n email: customerDetails && customerDetails.CustomerEmailAddress,\r\n authenticatingVerificationPin,\r\n pinVerificationMessages,\r\n requestingVerificationPin,\r\n pinRequestStatus\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)(PinVerificationModal);\r\n","import React, { useState } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { injectIntl } from 'react-intl';\r\nimport { formValueSelector } from 'redux-form';\r\n\r\nimport ModalInstructions from 'components/ModalInstructions';\r\nimport MustHaveReadText from 'components/MustHaveReadText';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\n\r\nconst PenaltiesOfPerjuryModal = ({ formType, onConfirm, onCancel, subjectToBackupWithholding, formGroup, intl }) => {\r\n const [allRead, setAllRead] = useState(false);\r\n const modalInstruction = ModalInstructions(formType ?? formGroup.key, subjectToBackupWithholding);\r\n return (\r\n }\r\n closeButtonName={ intl.formatMessage({ id: 'certification.title' }) }\r\n disableConfirm={ !allRead }\r\n showCancel={ false }\r\n btnConfirmTitle={ intl.formatMessage({ id: 'certification.buttons.agree' }) }\r\n content={ modalInstruction?.CertificationContent\r\n && setAllRead(value) }\r\n /> }\r\n footer={ !allRead ? intl.formatMessage({ id: 'certification.footer.proceedText' }) : }\r\n onConfirm={ () => { onConfirm(); } }\r\n onCancel={ () => { onCancel(); } }\r\n id=\"certification-modal\"\r\n />\r\n );\r\n};\r\n\r\nPenaltiesOfPerjuryModal.propTypes = {\r\n formType: PropTypes.string,\r\n onConfirm: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n subjectToBackupWithholding: PropTypes.bool,\r\n formGroup: PropTypes.shape({\r\n key: PropTypes.string,\r\n formTypes: PropTypes.arrayOf(PropTypes.string)\r\n }),\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired\r\n};\r\n\r\nPenaltiesOfPerjuryModal.defaultProps = {\r\n subjectToBackupWithholding: false,\r\n formType: null,\r\n formGroup: null\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const selector = formValueSelector('w9-form');\r\n const {\r\n questionnaires: { formQuestionnaire }\r\n } = state;\r\n\r\n return {\r\n subjectToBackupWithholding: formQuestionnaire?.answers?.signer?.subjectToBackupWhd ?? selector(state, 'certification.subjectToBackupWithholding')\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n)(injectIntl(PenaltiesOfPerjuryModal));\r\n","import React from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nimport intlArrayHelper from 'common/language/intlArrayHelper';\r\nimport { getWhdStatementByName } from 'common/supportingDocuments/whdStatements';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\n\r\nconst EvidentiaryDocs = ({ supportingDocType, handleChange, intl }) => {\r\n const documentTypes = intlArrayHelper('supportingDocuments.documentType.items');\r\n const evidentiaryDocumentTypes = documentTypes\r\n ?.filter(docType => !getWhdStatementByName(docType.value));\r\n\r\n return ();\r\n};\r\n\r\nEvidentiaryDocs.propTypes = {\r\n supportingDocType: PropTypes.string.isRequired,\r\n handleChange: PropTypes.func.isRequired,\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired,\r\n};\r\n\r\nexport default injectIntl(EvidentiaryDocs);\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { ApiService } from 'services';\r\nimport { addSupportingDoc, fileUploadError } from 'actions';\r\nimport { getStorageSetting } from 'common/storage';\r\n\r\nimport { getWhdStatementByEnumValue } from 'common/supportingDocuments/whdStatements';\r\nimport FileUpload from 'components/Common/FileUpload';\r\nimport FileContent from 'components/Common/FileContent';\r\nimport EvidentiaryDocs from 'components/EvidentiaryDocs';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nclass SupportingDocuments extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n id: PropTypes.number.isRequired,\r\n documents: PropTypes.arrayOf(PropTypes.shape({})),\r\n isFormGroup: PropTypes.bool,\r\n locale: PropTypes.string.isRequired,\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired\r\n };\r\n\r\n static defaultProps = {\r\n documents: [],\r\n isFormGroup: false\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 handleChange(event) {\r\n this.setState({ supportingDocType: event.target.value });\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 }\r\n }\r\n\r\n onFileUploadCancel(file) {\r\n const { dispatch, intl } = this.props;\r\n const error = {\r\n code: 400,\r\n message: `${ intl.formatMessage({ id: 'supportingDocuments.onFileUploadCancel' }, { FileName: file.name }) }`\r\n };\r\n dispatch(fileUploadError(error));\r\n }\r\n\r\n onFileUploadError(file, error) {\r\n const { dispatch, intl } = this.props;\r\n error.message = `${ intl.formatMessage({ id: 'supportingDocuments.onFileUploadCancel' }, { FileName: file.name }) } ${ error.message }`;\r\n dispatch(fileUploadError(error));\r\n }\r\n\r\n onFileUploadSuccess(file, response) {\r\n const { dispatch } = this.props;\r\n dispatch(addSupportingDoc(response));\r\n }\r\n\r\n render() {\r\n const { files, supportingDocType } = this.state;\r\n const { documents, id, isFormGroup, locale } = this.props;\r\n\r\n const filteredDocs = documents\r\n ?.filter(doc => !getWhdStatementByEnumValue(doc.type));\r\n const displayDocs = filteredDocs && filteredDocs.sort((a, b) => {\r\n const lines = Math.ceil(a.typeDescription.length / 28) + Math.ceil((a.originalFileName || a.fileName).length / 28)\r\n - (Math.ceil(b.typeDescription.length / 28) + Math.ceil((b.originalFileName || b.fileName).length / 28));\r\n\r\n if (lines === 0) {\r\n if (a.typeDescription === b.typeDescription) {\r\n return (a.originalFileName || a.fileName) > (b.originalFileName || b.fileName) ? 1 : -1;\r\n }\r\n\r\n return a.typeDescription > b.typeDescription ? 1 : -1;\r\n }\r\n\r\n return lines > 0 ? 1 : -1;\r\n });\r\n\r\n return
    \r\n
    \r\n
    \r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n this.handleChange(e) }\r\n />\r\n
    \r\n
    \r\n this.onFileUploadCancel(file) }\r\n onFileUploadSuccess={ (file, response) => this.onFileUploadSuccess(file, response) }\r\n onFileUploadError={ (file, error) => this.onFileUploadError(file, error) }\r\n locale={ locale }\r\n />\r\n
    \r\n
    \r\n
    \r\n { documents && documents.length > 0 &&
    \r\n

    \r\n
    }\r\n { displayDocs && displayDocs.length > 0 && displayDocs.map(item => item\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)(injectIntl(SupportingDocuments));\r\n","import React, { Component } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { injectIntl } from 'react-intl';\r\n\r\nimport SupportingDocuments from 'components/SupportingDocuments';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport ModalWrapper from 'components/Modals/ModalWrapper';\r\n\r\nclass SupportingDocumentsModal extends Component {\r\n static propTypes = {\r\n id: PropTypes.string,\r\n supportingDocs: PropTypes.arrayOf(PropTypes.shape({})),\r\n onCancel: PropTypes.func.isRequired,\r\n isFormGroup: PropTypes.bool,\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired,\r\n locale: PropTypes.string.isRequired\r\n };\r\n\r\n static defaultProps = {\r\n id: null,\r\n supportingDocs: null,\r\n isFormGroup: false,\r\n };\r\n\r\n onCancel() {\r\n const { onCancel } = this.props;\r\n if (onCancel) {\r\n onCancel();\r\n }\r\n }\r\n\r\n render() {\r\n const { id, supportingDocs, isFormGroup, locale, intl } = this.props;\r\n\r\n const title =

    ;\r\n const content = ;\r\n\r\n return ( this.onCancel() }\r\n />);\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n form: {\r\n formData,\r\n isSigningForm\r\n }\r\n } = state;\r\n\r\n return {\r\n formData,\r\n isSigningForm\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps\r\n)(injectIntl(SupportingDocumentsModal));\r\n","import React from 'react';\r\n\r\n/* eslint-disable import/prefer-default-export */\r\n\r\n/* DESKTOP */\r\nexport const LazyBlankBene2017 = React.lazy(() => import(/* webpackChunkName: \"blank.w8bene2017\" */ 'components/Blanks/BlankBene2017'));\r\nexport const LazyBlankBene2021 = React.lazy(() => import(/* webpackChunkName: \"blank.w8bene2021\" */ 'components/Blanks/BlankBene2021'));\r\nexport const LazyBlankBen = React.lazy(() => import(/* webpackChunkName: \"blank.w8ben\" */ 'components/Blanks/BlankBen'));\r\nexport const LazyBlankBen2021 = React.lazy(() => import(/* webpackChunkName: \"blank.w8ben2021\" */ 'components/Blanks/BlankBen2021'));\r\nexport const LazyBlankW92018 = React.lazy(() => import(/* webpackChunkName: \"blank.w92018\" */ 'components/Blanks/BlankW92018'));\r\nexport const LazyBlankW92024 = React.lazy(() => import(/* webpackChunkName: \"blank.W92024\" */ 'components/Blanks/BlankW92024'));\r\nexport const LazyBlankEci = React.lazy(() => import(/* webpackChunkName: \"blank.w8eci\" */ 'components/Blanks/BlankEci'));\r\nexport const LazyBlankEci2021 = React.lazy(() => import(/* webpackChunkName: \"blank.w8eci2021\" */ 'components/Blanks/BlankEci2021'));\r\nexport const LazyBlankExp2017 = React.lazy(() => import(/* webpackChunkName: \"blank.w8exp2017\" */ 'components/Blanks/BlankExp2017'));\r\nexport const LazyBlankExp2023 = React.lazy(() => import(/* webpackChunkName: \"blank.w8exp2023\" */ 'components/Blanks/BlankExp2023'));\r\nexport const LazyBlankImy2017 = React.lazy(() => import(/* webpackChunkName: \"blank.w8imy2017\" */ 'components/Blanks/BlankImy2017'));\r\nexport const LazyBlankImy2021 = React.lazy(() => import(/* webpackChunkName: \"blank.w8imy2021\" */ 'components/Blanks/BlankImy2021'));\r\nexport const LazyBlankCrsE = React.lazy(() => import(/* webpackChunkName: \"blank.crse\" */ 'components/Blanks/BlankCrsE'));\r\nexport const LazyBlankCrsCp = React.lazy(() => import(/* webpackChunkName: \"blank.crscp\" */ 'components/Blanks/BlankCrsCp'));\r\nexport const LazyBlankCrsI = React.lazy(() => import(/* webpackChunkName: \"blank.crsi\" */ 'components/Blanks/BlankCrsI'));\r\nexport const LazyBlankCrsI2024 = React.lazy(() => import(/* webpackChunkName: \"blank.crsi2024\" */ 'components/Blanks/BlankCrsI2024'));\r\n","import React, { Component, lazy, Suspense } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { isDirty, initialize } from 'redux-form';\r\nimport { injectIntl, IntlProvider } from 'react-intl';\r\nimport { displayMode } from 'common/forms/displayMode';\r\nimport { Redirect } from 'react-router-dom';\r\n\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\nimport ServerError from 'components/Errors/ServerError';\r\nimport NotFoundError from 'components/Errors/NotFoundError';\r\nimport CustomerAvatar from 'components/CustomerAvatar';\r\nimport Button from 'components/Common/Buttons';\r\nimport LocalisedMessage from 'components/Common/LocalisedMessage';\r\nimport ScrollToTop from 'components/ScrollToTop';\r\nimport ValidationResults from 'components/ValidationResults';\r\nimport ValidationResultsStacked from 'components/ValidationResultsStacked';\r\nimport FormConfirmation from 'components/Modals/FormConfirmation';\r\nimport FormSigning from 'components/Modals/FormSigning';\r\nimport PinVerificationModal from 'components/Modals/PinVerificationModal';\r\nimport PenaltiesOfPerjuryModal from 'components/Modals/PenaltiesOfPerjuryModal';\r\nimport { submissionStages } from 'common/forms/submissionStages';\r\nimport SupportingDocumentsModal from 'components/Modals/SupportingDocumentsModal';\r\nimport { isTranslatedForm } from 'common/forms/formTypeHelper';\r\nimport { getFormType } from 'common/forms/formTypes';\r\nimport pinType from 'common/pinType';\r\nimport { defaultLanguage } from 'common/language/localeHelper';\r\n\r\nimport {\r\n validate,\r\n getFormById,\r\n certifyForm,\r\n setSubmissionStage,\r\n confirmForm,\r\n submitForm,\r\n getPreviewPdf,\r\n authenticatePin,\r\n sendVerificationPin,\r\n hidePinVerificationModal,\r\n clearDefaultForm,\r\n clearPdfDownload,\r\n getCollectableSupportingDocPdf,\r\n clearCollectableSupportingDocPdfDownload\r\n} from 'actions';\r\n\r\nimport {\r\n LazyBlankBene2017,\r\n LazyBlankBene2021,\r\n LazyBlankBen,\r\n LazyBlankBen2021,\r\n LazyBlankW92018,\r\n LazyBlankW92024,\r\n LazyBlankEci,\r\n LazyBlankEci2021,\r\n LazyBlankExp2017,\r\n LazyBlankExp2023,\r\n LazyBlankImy2017,\r\n LazyBlankImy2021,\r\n LazyBlankCrsE,\r\n LazyBlankCrsCp,\r\n LazyBlankCrsI,\r\n LazyBlankCrsI2024\r\n} from './lazyBlanks';\r\n\r\nconst FormQuestionnaire = lazy(() => import(/* webpackChunkName: \"blank.questionnaires\" */ 'components/Questionnaires/FormQuestionnaire'));\r\n\r\nclass FormContainer extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n match: PropTypes.shape({\r\n path: PropTypes.string,\r\n params: PropTypes.shape({\r\n formType: PropTypes.string,\r\n formId: PropTypes.string\r\n })\r\n }).isRequired,\r\n history: PropTypes.shape({\r\n go: PropTypes.func,\r\n block: PropTypes.func,\r\n push: PropTypes.func,\r\n location: PropTypes.shape({\r\n pathname: PropTypes.string\r\n })\r\n }).isRequired,\r\n isGettingForm: PropTypes.bool,\r\n formData: PropTypes.shape({\r\n isOnlineForm: PropTypes.bool,\r\n originalFileName: PropTypes.string\r\n }),\r\n isValidatingForm: PropTypes.bool,\r\n validationResult: PropTypes.shape({\r\n result: PropTypes.shape({}),\r\n rejections: PropTypes.oneOfType([\r\n PropTypes.shape({\r\n length: PropTypes.number\r\n }),\r\n PropTypes.arrayOf(PropTypes.shape({}))\r\n ]),\r\n valid: PropTypes.bool,\r\n customerId: PropTypes.string,\r\n customerName: PropTypes.string,\r\n }),\r\n supportingDocs: PropTypes.arrayOf(PropTypes.shape({})),\r\n workflowState: PropTypes.shape({\r\n stage: PropTypes.number\r\n }),\r\n instructionToggled: PropTypes.string,\r\n dirty: PropTypes.bool,\r\n reduxFormName: PropTypes.string,\r\n formError: PropTypes.shape({\r\n code: PropTypes.number,\r\n message: PropTypes.string\r\n }),\r\n submissionStage: PropTypes.string,\r\n pdfData: PropTypes.string,\r\n isFetchingPdfForm: PropTypes.bool,\r\n downloadRequestFormType: PropTypes.string,\r\n showSupportingDocs: PropTypes.bool,\r\n previewOnlyMode: PropTypes.bool,\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired,\r\n formDisplayMode: PropTypes.number.isRequired,\r\n usePreQualifyingQuestionnaire: PropTypes.bool,\r\n customerName: PropTypes.string,\r\n authenticationType: PropTypes.number,\r\n authenticationPinVerified: PropTypes.bool,\r\n showPinVerification: PropTypes.bool,\r\n emailAddress: PropTypes.string,\r\n defaultFormType: PropTypes.string,\r\n formTypes: PropTypes.arrayOf(PropTypes.shape({})),\r\n locale: PropTypes.string.isRequired,\r\n messages: PropTypes.shape({}).isRequired,\r\n englishMessages: PropTypes.shape({}).isRequired,\r\n isFetchingCollectablePdf: PropTypes.bool,\r\n collectableSupportingDocPdfData: PropTypes.string,\r\n selectedAccountId: PropTypes.number,\r\n formQuestionnaire: PropTypes.shape({\r\n answers: PropTypes.shape({\r\n name: PropTypes.shape({\r\n name: PropTypes.string\r\n }),\r\n signer: PropTypes.shape({\r\n name: PropTypes.string\r\n })\r\n })\r\n })\r\n };\r\n\r\n static defaultProps = {\r\n isValidatingForm: false,\r\n validationResult: null,\r\n supportingDocs: null,\r\n workflowState: null,\r\n isGettingForm: true,\r\n formData: null,\r\n formError: null,\r\n instructionToggled: null,\r\n dirty: false,\r\n reduxFormName: null,\r\n submissionStage: submissionStages.Validating,\r\n pdfData: null,\r\n isFetchingPdfForm: false,\r\n downloadRequestFormType: null,\r\n showSupportingDocs: false,\r\n previewOnlyMode: false,\r\n usePreQualifyingQuestionnaire: false,\r\n customerName: null,\r\n authenticationType: null,\r\n authenticationPinVerified: false,\r\n showPinVerification: false,\r\n emailAddress: null,\r\n defaultFormType: null,\r\n formTypes: null,\r\n isFetchingCollectablePdf: false,\r\n collectableSupportingDocPdfData: null,\r\n selectedAccountId: null,\r\n formQuestionnaire: null\r\n };\r\n\r\n static resizeTimer;\r\n\r\n static maxMobileWidth = 992;\r\n\r\n static windowWidth;\r\n\r\n static isMobileSize() {\r\n return FormContainer.windowWidth <= FormContainer.maxMobileWidth;\r\n }\r\n\r\n static updateFormDimensions() {\r\n FormContainer.windowWidth = window.innerWidth;\r\n\r\n if (FormContainer.isMobileSize()) {\r\n const contentElement = document.getElementById('form-content');\r\n if (contentElement != null) {\r\n document.getElementById('form-content').style.height = 'auto';\r\n }\r\n return;\r\n }\r\n if (FormContainer.resizeTimer) {\r\n clearInterval(FormContainer.resizeTimer);\r\n FormContainer.resizeTimer = null;\r\n }\r\n FormContainer.resizeTimer = setInterval(() => {\r\n FormContainer.adjustFormContainerHeight();\r\n }, 1000, this);\r\n }\r\n\r\n static adjustFormContainerHeight() {\r\n clearInterval(FormContainer.resizeTimer);\r\n FormContainer.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 != null && pages.length > 1 && pages[i].className != null) {\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\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 constructor(props) {\r\n super(props);\r\n\r\n const { formDisplayMode } = this.props;\r\n\r\n this.state = {\r\n showMobileView: window.innerWidth <= FormContainer.maxMobileWidth,\r\n showScrollToTop: formDisplayMode !== displayMode.Stacked && window.scrollY !== 0,\r\n pdfDownload: null,\r\n showResult: false,\r\n collectablePdfDownload: null,\r\n };\r\n\r\n this.unblock = props.history.block((location, action) => {\r\n const { dirty } = this.props;\r\n if (dirty) {\r\n return 'Are you sure you want to leave this page?';\r\n }\r\n return null;\r\n });\r\n this.showScrollToTopIcon = this.showScrollToTopIcon.bind(this);\r\n this.adjustFormView = this.adjustFormView.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const { dispatch, match } = this.props;\r\n const { params: { formType, formId } } = match;\r\n\r\n dispatch(getFormById(formType, formId));\r\n\r\n this.setMainContainerClass();\r\n\r\n window.addEventListener('scroll', this.showScrollToTopIcon, false);\r\n window.addEventListener('resize', this.adjustFormView, false);\r\n }\r\n\r\n // eslint-disable-next-line camelcase\r\n UNSAFE_componentWillReceiveProps(newProps) {\r\n const {\r\n dispatch,\r\n match,\r\n instructionToggled,\r\n isFetchingPdfForm,\r\n isValidatingForm,\r\n isFetchingCollectablePdf\r\n } = this.props;\r\n\r\n if (match.path !== newProps.match.path && match.params !== newProps.match.params) {\r\n const { params: { formType, formId } } = newProps.match;\r\n dispatch(getFormById(formType, formId));\r\n return;\r\n }\r\n\r\n if (isFetchingPdfForm && !newProps.isFetchingPdfForm && newProps.pdfData) {\r\n this.setState({\r\n pdfDownload: newProps.pdfData\r\n });\r\n const link = document.createElement('a');\r\n link.href = newProps.pdfData;\r\n link.setAttribute('target', '_blank');\r\n link.setAttribute('download', `${ match.params.formType }.pdf`);\r\n document.body.appendChild(link);\r\n link.click();\r\n } else {\r\n this.setState({\r\n pdfDownload: null\r\n });\r\n }\r\n\r\n if (isFetchingCollectablePdf && !newProps.isFetchingCollectablePdf && newProps.collectableSupportingDocPdfData) {\r\n this.setState({\r\n collectablePdfDownload: newProps.collectableSupportingDocPdfData\r\n });\r\n const link = document.createElement('a');\r\n link.href = newProps.collectableSupportingDocPdfData;\r\n link.setAttribute('target', '_blank');\r\n link.setAttribute('download', 'affidavit.pdf');\r\n document.body.appendChild(link);\r\n link.click();\r\n } else {\r\n this.setState({\r\n collectablePdfDownload: null\r\n });\r\n }\r\n\r\n if (!newProps.isValidatingForm && isValidatingForm) {\r\n this.setState({ showResult: true });\r\n }\r\n\r\n if (newProps.instructionToggled && newProps.instructionToggled !== instructionToggled) {\r\n FormContainer.updateFormDimensions();\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { dispatch, isValidatingForm, workflowState, history, defaultFormType } = this.props;\r\n FormContainer.updateFormDimensions();\r\n\r\n if (!isValidatingForm && prevProps.isValidatingForm) {\r\n const element = document.getElementById('validation-results');\r\n if (element != null) {\r\n element.scrollIntoView();\r\n }\r\n }\r\n\r\n if (workflowState && workflowState.stage > 2) {\r\n if (defaultFormType) {\r\n dispatch(clearDefaultForm());\r\n }\r\n history.push(`${ history.location.pathname }/success`);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { dispatch } = this.props;\r\n const { pdfDownload, collectablePdfDownload } = this.state;\r\n window.removeEventListener('resize', this.adjustFormView, false);\r\n window.removeEventListener('scroll', this.showScrollToTopIcon, false);\r\n\r\n this.unblock();\r\n\r\n const mainContainer = document.getElementById('main-container');\r\n if (mainContainer) {\r\n mainContainer.className = 'container main-content';\r\n }\r\n\r\n if (pdfDownload) {\r\n URL.revokeObjectURL(pdfDownload);\r\n }\r\n dispatch(clearPdfDownload());\r\n\r\n if (collectablePdfDownload) {\r\n URL.revokeObjectURL(collectablePdfDownload);\r\n }\r\n dispatch(clearCollectableSupportingDocPdfDownload());\r\n }\r\n\r\n onValidateForm(formType, values) {\r\n const { dispatch, match, reduxFormName } = this.props;\r\n const { params: { formId } } = match;\r\n\r\n dispatch(validate(formType, formId, values));\r\n dispatch(initialize(reduxFormName, values));\r\n }\r\n\r\n onFormConfirmationConfirm() {\r\n const { dispatch, match } = this.props;\r\n const { params: { formId, formType } } = match;\r\n dispatch(confirmForm(formType, formId));\r\n }\r\n\r\n onFormConfirmationCancel() {\r\n this.resetSubmisson();\r\n }\r\n\r\n onCertificationConfirm() {\r\n const { dispatch, match: { params: { formId } } } = this.props;\r\n dispatch(certifyForm(formId));\r\n }\r\n\r\n onCertificationCancel() {\r\n this.resetSubmisson();\r\n }\r\n\r\n onFormSigningCancel() {\r\n this.resetSubmisson();\r\n }\r\n\r\n onUploadDocumentClick() {\r\n this.setState({ showSupportingDocs: true });\r\n }\r\n\r\n onPinVerificationCancel() {\r\n const { dispatch } = this.props;\r\n dispatch(hidePinVerificationModal());\r\n this.resetSubmisson();\r\n }\r\n\r\n onPinVerificationConfirm(pin, pinVerificationType) {\r\n const { dispatch } = this.props;\r\n dispatch(authenticatePin(pin, pinVerificationType));\r\n }\r\n\r\n getBlankComponent(BlankComponent) {\r\n const { match: { params: { formType } }, intl } = this.props;\r\n return (\r\n
    }>\r\n this.onValidateForm(formType, values) }\r\n onValidationResultsClick={ () => this.setState({ showResult: true }) }\r\n onSupportingDocumentsClick={ () => this.setState({ showSupportingDocs: true }) }\r\n />\r\n \r\n );\r\n }\r\n\r\n getWrapperClasses() {\r\n const { match: { params: { formType } }, formDisplayMode } = this.props;\r\n const { showMobileView } = this.state;\r\n let classes = `${ showMobileView ? 'mobile-' : '' }blank-wrapper`;\r\n\r\n classes += formType && formType.indexOf('w') === 0 && formDisplayMode !== displayMode.Stacked ? ' w-blank-wrapper' : '';\r\n classes += formType && (formType.indexOf('crs') === 0 || formType.indexOf('ucrs') === 0) && formDisplayMode !== displayMode.Stacked ? ' crs-blank-wrapper' : '';\r\n classes += formType && formType.indexOf('rc') === 0 && formDisplayMode !== displayMode.Stacked ? ' rc-blank-wrapper' : '';\r\n classes += (navigator.userAgent.indexOf('Edge') < 0 && navigator.userAgent.indexOf('Edg') !== -1 && window.screenTop > 0) ? ' wrapper-fullscreen' : '';\r\n return classes;\r\n }\r\n\r\n getActionElements() {\r\n const { showMobileView, showScrollToTop } = this.state;\r\n const {\r\n isGettingForm,\r\n isValidatingForm,\r\n formError,\r\n workflowState,\r\n dirty,\r\n formDisplayMode\r\n } = this.props;\r\n const showStackedView = formDisplayMode === displayMode.Stacked && !showMobileView;\r\n const isBusy = isGettingForm || isValidatingForm;\r\n return (\r\n \r\n { !isGettingForm && formError == null && workflowState != null &&
    \r\n { showStackedView &&

    Please check your answers to resolve any problems before you can continue.

    }\r\n { this.showSignAndSubmit() && !isBusy && this.signAndSubmit() }\r\n disabled={ workflowState.stage > 2 }\r\n >\r\n { this.signSubmitButtonText() }\r\n }\r\n { this.showCheckButton() && = 2 && !dirty) }\r\n onClick={ () => document.getElementById('dummy-validate-form-btn').click() }\r\n >\r\n \r\n }\r\n { (formDisplayMode !== displayMode.Stacked || showMobileView) && showScrollToTop && }\r\n { showStackedView && this.onUploadDocumentClick() }\r\n >\r\n \r\n }\r\n
    }\r\n
    \r\n );\r\n }\r\n\r\n setMainContainerClass() {\r\n const { formDisplayMode } = this.props;\r\n const { showMobileView } = this.state;\r\n\r\n const mainContainer = document.getElementById('main-container');\r\n const stackedElement = document.getElementById('stacked-view');\r\n if (formDisplayMode === displayMode.Stacked && stackedElement && mainContainer && !showMobileView) {\r\n mainContainer.className = 'container main-content stacked';\r\n } else {\r\n mainContainer.className = 'container main-content';\r\n }\r\n }\r\n\r\n adjustFormView() {\r\n this.setState({ showMobileView: window.innerWidth <= FormContainer.maxMobileWidth });\r\n FormContainer.updateFormDimensions();\r\n this.setMainContainerClass();\r\n }\r\n\r\n showScrollToTopIcon(e, elementId) {\r\n const { showScrollToTop } = this.state;\r\n if (elementId) {\r\n const element = document.getElementById(elementId);\r\n if (element) {\r\n const scrolled = element.scrollTop !== 0;\r\n if (showScrollToTop !== scrolled) {\r\n this.setState({ showScrollToTop: element.scrollTop !== 0 });\r\n }\r\n }\r\n } else {\r\n const scrolled = window.scrollY !== 0;\r\n if (showScrollToTop !== scrolled) {\r\n this.setState({ showScrollToTop: window.scrollY !== 0 });\r\n }\r\n }\r\n }\r\n\r\n signAndSubmit() {\r\n const { dispatch, match, workflowState, previewOnlyMode, authenticationType, authenticationPinVerified } = this.props;\r\n const { params: { formId, formType } } = match;\r\n\r\n if (!previewOnlyMode && authenticationType && authenticationType === 1 && !authenticationPinVerified && !formType.startsWith('crs')) {\r\n dispatch(sendVerificationPin(pinType.ElectornicSignaturePin));\r\n }\r\n\r\n if (workflowState && workflowState.stage === 2) {\r\n dispatch(setSubmissionStage(submissionStages.Signing));\r\n return;\r\n }\r\n\r\n dispatch(submitForm(formId, submissionStages.Confirmation));\r\n }\r\n\r\n resetSubmisson() {\r\n const { dispatch } = this.props;\r\n dispatch(setSubmissionStage(submissionStages.Validating));\r\n }\r\n\r\n signSubmitButtonText() {\r\n const { previewOnlyMode } = this.props;\r\n const messageId = previewOnlyMode ? 'signSubmit.previewOnlyMode.buttonText' : 'signSubmit.buttonText';\r\n return ;\r\n }\r\n\r\n showSignAndSubmit() {\r\n const { validationResult, dirty } = this.props;\r\n if (validationResult != null) {\r\n if (validationResult.rejections == null || validationResult.rejections.length === 0) {\r\n if (this.formQuestionnaireSupported) {\r\n return true;\r\n }\r\n return !dirty;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n showCheckButton() {\r\n const { validationResult, dirty, isValidatingForm } = this.props;\r\n\r\n return validationResult == null || (validationResult.rejections != null && validationResult.rejections.length > 0) || dirty || isValidatingForm;\r\n }\r\n\r\n downloadPreviewPdf() {\r\n const { dispatch, match, intl } = this.props;\r\n const { params: { formType, formId } } = match;\r\n\r\n dispatch(getPreviewPdf(formId, formType, intl));\r\n }\r\n\r\n downloadCollectableSupportingDocPreviewPdf(collectableSupportingDocType) {\r\n const {\r\n dispatch,\r\n match,\r\n intl,\r\n selectedAccountId,\r\n validationResult,\r\n formQuestionnaire\r\n } = this.props;\r\n const { params: { formId } } = match;\r\n dispatch(getCollectableSupportingDocPdf(\r\n {\r\n UploadedFormId: formId,\r\n accountId: selectedAccountId,\r\n customerName: formQuestionnaire?.answers?.name?.name,\r\n printName: formQuestionnaire?.answers?.signer?.name,\r\n customerId: validationResult.customerId,\r\n collectableSupportingDocType,\r\n signature: null\r\n },\r\n intl\r\n ));\r\n }\r\n\r\n renderForm() {\r\n const { match: { params: { formType } } } = this.props;\r\n\r\n switch (formType) {\r\n case 'w8bene_2017':\r\n return this.getBlankComponent(LazyBlankBene2017);\r\n case 'w8bene_2021':\r\n return this.getBlankComponent(LazyBlankBene2021);\r\n case 'w8ben':\r\n return this.getBlankComponent(LazyBlankBen);\r\n case 'w8ben_2021':\r\n return this.getBlankComponent(LazyBlankBen2021);\r\n case 'w9_2018':\r\n return this.getBlankComponent(LazyBlankW92018);\r\n case 'w9_2024':\r\n return this.getBlankComponent(LazyBlankW92024);\r\n case 'w8eci':\r\n return this.getBlankComponent(LazyBlankEci);\r\n case 'w8eci_2021':\r\n return this.getBlankComponent(LazyBlankEci2021);\r\n case 'w8exp':\r\n return this.getBlankComponent(LazyBlankExp2017);\r\n case 'w8exp_2023':\r\n return this.getBlankComponent(LazyBlankExp2023);\r\n case 'w8imy_2017':\r\n return this.getBlankComponent(LazyBlankImy2017);\r\n case 'w8imy_2021':\r\n return this.getBlankComponent(LazyBlankImy2021);\r\n case 'crse':\r\n return this.getBlankComponent(LazyBlankCrsE);\r\n case 'crsi':\r\n return this.getBlankComponent(LazyBlankCrsI);\r\n case 'crsi_2024':\r\n return this.getBlankComponent(LazyBlankCrsI2024);\r\n case 'crscp':\r\n return this.getBlankComponent(LazyBlankCrsCp);\r\n default:\r\n return
    Incorrect blank type
    ;\r\n }\r\n }\r\n\r\n render() {\r\n const { showMobileView, showResult, showSupportingDocs } = this.state;\r\n const {\r\n intl,\r\n match: { params: { formType, formId } },\r\n isGettingForm,\r\n workflowState,\r\n validationResult,\r\n formError,\r\n dirty,\r\n previewOnlyMode,\r\n formDisplayMode,\r\n usePreQualifyingQuestionnaire,\r\n supportingDocs,\r\n submissionStage,\r\n isFetchingPdfForm,\r\n downloadRequestFormType,\r\n showPinVerification,\r\n formTypes,\r\n locale,\r\n messages,\r\n englishMessages,\r\n isFetchingCollectablePdf,\r\n } = this.props;\r\n\r\n const isNoFormSupported = getFormType(formType)?.isNoFormSupported === true;\r\n const canViewForm = formTypes.find(x => x.formType === formType && (x.isVisible && x.isEnabled));\r\n const showStackedView = formDisplayMode === displayMode.Stacked && !showMobileView;\r\n const formQuestionnaireSupported = usePreQualifyingQuestionnaire && isNoFormSupported;\r\n\r\n const localeToDisplay = formType !== null && isTranslatedForm(formType) && formQuestionnaireSupported\r\n ? locale\r\n : defaultLanguage.key;\r\n const messagesToDisplay = localeToDisplay === defaultLanguage.key ? englishMessages : messages;\r\n\r\n return (\r\n canViewForm\r\n ? \r\n { (formError != null && formError.code === 404) && }\r\n { (formError != null && formError.code !== 404) && }\r\n { !isGettingForm && formError == null && formType != null && \r\n { formQuestionnaireSupported &&
    }>\r\n this.signAndSubmit() } showSupportingDocs={ () => this.onUploadDocumentClick() } />}\r\n { !formQuestionnaireSupported &&
    \r\n
    \r\n { !isGettingForm && formError == null && formType != null &&
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { (isGettingForm ?
    : this.renderForm()) }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { !showStackedView && this.getActionElements() }\r\n
    }\r\n { !showStackedView && this.setState({\r\n showResult: isOpen\r\n }) }\r\n onSignAndSubmit={ () => this.signAndSubmit() }\r\n onUploadDocumentClick={ () => this.onUploadDocumentClick() }\r\n previewOnlyMode={ previewOnlyMode }\r\n /> }\r\n
    \r\n { showStackedView && !isGettingForm && !formError &&
    \r\n this.signAndSubmit() }\r\n previewOnlyMode={ previewOnlyMode }\r\n isGettingForm={ workflowState == null }\r\n />\r\n { this.getActionElements() }\r\n
    }\r\n
    }\r\n { !showPinVerification && submissionStage === submissionStages.Confirmation && this.showSignAndSubmit() && this.onFormConfirmationConfirm() }\r\n onCancel={ () => this.onFormConfirmationCancel() }\r\n previewOnlyMode={ previewOnlyMode }\r\n onClickHandler={ () => this.downloadPreviewPdf() }\r\n isFetchingPdf={ isFetchingPdfForm }\r\n downloadFormType={ downloadRequestFormType }\r\n supportingDocOnClickHandler={ supportingDocType => this.downloadCollectableSupportingDocPreviewPdf(supportingDocType) }\r\n isFetchingCollectablePdf={ isFetchingCollectablePdf }\r\n /> }\r\n { !showPinVerification && submissionStage === submissionStages.Certification && this.onCertificationConfirm() }\r\n onCancel={ () => this.onCertificationCancel() }\r\n /> }\r\n { submissionStage === submissionStages.Signing && this.onFormSigningCancel() }\r\n /> }\r\n { showSupportingDocs && this.setState({ showSupportingDocs: false }) }\r\n locale={ localeToDisplay }\r\n /> }\r\n { showPinVerification && this.showSignAndSubmit() && this.onPinVerificationCancel() }\r\n onConfirm={ (pin, pinVerificationType) => this.onPinVerificationConfirm(pin, pinVerificationType) }\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.formType != null) {\r\n let formName = ownProps.match.params.formType;\r\n const splitIndex = ownProps.match.params.formType.indexOf('_');\r\n if (splitIndex > -1) {\r\n formName = ownProps.match.params.formType.substring(0, splitIndex);\r\n }\r\n reduxFormName = `${ formName }-form`;\r\n }\r\n return { dirty: isDirty(reduxFormName)(state), reduxFormName };\r\n}\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n const {\r\n app: { onlineConfig: { previewOnlyMode, formDisplayMode, usePreQualifyingQuestionnaire, authenticationType, customerEmailAddress, defaultFormType, formTypes }, locale, messages, englishMessages },\r\n authentaLink: { authenticationPinVerified, showPinVerification },\r\n form: {\r\n isValidatingForm,\r\n validationResult,\r\n supportingDocs,\r\n workflowState,\r\n isGettingForm,\r\n formData,\r\n formError,\r\n instructionToggled,\r\n isFormConfirmationShown,\r\n submissionStage,\r\n pdfData,\r\n isFetchingPdfForm,\r\n downloadRequestFormType,\r\n selectedAccountId\r\n },\r\n supportingDocuments: {\r\n isFetchingCollectablePdf,\r\n collectableSupportingDocPdfData\r\n },\r\n questionnaires: {\r\n formQuestionnaire\r\n }\r\n } = state;\r\n\r\n const { dirty, reduxFormName } = getReduxFormDirtyStatus(state, ownProps);\r\n\r\n return {\r\n isValidatingForm,\r\n validationResult,\r\n supportingDocs,\r\n workflowState,\r\n isGettingForm,\r\n formError,\r\n formData,\r\n instructionToggled,\r\n dirty,\r\n reduxFormName,\r\n isFormConfirmationShown,\r\n submissionStage,\r\n pdfData,\r\n isFetchingPdfForm,\r\n downloadRequestFormType,\r\n previewOnlyMode,\r\n formDisplayMode,\r\n usePreQualifyingQuestionnaire,\r\n authenticationType,\r\n authenticationPinVerified,\r\n showPinVerification,\r\n emailAddress: customerEmailAddress,\r\n defaultFormType,\r\n formTypes,\r\n locale,\r\n messages,\r\n englishMessages,\r\n isFetchingCollectablePdf,\r\n collectableSupportingDocPdfData,\r\n selectedAccountId,\r\n formQuestionnaire\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)(injectIntl(FormContainer));\r\n","import React, { useState, useEffect, lazy, Suspense } from 'react';\r\nimport { PropTypes } from 'prop-types';\r\nimport { useParams } from 'react-router-dom';\r\nimport { injectIntl } from 'react-intl';\r\nimport { connect } from 'react-redux';\r\n\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\nimport FormGroupTypes from 'common/forms/formGroupTypes';\r\nimport { submissionStages } from 'common/forms/submissionStages';\r\nimport SupportingDocumentsModal from 'components/Modals/SupportingDocumentsModal';\r\nimport FormConfirmation from 'components/Modals/FormConfirmation';\r\nimport PenaltiesOfPerjuryModal from 'components/Modals/PenaltiesOfPerjuryModal';\r\nimport FormSigning from 'components/Modals/FormSigning';\r\n\r\nimport {\r\n setSubmissionStage,\r\n submitFormGroup,\r\n confirmFormGroup,\r\n getFormGroupFormPreviewPdf,\r\n certifyFormGroup,\r\n getFormGroupSupportingDocs,\r\n clearPdfDownload,\r\n getCollectableSupportingDocPdf,\r\n} from 'actions';\r\n\r\nconst FormQuestionnaire = lazy(() => import(/* webpackChunkName: \"blank.questionnaires\" */ 'components/Questionnaires/FormQuestionnaire'));\r\n\r\nconst FormGroupContainer = ({\r\n supportingDocs,\r\n dispatch,\r\n workflowState,\r\n submissionStage,\r\n intl,\r\n pdfData,\r\n isFetchingPdfForm,\r\n downloadRequestFormType,\r\n englishMessages,\r\n isFetchingCollectablePdf,\r\n collectableSupportingDocPdfData,\r\n selectedAccountId,\r\n questionnaire,\r\n validationResult }) => {\r\n const [showSupportingDocs, setShowSupportingDocs] = useState(false);\r\n const [downloadFormType, setFormType] = useState('');\r\n const [downloadCollectableSupportingDocType, setCollectableSupportingType] = useState('');\r\n const { groupId, formGroupType } = useParams();\r\n\r\n const signAndSubmit = () => {\r\n if (workflowState && workflowState.stage === 2) {\r\n dispatch(setSubmissionStage(submissionStages.Signing));\r\n return;\r\n }\r\n\r\n dispatch(submitFormGroup(groupId, submissionStages.Confirmation));\r\n };\r\n\r\n const onFormConfirmationConfirm = () => {\r\n dispatch(confirmFormGroup(formGroupType, groupId));\r\n };\r\n\r\n const resetSubmisson = () => {\r\n dispatch(setSubmissionStage(submissionStages.Validating));\r\n };\r\n\r\n const onFormConfirmationCancel = () => {\r\n resetSubmisson();\r\n };\r\n\r\n const downloadPreviewPdf = (formType) => {\r\n setFormType(formType);\r\n dispatch(getFormGroupFormPreviewPdf(groupId, formType, intl));\r\n };\r\n\r\n const downloadCollectableSupportingDocPreviewPdf = (collectableSupportingDocType) => {\r\n setCollectableSupportingType(collectableSupportingDocType);\r\n dispatch(getCollectableSupportingDocPdf(\r\n {\r\n UploadedFormId: groupId,\r\n accountId: selectedAccountId,\r\n customerName: `${ questionnaire?.answers?.name?.firstName } ${ questionnaire?.answers?.name?.lastName }`,\r\n printName: questionnaire?.answers?.signer?.name,\r\n customerId: validationResult.customerId,\r\n collectableSupportingDocType,\r\n signature: null\r\n },\r\n intl\r\n ));\r\n };\r\n\r\n const onCertificationConfirm = () => {\r\n dispatch(certifyFormGroup(groupId));\r\n };\r\n\r\n const onCertificationCancel = () => {\r\n resetSubmisson();\r\n };\r\n\r\n const onFormSigningCancel = () => {\r\n resetSubmisson();\r\n };\r\n\r\n useEffect(() => {\r\n if (!isFetchingPdfForm && pdfData) {\r\n const link = document.createElement('a');\r\n link.href = pdfData;\r\n link.setAttribute('target', '_blank');\r\n link.setAttribute('download', `${ downloadFormType }.pdf`);\r\n document.body.appendChild(link);\r\n link.click();\r\n }\r\n }, [pdfData]);\r\n\r\n useEffect(() => {\r\n if (!isFetchingCollectablePdf && collectableSupportingDocPdfData) {\r\n const link = document.createElement('a');\r\n link.href = collectableSupportingDocPdfData;\r\n link.setAttribute('target', '_blank');\r\n link.setAttribute('download', `${ downloadCollectableSupportingDocType }.pdf`);\r\n document.body.appendChild(link);\r\n link.click();\r\n }\r\n }, [collectableSupportingDocPdfData]);\r\n\r\n useEffect(() => {\r\n dispatch(getFormGroupSupportingDocs(groupId));\r\n\r\n return () => {\r\n dispatch(clearPdfDownload());\r\n };\r\n }, []);\r\n\r\n return (\r\n \r\n { groupId && formGroupType &&
    }>\r\n signAndSubmit() }\r\n showSupportingDocs={ () => setShowSupportingDocs(true) }\r\n />\r\n }\r\n { submissionStage === submissionStages.Confirmation && onFormConfirmationConfirm() }\r\n onCancel={ () => onFormConfirmationCancel() }\r\n intl={ intl }\r\n previewOnlyMode={ false }\r\n onClickHandler={ formType => downloadPreviewPdf(formType) }\r\n isFetchingPdf={ isFetchingPdfForm }\r\n downloadFormType={ downloadRequestFormType }\r\n formGroup={ FormGroupTypes.find(group => group.key === formGroupType) }\r\n supportingDocOnClickHandler={ supportingDocType => downloadCollectableSupportingDocPreviewPdf(supportingDocType) }\r\n isFetchingCollectablePdf={ isFetchingCollectablePdf }\r\n /> }\r\n { showSupportingDocs && setShowSupportingDocs(false) }\r\n locale=\"en\"\r\n isFormGroup\r\n /> }\r\n { submissionStage === submissionStages.Certification && group.key === formGroupType) }\r\n onConfirm={ () => onCertificationConfirm() }\r\n onCancel={ () => onCertificationCancel() }\r\n /> }\r\n { submissionStage === submissionStages.Signing && group.key === formGroupType) }\r\n formGroupId={ groupId }\r\n onCancel={ () => onFormSigningCancel() }\r\n /> }\r\n \r\n );\r\n};\r\n\r\nFormGroupContainer.propTypes = {\r\n supportingDocs: PropTypes.arrayOf(PropTypes.shape({})),\r\n dispatch: PropTypes.func.isRequired,\r\n match: PropTypes.shape({\r\n path: PropTypes.string,\r\n params: PropTypes.shape({\r\n formGroupType: PropTypes.string,\r\n groupId: PropTypes.string\r\n })\r\n }).isRequired,\r\n workflowState: PropTypes.shape({\r\n stage: PropTypes.number\r\n }),\r\n submissionStage: PropTypes.string,\r\n intl: PropTypes.shape({\r\n formatMessage: PropTypes.func.isRequired\r\n }).isRequired,\r\n pdfData: PropTypes.string,\r\n isFetchingPdfForm: PropTypes.bool,\r\n downloadRequestFormType: PropTypes.string,\r\n englishMessages: PropTypes.shape({}).isRequired,\r\n isFetchingCollectablePdf: PropTypes.bool,\r\n collectableSupportingDocPdfData: PropTypes.string,\r\n selectedAccountId: PropTypes.number,\r\n questionnaire: PropTypes.shape({\r\n answers: PropTypes.shape({\r\n name: PropTypes.shape({\r\n firstName: PropTypes.string,\r\n lastName: PropTypes.string\r\n }),\r\n signer: PropTypes.shape({\r\n name: PropTypes.string\r\n })\r\n })\r\n }),\r\n validationResult: PropTypes.shape({\r\n customerId: PropTypes.string,\r\n customerName: PropTypes.string,\r\n })\r\n};\r\n\r\nFormGroupContainer.defaultProps = {\r\n supportingDocs: [],\r\n workflowState: null,\r\n submissionStage: submissionStages.Validating,\r\n pdfData: null,\r\n isFetchingPdfForm: false,\r\n downloadRequestFormType: null,\r\n isFetchingCollectablePdf: false,\r\n collectableSupportingDocPdfData: null,\r\n selectedAccountId: null,\r\n questionnaire: null,\r\n validationResult: null,\r\n};\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n const {\r\n app: { englishMessages },\r\n form: {\r\n supportingDocs,\r\n workflowState,\r\n submissionStage,\r\n pdfData,\r\n isFetchingPdfForm,\r\n downloadRequestFormType,\r\n selectedAccountId,\r\n validationResult\r\n },\r\n supportingDocuments: {\r\n isFetchingCollectablePdf,\r\n collectableSupportingDocPdfData\r\n },\r\n questionnaires: {\r\n formQuestionnaire\r\n }\r\n } = state;\r\n\r\n return {\r\n workflowState,\r\n supportingDocs,\r\n submissionStage,\r\n pdfData,\r\n isFetchingPdfForm,\r\n downloadRequestFormType,\r\n englishMessages,\r\n isFetchingCollectablePdf,\r\n collectableSupportingDocPdfData,\r\n selectedAccountId,\r\n questionnaire: formQuestionnaire,\r\n validationResult\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => ({ dispatch });\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(injectIntl(FormGroupContainer));\r\n","import React, { Component, createContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport 'core-js/actual';\r\nimport 'regenerator-runtime/runtime';\r\nimport { Route, Switch } from 'react-router';\r\nimport { Link } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { ConnectedRouter } from 'connected-react-router';\r\nimport svgxuse from 'svgxuse';\r\nimport smoothscroll from 'smoothscroll-polyfill';\r\nimport CryptoJS from 'crypto-js';\r\nimport { useIntl } from 'react-intl';\r\nimport { createBrowserHistory } from 'history';\r\n\r\nimport EnvConfig from 'env.config';\r\nimport PreloadBrands from 'common/app/Preload';\r\nimport AppProvider from 'components/AppProvider';\r\nimport Notifications from 'components/Common/Notifications';\r\nimport ErrorBoundary from 'components/Errors/ErrorBoundary';\r\nimport NotFoundError from 'components/Errors/NotFoundError';\r\nimport ServerError from 'components/Errors/ServerError';\r\nimport InternetConnectionError from 'components/Errors/InternetConnectionError';\r\nimport SessionTimeoutError from 'components/Errors/SessionTimeoutError';\r\nimport InsufficientFormInformationError from 'components/Errors/InsufficientFormInformationError';\r\nimport UnsupportedError from 'components/Errors/UnsupportedError';\r\nimport UnauthorisedError from 'components/Errors/UnauthorisedError';\r\nimport UnlicensedError from 'components/Errors/UnlicensedError';\r\nimport ServiceUnavailableError from 'components/Errors/ServiceUnavailableError';\r\nimport SuccessPage from 'components/SuccessPage';\r\nimport FooterLinkPage from 'components/Footer/FooterLinkPage';\r\nimport LogoutPage from 'components/LogoutPage';\r\nimport AuthentaLinkPinConfirmation from 'components/AuthentaLink/PinConfirmation';\r\nimport AuthentaLinkReferenceConfirmation from 'components/AuthentaLink/ReferenceConfirmation';\r\nimport DefaultFormDisplay from 'components/Forms/DefaultFormDisplay';\r\nimport Header from 'components/Header';\r\nimport Footer from 'components/Footer';\r\nimport CookieBanner from 'components/CookieBanner';\r\nimport LoadingWrapper from 'components/Common/LoadingWrapper';\r\nimport KeepAlive from 'components/KeepAlive';\r\nimport Eula from 'components/Modals/Eula';\r\nimport 'components/IconLibrary';\r\n\r\nimport PreQualifyingQuestionnaire from 'components/Questionnaires/PreQualifyingQuestionnaire';\r\nimport FormSelection from 'containers/FormSelection';\r\nimport Home from 'containers/Home';\r\nimport FormContainer from 'containers/Form';\r\nimport FormGroupContainer from 'containers/FormGroup';\r\n\r\nimport {\r\n AuthState,\r\n getSitePreload,\r\n} from 'actions';\r\nimport { getOnlineConfig, redirectToApi, getAuthState } from 'actions/app';\r\n\r\nimport '../../scss/vendors/bootstrap.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\nexport const ConfigContext = createContext(null);\r\n\r\nconst unprotectedRoutes = [\r\n '/loggedout',\r\n 'login',\r\n '/unauthorized',\r\n '/unlicensed',\r\n '/server',\r\n '/notfound',\r\n '/unsupported',\r\n '/no-internet',\r\n '/sessiontimeout',\r\n '/unavailable',\r\n '/links/privacy',\r\n '/links/cookies',\r\n '/links/termsOfUse',\r\n '/authentalink',\r\n '/confirmPin'\r\n];\r\n\r\nconst confirmAppStateToProceed = [\r\n '/authentalink'\r\n];\r\n\r\n// A wrapper for that displays loading\r\n// screen if you're not yet authenticated.\r\nconst ProtectedRoute = ({ isAllowed, ...props }) => (\r\n isAllowed ? :
    \r\n);\r\n\r\nProtectedRoute.propTypes = {\r\n isAllowed: PropTypes.bool.isRequired\r\n};\r\n\r\nconst AppLoadingWrapper = () => {\r\n const intl = useIntl();\r\n\r\n return (\r\n
    \r\n );\r\n};\r\n\r\n/* eslint-disable react/prefer-stateless-function */\r\nclass App extends Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n isAuthenticated: PropTypes.bool.isRequired,\r\n isEulaAccepted: PropTypes.bool.isRequired,\r\n bypassEula: PropTypes.bool.isRequired,\r\n defaultFormType: PropTypes.string,\r\n customerName: PropTypes.string,\r\n authState: PropTypes.string,\r\n messages: PropTypes.shape({}),\r\n shortDictionaryLoaded: PropTypes.bool,\r\n fullDictionaryLoaded: PropTypes.bool,\r\n onlineConfig: PropTypes.shape(),\r\n isOnline: PropTypes.bool,\r\n showModalUpFront: PropTypes.bool,\r\n router: PropTypes.shape(),\r\n singleFormJourney: PropTypes.bool,\r\n };\r\n\r\n static defaultProps = {\r\n defaultFormType: null,\r\n customerName: null,\r\n authState: AuthState.Unknown,\r\n messages: null,\r\n shortDictionaryLoaded: false,\r\n fullDictionaryLoaded: false,\r\n\r\n onlineConfig: null,\r\n isOnline: false,\r\n showModalUpFront: false,\r\n router: null,\r\n singleFormJourney: false,\r\n };\r\n\r\n static Brand = process.env.brand;\r\n\r\n static hasAppCookies() {\r\n if (document.cookie && document.cookie.split(';').filter(item => item.trim().startsWith(EnvConfig.cookieConsentName)).length) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n static isFormPage() {\r\n return window.location.pathname.includes('/forms');\r\n }\r\n\r\n static isUadLink = () => window.location.pathname.startsWith('/uad/');\r\n\r\n componentDidMount() {\r\n const { dispatch } = this.props;\r\n\r\n smoothscroll.polyfill();\r\n\r\n if (App.isUadLink()) {\r\n redirectToApi(window.location.pathname);\r\n }\r\n\r\n if (!unprotectedRoutes.includes(window.location.pathname) && !App.isUadLink()) {\r\n if (PreloadBrands.includes(App.Brand)) {\r\n this.preloadCheck();\r\n } else {\r\n dispatch(getOnlineConfig());\r\n }\r\n }\r\n\r\n if (confirmAppStateToProceed.includes(window.location.pathname)) {\r\n dispatch(getAuthState());\r\n }\r\n }\r\n\r\n get hasDefaultFormType() {\r\n const { defaultFormType } = this.props;\r\n return defaultFormType !== null;\r\n }\r\n\r\n get canAccessMainRoutes() {\r\n const { isEulaAccepted, bypassEula } = this.props;\r\n return (!App.isUadLink() && (bypassEula || isEulaAccepted || unprotectedRoutes.includes(window.location.pathname)));\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(getOnlineConfig());\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 { isAuthenticated, isEulaAccepted, customerName, authState, messages, shortDictionaryLoaded, fullDictionaryLoaded, isOnline, onlineConfig, showModalUpFront, singleFormJourney, router } = this.props;\r\n\r\n const showMenu = isEulaAccepted && !(router.location.pathname === '/insufficient-information' && singleFormJourney);\r\n\r\n const showContent = messages && ((!isOnline && shortDictionaryLoaded) || (isOnline && fullDictionaryLoaded));\r\n return (\r\n \r\n \r\n \r\n \r\n Skip to main content\r\n
    \r\n
    \r\n { !showContent && }\r\n { showContent && \r\n
    \r\n \r\n
    \r\n { this.canAccessMainRoutes &&
    \r\n \r\n \r\n { this.hasDefaultFormType && !App.isFormPage() && }\r\n { /* showModalUpFront should prevent rendering of the below components only when it is null.\r\n This is to allow an authentalink with defaultform to go straight to its form without any\r\n flickering render beforehand.\r\n Other single form cases come through with defaultform on state but should render the modal. These\r\n have showModalUpFront:true and must allow the app elements to render underneath. When the\r\n modal gets closed, showModalUpFront gets set to false and here too the app components must render */ }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { /* */ }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    }\r\n { !App.hasAppCookies() && }\r\n { isAuthenticated && !isEulaAccepted && !unprotectedRoutes.includes(window.location.pathname) && }\r\n { (App.isUadLink() || (!isAuthenticated && !isEulaAccepted && !unprotectedRoutes.includes(window.location.pathname))) && }\r\n
    }\r\n
    \r\n { this.canAccessMainRoutes &&