{"version":3,"sources":["constants/CqsOnlineStatoProcessoDocumentiDaFirmare.ts","stores/cqsonline/models/CqsOnlineRichiestaSezioneDocumentiViewModel.ts","stores/consenso-privacy/models/ConsensoPrivacyModel.ts","utilities/ActionUtility.ts","stores/preventivo/models/PianoAmmortamentoModel.ts","stores/preventivo/models/PreventivoModel.ts","stores/menu/models/MenuModel.ts","stores/menu/MenuEffect.ts","stores/menu/MenuAction.ts","stores/preventivo/models/RicercaPreventivoViewModel.ts","stores/richiesta/models/RichiestaModel.ts","utilities/EffectUtility.ts","views/components/base-form/BaseButton.tsx","stores/configuration/ConfigurationEffect.ts","stores/configuration/ConfigurationAction.ts","utilities/FormatUtility.ts","stores/preventivo/models/PreventivoQuestionarioViewModel.ts","stores/richiesta/models/RichiestaConcludiRequestModel.ts","stores/cqsonline/models/CqsOnlineRichiestaInfoSezionePreventivoViewModel.ts","stores/pratica/models/PraticaInfoPraticaRequestModel.ts","stores/configuration/models/ConfigurationModel.ts","views/components/base-form/BaseModal.tsx","stores/pratica/PraticaEffect.ts","stores/pratica/PraticaAction.ts","stores/richiesta/models/RichiestaTipoDocumentoViewModel.ts","stores/richiesta/models/RichiestaDocumentoViewModel.ts","stores/shared/models/ResponseStatoModel.ts","stores/preventivo/models/NuovoImpegnoModel.ts","stores/richiesta/RichiestaEffect.ts","stores/richiesta/RichiestaAction.ts","stores/lookup/models/AmministrazioneModel.ts","views/components/loading-indicator/LoadingIndicator.module.scss","views/components/loading-indicator/LoadingIndicator.tsx","selectors/requesting/RequestingSelector.ts","utilities/ValidationUtility.ts","stores/shared/models/ResponseEsitoModel.ts","stores/lookup/models/CategoriaAmministrativaModel.ts","stores/lookup/models/ModalitaErogazioneModel.ts","stores/lookup/models/TipologiaPensioneModel.ts","stores/lookup/models/FondoModel.ts","stores/lookup/models/TipologiaImpegnoModel.ts","stores/lookup/models/QuoteSocietaModel.ts","stores/lookup/models/ImportoConIntermediariModel.ts","stores/richiesta/models/RichiestaDatiAnagraficiRequestModel.ts","stores/richiesta/models/RichiestaDatiRedditoRequestModel.ts","stores/richiesta/models/RichiestaAltriPrestitiRequestModel.ts","stores/richiesta/models/RichiestaAdeguataVerificaRequestModel.ts","stores/user/models/UserInfoModel.ts","stores/shared/models/ResponseAuthTokensModel.ts","stores/user/UserEffect.ts","stores/user/UserAction.ts","stores/lookup/models/ComuneModel.ts","stores/lookup/models/TipoDocumentoModel.ts","stores/lookup/models/CittadinanzaModel.ts","stores/lookup/models/NazioneModel.ts","stores/lookup/models/TipoIndirizzoModel.ts","stores/tipo-richiedente/models/TipoRichiedenteModel.ts","stores/cqsonline/models/CqsOnlineTipoCodiceFiscaleModel.ts","stores/lookup/models/IstitutoFinanziarioModel.ts","stores/lookup/LookUpEffect.ts","stores/lookup/LookUpAction.ts","i18n.js","constants/RouteEnum.ts","models/HttpErrorResponseModel.ts","constants/StatoProcessoFirmaDigitale.ts","utilities/HttpUtility.ts","stores/requesting/RequestingReducer.ts","stores/error/ErrorAction.ts","stores/error/ErrorReducer.ts","stores/toasts/ToastsAction.ts","utilities/BaseReducer.ts","stores/toasts/ToastsReducer.ts","stores/menu/MenuReducer.ts","stores/contents/ContentsReducer.ts","stores/preventivo/models/PreventivoInformazioniUtenteModel.ts","stores/preventivo/PreventivoReducer.ts","stores/user/models/UserModel.ts","stores/user/UserReducer.ts","stores/lookup/LookUpReducer.ts","stores/cqsonline/models/CqsOnlineRichiestaDettaglioDocumentoViewModel.ts","stores/richiesta/RichiestaReducer.ts","stores/pratica/PraticaReducer.ts","stores/configuration/ConfigurationReducer.ts","constants/ToastStatusEnum.ts","middlewares/errorToastMiddleware.ts","middlewares/userLoggedMiddleware.ts","middlewares/cookieConsentMiddleware.ts","stores/rootStore.ts","stores/rootReducer.ts","views/components/toast-card/ToastCard.tsx","views/components/toasts/Toasts.tsx","views/components/error/ErrorViewer.tsx","views/components/base-content/BasePath.tsx","views/components/configuration/Configuration.tsx","views/App.tsx","serviceWorker.ts","index.tsx","stores/preventivo/models/PreventiviUtenteModel.ts","stores/preventivo/PreventivoEffect.ts","stores/preventivo/PreventivoAction.ts","stores/preventivo/models/InfoUtentePreventivoModel.ts","brands/default/environments/production.ts","environments/base.ts"],"names":["CqsOnlineStatoProcessoDocumentiDaFirmare","CqsOnlineRichiestaSezioneDocumentiViewModel","data","descrizione","documenti","posizione","sezioneCompletata","stato","DaAvviare","infoSezione","CqsOnlineRichiestaInfoSezionePreventivoViewModel","update","BaseModel","ConsensoPrivacyModel","isObbligatorio","codice","isAccettato","isNegato","fgMostraLanding","ActionUtility","dispatch","actionType","effect","args","createAction","model","isError","HttpErrorResponseModel","type","payload","error","meta","PianoAmmortamentoModel","rate","PreventivoModel","idPreventivo","importoInteressi","speseIstruttoria","impostaBollo","tan","taeg","teg","montante","costiIntermediazione","isPrincipale","rataReimpostata","dataScadenza","importoRichiesto","codiceTipoRichiedente","dataNascita","dataAssunzione","importoNettoRedditoMensile","importoRata","durata","pianoAmmortamento","codiceAgente","categoriaAmministrativa","amministrazione","canale","segmento","prodotto","percentTassoMontante","commissioniPratica","totaleVociCostoTan","idUtente","informazioniUtente","InfoUtentePreventivoModel","idTipoRichiesta","disclaimer","nome","cognome","MenuModel","idVoceMenu","codiceContenuto","idContenuto","idElemento","titolo","path","MenuEffect","endpoint","environment","api","menu","EffectUtility","getToModel","lingua","lang","errorExample","HttpUtility","get","response","MenuAction","getState","createThunkEffect","REQUEST_MENUS","requestMenus","REQUEST_PATHS","REQUEST_ERROR","requestError","REQUEST_MENUS_FINISHED","REQUEST_PATHS_FINISHED","REQUEST_ERROR_FINISHED","RicercaPreventivoViewModel","isLogged","attivaPreSelezionePensionato","isSubmitted","codiceConvenzione","preventivoQuestionario","PreventivoQuestionarioViewModel","RichiestaModel","preventivo","datiAnagrafici","datiReddito","altriPrestiti","adeguataVerifica","documentiDaCaricare","documentiFirmaDebole","documentiFirmaForte","idRichiesta","stepRichiesta","dataInserimento","dataSospensione","statoRichiesta","isNuovaRichiesta","documentiDaFirmare","documentiDaFirmareIstruttoria","concludi","RichiestaConcludiRequestModel","FileResponse","Blob","Model","params","requestConfig","timeout","_restModelCreator","progressHandler","responseType","transformResponse","result","JSON","parse","TextDecoder","decode","e","onDownloadProgress","progressEvent","totalLength","lengthComputable","total","target","getResponseHeader","loadedLength","loaded","status","Math","round","this","formData","FormData","Object","keys","forEach","propKey","propValue","has","append","set","headers","onUploadProgress","postToModel","post","put","delete","Array","isArray","map","json","BaseButton","getVariant","props","color","getColor","id","disabled","icon","iconPos","label","className","hoverTitle","hoverOpacity","formId","onClickHandler","join","variant","form","undefined","onClick","title","React","Component","ConfigurationEffect","getConfigurazione","ConfigurationModel","ConfigurationAction","REQUEST_GET_CONFIGURAZIONE","REQUEST_GET_CONFIGURAZIONE_FINISHED","FormatUtility","updateNestedPropertyValue","viewModel","name","value","castedValue","castValue","_","prop","constructor","toString","parseFloat","isNaN","Boolean","ex","moment","toDate","getTime","Date","monthsDuration","months","parseInt","percentage","toFixed","replace","currency","amount","numberWithSeparators","input","step","match","length","decimals","dotPos","indexOf","substring","resultDotPos","number","numberFromNumberWithSeparators","dateOrUndefined","date","dateFormat","dateFormatted","isMoment","format","yearLength","lastIndexOf","repeat","isValid","dateInGivenFormat","formatDest","getOmocodiaCodiceFiscale","codiceFiscale","omocodia","omocodiaChars","chNumericiPerOmocodia","chPos","codiceFiscaleSostitutivo","numero","charAt","getCodiceFiscale","sesso","luogoNascita","regexConsonanti","regexVocali","chDispari","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","chPari","partCognome","partNome","partAnno","partMese","partGiorno","toUpperCase","substr","dd","mm","yy","padStart","somma","i","char","getNestedFieldsValues","obj","fieldName","push","key","cloneObject","object","replaceValuesFunction","deepCloneElement","deepCloneArray","deepCloneObject","source","excludedKeys","filter","includes","collection","descrizioneCategoriaAmministrativa","decrizioneAmministrazione","fgAltriFinanziamenti","altriImpegni","fgDichiarazioneBeneficiario","fgDichiarazioneNonEspostaPolitica","fgDichiarazioneEspostaPolitica","fgDichiarazioneEsigenzePersonali","fgDichiarazioneAltro","isSospensione","fkIdPreventivo","fkIdGruppoDoc","urlFirma","dtAttivazioneFirma","dtFirma","codiceMacroPratica","numeroMacroPratica","dtCaricamento","PraticaInfoPraticaRequestModel","numPratica","cdg","dataInvioCse","statoId","statoDescrizione","condizioneId","condizioneDescrizione","referente","assicurazioneRvId","assicurazioneRvDescrizione","assicurazioneRcId","assicurazioneRcDescrizione","analyticsUID","campiBoxPreventivo","BaseModal","show","onHideHandler","closeOnOutClick","centered","headerClassName","bodyClassName","footerClassName","body","footer","size","onHide","backdrop","dialogClassName","Header","closeButton","Title","Body","Footer","PraticaEffect","creaPraticaCQSonline","ResponseEsitoModel","getInfoPratica","PraticaAction","REQUEST_CREA_PRATICA_CQSOL","requestCreaPraticaCqsOnline","REQUEST_INFO_PRATICA_CQSOL","requestGetInfoPratica","REQUEST_CREA_PRATICA_CQSOL_FINISHED","REQUEST_INFO_PRATICA_CQSOL_FINISHED","RichiestaTipoDocumentoViewModel","fgDaGenerare","fgDaFirmare","RichiestaDocumentoViewModel","tipoDocumento","idDocumento","percorso","fgFirmato","fgEliminato","ResponseStatoModel","infoStato","NuovoImpegnoModel","idImpegno","tipologiaImpegno","fgPresenzaDati","estinzione","rata","dataInizio","dataChiusuraCe","debitoResiduo","ordineInserimento","istitutoFinanziario","istitutoFinanziarioValore","RichiestaEffect","verificaRichiesta","getRichiesta","saveStepRichiesta","getDocumentoPianoAmmortamento","getFile","codTipoRichiedente","getDatiAnagrafici","RichiestaDatiAnagraficiRequestModel","request","saveDatiAnagrafici","getDatiReddito","RichiestaDatiRedditoRequestModel","saveDatiReddito","getAltriPrestiti","RichiestaAltriPrestitiRequestModel","saveAltriPrestiti","codSezione","getDocumenti","saveDocumento","postFormDataToModel","getDocumento","deleteDocumento","deleteToModel","tipoProcesso","avviaProcessoFirma","annullaProcessoFirma","getStatoProcessoFirma","avviaProcessoRiconoscimento","getDocumentiDaCaricareCQSonline","getDocumentiDaFirmareCQSonline","statoFirmaCQSonline","saveDocumentoCQSonline","sezione","saveSezioneDocumentiCQSonline","isFirmato","getDocumentoCQSonline","deleteDocumentoCQSonline","idGruppo","avvioFirmaCQSonline","annullaFirmaCQSonline","avviaRiconoscimentoCQSonline","annullaRiconoscimentoCQSonline","getStatoRiconoscimentoCQSonline","verificaPreventivo","cancellaPreventivoRichiesta","getDocumentiIstruttoriaDaFirmareCQSonline","getConcludi","saveConcludi","getImpegni","impegni","saveImpegni","imp","split","deleteDocumentiGeneratiCQSonline","getAdeguataVerifica","RichiestaAdeguataVerificaRequestModel","saveAdeguataVerifica","deleteImpegni","trasferisciConsesiCqsWeb","console","log","RichiestaAction","VERIFICA_RICHIESTA","REQUEST_RICHIESTA","requestRichiesta","SAVE_STEP_RICHIESTA","DOWNLOAD_PIANO_AMMORTAMENTO","downloadPianoAmmortamento","REQUEST_DATI_ANAGRAFICI","requestDatiAnagrafici","SAVE_DATI_ANAGRAFICI","REQUEST_DATI_REDDITO","requestDatiReddito","SAVE_DATI_REDDITO","REQUEST_ALTRI_PRESTITI","requestAltriPrestiti","SAVE_ALTRI_PRESTITI","REQUEST_DOCUMENTI_FIRMA_DEBOLE","requestDocumenti","REQUEST_DOCUMENTI_FIRMA_FORTE","UPLOAD_DOCUMENTO","uploadDocumento","DOWNLOAD_DOCUMENTO","downloadDocumento","DELETE_DOCUMENTO","REQUEST_AVVIA_PROCESSO_FIRMA_DEBOLE","requestAvviaProcessoFirma","REQUEST_ANNULLA_PROCESSO_FIRMA_DEBOLE","requestAnnullaProcessoFirma","REQUEST_STATO_PROCESSO_FIRMA_DEBOLE","requestStatoProcessoFirma","REQUEST_AVVIA_PROCESSO_FIRMA_FORTE","REQUEST_ANNULLA_PROCESSO_FIRMA_FORTE","REQUEST_STATO_PROCESSO_FIRMA_FORTE","REQUEST_AVVIA_PROCESSO_RICONOSCIMENTO","requestAvviaProcessoRiconoscimento","REQUEST_DOCUMENTI_DA_CARICARE_CQSOL","requestDocumentiDaCaricareCqsOnline","REQUEST_DOCUMENTI_DA_FIRMARE_CQSOL","requestDocumentiDaFirmareCqsOnline","REQUEST_STATO_FIRMA_CQSOL","requestStatoFirmaCqsOnline","UPLOAD_DOCUMENTO_CQSOL","uploadDocumentoCqsOnline","SAVE_SEZIONE_DOCUMENTI_CQSOL","saveSezioneDocumentiCqsOnline","DOWNLOAD_DOCUMENTO_CQSOL","downloadDocumentoCqsOnline","DELETE_DOCUMENTO_CQSOL","deleteDocumentoCqsOnline","REQUEST_AVVIA_PROCESSO_FIRMA_CQSOL","requestAvviaProcessoFirmaCqsOnline","REQUEST_ANNULLA_PROCESSO_FIRMA_CQSOL","requestAnnullaProcessoFirmaCqsOnline","REQUEST_AVVIA_PROCESSO_RICONOSCIMENTO_CQSOL","requestAvviaProcessoRiconoscimentoCqsOnline","REQUEST_ANNULLA_PROCESSO_RICONOSCIMENTO_CQSOL","requestAnnullaProcessoRiconoscimentoCqsOnline","REQUEST_STATO_PROCESSO_RICONOSCIMENTO_CQSOL","requestStatoProcessoRiconoscimentoCqsOnline","REQUEST_CHECK_PREVENTIVO_CQSOL","requestCheckPreventivoCqsOnline","REQUEST_CANCELLA_PREVENTIVO_RICHIESTA_CQSOL","requestCancellaPreventivoRichiestaCqsOnline","REQUEST_DOCUMENTI_ISTRUTTORIA_DA_FIRMARE_CQSOL","requestDocumentiIstruttoriaDaFirmareCqsOnline","REQUEST_CONCLUDI_DICHIARAZIONI_CQSOL","requestConcludi","SAVE_CONCLUDI_DICHIARAZIONI_CQSOL","REQUEST_IMPEGNI_CQSOL","requestGetImpegni","SAVE_IMPEGNI","RESET_IMPEGNI_FINISHED","DELETE_DOCUMENTI_GENERATI_CQSOL","deleteDocumentiGeneratiCqsOnline","REQUEST_ADEGUATA_VERIFICA","requestAdeguataVerifica","REQUEST_SAVE_ADEGUATA_VERIFICA","DELETE_IMPEGNI","TRASFERISCI_DOC_CONSENSI_CQSWEB","requestTrasferisciDocumentiConsensiCqsWeb","VERIFICA_RICHIESTA_FINISHED","REQUEST_RICHIESTA_FINISHED","SAVE_STEP_RICHIESTA_FINISHED","DOWNLOAD_PIANO_AMMORTAMENTO_FINISHED","REQUEST_DATI_ANAGRAFICI_FINISHED","SAVE_DATI_ANAGRAFICI_FINISHED","REQUEST_DATI_REDDITO_FINISHED","SAVE_DATI_REDDITO_FINISHED","REQUEST_ALTRI_PRESTITI_FINISHED","SAVE_ALTRI_PRESTITI_FINISHED","REQUEST_DOCUMENTI_FIRMA_DEBOLE_FINISHED","REQUEST_DOCUMENTI_FIRMA_FORTE_FINISHED","UPLOAD_DOCUMENTO_FINISHED","DOWNLOAD_DOCUMENTO_FINISHED","DELETE_DOCUMENTO_FINISHED","REQUEST_AVVIA_PROCESSO_FIRMA_DEBOLE_FINISHED","REQUEST_ANNULLA_PROCESSO_FIRMA_DEBOLE_FINISHED","REQUEST_STATO_PROCESSO_FIRMA_DEBOLE_FINISHED","REQUEST_AVVIA_PROCESSO_FIRMA_FORTE_FINISHED","REQUEST_ANNULLA_PROCESSO_FIRMA_FORTE_FINISHED","REQUEST_STATO_PROCESSO_FIRMA_FORTE_FINISHED","REQUEST_AVVIA_PROCESSO_RICONOSCIMENTO_FINISHED","REQUEST_DOCUMENTI_DA_CARICARE_CQSOL_FINISHED","REQUEST_DOCUMENTI_DA_FIRMARE_CQSOL_FINISHED","REQUEST_STATO_FIRMA_CQSOL_FINISHED","UPLOAD_DOCUMENTO_CQSOL_FINISHED","SAVE_SEZIONE_DOCUMENTI_CQSOL_FINISHED","DOWNLOAD_DOCUMENTO_CQSOL_FINISHED","DELETE_DOCUMENTO_CQSOL_FINISHED","REQUEST_AVVIA_PROCESSO_FIRMA_CQSOL_FINISHED","REQUEST_ANNULLA_PROCESSO_FIRMA_CQSOL_FINISHED","REQUEST_AVVIA_PROCESSO_RICONOSCIMENTO_CQSOL_FINISHED","REQUEST_ANNULLA_PROCESSO_RICONOSCIMENTO_CQSOL_FINISHED","REQUEST_STATO_PROCESSO_RICONOSCIMENTO_CQSOL_FINISHED","REQUEST_CHECK_PREVENTIVO_CQSOL_FINISHED","REQUEST_CANCELLA_PREVENTIVO_RICHIESTA_CQSOL_FINISHED","REQUEST_DOCUMENTI_ISTRUTTORIA_DA_FIRMARE_CQSOL_FINISHED","REQUEST_CONCLUDI_DICHIARAZIONI_CQSOL_FINISHED","SAVE_CONCLUDI_DICHIARAZIONI_CQSOL_FINISHED","REQUEST_IMPEGNI_CQSOL_FINISHED","SAVE_IMPEGNI_FINISHED","RESET_IMPEGNI","REQUEST_GET_FILTRI","REQUEST_GET_FILTRI_FINISHED","DELETE_DOCUMENTI_GENERATI_CQSOL_FINISHED","REQUEST_ADEGUATA_VERIFICA_FINISHED","REQUEST_SAVE_ADEGUATA_VERIFICA_FINISHED","DELETE_IMPEGNI_FINISHED","TRASFERISCI_DOC_CONSENSI_CQSWEB_FINISHED","AmministrazioneModel","idAmministrazione","idCategoriaAmministrativa","denominazione","ndg","piva","nomeComune","cap","codProvincia","indirizzo","telefono","descrProvincia","module","exports","LoadingIndicator","children","isActive","cssClasses","classNames","styles","wrapper","loaderContainer","animation","role","PureComponent","defaultProps","RequestingSelector","requestingState","actionTypes","some","selectRequesting","createSelector","state","requesting","ValidationUtility","Yup","mixed","default","i18n","t","required","string","min","max","integer","propContent","message","invalid","errors","val","x","schema","fieldValue","fields","validate","abortEarly","then","resetValidationContainer","catch","err","fieldErrors","inner","fieldMessage","current","parentElement","nextElementSibling","field","context","fieldContainer","validateSchemaIteration","fieldsNames","getOwnPropertyNames","newPath","newFieldName","validateField","tipiRichiedenti","attivaCampiNomeCognome","showSliders","setLocale","shape","notOneOf","test","checkIfImportoIsValid","checkMinNumber","checkMaxNumber","when","is","checkIfCampoIsRequiredByTipoRichiedente","checkIfDateIsValidOrUndefined","minDate","setFullYear","getFullYear","checkMinDate","maxDate","checkMaxDate","email","numeroTelefono","checkPhoneNumber","privacy","of","fieldSchema","visualizzaAltriImpegniNelTabPrestiti","username","password","confermaPassword","checkIfPasswordIsValid","repeatPassword","oneOf","fullValidation","isPensionato","visualizzaCampiBonifico","attivaAdeguataVerifica","checkIfNotContainsNumbers","checkIfContainsEuropeanChar","resolve","nazioneNascita","estero","codNazioneItalia","checkCodiceFiscale","luogoNascitaEstero","cittadinanza","altraCittadinanza","swtCittadinanzaSecondaria","numeroDocumento","luogoRilascio","dataRilascioDoc","dataScadenzaDoc","indirizzoResidenza","nazione","codiceIndirizzo","civico","luogoEstero","comune","indirizzoDomicilio","swtDomicilio","indirizzoCorrispondenza","swtCorrispondenza","recapitoTelefonico","dataScadenzaContrattoDeterminato","isDeterminato","isIndeterminato","checkContratto","tipologiaPensioneAltro","isTipologiaPensione","isCointestata","checkPensione","tipologiaPensione","chiave","valore","modalitaErogazione","iban","IBAN","dataAccensioneContoCorrente","isDocumentazioneBancaria","isBustaPaga","isAltroBonifico","checkRilevazioneCoordinate","rilevazioneCoordinateAltro","isContoCointestato","isMeMedesimo","checkIntestatario","nominativoCointestatario","gradoParentelaCointestatario","banca","sportello","isOrdinario","isOnline","isCartaPrepagata","checkTipoContoCorrente","isAffitto","isProprieta","isTerzi","isFamiglia","checkProprietaAbitazione","visualizzaCampiDatiReddito","certificatoPensione","checkIfNumber","codiceSedePensione","codiceCategPensione","tfrMaturato","tfrDataRiferimento","tfrFondo","tfrFondoDataRiferimento","descrizioneFondo","numeroCedolino","codTipoRichiedenteDipendentePrivato","meseRetribuzione","redditoAnnuo","speseAffittoAnnue","totaleRedditoAnnuo","altreRateizzazioniAnnue","nettoMesile","altriRedditiRichiedente","altriRedditiNucleoFam","fgDichiarazione","isFabbricati","numeroFabbricati","destinazioneFabbricati","isTerreni","numeroTerreni","destinazioneTerreni","isRenditaFinanziaria","isRedditoImmobili","isRedditoAltro","checkFonteReddito","fgAltriImpegni","fgEstinzioneTerzi","isSupera","isNonSupera","checkSuperaPercentuale","isClienteBanca","isClienteAgenzia","isNewCliente","checkRapportoBanca","isCelibeNubile","isConvivente","isConiugato","isDivorziatoSeparato","isVedovo","checkStatoCivile","isComunioneDeiBeni","isSeparazioneDeiBeni","checkRegimePatrimoniale","numeroNucleoFamiliare","isCqs","isDlg","isCqp","isAnticipoFinanziamento","checkTipoFinanziamento","isAcquistoBeni","isEsigenzePersonali","isAltroScopoFinanziamento","checkScopoFinanziamento","checkPolitico","checkEsigenzePersonali","RegExp","NaN","minValue","exclude","maxValue","dateValidated","minDateValidated","maxDateValidated","tipoRichiedenteCodice","campo","tipoRichiedente","find","elem","campiDiConfigurazione","checkIfCampoIsRequiredByConfiguration","preventEnterKeySubmit","event","shiftKey","preventDefault","stopPropagation","isValidPhoneNumber","startsWith","checkTitolareEffettivo","isTitolareFinanziamento","isnoPEP","isEsecutoreFinanziamento","sessoFormatted","codiceFiscaleCalcolato","charCorrente","charDefault","slice","getCookie","cookieName","ca","decodeURIComponent","document","cookie","c","checkRangeDataScadenza","dataRilascio","dataRilascioFormatted","dataScadenzaFormatted","dataNascitaFormatted","day","getDate","month","getMonth","year","monthRilascio","checkPresenzaDati","checkTipoImpegno","tipoImpegno","esito","infoEsito","CategoriaAmministrativaModel","creditoNET","fgCodiceIpa","notificaAlMef","ModalitaErogazioneModel","TipologiaPensioneModel","FondoModel","TipologiaImpegnoModel","QuoteSocietaModel","ImportoConIntermediariModel","comuneNascita","idFondo","descrAltroReddito","fgClienteTitolareQuoteSoc","infoTitolareRapp","fgAltriIntermediari","fgFamiliariClienti","nomeFamiliareCliente","scopoFinanziamentoAltro","quoteSoc","importoIntermediari","UserInfoModel","ResponseAuthTokensModel","accessToken","refreshToken","UserEffect","userLogin","login","userRegistration","registrazione","token","verificaToken","userRegistrationConfirm","confermaRegistrazione","putToModel","user","getInfoUtente","deleteUtente","credenzialiRecuperoCQSonline","credenzialiVerificaTokenCQSonline","credenzialiAggiornaCQSonline","rinvioEmailRegistrazioneCQSonline","consensi","saveConsesiPrivacyUtente","UserAction","consent","SET_COOKIE_CONSENT_FINISHED","REQUEST_USER_LOGIN","requestUserLogin","SET_USER_LOGIN_REQUIRED_FINISHED","SET_USER_LOGIN_FINISHED","SET_USER_LOGOUT_FINISHED","REQUEST_USER_REGISTRATION","requestUserRegistration","REQUEST_VERIFICA_TOKEN","requestVerificaToken","REQUEST_USER_REGISTRATION_CONFIRM","requestUserRegistrationConfirm","REQUEST_GET_INFO_UTENTE","requestGetInfoUtente","REQUEST_USER_DELETE","requestUserDelete","REQUEST_USER_RECUPERO_PASSWORD","requestUserRecuperoPassword","REQUEST_VERIFICA_TOKEN_RECUPERO_PASSWORD","requestUserVerificaTokenRecuperoPassword","REQUEST_USER_CAMBIO_PASSWORD","requestUserCambioPassword","REQUEST_USER_RINVIO_REGISTRATION","requestUserRinvioEmail","filtri","REQUEST_SET_USER_REGISTRATION_MODEL_FINISHED","REQUEST_SAVE_CONSENSI_USER","requesSaveConsesiUtenteConfirm","SET_COOKIE_CONSENT","REQUEST_USER_LOGIN_FINISHED","SET_USER_LOGIN_REQUIRED","SET_USER_LOGIN","SET_USER_LOGOUT","REQUEST_USER_REGISTRATION_FINISHED","REQUEST_VERIFICA_TOKEN_FINISHED","REQUEST_USER_REGISTRATION_CONFIRM_FINISHED","REQUEST_GET_INFO_UTENTE_FINISHED","REQUEST_USER_DELETE_FINISHED","REQUEST_USER_RECUPERO_PASSWORD_FINISHED","REQUEST_VERIFICA_TOKEN_RECUPERO_PASSWORD_FINISHED","REQUEST_USER_CAMBIO_PASSWORD_FINISHED","REQUEST_USER_RINVIO_REGISTRATION_FINISHED","REQUEST_SET_USER_REGISTRATION_MODEL","REQUEST_SAVE_CONSENSI_USER_FINISHED","ComuneModel","codiceProvincia","nomeProvincia","TipoDocumentoModel","CittadinanzaModel","NazioneModel","TipoIndirizzoModel","TipoRichiedenteModel","idcatammin","CqsOnlineTipoCodiceFiscaleModel","IstitutoFinanziarioModel","LookUpEffect","consensoPrivacy","comuniNascita","comuniResidenza","tipoIndirizzo","fondo","tipoDocumentoCQSonline","getTipoCodiceFiscaleCQSonline","getModalitaErogazione","getTipoPensione","getCategoriaAmministrativa","getTipologiaImpegni","vociAmministrazioneConvenzione","getQuoteSocietarie","getImportiIntermediari","getIstitutiFinanziari","getconsensoPrivacyUtente","LookUpAction","REQUEST_CONSENSO_PRIVACY","requestConsensoPrivacy","REQUEST_TIPO_RICHIEDENTES","requestTipoRichiedentes","REQUEST_COMUNE_NASCITA","requestComuneNascita","REQUEST_COMUNE_RESIDENZA","requestComuneResidenza","REQUEST_TIPO_DOCUMENTO","requestTipoDocumento","REQUEST_CITTADINANZA","requestCittadinanza","REQUEST_NAZIONE","requestNazione","REQUEST_TIPO_INDIRIZZO","requestTipoIndirizzo","REQUEST_AMMINISTRAZIONE","requestAmministrazione","REQUEST_FONDO","requestFondo","REQUEST_TIPO_DOCUMENTO_CQSOL","requestTipoDocumentoCQSonline","REQUEST_TIPO_CODICE_FISCALE_CQSOL","requestTipoCodiceFiscaleCQSonline","REQUEST_MODALITA_EROGAZIONE_CQSOL","requestModalitaErogazione","REQUEST_TIPOLOGIA_PENSIONE_CQSOL","requestTipologiaPensione","REQUEST_CATEGORIA_AMMINISTRATIVA_CQSOL","requestCategoriaAmministrativa","REQUEST_TIPOLOGIA_IMPEGNO_CQSOL","requestTipologiaImpegno","REQUEST_VOCI_AMMINISTRAZIONE_CONVENZIONE","requestVociAmministrazioneConvenzione","REQUEST_QUOTE_SOCIETARIE","requestQuoteSocietarie","REQUEST_IMPORTI_INTERMEDIARI","requestImportiConIntermediari","REQUEST_ISTITUTO_FINANZIARIO","requestIstitutiFinanziari","REQUEST_GET_CONSENSI_USER","requestConsesiPrivacyUtente","REQUEST_CONSENSO_PRIVACY_FINISHED","REQUEST_TIPO_RICHIEDENTES_FINISHED","REQUEST_COMUNE_NASCITA_FINISHED","REQUEST_COMUNE_RESIDENZA_FINISHED","REQUEST_TIPO_DOCUMENTO_FINISHED","REQUEST_CITTADINANZA_FINISHED","REQUEST_NAZIONE_FINISHED","REQUEST_TIPO_INDIRIZZO_FINISHED","REQUEST_AMMINISTRAZIONE_FINISHED","REQUEST_FONDO_FINISHED","REQUEST_TIPO_DOCUMENTO_CQSOL_FINISHED","REQUEST_TIPO_CODICE_FISCALE_CQSOL_FINISHED","REQUEST_MODALITA_EROGAZIONE_CQSOL_FINISHED","REQUEST_TIPOLOGIA_PENSIONE_CQSOL_FINISHED","REQUEST_CATEGORIA_AMMINISTRATIVA_CQSOL_FINISHED","REQUEST_TIPOLOGIA_IMPEGNO_CQSOL_FINISHED","REQUEST_VOCI_AMMINISTRAZIONE_CONVENZIONE_FINISHED","REQUEST_QUOTE_SOCIETARIE_FINISHED","REQUEST_IMPORTI_INTERMEDIARI_FINISHED","REQUEST_ISTITUTO_FINANZIARIO_FINISHED","REQUEST_GET_CONSENSI_USER_FINISHED","use","Backend","LanguageDetector","initReactI18next","init","fallbackLng","preload","debug","load","backend","loadPath","enviroment","traduzione","crossDomain","overrideMimeType","RouteEnum","HOME","basePathDeploy","ACCESSO_REGISTRAZIONE","REGISTRAZIONE_EFFETTUATA","CONFERMA_REGISTRAZIONE","PREVENTIVO","VANTAGGI","COSA_SERVE","COSA_E","CHI_SIAMO","ACCESSO","ACCESSO_EFFETTUATO","RICHIESTA","DASHBOARD","PRIVACY","RECUPERO_PASSWORD","CAMBIO_PASSWORD","FIRMA_DOCUMENTI_ISTRUTTORIA","RICHIESTA_PREVENTIVO","uuidv4","url","raw","StatoProcessoFirmaDigitale","RequestMethod","paramsConfig","_request","method","Get","config","Post","Put","Delete","restRequest","sessionStorage","getItem","Authorization","axiosRequestConfig","Promise","all","axios","_delay","axiosResponse","success","_fillInErrorWithDefaults","responseURL","statusText","retry","hasOwnProperty","setItem","retryResult","duration","setTimeout","RequestingReducer","initialState","action","isRequestType","requestName","isFinishedRequestType","ErrorAction","REMOVE","CLEAR_ALL","ErrorReducer","entries","reduce","newState","isStartRequestType","stateWithoutFinishedType","ToastsAction","fullMessage","ADD_TOAST","toastId","REMOVE_TOAST","BaseReducer","reducer","call","ToastsReducer","items","MenuReducer","menuItems","sitePaths","ContentsReducer","PreventivoInformazioniUtenteModel","PreventivoAction","REQUEST_SIMULAZIONE_PREVENTIVOS_FINISHED","REQUEST_PREVENTIVOS_FINISHED","SET_FILTRI_RICERCA_PREVENTIVO_FINISHED","SET_FILTRI_QUESTIONARIO_RICERCA_PREVENTIVO_FINISHED","RESET_RISULTATI_RICERCA_PREVENTIVO_FINISHED","RESET_SIMULAZIONE_PREVENTIVO_FINISHED","SAVE_PREVENTIVOS_FINISHED","GET_FILTRI_RICERCA_PREVENTIVO_FINISHED","SET_REGISTRAZIONE_ANONIMA_FINISHED","PreventivoReducer","risultati","corrente","filtriInfoUtente","preventiviSimulati","UserModel","isLoginRequired","isCookieAllowed","UserReducer","profile","responseRegistration","responseTokenVerification","responseRegistrationConfirm","responseRecuperoPassword","responseTokenRecuperoPassword","responseCambioPassword","responseSalvaConsensi","removeItem","LookUpReducer","consensoPrivacyItems","tipoRichiedenteItems","comuneNascitaItems","comuneResidenzaItems","tipoDocumentoItems","cittadinanzaItems","nazioneItems","tipoIndirizzoItems","amministrazioneItems","fondoItems","tipoCodiceFiscaleItemsCqsOnline","modalitaErogazioneItems","tipologiaPensioneItems","categoriaAmministrativaItems","tipologiaImpegnoItems","vociAmministrazioneItems","quoteSocietaItems","importiIntermediariItems","istitutoFinanziarioItems","CqsOnlineRichiestaDettaglioDocumentoViewModel","idDoc","macropratica","sottopratica","tipodocumentoCSE","uploadCompleto","chiaveDoc","base64File","contentType","idDocConfigCqsOL","idTipoDocumentoCqsOl","tipoFirma","modalitaSblocco","nomeReportCdocx","idStampaCdocx","file","fgObbligatorio","RichiestaReducer","isRichiestaPresente","responseVerificaRichiesta","responseRichiesta","responseStepRichiesta","responseDatiAnagrafici","responseAdeguataVerifica","responseDatiReddito","responseAltriPrestiti","responseUploadDocumento","responseDownloadDocumento","responseDownloadPianoAmmortamento","responseAvviaProcessoFirmaDebole","responseAnnullaProcessoFirmaDebole","statoProcessoFirmaDebole","NonEsiste","responseAvviaProcessoFirmaForte","responseAnnullaProcessoFirmaForte","statoProcessoFirmaForte","responseAvviaProcessoRiconoscimento","responseAnnullaProcessoRiconoscimento","statoProcessoRiconoscimento","urlProcessoRiconoscimento","urlProcessoFirma","statoProcessoFirmaCqsOnline","responseCheckPreventivo","msgCheckPreventivo","responseCancellaPreventivoRichiesta","msgCancellaPreventivoRichiesta","responseConcludi","responseTrasferisciConsensi","elenco","statoEnum","InCorso","Annullato","Completato","filePath","fileName","sez","doc","s","d","Number","PraticaReducer","responseCreaPratica","pratica","ToastStatusEnum","ConfigurationReducer","getconfiguration","errorToastMiddleware","store","next","userLoggedMiddleware","location","pathname","setUserLoginRequired","cookieConsentMiddleware","setCookieConsent","history","middleware","isDevelopment","reduxFreeze","thunk","routerMiddleware","createStore","reducerMap","router","connectRouter","toasts","contents","richiesta","lookups","configuration","combineReducers","rootReducer","composeWithDevTools","applyMiddleware","ToastCard","hasUnmounted","setShow","setState","toggleShow","removeById","item","Success","Warning","Error","getTitle","showDetails","Toast","onClose","connect","ownProps","Toasts","checkIfHasErrors","errorObj","code","checkIfHasDetails","detail","additionalErrors","checkIfLoginRequiredOrUnauthorized","checkIfUnauthorized","showErrorDetail","ErrorViewer","setShowDetails","toggleShowDetails","close","clearAll","showUserUnauthorizedAlert","setUserLogout","hasErrors","hasDetails","Row","Col","BaseContent","lazy","PrivacyPage","NotFoundPage","PreventivoPage","AccessoRegistrazionePage","AccessoPage","AccessoEffettuatoPage","RegistrazioneConfermaEmailPage","RegistrazioneEffettuataPage","DashboardPage","RichiestaPage","RecuperoPasswordPage","CambioPasswordPage","DocumentiIstruttoriaPage","RichiestaPreventivoPage","HomePage","BasePath","setLookupsAndViewModel","requestPaths","exact","component","sitePath","contentCode","positionId","isRequesting","Configuration","library","add","fas","MainNav","DiclaimerBanner","App","fallback","Container","fluid","window","hostname","require","i18next","on","options","createBrowserHistory","basename","route","baseRoute","rootStore","rootEl","getElementById","el","ReactDOM","render","navigator","serviceWorker","ready","registration","unregister","PreventiviUtenteModel","PreventivoEffect","simulazionePreventivo","descrizioneAmministrazione","impegno","salvaPreventivo","getFiltriPreventivo","registrazioneAnonima","REQUEST_SIMULAZIONE_PREVENTIVOS","requestSimulazionePreventivos","REQUEST_PREVENTIVOS","requestPreventivos","preventivoSelezionato","SAVE_PREVENTIVOS","savePreventivo","ricercaPreventivo","GET_FILTRI_RICERCA_PREVENTIVO","requestGetFiltri","SET_REGISTRAZIONE_ANONIMA","setRegistrazioneAnonima","SET_FILTRI_RICERCA_PREVENTIVO","RESET_RISULTATI_RICERCA_PREVENTIVO","RESET_SIMULAZIONE_PREVENTIVO","SET_FILTRI_QUESTIONARIO_RICERCA_PREVENTIVO","env","baseApi","currentVersion","contenuto","getStatoProcessoRiconoscimento","credenzialiRecupero","credenzialiVerificaToken","credenzialiAggiorna","isProduction","isTesting","recaptchaValidation","recaptchaV2Key","recaptchaV2InvisibleKey","recaptchaV3Key","richiestaSteps","codTipoRichiedentePensionato","codTipoRichiedenteDipendentePubblico","codStatoRichiestaInCompilazione","richiestaUploadFileSizeLimit","richiestaUploadFileAcceptedTypes","richiestaUploadFileMimeTypes","attivaScriptTracciamento","attivaCalcoloRedditualeID289","attivaPreselezioneCatAmmin","attivaGestioneConsensi","visualizzaDisclaimerPreventivo","productionEnv"],"mappings":"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","file":"static/js/main.47900ee6.chunk.js","sourcesContent":["enum CqsOnlineStatoProcessoDocumentiDaFirmare {\r\n DaAvviare = \"DaAvviare\",\r\n InCorso = \"InCorso\",\r\n Completato = \"Completato\",\r\n}\r\n\r\nexport default CqsOnlineStatoProcessoDocumentiDaFirmare;\r\n","import CqsOnlineStatoProcessoDocumentiDaFirmare from \"constants/CqsOnlineStatoProcessoDocumentiDaFirmare\";\r\nimport { BaseModel } from \"sjs-base-model\";\r\nimport CqsOnlineRichiestaDettaglioDocumentoViewModel from \"./CqsOnlineRichiestaDettaglioDocumentoViewModel\";\r\nimport CqsOnlineRichiestaInfoSezionePreventivoViewModel from \"./CqsOnlineRichiestaInfoSezionePreventivoViewModel\";\r\n\r\nexport default class CqsOnlineRichiestaSezioneDocumentiViewModel extends BaseModel {\r\n public readonly descrizione: string = \"\";\r\n public readonly documenti: CqsOnlineRichiestaDettaglioDocumentoViewModel[] = [];\r\n public readonly posizione: number = 0;\r\n public readonly sezioneCompletata: boolean = false;\r\n public readonly stato: CqsOnlineStatoProcessoDocumentiDaFirmare =\r\n CqsOnlineStatoProcessoDocumentiDaFirmare.DaAvviare;\r\n // public readonly urlFirma: string = \"\";\r\n public readonly infoSezione: CqsOnlineRichiestaInfoSezionePreventivoViewModel = new CqsOnlineRichiestaInfoSezionePreventivoViewModel(\r\n {}\r\n );\r\n\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class ConsensoPrivacyModel extends BaseModel {\r\n public readonly descrizione: string = \"\";\r\n public readonly isObbligatorio: boolean = false;\r\n public readonly codice: string = \"\";\r\n public readonly isAccettato: boolean = false;\r\n public readonly isNegato: boolean = false;\r\n public readonly fgMostraLanding: string = \"\";\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { ReduxDispatch } from \"../models/ReduxProps\";\r\nimport HttpErrorResponseModel from \"../models/HttpErrorResponseModel\";\r\nimport IAction from \"../models/IAction\";\r\n\r\nexport default class ActionUtility {\r\n public static async createThunkEffect

(\r\n dispatch: ReduxDispatch,\r\n actionType: string,\r\n effect: (...args: any[]) => Promise

,\r\n ...args: any[]\r\n ): Promise

{\r\n dispatch(ActionUtility.createAction(actionType));\r\n\r\n const model: P | HttpErrorResponseModel = await effect(...args);\r\n const isError: boolean = model instanceof HttpErrorResponseModel;\r\n\r\n dispatch(ActionUtility.createAction

(`${actionType}_FINISHED`, model, isError));\r\n\r\n return model;\r\n }\r\n\r\n public static createAction(\r\n type: string,\r\n payload?: T,\r\n error: boolean = false,\r\n meta: any = null\r\n ): IAction {\r\n return { type, payload, error, meta };\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\nimport RataPianoAmmortamentoModel from \"./RataPianoAmmortamentoModel\";\r\n\r\nexport default class PianoAmmortamentoModel extends BaseModel {\r\n public readonly rate: RataPianoAmmortamentoModel[] = [];\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\nimport InfoUtentePreventivoModel from \"./InfoUtentePreventivoModel\";\r\nimport PianoAmmortamentoModel from \"./PianoAmmortamentoModel\";\r\n\r\nexport default class PreventivoModel extends BaseModel {\r\n public readonly idPreventivo: number = 0;\r\n public readonly importoInteressi: number = 0;\r\n public readonly speseIstruttoria: number = 0;\r\n public readonly impostaBollo: number = 0;\r\n public readonly tan: number = 0;\r\n public readonly taeg: number = 0;\r\n public readonly teg: number = 0;\r\n public readonly montante: number = 0;\r\n public readonly costiIntermediazione: number = 0;\r\n public readonly isPrincipale: boolean = false;\r\n public readonly rataReimpostata: boolean = false;\r\n public readonly dataScadenza: string = \"\";\r\n public readonly importoRichiesto: number = 0;\r\n public readonly codiceTipoRichiedente: string = \"\";\r\n public readonly dataNascita: string = \"\";\r\n public readonly dataAssunzione: string = \"\";\r\n public readonly importoNettoRedditoMensile: number = 0;\r\n public readonly importoRata: number = 0;\r\n public readonly durata: number = 0;\r\n public readonly pianoAmmortamento: PianoAmmortamentoModel = new PianoAmmortamentoModel({});\r\n public readonly codiceAgente: string = \"\";\r\n public readonly categoriaAmministrativa: string = \"\";\r\n public readonly amministrazione: string = \"\";\r\n public readonly canale: string = \"\";\r\n public readonly segmento: string = \"\";\r\n public readonly prodotto: string = \"\";\r\n public readonly percentTassoMontante: number = 0;\r\n public readonly commissioniPratica: number = 0;\r\n public readonly totaleVociCostoTan: number = 0;\r\n public readonly idUtente: number = 0;\r\n public readonly informazioniUtente: InfoUtentePreventivoModel = new InfoUtentePreventivoModel({});\r\n public readonly idTipoRichiesta: number = 0;\r\n public readonly disclaimer: string = \"\";\r\n public readonly nome: string = \"\";\r\n public readonly cognome: string = \"\";\r\n\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class MenuModel extends BaseModel {\r\n public readonly idVoceMenu: number = 0;\r\n public readonly codiceContenuto: string = \"\";\r\n public readonly idContenuto: number = 0;\r\n public readonly idElemento: number = 0;\r\n public readonly titolo: string = \"\";\r\n public readonly path: string = \"\";\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import environment from \"environment\";\r\nimport HttpErrorResponseModel from \"../../models/HttpErrorResponseModel\";\r\nimport HttpUtility from \"../../utilities/HttpUtility\";\r\nimport { AxiosResponse } from \"axios\";\r\nimport EffectUtility from \"../../utilities/EffectUtility\";\r\nimport MenuModel from \"./models/MenuModel\";\r\n\r\nexport default class MenuEffect {\r\n public static async requestMenus(): Promise {\r\n const endpoint: string = environment.api.menu;\r\n\r\n return EffectUtility.getToModel(MenuModel, endpoint, { lingua: environment.lang });\r\n }\r\n\r\n /**\r\n * This is only to trigger an error api response so we can use it for an example in the AboutPage\r\n */\r\n public static async requestError(): Promise {\r\n const endpoint: string = environment.api.errorExample;\r\n const response: AxiosResponse | HttpErrorResponseModel = await HttpUtility.get(endpoint);\r\n\r\n if (response instanceof HttpErrorResponseModel) {\r\n return response;\r\n }\r\n\r\n return response.data;\r\n }\r\n}\r\n","import MenuEffect from \"./MenuEffect\";\r\nimport HttpErrorResponseModel from \"../../models/HttpErrorResponseModel\";\r\nimport ActionUtility from \"../../utilities/ActionUtility\";\r\nimport { ReduxDispatch } from \"../../models/ReduxProps\";\r\nimport IStore from \"../../models/IStore\";\r\nimport MenuModel from \"./models/MenuModel\";\r\n\r\ntype ActionUnion = undefined | HttpErrorResponseModel | MenuModel[];\r\n\r\nexport default class MenuAction {\r\n public static readonly REQUEST_MENUS: string = \"MenuAction.REQUEST_MENUS\";\r\n public static readonly REQUEST_MENUS_FINISHED: string = \"MenuAction.REQUEST_MENUS_FINISHED\";\r\n\r\n public static readonly REQUEST_PATHS: string = \"MenuAction.REQUEST_PATHS\";\r\n public static readonly REQUEST_PATHS_FINISHED: string = \"MenuAction.REQUEST_PATHS_FINISHED\";\r\n\r\n public static readonly REQUEST_ERROR: string = \"MenuAction.REQUEST_ERROR\";\r\n public static readonly REQUEST_ERROR_FINISHED: string = \"MenuAction.REQUEST_ERROR_FINISHED\";\r\n\r\n public static requestMenus(): any {\r\n return async (dispatch: ReduxDispatch, getState: () => IStore): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n MenuAction.REQUEST_MENUS,\r\n MenuEffect.requestMenus\r\n );\r\n };\r\n }\r\n\r\n public static requestPaths(): any {\r\n return async (dispatch: ReduxDispatch, getState: () => IStore): Promise => {\r\n return await ActionUtility.createThunkEffect(\r\n dispatch,\r\n MenuAction.REQUEST_PATHS,\r\n MenuEffect.requestMenus\r\n );\r\n };\r\n }\r\n\r\n public static requestError(): any {\r\n return async (dispatch: ReduxDispatch, getState: () => IStore): Promise => {\r\n await ActionUtility.createThunkEffect(dispatch, MenuAction.REQUEST_ERROR, MenuEffect.requestError);\r\n };\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\nimport InfoUtentePreventivoModel from \"./InfoUtentePreventivoModel\";\r\nimport PreventivoQuestionarioViewModel from \"./PreventivoQuestionarioViewModel\";\r\nimport environment from \"environment\";\r\nexport default class RicercaPreventivoViewModel extends BaseModel {\r\n public readonly isLogged: boolean = false;\r\n public readonly importoRichiesto: string = \"\";\r\n public readonly codiceTipoRichiedente: string = environment.attivaPreSelezionePensionato ? \"P\" : \"\";\r\n public readonly dataNascita: string = \"\";\r\n public readonly dataAssunzione: string = \"\";\r\n public readonly importoNettoRedditoMensile: string = \"\";\r\n public readonly importoRata: number = 0;\r\n public readonly durata: number = 0;\r\n public readonly isSubmitted: boolean = false;\r\n public readonly idPreventivo: number = 0;\r\n public readonly codiceConvenzione: string = \"\";\r\n public readonly informazioniUtente: InfoUtentePreventivoModel = new InfoUtentePreventivoModel({});\r\n public readonly preventivoQuestionario: PreventivoQuestionarioViewModel = new PreventivoQuestionarioViewModel({});\r\n\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\nimport PreventivoModel from \"../../preventivo/models/PreventivoModel\";\r\nimport RichiestaDatiAnagraficiRequestModel from \"./RichiestaDatiAnagraficiRequestModel\";\r\nimport RichiestaAltriPrestitiRequestModel from \"./RichiestaAltriPrestitiRequestModel\";\r\nimport RichiestaDatiRedditoRequestModel from \"./RichiestaDatiRedditoRequestModel\";\r\nimport RichiestaDocumentiViewModel from \"./RichiestaDocumentiViewModel\";\r\nimport CqsOnlineRichiestaSezioneDocumentiViewModel from \"stores/cqsonline/models/CqsOnlineRichiestaSezioneDocumentiViewModel\";\r\nimport RichiestaConcludiRequestModel from \"./RichiestaConcludiRequestModel\";\r\nimport RichiestaAdeguataVerificaRequestModel from \"./RichiestaAdeguataVerificaRequestModel\";\r\n\r\nexport default class RichiestaModel extends BaseModel {\r\n public readonly preventivo: PreventivoModel = new PreventivoModel({});\r\n public readonly datiAnagrafici?: RichiestaDatiAnagraficiRequestModel;\r\n public readonly datiReddito?: RichiestaDatiRedditoRequestModel;\r\n public readonly altriPrestiti?: RichiestaAltriPrestitiRequestModel;\r\n public readonly adeguataVerifica?: RichiestaAdeguataVerificaRequestModel;\r\n public readonly documentiDaCaricare?: CqsOnlineRichiestaSezioneDocumentiViewModel[];\r\n public readonly documentiFirmaDebole?: RichiestaDocumentiViewModel;\r\n public readonly documentiFirmaForte?: RichiestaDocumentiViewModel;\r\n public readonly idRichiesta: number = 0;\r\n public readonly stepRichiesta: string = \"\";\r\n public readonly dataInserimento: string = \"\";\r\n public readonly dataSospensione: string = \"\";\r\n public readonly statoRichiesta: string = \"\";\r\n public readonly isNuovaRichiesta: boolean = false;\r\n public readonly documentiDaFirmare?: CqsOnlineRichiestaSezioneDocumentiViewModel[];\r\n public readonly documentiDaFirmareIstruttoria?: CqsOnlineRichiestaSezioneDocumentiViewModel[];\r\n public readonly concludi: RichiestaConcludiRequestModel = new RichiestaConcludiRequestModel({});\r\n \r\n //public readonly steps: string =\"\";\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { IConstructor } from \"../models/IConstructor\";\r\nimport HttpErrorResponseModel from \"../models/HttpErrorResponseModel\";\r\nimport { AxiosResponse, AxiosRequestConfig } from \"axios\";\r\nimport HttpUtility from \"./HttpUtility\";\r\n\r\ntype FlattenIfArray = T extends (infer R)[] ? R : T;\r\ntype SingleItemOrArray = T extends [] ? T[] : T;\r\n\r\nclass FileResponse extends Blob {\r\n constructor(data: BlobPart) {\r\n super([data]);\r\n }\r\n}\r\n\r\nexport default class EffectUtility {\r\n public static async getToModel(\r\n Model: IConstructor>,\r\n endpoint: string,\r\n params?: any,\r\n requestConfig?: AxiosRequestConfig\r\n ): Promise | HttpErrorResponseModel> {\r\n const response: AxiosResponse | HttpErrorResponseModel = await HttpUtility.get(endpoint, params, {\r\n timeout: 600000,\r\n ...requestConfig,\r\n });\r\n\r\n return EffectUtility._restModelCreator(Model, response);\r\n }\r\n\r\n public static async getFile(\r\n endpoint: string,\r\n params?: any,\r\n progressHandler?: (status: number) => void\r\n ): Promise {\r\n let responseFormat = (data: ArrayBuffer) => {\r\n let result: Blob | HttpErrorResponseModel;\r\n try {\r\n result = JSON.parse(new TextDecoder().decode(data)) as HttpErrorResponseModel;\r\n } catch (e) {\r\n result = new Blob([data]);\r\n }\r\n return result;\r\n };\r\n let requestConfig = { responseType: \"arraybuffer\", transformResponse: [responseFormat] } as AxiosRequestConfig;\r\n if (progressHandler) {\r\n requestConfig.onDownloadProgress = (progressEvent: any) => {\r\n const totalLength: number =\r\n (progressEvent.lengthComputable\r\n ? progressEvent.total\r\n : progressEvent.target.getResponseHeader(\"content-length\") ||\r\n progressEvent.target.getResponseHeader(\"x-decompressed-content-length\")) ?? 0;\r\n const loadedLength: number = progressEvent.loaded ?? 0;\r\n if (totalLength !== null) {\r\n const status = Math.round((loadedLength * 100) / totalLength);\r\n progressHandler(status);\r\n }\r\n };\r\n }\r\n return await this.getToModel(FileResponse, endpoint, params, requestConfig);\r\n }\r\n\r\n public static async postFormDataToModel(\r\n Model: IConstructor>,\r\n endpoint: string,\r\n data?: any,\r\n progressHandler?: (status: number) => void\r\n ): Promise | HttpErrorResponseModel> {\r\n let formData = new FormData();\r\n Object.keys(data).forEach((propKey) => {\r\n const propValue = data[propKey];\r\n if (formData.has(propKey)) {\r\n formData.append(propKey, propValue);\r\n } else {\r\n formData.set(propKey, propValue);\r\n }\r\n });\r\n let requestConfig: AxiosRequestConfig = { headers: { \"Content-Type\": \"multipart/form-data\" }, data: formData };\r\n if (progressHandler) {\r\n requestConfig.onUploadProgress = (progressEvent: any) => {\r\n const totalLength: number =\r\n (progressEvent.lengthComputable\r\n ? progressEvent.total\r\n : progressEvent.target.getResponseHeader(\"content-length\") ||\r\n progressEvent.target.getResponseHeader(\"x-decompressed-content-length\")) ?? 0;\r\n const loadedLength: number = progressEvent.loaded ?? 0;\r\n if (totalLength !== null) {\r\n const status = Math.round((loadedLength * 100) / totalLength);\r\n progressHandler(status);\r\n }\r\n };\r\n }\r\n\r\n return await this.postToModel(Model, endpoint, data, requestConfig);\r\n }\r\n\r\n public static async postToModel(\r\n Model: IConstructor>,\r\n endpoint: string,\r\n data?: any,\r\n requestConfig?: AxiosRequestConfig\r\n ): Promise | HttpErrorResponseModel> {\r\n const response: AxiosResponse | HttpErrorResponseModel = await HttpUtility.post(endpoint, data, {\r\n timeout: 600000,\r\n ...requestConfig,\r\n });\r\n\r\n return EffectUtility._restModelCreator(Model, response);\r\n }\r\n\r\n public static async putToModel(\r\n Model: IConstructor>,\r\n endpoint: string,\r\n data?: any\r\n ): Promise | HttpErrorResponseModel> {\r\n const response: AxiosResponse | HttpErrorResponseModel = await HttpUtility.put(endpoint, data);\r\n\r\n return EffectUtility._restModelCreator(Model, response);\r\n }\r\n\r\n public static async deleteToModel(\r\n Model: IConstructor>,\r\n endpoint: string,\r\n params?: any\r\n ): Promise | HttpErrorResponseModel> {\r\n const response: AxiosResponse | HttpErrorResponseModel = await HttpUtility.delete(endpoint, params);\r\n\r\n return EffectUtility._restModelCreator(Model, response);\r\n }\r\n\r\n private static _restModelCreator(\r\n Model: IConstructor>,\r\n response: AxiosResponse | HttpErrorResponseModel\r\n ): SingleItemOrArray | HttpErrorResponseModel {\r\n if (response instanceof HttpErrorResponseModel) {\r\n return response;\r\n }\r\n return !Array.isArray(response.data)\r\n ? new Model(response.data)\r\n : (response.data.map((json) => new Model(json)) as any);\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { Button } from \"react-bootstrap\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\r\n\r\ninterface IProps {\r\n id?: string;\r\n type: \"button\" | \"reset\" | \"submit\";\r\n disabled?: boolean;\r\n icon?: IconProp;\r\n iconPos?: \"before\" | \"after\";\r\n label: string;\r\n className?: string;\r\n formId?: string;\r\n color: \"bg-ecq-secondary\" | \"bg-ecq-primary\" | \"bg-ecq-fourth\" | \"light\" | \"bg-ecq-third\" | \"link\";\r\n hoverTitle?: string;\r\n hoverOpacity?: boolean;\r\n onClickHandler?: () => void;\r\n}\r\n\r\nclass BaseButton extends React.Component {\r\n private getVariant = ():\r\n | \"bg-ecq-secondary\"\r\n | \"bg-ecq-primary\"\r\n | \"bg-ecq-fourth\"\r\n | \"light\"\r\n | \"bg-ecq-third\"\r\n | \"link\" => {\r\n switch (this.props.color) {\r\n case \"bg-ecq-secondary\":\r\n return \"bg-ecq-secondary\";\r\n case \"bg-ecq-primary\":\r\n return \"bg-ecq-primary\";\r\n case \"bg-ecq-fourth\":\r\n return \"bg-ecq-fourth\";\r\n case \"light\":\r\n return \"light\";\r\n case \"bg-ecq-third\":\r\n return \"bg-ecq-third\";\r\n case \"link\":\r\n return \"link\";\r\n }\r\n };\r\n\r\n private getColor = (): string => {\r\n switch (this.props.color) {\r\n case \"bg-ecq-secondary\":\r\n return \"bg-ecq-secondary text-ecq-primary\";\r\n case \"bg-ecq-primary\":\r\n return \"bg-ecq-primary text-light\";\r\n case \"light\":\r\n return \"text-ecq-primary\";\r\n case \"bg-ecq-fourth\":\r\n return \"bg-ecq-fourth text-light\";\r\n case \"bg-ecq-third\":\r\n return \"bg-ecq-third\";\r\n case \"link\":\r\n return \"\";\r\n }\r\n };\r\n\r\n public render(): JSX.Element {\r\n const {\r\n id,\r\n type,\r\n disabled,\r\n icon,\r\n iconPos,\r\n label,\r\n className,\r\n hoverTitle,\r\n hoverOpacity,\r\n formId,\r\n onClickHandler,\r\n } = this.props;\r\n\r\n return (\r\n \r\n {icon && iconPos !== \"after\" ? : null}\r\n {label}\r\n {icon && iconPos === \"after\" ? : null}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport { BaseButton as Unconnected };\r\nexport default BaseButton;\r\n","import environment from \"environment\";\r\nimport HttpErrorResponseModel from \"../../models/HttpErrorResponseModel\";\r\nimport EffectUtility from \"../../utilities/EffectUtility\";\r\nimport ConfigurationModel from \"./models/ConfigurationModel\";\r\n\r\nexport default class ConfigurationEffect {\r\n public static async getConfigurazione(): Promise {\r\n const endpoint: string = environment.api.getConfigurazione;\r\n return EffectUtility.getToModel(ConfigurationModel, endpoint);\r\n }\r\n}\r\n","import ActionUtility from \"../../utilities/ActionUtility\";\r\nimport ConfigurationModel from \"./models/ConfigurationModel\";\r\nimport { ReduxDispatch } from \"models/ReduxProps\";\r\nimport IStore from \"models/IStore\";\r\nimport HttpErrorResponseModel from \"models/HttpErrorResponseModel\";\r\nimport ConfigurationEffect from \"./ConfigurationEffect\";\r\n\r\ntype ActionUnion = undefined | HttpErrorResponseModel | ConfigurationModel;\r\nexport default class ConfigurationAction {\r\n public static readonly REQUEST_GET_CONFIGURAZIONE: string = \"ConfigurationAction.REQUEST_GET_CONFIGURAZIONE\";\r\n public static readonly REQUEST_GET_CONFIGURAZIONE_FINISHED: string =\r\n \"ConfigurationAction.REQUEST_GET_CONFIGURAZIONE_FINISHED\";\r\n\r\n public static getConfigurazione(): any {\r\n return async (dispatch: ReduxDispatch, getState: () => IStore): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n ConfigurationAction.REQUEST_GET_CONFIGURAZIONE,\r\n ConfigurationEffect.getConfigurazione\r\n );\r\n };\r\n }\r\n}\r\n","import moment from \"moment\";\r\nimport _ from \"lodash\";\r\n\r\nexport type Writeable = { -readonly [P in keyof T]: Writeable };\r\n\r\nexport type ClonedObject = {\r\n [K in keyof ModelObject]: ModelObject[K] extends any[]\r\n ? ModelObject[K][number] extends object\r\n ? ClonedObject[]\r\n : PropContent\r\n : ModelObject[K] extends object\r\n ? ClonedObject\r\n : PropContent;\r\n};\r\n\r\nexport default class FormatUtility {\r\n private constructor() {}\r\n\r\n public static updateNestedPropertyValue = (\r\n viewModel: T,\r\n name: string,\r\n value: string | number | boolean | Date\r\n ): T => {\r\n // console.log(\"viewModel\", viewModel);\r\n // console.log(\"name\", name);\r\n // console.log(\"value\", value);\r\n let castedValue = FormatUtility.castValue(value, _.get(viewModel, name));\r\n _.set(viewModel, name, castedValue);\r\n // console.log(\"viewModel1\", viewModel);\r\n return viewModel;\r\n };\r\n\r\n public static castValue = (\r\n value: string | number | boolean | Date,\r\n prop: string | number | boolean | Date\r\n ): string | number | boolean | Date => {\r\n if (!value) {\r\n value = \"\";\r\n }\r\n if (value.constructor.name !== prop.constructor.name) {\r\n switch (prop.constructor.name) {\r\n case \"String\":\r\n value = value.toString();\r\n break;\r\n case \"Number\":\r\n value = parseFloat(value.toString());\r\n if (isNaN(value)) {\r\n value = 0;\r\n }\r\n break;\r\n case \"Boolean\":\r\n try {\r\n value = Boolean(JSON.parse(value.toString()));\r\n } catch (ex) {\r\n value = false;\r\n }\r\n break;\r\n case \"Date\":\r\n value = moment(value.toString()).toDate();\r\n if (isNaN(value.getTime())) {\r\n value = new Date();\r\n }\r\n break;\r\n }\r\n }\r\n return value;\r\n };\r\n\r\n public static monthsDuration = (months: number | string) => {\r\n months = parseInt(months.toString());\r\n return months.toString() + \" mesi\";\r\n };\r\n\r\n public static percentage = (percentage: number | string) => {\r\n percentage = parseFloat(percentage.toString());\r\n return (\r\n percentage\r\n .toFixed(2)\r\n .replace(\".\", \",\")\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, \".\") + \" %\"\r\n );\r\n };\r\n\r\n public static currency = (amount: number | string) => {\r\n amount = parseFloat(amount.toString());\r\n return (\r\n \"€ \" +\r\n amount\r\n .toFixed(2)\r\n .replace(\".\", \",\")\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, \".\")\r\n );\r\n };\r\n\r\n public static numberWithSeparators = (input: number | string, step: number | string): string => {\r\n if (typeof input === \"number\") {\r\n input = input.toString().replace(\".\", \",\");\r\n }\r\n if ((input.match(/[.]/g) || []).length === 1 && (input.match(/[,]/g) || []).length === 0) {\r\n input = input.replace(\".\", \",\");\r\n }\r\n let result = input\r\n .toString()\r\n .replace(/[^0-9,]/g, \"\")\r\n .replace(\",\", \".\");\r\n if (result === \"\") {\r\n return \"\";\r\n }\r\n let decimals = 0;\r\n if (step) {\r\n let dotPos = step.toString().indexOf(\".\");\r\n if (dotPos > -1) {\r\n decimals = step.toString().substring(dotPos).length - 1;\r\n let resultDotPos = result.indexOf(\".\");\r\n if (resultDotPos > -1 && result.length > resultDotPos + decimals + 1) {\r\n result = result.substring(0, resultDotPos + decimals + 1);\r\n }\r\n }\r\n }\r\n let number = parseFloat(result);\r\n if (isNaN(number)) {\r\n number = 0;\r\n }\r\n result = number\r\n .toFixed(decimals)\r\n .replace(\".\", \",\")\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, \".\");\r\n return result;\r\n };\r\n\r\n public static numberFromNumberWithSeparators = (input: string): number | undefined => {\r\n if (input) {\r\n let number = parseFloat(\r\n input\r\n .toString()\r\n .replace(/[^0-9,]/g, \"\")\r\n .replace(\",\", \".\")\r\n );\r\n if (isNaN(number) === false) {\r\n return number;\r\n }\r\n }\r\n return undefined;\r\n };\r\n\r\n public static dateOrUndefined = (date: Date | moment.Moment | string): Date | undefined => {\r\n if (date) {\r\n let dateFormat = \"YYYY-MM-DD\";\r\n let dateFormatted = date;\r\n if (date instanceof Date || moment.isMoment(date)) {\r\n dateFormatted = moment(date).format(dateFormat);\r\n } else {\r\n if (date.indexOf(\"_\") > -1) {\r\n return undefined;\r\n }\r\n let yearLength = 0;\r\n switch (date.length) {\r\n case 10:\r\n case 19:\r\n yearLength = 4;\r\n break;\r\n case 8:\r\n yearLength = 2;\r\n break;\r\n default:\r\n return undefined;\r\n //break;\r\n }\r\n if (date.indexOf(\"-\") === yearLength && date.lastIndexOf(\"-\") === yearLength + 3) {\r\n dateFormat = \"Y\".repeat(yearLength) + \"-MM-DD\";\r\n } else if (date.indexOf(\"/\") === 2 && date.lastIndexOf(\"/\") === 5) {\r\n dateFormat = \"DD/MM/\" + \"Y\".repeat(yearLength);\r\n } else {\r\n return undefined;\r\n }\r\n dateFormatted = date;\r\n }\r\n let result = moment(dateFormatted, dateFormat);\r\n if (result.isValid()) {\r\n return result.toDate();\r\n } else {\r\n return undefined;\r\n }\r\n } else {\r\n return undefined;\r\n }\r\n };\r\n\r\n public static dateInGivenFormat = (input: Date | string, formatDest: string = \"YYYY-MM-DD\"): string => {\r\n let date = FormatUtility.dateOrUndefined(input);\r\n if (date != null) {\r\n return moment(date).format(formatDest);\r\n }\r\n return \"\";\r\n };\r\n\r\n public static getOmocodiaCodiceFiscale = (codiceFiscale: string, omocodia: number = 0): string => {\r\n const omocodiaChars = \"LMNPQRSTUV\";\r\n const chNumericiPerOmocodia = [14, 13, 12, 10, 9, 7, 6];\r\n if (omocodia > 0) {\r\n const chPos = chNumericiPerOmocodia[omocodia - 1];\r\n let codiceFiscaleSostitutivo = \"\";\r\n codiceFiscaleSostitutivo += codiceFiscale.substring(0, chPos);\r\n const numero = parseInt(codiceFiscale.substring(chPos, chPos + 1));\r\n if (isNaN(numero) === false) {\r\n codiceFiscaleSostitutivo += omocodiaChars.charAt(numero);\r\n } else {\r\n return \"\";\r\n }\r\n codiceFiscaleSostitutivo += codiceFiscale.substring(chPos + 1);\r\n codiceFiscale = codiceFiscaleSostitutivo;\r\n omocodia--;\r\n }\r\n return codiceFiscale;\r\n };\r\n\r\n public static getCodiceFiscale = (\r\n cognome: string,\r\n nome: string,\r\n dataNascita: Date,\r\n sesso: \"M\" | \"F\",\r\n luogoNascita: string\r\n ): string => {\r\n const regexConsonanti = /[^BCDFGHJKLMNPQRSTVWXYZ]/gi;\r\n const regexVocali = /[^AEIOU]/gi;\r\n const emptyChar = \"X\";\r\n const monthsChars = \"ABCDEHLMPRST\";\r\n const chDispari = {\r\n 0: 1,\r\n 1: 0,\r\n 2: 5,\r\n 3: 7,\r\n 4: 9,\r\n 5: 13,\r\n 6: 15,\r\n 7: 17,\r\n 8: 19,\r\n 9: 21,\r\n A: 1,\r\n B: 0,\r\n C: 5,\r\n D: 7,\r\n E: 9,\r\n F: 13,\r\n G: 15,\r\n H: 17,\r\n I: 19,\r\n J: 21,\r\n K: 2,\r\n L: 4,\r\n M: 18,\r\n N: 20,\r\n O: 11,\r\n P: 3,\r\n Q: 6,\r\n R: 8,\r\n S: 12,\r\n T: 14,\r\n U: 16,\r\n V: 10,\r\n W: 22,\r\n X: 25,\r\n Y: 24,\r\n Z: 23,\r\n };\r\n const chPari = {\r\n 0: 0,\r\n 1: 1,\r\n 2: 2,\r\n 3: 3,\r\n 4: 4,\r\n 5: 5,\r\n 6: 6,\r\n 7: 7,\r\n 8: 8,\r\n 9: 9,\r\n A: 0,\r\n B: 1,\r\n C: 2,\r\n D: 3,\r\n E: 4,\r\n F: 5,\r\n G: 6,\r\n H: 7,\r\n I: 8,\r\n J: 9,\r\n K: 10,\r\n L: 11,\r\n M: 12,\r\n N: 13,\r\n O: 14,\r\n P: 15,\r\n Q: 16,\r\n R: 17,\r\n S: 18,\r\n T: 19,\r\n U: 20,\r\n V: 21,\r\n W: 22,\r\n X: 23,\r\n Y: 24,\r\n Z: 25,\r\n };\r\n const chControllo = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\n let partCognome = \"\";\r\n let partNome = \"\";\r\n let partAnno = \"\";\r\n let partMese = \"\";\r\n let partGiorno = \"\";\r\n let partCheckCh = \"\";\r\n let codiceFiscale = \"\";\r\n\r\n // #region parameters validation\r\n cognome = cognome ? cognome.toUpperCase() : \"\";\r\n nome = nome ? nome.toUpperCase() : \"\";\r\n luogoNascita = luogoNascita ? luogoNascita.toUpperCase() : \"\";\r\n // #endregion parameters validation\r\n\r\n // #region cognome\r\n partCognome = cognome.replace(regexConsonanti, \"\");\r\n partCognome += cognome.replace(regexVocali, \"\");\r\n partCognome += emptyChar.repeat(3);\r\n partCognome = partCognome.substr(0, 3);\r\n // #endregion cognome\r\n\r\n // #region nome\r\n partNome = nome.replace(regexConsonanti, \"\");\r\n // ignora la seconda consonante se il nome contiene più di 3 consonanti\r\n if (partNome.length > 3) {\r\n partNome = partNome.substring(0, 1) + partNome.substring(2, 4);\r\n }\r\n partNome += nome.replace(regexVocali, \"\");\r\n partNome += emptyChar.repeat(3);\r\n partNome = partNome.substr(0, 3);\r\n // #endregion nome\r\n\r\n // #region data nascita e sesso\r\n const data = FormatUtility.dateInGivenFormat(dataNascita, \"DD/MM/YYYY\");\r\n if (data) {\r\n const dd = data.substring(0, 2);\r\n const mm = data.substring(3, 5);\r\n const yy = data.substring(8, 10);\r\n\r\n switch (sesso) {\r\n case \"M\":\r\n partGiorno = dd;\r\n break;\r\n case \"F\":\r\n partGiorno = (parseInt(dd) + 40).toString().padStart(2, \"0\");\r\n break;\r\n }\r\n\r\n partMese = monthsChars.charAt(parseInt(mm) - 1);\r\n\r\n partAnno = yy;\r\n }\r\n // #endregion data nascita e sesso\r\n\r\n codiceFiscale = partCognome + partNome + partAnno + partMese + partGiorno + luogoNascita;\r\n\r\n if (codiceFiscale.length !== 15) {\r\n return \"\";\r\n }\r\n\r\n // #region calcola carattere di controllo\r\n let somma = 0;\r\n for (let i = 0; i < 15; i++) {\r\n const char = codiceFiscale.charAt(i);\r\n if (i % 2) {\r\n somma += chPari[char];\r\n } else {\r\n somma += chDispari[char];\r\n }\r\n }\r\n somma %= 26;\r\n partCheckCh = chControllo.charAt(somma);\r\n // #endregion calcola carattere di controllo\r\n\r\n codiceFiscale += partCheckCh;\r\n\r\n if (codiceFiscale.length !== 16) {\r\n return \"\";\r\n }\r\n\r\n return codiceFiscale;\r\n };\r\n\r\n //#region find object fields\r\n public static getNestedFieldsValues = (obj: T, fieldName: string, result: any[]) => {\r\n if (fieldName in obj) {\r\n result.push(obj[fieldName]);\r\n }\r\n Object.keys(obj).forEach((key: string) => {\r\n if (typeof obj[key] === \"object\") {\r\n FormatUtility.getNestedFieldsValues(obj[key], fieldName, result);\r\n }\r\n });\r\n };\r\n //#endregion find object fields\r\n\r\n // #region clone object functions\r\n public static cloneObject = (object: T, replaceValuesFunction?: (val: T) => O) => {\r\n return FormatUtility.deepCloneElement(object, replaceValuesFunction);\r\n };\r\n\r\n private static deepCloneElement = (\r\n value: T,\r\n replaceValuesFunction?: (val: T) => O\r\n ): ClonedObject | unknown => {\r\n if (typeof value !== \"object\" || value === null) {\r\n if (replaceValuesFunction !== undefined) {\r\n return replaceValuesFunction(value);\r\n } else {\r\n return value;\r\n }\r\n } else if (Array.isArray(value)) {\r\n return FormatUtility.deepCloneArray(value, replaceValuesFunction);\r\n } else {\r\n return FormatUtility.deepCloneObject(value, replaceValuesFunction);\r\n }\r\n };\r\n\r\n private static deepCloneObject = (source: T, replaceValuesFunction?: (val: T) => O): ClonedObject => {\r\n const excludedKeys = [\"IS_BASE_MODEL\", \"sjsId\", \"sjsOptions\"];\r\n const result = {};\r\n Object.keys(source)\r\n .filter((key) => excludedKeys.includes(key) === false)\r\n .forEach((key) => {\r\n const value = source[key];\r\n result[key] = FormatUtility.deepCloneElement(value, replaceValuesFunction);\r\n }, {});\r\n return result as ClonedObject;\r\n };\r\n\r\n private static deepCloneArray = (\r\n collection: T,\r\n replaceValuesFunction?: (val: T) => O\r\n ): ClonedObject => {\r\n return collection.map((value) => {\r\n return FormatUtility.deepCloneElement(value, replaceValuesFunction);\r\n }) as ClonedObject;\r\n };\r\n // #endregion clone object functions\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\nimport NuovoImpegnoViewModel from \"./NuovoImpegnoViewModel\";\r\n\r\nexport default class PreventivoQuestionarioViewModel extends BaseModel {\r\n public readonly categoriaAmministrativa: string = \"\";\r\n public readonly descrizioneCategoriaAmministrativa: string = \"\";\r\n public readonly amministrazione: string = \"\";\r\n public readonly decrizioneAmministrazione: string = \"\";\r\n public readonly fgAltriFinanziamenti: string = \"\";\r\n public readonly altriImpegni: NuovoImpegnoViewModel[] = [];\r\n\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class RichiestaConcludiRequestModel extends BaseModel {\r\n public readonly idPreventivo: number = 0;\r\n public readonly fgDichiarazioneBeneficiario: boolean = false;\r\n public readonly fgDichiarazioneNonEspostaPolitica: boolean = false;\r\n public readonly fgDichiarazioneEspostaPolitica: boolean = false;\r\n public readonly fgDichiarazioneEsigenzePersonali: boolean = false;\r\n public readonly fgDichiarazioneAltro: boolean = false;\r\n public readonly isSospensione?: boolean = false;\r\n public readonly step?: string = \"\";\r\n\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class CqsOnlineRichiestaInfoSezionePreventivoViewModel extends BaseModel {\r\n public readonly id: number = 0;\r\n public readonly fkIdPreventivo: number = 0;\r\n public readonly fkIdGruppoDoc: number = 0;\r\n public readonly urlFirma: string = \"\";\r\n public readonly dtAttivazioneFirma: string = \"\";\r\n public readonly dtFirma: string = \"\";\r\n public readonly codiceMacroPratica: string = \"\";\r\n public readonly numeroMacroPratica: number = 0;\r\n public readonly dtCaricamento: string = \"\";\r\n public readonly stato: string = \"\";\r\n\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class PraticaInfoPraticaRequestModel extends BaseModel {\r\n public readonly idPreventivo: number = 0;\r\n public readonly numPratica: number = 0;\r\n public readonly cdg: string = \"\";\r\n public readonly dataInvioCse: string = \"\";\r\n public readonly statoId: number = 0;\r\n public readonly statoDescrizione: string = \"\";\r\n public readonly condizioneId: number = 0;\r\n public readonly condizioneDescrizione: string = \"\";\r\n public readonly referente: string = \"\";\r\n public readonly assicurazioneRvId: number = 0;\r\n public readonly assicurazioneRvDescrizione: string = \"\";\r\n public readonly assicurazioneRcId: number = 0;\r\n public readonly assicurazioneRcDescrizione: string = \"\";\r\n\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class ConfigurationModel extends BaseModel {\r\n public readonly analyticsUID: string = \"\";\r\n public readonly campiBoxPreventivo: boolean = false;\r\n\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\n\r\ninterface IProps {\r\n show: boolean;\r\n onHideHandler?: () => void;\r\n closeOnOutClick?: boolean;\r\n className?: string;\r\n headerClassName?: string;\r\n bodyClassName?: string;\r\n footerClassName?: string;\r\n color?: \"red\";\r\n centered?: boolean;\r\n title?: JSX.Element;\r\n body: JSX.Element;\r\n footer?: JSX.Element;\r\n size?: \"sm\" | \"lg\" | \"xl\" | undefined;\r\n}\r\n\r\nclass BaseModal extends React.Component {\r\n private getColor = (): string => {\r\n switch (this.props.color) {\r\n case \"red\":\r\n return \"modal-danger\";\r\n default:\r\n return \"\";\r\n }\r\n };\r\n\r\n public render(): JSX.Element {\r\n const {\r\n show,\r\n onHideHandler,\r\n closeOnOutClick,\r\n centered,\r\n className,\r\n headerClassName,\r\n bodyClassName,\r\n footerClassName,\r\n title,\r\n body,\r\n footer,\r\n size,\r\n } = this.props;\r\n\r\n return (\r\n \r\n {title ? (\r\n \r\n {title}\r\n \r\n ) : null}\r\n {body}\r\n {footer ? {footer} : null}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport { BaseModal as Unconnected };\r\nexport default BaseModal;\r\n","import environment from \"environment\";\r\nimport HttpErrorResponseModel from \"../../models/HttpErrorResponseModel\";\r\nimport HttpUtility from \"../../utilities/HttpUtility\";\r\nimport { AxiosResponse } from \"axios\";\r\nimport EffectUtility from \"../../utilities/EffectUtility\";\r\nimport ResponseEsitoModel from \"stores/shared/models/ResponseEsitoModel\";\r\nimport PraticaInfoPraticaRequestModel from \"./models/PraticaInfoPraticaRequestModel\";\r\nexport default class PraticaEffect {\r\n public static async requestCreaPraticaCqsOnline(\r\n idPreventivo: number\r\n ): Promise {\r\n const endpoint: string = environment.api.creaPraticaCQSonline;\r\n return EffectUtility.getToModel(ResponseEsitoModel, endpoint, {\r\n idPreventivo: idPreventivo,\r\n });\r\n }\r\n\r\n public static async requestGetInfoPratica(\r\n idPreventivo: number\r\n ): Promise {\r\n const endpoint: string = environment.api.getInfoPratica;\r\n return EffectUtility.getToModel(PraticaInfoPraticaRequestModel, endpoint, {\r\n idPreventivo: idPreventivo,\r\n });\r\n }\r\n\r\n /**\r\n * This is only to trigger an error api response so we can use it for an example in the AboutPage\r\n */\r\n public static async requestError(): Promise {\r\n const endpoint: string = environment.api.errorExample;\r\n const response: AxiosResponse | HttpErrorResponseModel = await HttpUtility.get(endpoint);\r\n\r\n if (response instanceof HttpErrorResponseModel) {\r\n return response;\r\n }\r\n\r\n return response.data;\r\n }\r\n}\r\n","import HttpErrorResponseModel from \"../../models/HttpErrorResponseModel\";\r\nimport ActionUtility from \"../../utilities/ActionUtility\";\r\nimport { ReduxDispatch } from \"../../models/ReduxProps\";\r\nimport PraticaEffect from \"./PraticaEffect\";\r\nimport ResponseEsitoModel from \"stores/shared/models/ResponseEsitoModel\";\r\nimport PraticaInfoPraticaRequestModel from \"./models/PraticaInfoPraticaRequestModel\";\r\n\r\ntype ActionUnion = undefined | HttpErrorResponseModel | ResponseEsitoModel | PraticaInfoPraticaRequestModel;\r\n\r\nexport default class PraticaAction {\r\n public static readonly REQUEST_CREA_PRATICA_CQSOL: string = \"RichiestaAction.REQUEST_CREA_PRATICA_CQSOL\";\r\n public static readonly REQUEST_CREA_PRATICA_CQSOL_FINISHED: string =\r\n \"RichiestaAction.REQUEST_CREA_PRATICA_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_INFO_PRATICA_CQSOL: string = \"RichiestaAction.REQUEST_INFO_PRATICA_CQSOL\";\r\n public static readonly REQUEST_INFO_PRATICA_CQSOL_FINISHED: string =\r\n \"RichiestaAction.REQUEST_INFO_PRATICA_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_ERROR: string = \"RichiestaAction.REQUEST_ERROR\";\r\n public static readonly REQUEST_ERROR_FINISHED: string = \"RichiestaAction.REQUEST_ERROR_FINISHED\";\r\n\r\n public static requestCreaPraticaCqsOnline(idPreventivo: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n PraticaAction.REQUEST_CREA_PRATICA_CQSOL,\r\n PraticaEffect.requestCreaPraticaCqsOnline,\r\n idPreventivo\r\n );\r\n };\r\n }\r\n\r\n public static requestGetInfoPratica(idPreventivo: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n PraticaAction.REQUEST_INFO_PRATICA_CQSOL,\r\n PraticaEffect.requestGetInfoPratica,\r\n idPreventivo\r\n );\r\n };\r\n }\r\n\r\n public static requestError(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n PraticaAction.REQUEST_ERROR,\r\n PraticaEffect.requestError\r\n );\r\n };\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class RichiestaTipoDocumentoViewModel extends BaseModel {\r\n public readonly codice: string = \"\";\r\n public readonly descrizione: string = \"\";\r\n public readonly fgDaGenerare: boolean = false;\r\n public readonly fgDaFirmare: boolean = false;\r\n\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\nimport RichiestaTipoDocumentoViewModel from \"./RichiestaTipoDocumentoViewModel\";\r\n\r\nexport default class RichiestaDocumentoViewModel extends BaseModel {\r\n public readonly tipoDocumento: RichiestaTipoDocumentoViewModel = new RichiestaTipoDocumentoViewModel({});\r\n public readonly idDocumento?: number = 0;\r\n public readonly percorso?: string = \"\";\r\n public readonly fgFirmato?: boolean = false;\r\n public readonly fgEliminato?: boolean = false;\r\n\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class ResponseStatoModel extends BaseModel {\r\n public readonly stato: string = \"\";\r\n public readonly infoStato: string = \"\";\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class NuovoImpegnoModel extends BaseModel {\r\n public readonly idImpegno: number = 0;\r\n public readonly idUtente: number = 0;\r\n public readonly tipologiaImpegno: string = \"\";\r\n public readonly fgPresenzaDati: string = \"\";\r\n public readonly estinzione: string = \"\";\r\n public readonly rata: number = 0;\r\n public readonly durata: number = 0;\r\n public readonly dataInizio: string = \"\";\r\n public readonly tan: number = 0;\r\n public readonly dataChiusuraCe: string = \"\";\r\n public readonly debitoResiduo: number = 0;\r\n public readonly ordineInserimento: number = 0;\r\n public readonly istitutoFinanziario: string = \"\";\r\n public readonly istitutoFinanziarioValore: string = \"\";\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import environment from \"environment\";\r\nimport HttpErrorResponseModel from \"../../models/HttpErrorResponseModel\";\r\nimport HttpUtility from \"../../utilities/HttpUtility\";\r\nimport { AxiosResponse } from \"axios\";\r\nimport EffectUtility from \"../../utilities/EffectUtility\";\r\nimport RichiestaModel from \"./models/RichiestaModel\";\r\nimport ResponseEsitoModel from \"stores/shared/models/ResponseEsitoModel\";\r\nimport RichiestaDatiAnagraficiRequestModel from \"./models/RichiestaDatiAnagraficiRequestModel\";\r\nimport RichiestaDatiRedditoRequestModel from \"./models/RichiestaDatiRedditoRequestModel\";\r\nimport RichiestaAltriPrestitiRequestModel from \"./models/RichiestaAltriPrestitiRequestModel\";\r\nimport RichiestaDocumentoViewModel from \"./models/RichiestaDocumentoViewModel\";\r\nimport RichiestaDocumentoRequestModel from \"./models/RichiestaDocumentoRequestModel\";\r\nimport ResponseStatoModel from \"../shared/models/ResponseStatoModel\";\r\nimport CqsOnlineRichiestaSezioneDocumentiViewModel from \"stores/cqsonline/models/CqsOnlineRichiestaSezioneDocumentiViewModel\";\r\nimport CqsOnlineRichiestaUploadDocumentoRequestModel from \"stores/cqsonline/models/CqsOnlineRichiestaUploadDocumentoRequestModel\";\r\nimport RichiestaConcludiRequestModel from \"./models/RichiestaConcludiRequestModel\";\r\nimport NuovoImpegnoModel from \"stores/preventivo/models/NuovoImpegnoModel\";\r\nimport RichiestaAdeguataVerificaRequestModel from \"./models/RichiestaAdeguataVerificaRequestModel\";\r\nimport moment from \"moment\";\r\n\r\nexport default class RichiestaEffect {\r\n public static async verificaRichiesta(): Promise {\r\n const endpoint: string = environment.api.verificaRichiesta;\r\n return EffectUtility.getToModel(ResponseEsitoModel, endpoint);\r\n }\r\n\r\n public static async requestRichiesta(idRichiesta: number): Promise {\r\n const endpoint: string = environment.api.getRichiesta;\r\n return EffectUtility.postToModel(RichiestaModel, endpoint, {\r\n idRichiesta: idRichiesta,\r\n });\r\n }\r\n\r\n public static async saveStepRichiesta(\r\n idRichiesta: number,\r\n isSospensione: boolean,\r\n step: string\r\n ): Promise {\r\n const endpoint: string = environment.api.saveStepRichiesta;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, {\r\n idRichiesta: idRichiesta,\r\n isSospensione: isSospensione,\r\n step: step,\r\n });\r\n }\r\n\r\n public static async downloadPianoAmmortamento(\r\n idPreventivo: number,\r\n progressHandler: (progress: number) => void\r\n ): Promise {\r\n const endpoint: string = environment.api.getDocumentoPianoAmmortamento + \"/\" + idPreventivo.toString();\r\n return EffectUtility.getFile(endpoint, undefined, progressHandler);\r\n }\r\n\r\n public static async requestDatiAnagrafici(\r\n codTipoRichiedente: string\r\n ): Promise {\r\n const endpoint: string = environment.api.getDatiAnagrafici;\r\n return EffectUtility.getToModel(\r\n RichiestaDatiAnagraficiRequestModel,\r\n endpoint,\r\n { codTipoRichiedente: codTipoRichiedente }\r\n );\r\n }\r\n\r\n public static async saveDatiAnagrafici(\r\n request: RichiestaDatiAnagraficiRequestModel\r\n ): Promise {\r\n const endpoint: string = environment.api.saveDatiAnagrafici;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, request);\r\n }\r\n\r\n public static async requestDatiReddito(\r\n codTipoRichiedente: string\r\n ): Promise {\r\n const endpoint: string = environment.api.getDatiReddito;\r\n return EffectUtility.getToModel(RichiestaDatiRedditoRequestModel, endpoint, {\r\n codTipoRichiedente: codTipoRichiedente,\r\n });\r\n }\r\n\r\n public static async saveDatiReddito(\r\n request: RichiestaDatiRedditoRequestModel\r\n ): Promise {\r\n const endpoint: string = environment.api.saveDatiReddito;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, request);\r\n }\r\n\r\n public static async requestAltriPrestiti(\r\n codTipoRichiedente: string\r\n ): Promise {\r\n const endpoint: string = environment.api.getAltriPrestiti;\r\n return EffectUtility.getToModel(\r\n RichiestaAltriPrestitiRequestModel,\r\n endpoint,\r\n { codTipoRichiedente: codTipoRichiedente }\r\n );\r\n }\r\n\r\n public static async saveAltriPrestiti(\r\n request: RichiestaAltriPrestitiRequestModel\r\n ): Promise {\r\n const endpoint: string = environment.api.saveAltriPrestiti;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, request);\r\n }\r\n\r\n public static async requestDocumenti(\r\n codTipoRichiedente: string,\r\n codSezione: string\r\n ): Promise {\r\n const endpoint: string = environment.api.getDocumenti;\r\n return EffectUtility.getToModel(RichiestaDocumentoViewModel, endpoint, {\r\n codTipoRichiedente: codTipoRichiedente,\r\n codSezione: codSezione,\r\n });\r\n }\r\n\r\n public static async uploadDocumento(\r\n request: RichiestaDocumentoRequestModel,\r\n progressHandler: (progress: number) => void\r\n ): Promise {\r\n const endpoint: string = environment.api.saveDocumento;\r\n return EffectUtility.postFormDataToModel(\r\n ResponseEsitoModel,\r\n endpoint,\r\n request,\r\n progressHandler\r\n );\r\n }\r\n\r\n public static async downloadDocumento(\r\n idDocumento: number,\r\n progressHandler: (progress: number) => void\r\n ): Promise {\r\n const endpoint: string = environment.api.getDocumento + \"/\" + idDocumento.toString();\r\n return EffectUtility.getFile(endpoint, undefined, progressHandler);\r\n }\r\n\r\n public static async deleteDocumento(idDocumento: number): Promise {\r\n const endpoint: string = environment.api.deleteDocumento + \"/\" + idDocumento.toString();\r\n return EffectUtility.deleteToModel(ResponseEsitoModel, endpoint);\r\n }\r\n\r\n public static async requestAvviaProcessoFirma(\r\n codTipoRichiedente: string,\r\n tipoProcesso: string\r\n ): Promise {\r\n const endpoint: string = environment.api.avviaProcessoFirma;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, {\r\n codTipoRichiedente: codTipoRichiedente,\r\n tipoProcesso: tipoProcesso,\r\n });\r\n }\r\n\r\n public static async requestAnnullaProcessoFirma(\r\n codTipoRichiedente: string,\r\n tipoProcesso: string\r\n ): Promise {\r\n const endpoint: string = environment.api.annullaProcessoFirma;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, {\r\n codTipoRichiedente: codTipoRichiedente,\r\n tipoProcesso: tipoProcesso,\r\n });\r\n }\r\n\r\n public static async requestStatoProcessoFirma(\r\n codTipoRichiedente: string,\r\n tipoProcesso: string\r\n ): Promise {\r\n const endpoint: string = environment.api.getStatoProcessoFirma;\r\n return EffectUtility.getToModel(ResponseStatoModel, endpoint, {\r\n codTipoRichiedente: codTipoRichiedente,\r\n tipoProcesso: tipoProcesso,\r\n });\r\n }\r\n\r\n public static async requestAvviaProcessoRiconoscimento(\r\n codTipoRichiedente: string,\r\n tipoProcesso: string\r\n ): Promise {\r\n const endpoint: string = environment.api.avviaProcessoRiconoscimento;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, {\r\n codTipoRichiedente: codTipoRichiedente,\r\n tipoProcesso: tipoProcesso,\r\n });\r\n }\r\n\r\n /* public static async requestAnnullaProcessoRiconoscimento(\r\n codTipoRichiedente: string,\r\n tipoProcesso: string\r\n ): Promise {\r\n const endpoint: string = environment.api.annullaProcessoRiconoscimento;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, {\r\n codTipoRichiedente: codTipoRichiedente,\r\n tipoProcesso: tipoProcesso,\r\n });\r\n } */\r\n\r\n /* public static async requestStatoProcessoRiconoscimento(\r\n codTipoRichiedente: string\r\n ): Promise {\r\n const endpoint: string = environment.api.getStatoProcessoRiconoscimento;\r\n return EffectUtility.getToModel(ResponseStatoModel, endpoint, {\r\n codTipoRichiedente: codTipoRichiedente,\r\n });\r\n }\r\n */\r\n // #region CQS online\r\n public static async requestDocumentiDaCaricareCqsOnline(\r\n idPreventivo: number\r\n ): Promise {\r\n const endpoint: string = environment.api.getDocumentiDaCaricareCQSonline;\r\n return EffectUtility.getToModel(\r\n CqsOnlineRichiestaSezioneDocumentiViewModel,\r\n endpoint,\r\n { idPreventivo }\r\n );\r\n }\r\n\r\n public static async requestDocumentiDaFirmareCqsOnline(\r\n idPreventivo: number\r\n ): Promise {\r\n const endpoint: string = environment.api.getDocumentiDaFirmareCQSonline;\r\n return EffectUtility.getToModel(\r\n CqsOnlineRichiestaSezioneDocumentiViewModel,\r\n endpoint,\r\n { idPreventivo }\r\n );\r\n }\r\n\r\n public static async requestStatoFirmaCqsOnline(\r\n idPreventivo: number\r\n ): Promise {\r\n const endpoint: string = environment.api.statoFirmaCQSonline;\r\n return EffectUtility.getToModel(ResponseStatoModel, endpoint, { idPreventivo });\r\n }\r\n\r\n public static async uploadDocumentoCqsOnline(\r\n request: CqsOnlineRichiestaUploadDocumentoRequestModel,\r\n progressHandler: (progress: number) => void\r\n ): Promise {\r\n const endpoint: string = environment.api.saveDocumentoCQSonline;\r\n return EffectUtility.postFormDataToModel(\r\n ResponseEsitoModel,\r\n endpoint,\r\n request,\r\n progressHandler\r\n );\r\n }\r\n\r\n public static async saveSezioneDocumentiCqsOnline(\r\n idPreventivo: number,\r\n sezione: CqsOnlineRichiestaSezioneDocumentiViewModel\r\n ): Promise {\r\n const endpoint: string = environment.api.saveSezioneDocumentiCQSonline;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, { idPreventivo, sezione });\r\n }\r\n\r\n public static async downloadDocumentoCqsOnline(\r\n idDocumento: number,\r\n isFirmato: boolean = false,\r\n progressHandler: (progress: number) => void\r\n ): Promise {\r\n const endpoint: string = environment.api.getDocumentoCQSonline;\r\n return EffectUtility.getFile(endpoint, { idDocumento, isFirmato }, progressHandler);\r\n }\r\n\r\n public static async deleteDocumentoCqsOnline(\r\n idDocumento: number\r\n ): Promise {\r\n const endpoint: string = environment.api.deleteDocumentoCQSonline + \"/\" + idDocumento.toString();\r\n return EffectUtility.deleteToModel(ResponseEsitoModel, endpoint);\r\n }\r\n\r\n public static async requestAvviaProcessoFirmaCqsOnline(\r\n idPreventivo: number,\r\n idGruppo: number\r\n ): Promise {\r\n const endpoint: string = environment.api.avvioFirmaCQSonline;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, {\r\n idPreventivo: idPreventivo,\r\n idGruppo: idGruppo,\r\n });\r\n }\r\n\r\n public static async requestAnnullaProcessoFirmaCqsOnline(\r\n idPreventivo: number,\r\n idGruppo: number\r\n ): Promise {\r\n const endpoint: string = environment.api.annullaFirmaCQSonline;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, {\r\n idPreventivo: idPreventivo,\r\n idGruppo: idGruppo,\r\n });\r\n }\r\n\r\n public static async requestAvviaProcessoRiconoscimentoCqsOnline(\r\n idPreventivo: number\r\n ): Promise {\r\n const endpoint: string = environment.api.avviaRiconoscimentoCQSonline;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, {\r\n idPreventivo: idPreventivo,\r\n });\r\n }\r\n\r\n public static async requestAnnullaProcessoRiconoscimentoCqsOnline(\r\n idPreventivo: number\r\n ): Promise {\r\n const endpoint: string = environment.api.annullaRiconoscimentoCQSonline;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, {\r\n idPreventivo: idPreventivo,\r\n });\r\n }\r\n\r\n public static async requestStatoProcessoRiconoscimentoCqsOnline(\r\n idPreventivo: number\r\n ): Promise {\r\n const endpoint: string = environment.api.getStatoRiconoscimentoCQSonline;\r\n return EffectUtility.getToModel(ResponseStatoModel, endpoint, {\r\n idPreventivo: idPreventivo,\r\n });\r\n }\r\n\r\n public static async requestCheckPreventivoCqsOnline(\r\n idPreventivo: number\r\n ): Promise {\r\n const endpoint: string = environment.api.verificaPreventivo;\r\n return EffectUtility.getToModel(ResponseEsitoModel, endpoint, { idPreventivo });\r\n }\r\n\r\n public static async requestCancellaPreventivoRichiestaCqsOnline(\r\n idPreventivo: number\r\n ): Promise {\r\n const endpoint: string = environment.api.cancellaPreventivoRichiesta;\r\n return EffectUtility.getToModel(ResponseEsitoModel, endpoint, { idPreventivo });\r\n }\r\n\r\n public static async requestDocumentiIstruttoriaDaFirmareCqsOnline(\r\n idPreventivo: number\r\n ): Promise {\r\n const endpoint: string = environment.api.getDocumentiIstruttoriaDaFirmareCQSonline;\r\n return EffectUtility.getToModel(\r\n CqsOnlineRichiestaSezioneDocumentiViewModel,\r\n endpoint,\r\n { idPreventivo }\r\n );\r\n }\r\n\r\n public static async requestConcludi(\r\n idPreventivo: number\r\n ): Promise {\r\n const endpoint: string = environment.api.getConcludi;\r\n return EffectUtility.getToModel(RichiestaConcludiRequestModel, endpoint, {\r\n idPreventivo: idPreventivo,\r\n });\r\n }\r\n\r\n public static async saveConcludi(\r\n request: RichiestaConcludiRequestModel\r\n ): Promise {\r\n const endpoint: string = environment.api.saveConcludi;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, request);\r\n }\r\n\r\n public static async requestGetImpegni(idUtente: number): Promise {\r\n const endpoint: string = environment.api.getImpegni;\r\n return EffectUtility.getToModel(NuovoImpegnoModel, endpoint, { idUtente: idUtente });\r\n }\r\n\r\n public static async saveImpegni(\r\n impegni: NuovoImpegnoModel[]\r\n ): Promise {\r\n const endpoint: string = environment.api.saveImpegni;\r\n // console.log(\"effect \" , impegni);\r\n // debugger;\r\n let request = [\r\n ...impegni.map((imp: NuovoImpegnoModel) => ({\r\n ...imp,\r\n dataInizio: moment(imp.dataInizio, \"DD-MM-YYYY\").format(\"YYYY-MM-DD\"), // moment.utc(imp.dataInizio).format(\"YYYY-MM-DD\"),\r\n //FormatUtility.dateInGivenFormat( imp.dataInizio.replace(\"-\", \"/\"), \"DD/MM/YYYY\"),\r\n dataChiusuraCe:\r\n parseInt(imp.dataChiusuraCe.split(\"/\")[1], 10) <= 12\r\n ? moment(imp.dataChiusuraCe, \"DD-MM-YYYY\").format(\"YYYY-MM-DD\")\r\n : moment(\r\n imp.dataChiusuraCe.split(\"/\")[1] +\r\n \"/\" +\r\n imp.dataChiusuraCe.split(\"/\")[0] +\r\n \"/\" +\r\n imp.dataChiusuraCe.split(\"/\")[2],\r\n \"DD-MM-YYYY\"\r\n ).format(\"YYYY-MM-DD\"), //moment.utc(imp.dataChiusuraCe).format(\"YYYY-MM-DD\"),\r\n })),\r\n ];\r\n // debugger;\r\n\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, request);\r\n }\r\n\r\n public static async deleteDocumentiGeneratiCqsOnline(\r\n idUtente: number,\r\n idPreventivo: number\r\n ): Promise {\r\n const endpoint: string = environment.api.deleteDocumentiGeneratiCQSonline;\r\n return EffectUtility.deleteToModel(ResponseEsitoModel, endpoint, {\r\n idUtente: idUtente,\r\n idPreventivo: idPreventivo,\r\n });\r\n }\r\n\r\n public static async requestAdeguataVerifica(): Promise<\r\n RichiestaAdeguataVerificaRequestModel | HttpErrorResponseModel\r\n > {\r\n const endpoint: string = environment.api.getAdeguataVerifica;\r\n return EffectUtility.getToModel(\r\n RichiestaAdeguataVerificaRequestModel,\r\n endpoint\r\n );\r\n }\r\n\r\n public static async saveAdeguataVerifica(\r\n request: RichiestaAdeguataVerificaRequestModel\r\n ): Promise {\r\n const endpoint: string = environment.api.saveAdeguataVerifica;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, request);\r\n }\r\n\r\n public static async deleteImpegni(idUtente: number): Promise {\r\n const endpoint: string = environment.api.deleteImpegni;\r\n return EffectUtility.deleteToModel(ResponseEsitoModel, endpoint, { idUtente: idUtente });\r\n }\r\n\r\n public static async requestTrasferisciDocumentiConsensiCqsWeb(\r\n idPreventivo: number\r\n ): Promise {\r\n const endpoint: string = environment.api.trasferisciConsesiCqsWeb;\r\n console.log(\"requestTrasferisciDocumentiConsensiCqsWeb idPreventivo \" + idPreventivo);\r\n return EffectUtility.getToModel(ResponseEsitoModel, endpoint, { idPreventivo });\r\n }\r\n\r\n // #endregion CQS online\r\n\r\n /**\r\n * This is only to trigger an error api response so we can use it for an example in the AboutPage\r\n */\r\n public static async requestError(): Promise {\r\n const endpoint: string = environment.api.errorExample;\r\n const response: AxiosResponse | HttpErrorResponseModel = await HttpUtility.get(endpoint);\r\n\r\n if (response instanceof HttpErrorResponseModel) {\r\n return response;\r\n }\r\n\r\n return response.data;\r\n }\r\n}\r\n","import RichiestaEffect from \"./RichiestaEffect\";\r\nimport HttpErrorResponseModel from \"../../models/HttpErrorResponseModel\";\r\nimport ActionUtility from \"../../utilities/ActionUtility\";\r\nimport { ReduxDispatch } from \"../../models/ReduxProps\";\r\nimport RichiestaModel from \"./models/RichiestaModel\";\r\nimport ResponseEsitoModel from \"stores/shared/models/ResponseEsitoModel\";\r\nimport RichiestaDatiAnagraficiRequestModel from \"./models/RichiestaDatiAnagraficiRequestModel\";\r\nimport RichiestaDatiRedditoRequestModel from \"./models/RichiestaDatiRedditoRequestModel\";\r\nimport RichiestaAltriPrestitiRequestModel from \"./models/RichiestaAltriPrestitiRequestModel\";\r\nimport RichiestaDocumentoViewModel from \"./models/RichiestaDocumentoViewModel\";\r\nimport RichiestaDocumentoRequestModel from \"./models/RichiestaDocumentoRequestModel\";\r\nimport ResponseStatoModel from \"../shared/models/ResponseStatoModel\";\r\nimport CqsOnlineRichiestaSezioneDocumentiViewModel from \"stores/cqsonline/models/CqsOnlineRichiestaSezioneDocumentiViewModel\";\r\nimport CqsOnlineRichiestaUploadDocumentoRequestModel from \"stores/cqsonline/models/CqsOnlineRichiestaUploadDocumentoRequestModel\";\r\nimport RichiestaConcludiRequestModel from \"./models/RichiestaConcludiRequestModel\";\r\nimport PreventivoQuestionarioModel from \"stores/preventivo/models/PreventivoQuestionarioModel\";\r\nimport NuovoImpegnoModel from \"stores/preventivo/models/NuovoImpegnoModel\";\r\nimport RicercaPreventivoViewModel from \"stores/preventivo/models/RicercaPreventivoViewModel\";\r\nimport RichiestaAdeguataVerificaRequestModel from \"./models/RichiestaAdeguataVerificaRequestModel\";\r\nimport NuovoImpegnoViewModel from \"stores/preventivo/models/NuovoImpegnoViewModel\";\r\n\r\ntype ActionUnion =\r\n | undefined\r\n | HttpErrorResponseModel\r\n | RichiestaModel\r\n | RichiestaDatiAnagraficiRequestModel\r\n | RichiestaDatiRedditoRequestModel\r\n | RichiestaAltriPrestitiRequestModel\r\n | ResponseEsitoModel\r\n | RichiestaDocumentoViewModel[]\r\n | Blob\r\n | ResponseStatoModel\r\n | CqsOnlineRichiestaSezioneDocumentiViewModel[]\r\n | RichiestaConcludiRequestModel\r\n | PreventivoQuestionarioModel\r\n | NuovoImpegnoModel[]\r\n | RicercaPreventivoViewModel\r\n | RichiestaAdeguataVerificaRequestModel;\r\n\r\nexport default class RichiestaAction {\r\n public static readonly VERIFICA_RICHIESTA: string = \"RichiestaAction.REQUEST_VERIFICA_RICHIESTA\";\r\n public static readonly VERIFICA_RICHIESTA_FINISHED: string = \"RichiestaAction.REQUEST_VERIFICA_RICHIESTA_FINISHED\";\r\n\r\n public static readonly REQUEST_RICHIESTA: string = \"RichiestaAction.REQUEST_RICHIESTA\";\r\n public static readonly REQUEST_RICHIESTA_FINISHED: string = \"RichiestaAction.REQUEST_RICHIESTA_FINISHED\";\r\n\r\n public static readonly SAVE_STEP_RICHIESTA: string = \"RichiestaAction.REQUEST_SAVE_STEP_RICHIESTA\";\r\n public static readonly SAVE_STEP_RICHIESTA_FINISHED: string =\r\n \"RichiestaAction.REQUEST_SAVE_STEP_RICHIESTA_FINISHED\";\r\n\r\n public static readonly DOWNLOAD_PIANO_AMMORTAMENTO: string = \"RichiestaAction.REQUEST_DOWNLOAD_PIANO_AMMORTAMENTO\";\r\n public static readonly DOWNLOAD_PIANO_AMMORTAMENTO_FINISHED: string =\r\n \"RichiestaAction.REQUEST_DOWNLOAD_PIANO_AMMORTAMENTO_FINISHED\";\r\n\r\n public static readonly REQUEST_DATI_ANAGRAFICI: string = \"RichiestaAction.REQUEST_DATI_ANAGRAFICI\";\r\n public static readonly REQUEST_DATI_ANAGRAFICI_FINISHED: string =\r\n \"RichiestaAction.REQUEST_DATI_ANAGRAFICI_FINISHED\";\r\n\r\n public static readonly SAVE_DATI_ANAGRAFICI: string = \"RichiestaAction.REQUEST_SAVE_DATI_ANAGRAFICI\";\r\n public static readonly SAVE_DATI_ANAGRAFICI_FINISHED: string =\r\n \"RichiestaAction.REQUEST_SAVE_DATI_ANAGRAFICI_FINISHED\";\r\n\r\n public static readonly REQUEST_DATI_REDDITO: string = \"RichiestaAction.REQUEST_DATI_REDDITO\";\r\n public static readonly REQUEST_DATI_REDDITO_FINISHED: string = \"RichiestaAction.REQUEST_DATI_REDDITO_FINISHED\";\r\n\r\n public static readonly SAVE_DATI_REDDITO: string = \"RichiestaAction.REQUEST_SAVE_DATI_REDDITO\";\r\n public static readonly SAVE_DATI_REDDITO_FINISHED: string = \"RichiestaAction.REQUEST_SAVE_DATI_REDDITO_FINISHED\";\r\n\r\n public static readonly REQUEST_ALTRI_PRESTITI: string = \"RichiestaAction.REQUEST_ALTRI_PRESTITI\";\r\n public static readonly REQUEST_ALTRI_PRESTITI_FINISHED: string = \"RichiestaAction.REQUEST_ALTRI_PRESTITI_FINISHED\";\r\n\r\n public static readonly SAVE_ALTRI_PRESTITI: string = \"RichiestaAction.REQUEST_SAVE_ALTRI_PRESTITI\";\r\n public static readonly SAVE_ALTRI_PRESTITI_FINISHED: string =\r\n \"RichiestaAction.REQUEST_SAVE_ALTRI_PRESTITI_FINISHED\";\r\n\r\n public static readonly REQUEST_DOCUMENTI_FIRMA_DEBOLE: string = \"RichiestaAction.REQUEST_DOCUMENTI_FIRMA_DEBOLE\";\r\n public static readonly REQUEST_DOCUMENTI_FIRMA_DEBOLE_FINISHED: string =\r\n \"RichiestaAction.REQUEST_DOCUMENTI_FIRMA_DEBOLE_FINISHED\";\r\n\r\n public static readonly REQUEST_DOCUMENTI_FIRMA_FORTE: string = \"RichiestaAction.REQUEST_DOCUMENTI_FIRMA_FORTE\";\r\n public static readonly REQUEST_DOCUMENTI_FIRMA_FORTE_FINISHED: string =\r\n \"RichiestaAction.REQUEST_DOCUMENTI_FIRMA_FORTE_FINISHED\";\r\n\r\n public static readonly UPLOAD_DOCUMENTO: string = \"RichiestaAction.REQUEST_UPLOAD_DOCUMENTO\";\r\n public static readonly UPLOAD_DOCUMENTO_FINISHED: string = \"RichiestaAction.REQUEST_UPLOAD_DOCUMENTO_FINISHED\";\r\n\r\n public static readonly DOWNLOAD_DOCUMENTO: string = \"RichiestaAction.REQUEST_DOWNLOAD_DOCUMENTO\";\r\n public static readonly DOWNLOAD_DOCUMENTO_FINISHED: string = \"RichiestaAction.REQUEST_DOWNLOAD_DOCUMENTO_FINISHED\";\r\n\r\n public static readonly DELETE_DOCUMENTO: string = \"RichiestaAction.REQUEST_DELETE_DOCUMENTO\";\r\n public static readonly DELETE_DOCUMENTO_FINISHED: string = \"RichiestaAction.REQUEST_DELETE_DOCUMENTO_FINISHED\";\r\n\r\n public static readonly REQUEST_AVVIA_PROCESSO_FIRMA_DEBOLE: string =\r\n \"RichiestaAction.REQUEST_AVVIA_PROCESSO_FIRMA_DEBOLE\";\r\n public static readonly REQUEST_AVVIA_PROCESSO_FIRMA_DEBOLE_FINISHED: string =\r\n \"RichiestaAction.REQUEST_AVVIA_PROCESSO_FIRMA_DEBOLE_FINISHED\";\r\n\r\n public static readonly REQUEST_ANNULLA_PROCESSO_FIRMA_DEBOLE: string =\r\n \"RichiestaAction.REQUEST_ANNULLA_PROCESSO_FIRMA_DEBOLE\";\r\n public static readonly REQUEST_ANNULLA_PROCESSO_FIRMA_DEBOLE_FINISHED: string =\r\n \"RichiestaAction.REQUEST_ANNULLA_PROCESSO_FIRMA_DEBOLE_FINISHED\";\r\n\r\n public static readonly REQUEST_STATO_PROCESSO_FIRMA_DEBOLE: string =\r\n \"RichiestaAction.REQUEST_STATO_PROCESSO_FIRMA_DEBOLE\";\r\n public static readonly REQUEST_STATO_PROCESSO_FIRMA_DEBOLE_FINISHED: string =\r\n \"RichiestaAction.REQUEST_STATO_PROCESSO_FIRMA_DEBOLE_FINISHED\";\r\n\r\n public static readonly REQUEST_AVVIA_PROCESSO_FIRMA_FORTE: string =\r\n \"RichiestaAction.REQUEST_AVVIA_PROCESSO_FIRMA_FORTE\";\r\n public static readonly REQUEST_AVVIA_PROCESSO_FIRMA_FORTE_FINISHED: string =\r\n \"RichiestaAction.REQUEST_AVVIA_PROCESSO_FIRMA_FORTE_FINISHED\";\r\n\r\n public static readonly REQUEST_ANNULLA_PROCESSO_FIRMA_FORTE: string =\r\n \"RichiestaAction.REQUEST_ANNULLA_PROCESSO_FIRMA_FORTE\";\r\n public static readonly REQUEST_ANNULLA_PROCESSO_FIRMA_FORTE_FINISHED: string =\r\n \"RichiestaAction.REQUEST_ANNULLA_PROCESSO_FIRMA_FORTE_FINISHED\";\r\n\r\n public static readonly REQUEST_STATO_PROCESSO_FIRMA_FORTE: string =\r\n \"RichiestaAction.REQUEST_STATO_PROCESSO_FIRMA_FORTE\";\r\n public static readonly REQUEST_STATO_PROCESSO_FIRMA_FORTE_FINISHED: string =\r\n \"RichiestaAction.REQUEST_STATO_PROCESSO_FIRMA_FORTE_FINISHED\";\r\n\r\n public static readonly REQUEST_AVVIA_PROCESSO_RICONOSCIMENTO: string =\r\n \"RichiestaAction.REQUEST_AVVIA_PROCESSO_RICONOSCIMENTO\";\r\n public static readonly REQUEST_AVVIA_PROCESSO_RICONOSCIMENTO_FINISHED: string =\r\n \"RichiestaAction.REQUEST_AVVIA_PROCESSO_RICONOSCIMENTO_FINISHED\";\r\n\r\n // public static readonly REQUEST_ANNULLA_PROCESSO_RICONOSCIMENTO: string =\r\n // \"RichiestaAction.REQUEST_ANNULLA_PROCESSO_RICONOSCIMENTO\";\r\n // public static readonly REQUEST_ANNULLA_PROCESSO_RICONOSCIMENTO_FINISHED: string =\r\n // \"RichiestaAction.REQUEST_ANNULLA_PROCESSO_RICONOSCIMENTO_FINISHED\";\r\n\r\n /* public static readonly REQUEST_STATO_PROCESSO_RICONOSCIMENTO: string =\r\n \"RichiestaAction.REQUEST_STATO_PROCESSO_RICONOSCIMENTO\";\r\n public static readonly REQUEST_STATO_PROCESSO_RICONOSCIMENTO_FINISHED: string =\r\n \"RichiestaAction.REQUEST_STATO_PROCESSO_RICONOSCIMENTO_FINISHED\"; */\r\n\r\n // #region CQS online\r\n public static readonly REQUEST_DOCUMENTI_DA_CARICARE_CQSOL: string =\r\n \"RichiestaAction.REQUEST_DOCUMENTI_DA_CARICARE_CQSOL\";\r\n public static readonly REQUEST_DOCUMENTI_DA_CARICARE_CQSOL_FINISHED: string =\r\n \"RichiestaAction.REQUEST_DOCUMENTI_DA_CARICARE_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_DOCUMENTI_DA_FIRMARE_CQSOL: string =\r\n \"RichiestaAction.REQUEST_DOCUMENTI_DA_FIRMARE_CQSOL\";\r\n public static readonly REQUEST_DOCUMENTI_DA_FIRMARE_CQSOL_FINISHED: string =\r\n \"RichiestaAction.REQUEST_DOCUMENTI_DA_FIRMARE_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_STATO_FIRMA_CQSOL: string = \"RichiestaAction.REQUEST_STATO_FIRMA_CQSOL\";\r\n public static readonly REQUEST_STATO_FIRMA_CQSOL_FINISHED: string =\r\n \"RichiestaAction.REQUEST_STATO_FIRMA_CQSOL_FINISHED\";\r\n\r\n public static readonly UPLOAD_DOCUMENTO_CQSOL: string = \"RichiestaAction.REQUEST_UPLOAD_DOCUMENTO_CQSOL\";\r\n public static readonly UPLOAD_DOCUMENTO_CQSOL_FINISHED: string =\r\n \"RichiestaAction.REQUEST_UPLOAD_DOCUMENTO_CQSOL_FINISHED\";\r\n\r\n public static readonly SAVE_SEZIONE_DOCUMENTI_CQSOL: string =\r\n \"RichiestaAction.REQUEST_SAVE_SEZIONE_DOCUMENTI_CQSOL\";\r\n public static readonly SAVE_SEZIONE_DOCUMENTI_CQSOL_FINISHED: string =\r\n \"RichiestaAction.REQUEST_SAVE_SEZIONE_DOCUMENTI_CQSOL_FINISHED\";\r\n\r\n public static readonly DOWNLOAD_DOCUMENTO_CQSOL: string = \"RichiestaAction.REQUEST_DOWNLOAD_DOCUMENTO_CQSOL\";\r\n public static readonly DOWNLOAD_DOCUMENTO_CQSOL_FINISHED: string =\r\n \"RichiestaAction.REQUEST_DOWNLOAD_DOCUMENTO_CQSOL_FINISHED\";\r\n\r\n public static readonly DELETE_DOCUMENTO_CQSOL: string = \"RichiestaAction.REQUEST_DELETE_DOCUMENTO_CQSOL\";\r\n public static readonly DELETE_DOCUMENTO_CQSOL_FINISHED: string =\r\n \"RichiestaAction.REQUEST_DELETE_DOCUMENTO_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_AVVIA_PROCESSO_FIRMA_CQSOL: string =\r\n \"RichiestaAction.REQUEST_AVVIA_PROCESSO_FIRMA_CQSOL\";\r\n public static readonly REQUEST_AVVIA_PROCESSO_FIRMA_CQSOL_FINISHED: string =\r\n \"RichiestaAction.REQUEST_AVVIA_PROCESSO_FIRMA_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_ANNULLA_PROCESSO_FIRMA_CQSOL: string =\r\n \"RichiestaAction.REQUEST_ANNULLA_PROCESSO_FIRMA_CQSOL\";\r\n public static readonly REQUEST_ANNULLA_PROCESSO_FIRMA_CQSOL_FINISHED: string =\r\n \"RichiestaAction.REQUEST_ANNULLA_PROCESSO_FIRMA_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_AVVIA_PROCESSO_RICONOSCIMENTO_CQSOL: string =\r\n \"RichiestaAction.REQUEST_AVVIA_PROCESSO_RICONOSCIMENTO_CQSOL\";\r\n public static readonly REQUEST_AVVIA_PROCESSO_RICONOSCIMENTO_CQSOL_FINISHED: string =\r\n \"RichiestaAction.REQUEST_AVVIA_PROCESSO_RICONOSCIMENTO_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_ANNULLA_PROCESSO_RICONOSCIMENTO_CQSOL: string =\r\n \"RichiestaAction.REQUEST_ANNULLA_PROCESSO_RICONOSCIMENTO_CQSOL\";\r\n public static readonly REQUEST_ANNULLA_PROCESSO_RICONOSCIMENTO_CQSOL_FINISHED: string =\r\n \"RichiestaAction.REQUEST_ANNULLA_PROCESSO_RICONOSCIMENTO_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_STATO_PROCESSO_RICONOSCIMENTO_CQSOL: string =\r\n \"RichiestaAction.REQUEST_STATO_PROCESSO_RICONOSCIMENTO_CQSOL\";\r\n public static readonly REQUEST_STATO_PROCESSO_RICONOSCIMENTO_CQSOL_FINISHED: string =\r\n \"RichiestaAction.REQUEST_STATO_PROCESSO_RICONOSCIMENTO_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_CHECK_PREVENTIVO_CQSOL: string = \"RichiestaAction.REQUEST_CHECK_PREVENTIVO_CQSOL\";\r\n public static readonly REQUEST_CHECK_PREVENTIVO_CQSOL_FINISHED: string =\r\n \"RichiestaAction.REQUEST_CHECK_PREVENTIVO_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_CANCELLA_PREVENTIVO_RICHIESTA_CQSOL: string =\r\n \"RichiestaAction.REQUEST_CANCELLA_PREVENTIVO_RICHIESTA_CQSOL\";\r\n public static readonly REQUEST_CANCELLA_PREVENTIVO_RICHIESTA_CQSOL_FINISHED: string =\r\n \"RichiestaAction.REQUEST_CANCELLA_PREVENTIVO_RICHIESTA_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_DOCUMENTI_ISTRUTTORIA_DA_FIRMARE_CQSOL: string =\r\n \"RichiestaAction.REQUEST_DOCUMENTI_ISTRUTTORIA_DA_FIRMARE_CQSOL\";\r\n public static readonly REQUEST_DOCUMENTI_ISTRUTTORIA_DA_FIRMARE_CQSOL_FINISHED: string =\r\n \"RichiestaAction.REQUEST_DOCUMENTI_ISTRUTTORIA_DA_FIRMARE_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_CONCLUDI_DICHIARAZIONI_CQSOL: string =\r\n \"RichiestaAction.REQUEST_CONCLUDI_DICHIARAZIONI_CQSOL\";\r\n public static readonly REQUEST_CONCLUDI_DICHIARAZIONI_CQSOL_FINISHED: string =\r\n \"RichiestaAction.REQUEST_CONCLUDI_DICHIARAZIONI_CQSOL_FINISHED\";\r\n\r\n public static readonly SAVE_CONCLUDI_DICHIARAZIONI_CQSOL: string =\r\n \"RichiestaAction.SAVE_CONCLUDI_DICHIARAZIONI_CQSOL\";\r\n public static readonly SAVE_CONCLUDI_DICHIARAZIONI_CQSOL_FINISHED: string =\r\n \"RichiestaAction.SAVE_CONCLUDI_DICHIARAZIONI_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_IMPEGNI_CQSOL: string = \"RichiestaAction.REQUEST_IMPEGNI_CQSOL\";\r\n public static readonly REQUEST_IMPEGNI_CQSOL_FINISHED: string = \"RichiestaAction.REQUEST_IMPEGNI_CQSOL_FINISHED\";\r\n\r\n public static readonly SAVE_IMPEGNI: string = \"RichiestaAction.SAVE_IMPEGNI\";\r\n public static readonly SAVE_IMPEGNI_FINISHED: string = \"RichiestaAction.REQUEST_SAVE_IMPEGNI_FINISHED\";\r\n\r\n public static readonly RESET_IMPEGNI: string = \"PreventivoAction.RESET_IMPEGNI\";\r\n public static readonly RESET_IMPEGNI_FINISHED: string = \"PreventivoAction.RESET_IMPEGNI_FINISHED\";\r\n\r\n public static readonly REQUEST_GET_FILTRI: string = \"PreventivoAction.REQUEST_GET_FILTRI\";\r\n public static readonly REQUEST_GET_FILTRI_FINISHED: string = \"PreventivoAction.REQUEST_GET_FILTRI\";\r\n\r\n public static readonly DELETE_DOCUMENTI_GENERATI_CQSOL: string =\r\n \"RichiestaAction.REQUEST_DELETE_DOCUMENTI_GENERATI_CQSOL\";\r\n public static readonly DELETE_DOCUMENTI_GENERATI_CQSOL_FINISHED: string =\r\n \"RichiestaAction.REQUEST_DELETE_DOCUMENTI_GENERATI_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_ADEGUATA_VERIFICA: string = \"RichiestaAction.REQUEST_ADEGUATA_VERIFICA\";\r\n public static readonly REQUEST_ADEGUATA_VERIFICA_FINISHED: string =\r\n \"RichiestaAction.REQUEST_ADEGUATA_VERIFICA_FINISHED\";\r\n\r\n public static readonly REQUEST_SAVE_ADEGUATA_VERIFICA: string = \"RichiestaAction.REQUEST_SAVE_ADEGUATA_VERIFICA\";\r\n public static readonly REQUEST_SAVE_ADEGUATA_VERIFICA_FINISHED: string =\r\n \"RichiestaAction.REQUEST_SAVE_ADEGUATA_VERIFICA_FINISHED\";\r\n // public static readonly REQUEST_ADEGUATA_VERIFICA: string = \"RichiestaAction.REQUEST_ADEGUATA_VERIFICA\";\r\n // public static readonly REQUEST_ADEGUATA_VERIFICA_FINISHED: string =\r\n // \"RichiestaAction.REQUEST_ADEGUATA_VERIFICA_FINISHED\";\r\n\r\n // public static readonly REQUEST_SAVE_ADEGUATA_VERIFICA: string = \"RichiestaAction.REQUEST_SAVE_ADEGUATA_VERIFICA\";\r\n // public static readonly REQUEST_SAVE_ADEGUATA_VERIFICA_FINISHED: string =\r\n // \"RichiestaAction.REQUEST_SAVE_ADEGUATA_VERIFICA_FINISHED\";\r\n\r\n public static readonly DELETE_IMPEGNI: string = \"RichiestaAction.DELETE_IMPEGNI\";\r\n public static readonly DELETE_IMPEGNI_FINISHED: string = \"RichiestaAction.DELETE_IMPEGNI_FINISHED\";\r\n\r\n public static readonly TRASFERISCI_DOC_CONSENSI_CQSWEB: string = \"RichiestaAction.TRASFERISCI_DOC_CONSENSI_CQSWEB\";\r\n public static readonly TRASFERISCI_DOC_CONSENSI_CQSWEB_FINISHED: string =\r\n \"RichiestaAction.TRASFERISCI_DOC_CONSENSI_CQSWEB_FINISHED\";\r\n // #endregion CQS online\r\n\r\n public static readonly REQUEST_ERROR: string = \"RichiestaAction.REQUEST_ERROR\";\r\n public static readonly REQUEST_ERROR_FINISHED: string = \"RichiestaAction.REQUEST_ERROR_FINISHED\";\r\n\r\n public static verificaRichiesta(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.VERIFICA_RICHIESTA,\r\n RichiestaEffect.verificaRichiesta\r\n );\r\n };\r\n }\r\n\r\n public static requestRichiesta(idRichiesta: number = 0): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_RICHIESTA,\r\n RichiestaEffect.requestRichiesta,\r\n idRichiesta\r\n );\r\n };\r\n }\r\n\r\n public static saveStepRichiesta(idRichiesta: number, isSospensione: boolean, step: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.SAVE_STEP_RICHIESTA,\r\n RichiestaEffect.saveStepRichiesta,\r\n idRichiesta,\r\n isSospensione,\r\n step\r\n );\r\n };\r\n }\r\n\r\n public static downloadPianoAmmortamento(idPreventivo: number, progressHandler: (progress: number) => void): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n return await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.DOWNLOAD_PIANO_AMMORTAMENTO,\r\n RichiestaEffect.downloadPianoAmmortamento,\r\n idPreventivo,\r\n progressHandler\r\n );\r\n };\r\n }\r\n\r\n public static requestDatiAnagrafici(codTipoRichiedente: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_DATI_ANAGRAFICI,\r\n RichiestaEffect.requestDatiAnagrafici,\r\n codTipoRichiedente\r\n );\r\n };\r\n }\r\n\r\n public static saveDatiAnagrafici(request: RichiestaDatiAnagraficiRequestModel): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.SAVE_DATI_ANAGRAFICI,\r\n RichiestaEffect.saveDatiAnagrafici,\r\n request\r\n );\r\n };\r\n }\r\n\r\n public static requestDatiReddito(codTipoRichiedente: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_DATI_REDDITO,\r\n RichiestaEffect.requestDatiReddito,\r\n codTipoRichiedente\r\n );\r\n };\r\n }\r\n\r\n public static saveDatiReddito(request: RichiestaDatiRedditoRequestModel): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.SAVE_DATI_REDDITO,\r\n RichiestaEffect.saveDatiReddito,\r\n request\r\n );\r\n };\r\n }\r\n\r\n public static requestAtriPrestiti(codTipoRichiedente: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_ALTRI_PRESTITI,\r\n RichiestaEffect.requestAltriPrestiti,\r\n codTipoRichiedente\r\n );\r\n };\r\n }\r\n\r\n public static saveAltriPrestiti(request: RichiestaAltriPrestitiRequestModel): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.SAVE_ALTRI_PRESTITI,\r\n RichiestaEffect.saveAltriPrestiti,\r\n request\r\n );\r\n };\r\n }\r\n\r\n public static requestDocumentiFirmaDebole(codTipoRichiedente: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_DOCUMENTI_FIRMA_DEBOLE,\r\n RichiestaEffect.requestDocumenti,\r\n codTipoRichiedente,\r\n \"D\"\r\n );\r\n };\r\n }\r\n\r\n public static requestDocumentiFirmaForte(codTipoRichiedente: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_DOCUMENTI_FIRMA_FORTE,\r\n RichiestaEffect.requestDocumenti,\r\n codTipoRichiedente,\r\n \"F\"\r\n );\r\n };\r\n }\r\n\r\n public static uploadDocumento(\r\n request: RichiestaDocumentoRequestModel,\r\n progressHandler: (progress: number) => void\r\n ): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.UPLOAD_DOCUMENTO,\r\n RichiestaEffect.uploadDocumento,\r\n request,\r\n progressHandler\r\n );\r\n };\r\n }\r\n\r\n public static downloadDocumento(idDocumento: number, progressHandler: (progress: number) => void): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n return await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.DOWNLOAD_DOCUMENTO,\r\n RichiestaEffect.downloadDocumento,\r\n idDocumento,\r\n progressHandler\r\n );\r\n };\r\n }\r\n\r\n public static deleteDocumento(idDocumento: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.DELETE_DOCUMENTO,\r\n RichiestaEffect.deleteDocumento,\r\n idDocumento\r\n );\r\n };\r\n }\r\n\r\n public static requestAvviaProcessoFirmaDebole(codTipoRichiedente: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_AVVIA_PROCESSO_FIRMA_DEBOLE,\r\n RichiestaEffect.requestAvviaProcessoFirma,\r\n codTipoRichiedente,\r\n \"D\"\r\n );\r\n };\r\n }\r\n\r\n public static requestAnnullaProcessoFirmaDebole(codTipoRichiedente: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_ANNULLA_PROCESSO_FIRMA_DEBOLE,\r\n RichiestaEffect.requestAnnullaProcessoFirma,\r\n codTipoRichiedente,\r\n \"D\"\r\n );\r\n };\r\n }\r\n\r\n public static requestStatoProcessoFirmaDebole(codTipoRichiedente: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_STATO_PROCESSO_FIRMA_DEBOLE,\r\n RichiestaEffect.requestStatoProcessoFirma,\r\n codTipoRichiedente,\r\n \"D\"\r\n );\r\n };\r\n }\r\n\r\n public static requestAvviaProcessoFirmaForte(codTipoRichiedente: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_AVVIA_PROCESSO_FIRMA_FORTE,\r\n RichiestaEffect.requestAvviaProcessoFirma,\r\n codTipoRichiedente,\r\n \"F\"\r\n );\r\n };\r\n }\r\n\r\n public static requestAnnullaProcessoFirmaForte(codTipoRichiedente: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_ANNULLA_PROCESSO_FIRMA_FORTE,\r\n RichiestaEffect.requestAnnullaProcessoFirma,\r\n codTipoRichiedente,\r\n \"F\"\r\n );\r\n };\r\n }\r\n\r\n public static requestStatoProcessoFirmaForte(codTipoRichiedente: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_STATO_PROCESSO_FIRMA_FORTE,\r\n RichiestaEffect.requestStatoProcessoFirma,\r\n codTipoRichiedente,\r\n \"F\"\r\n );\r\n };\r\n }\r\n\r\n public static requestAvviaProcessoRiconoscimento(codTipoRichiedente: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_AVVIA_PROCESSO_RICONOSCIMENTO,\r\n RichiestaEffect.requestAvviaProcessoRiconoscimento,\r\n codTipoRichiedente\r\n );\r\n };\r\n }\r\n\r\n /* public static requestAnnullaProcessoRiconoscimento(codTipoRichiedente: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_ANNULLA_PROCESSO_RICONOSCIMENTO,\r\n RichiestaEffect.requestAnnullaProcessoRiconoscimento,\r\n codTipoRichiedente\r\n );\r\n };\r\n } */\r\n\r\n /* public static requestStatoProcessoRiconoscimento(codTipoRichiedente: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_STATO_PROCESSO_RICONOSCIMENTO,\r\n RichiestaEffect.requestStatoProcessoRiconoscimento,\r\n codTipoRichiedente\r\n );\r\n };\r\n } */\r\n // #region CQS online\r\n public static requestDocumentiDaCaricareCqsOnline(idPreventivo: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_DOCUMENTI_DA_CARICARE_CQSOL,\r\n RichiestaEffect.requestDocumentiDaCaricareCqsOnline,\r\n idPreventivo\r\n );\r\n };\r\n }\r\n\r\n public static requestDocumentiDaFirmareCqsOnline(idPreventivo: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_DOCUMENTI_DA_FIRMARE_CQSOL,\r\n RichiestaEffect.requestDocumentiDaFirmareCqsOnline,\r\n idPreventivo\r\n );\r\n };\r\n }\r\n\r\n public static requestStatoFirmaCqsOnline(idPreventivo: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_STATO_FIRMA_CQSOL,\r\n RichiestaEffect.requestStatoFirmaCqsOnline,\r\n idPreventivo\r\n );\r\n };\r\n }\r\n\r\n public static uploadDocumentoCqsOnline(\r\n request: CqsOnlineRichiestaUploadDocumentoRequestModel,\r\n progressHandler: (progress: number) => void\r\n ): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.UPLOAD_DOCUMENTO_CQSOL,\r\n RichiestaEffect.uploadDocumentoCqsOnline,\r\n request,\r\n progressHandler\r\n );\r\n };\r\n }\r\n\r\n public static saveSezioneDocumentiCqsOnline(\r\n idPreventivo: number,\r\n sezione: CqsOnlineRichiestaSezioneDocumentiViewModel\r\n ): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.SAVE_SEZIONE_DOCUMENTI_CQSOL,\r\n RichiestaEffect.saveSezioneDocumentiCqsOnline,\r\n idPreventivo,\r\n sezione\r\n );\r\n };\r\n }\r\n\r\n public static downloadDocumentoCqsOnline(\r\n idDocumento: number,\r\n isFirmato: boolean = false,\r\n progressHandler: (progress: number) => void\r\n ): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n return await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.DOWNLOAD_DOCUMENTO_CQSOL,\r\n RichiestaEffect.downloadDocumentoCqsOnline,\r\n idDocumento,\r\n isFirmato,\r\n progressHandler\r\n );\r\n };\r\n }\r\n\r\n public static deleteDocumentoCqsOnline(idDocumento: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.DELETE_DOCUMENTO_CQSOL,\r\n RichiestaEffect.deleteDocumentoCqsOnline,\r\n idDocumento\r\n );\r\n };\r\n }\r\n\r\n public static requestAvviaProcessoFirmaCqsOnline(idPreventivo: number, idGruppo: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_AVVIA_PROCESSO_FIRMA_CQSOL,\r\n RichiestaEffect.requestAvviaProcessoFirmaCqsOnline,\r\n idPreventivo,\r\n idGruppo\r\n );\r\n };\r\n }\r\n\r\n public static requestAnnullaProcessoFirmaCqsOnline(idPreventivo: number, idGruppo: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_ANNULLA_PROCESSO_FIRMA_CQSOL,\r\n RichiestaEffect.requestAnnullaProcessoFirmaCqsOnline,\r\n idPreventivo,\r\n idGruppo\r\n );\r\n };\r\n }\r\n\r\n public static requestAvviaProcessoRiconoscimentoCqsOnline(idPreventivo: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_AVVIA_PROCESSO_RICONOSCIMENTO_CQSOL,\r\n RichiestaEffect.requestAvviaProcessoRiconoscimentoCqsOnline,\r\n idPreventivo\r\n );\r\n };\r\n }\r\n\r\n public static requestAnnullaProcessoRiconoscimentoCqsOnline(idPreventivo: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_ANNULLA_PROCESSO_RICONOSCIMENTO_CQSOL,\r\n RichiestaEffect.requestAnnullaProcessoRiconoscimentoCqsOnline,\r\n idPreventivo\r\n );\r\n };\r\n }\r\n\r\n public static requestStatoProcessoRiconoscimentoCqsOnline(idPreventivo: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_STATO_PROCESSO_RICONOSCIMENTO_CQSOL,\r\n RichiestaEffect.requestStatoProcessoRiconoscimentoCqsOnline,\r\n idPreventivo\r\n );\r\n };\r\n }\r\n\r\n public static requestCheckPreventivoCqsOnline(idPreventivo: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_CHECK_PREVENTIVO_CQSOL,\r\n RichiestaEffect.requestCheckPreventivoCqsOnline,\r\n idPreventivo\r\n );\r\n };\r\n }\r\n\r\n public static requestCancellaPreventivoRichiestaCqsOnline(idPreventivo: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_CANCELLA_PREVENTIVO_RICHIESTA_CQSOL,\r\n RichiestaEffect.requestCancellaPreventivoRichiestaCqsOnline,\r\n idPreventivo\r\n );\r\n };\r\n }\r\n\r\n public static requestDocumentiIstruttoriaDaFirmareCqsOnline(idPreventivo: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_DOCUMENTI_ISTRUTTORIA_DA_FIRMARE_CQSOL,\r\n RichiestaEffect.requestDocumentiIstruttoriaDaFirmareCqsOnline,\r\n idPreventivo\r\n );\r\n };\r\n }\r\n\r\n public static requestConcludi(idPreventivo: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_CONCLUDI_DICHIARAZIONI_CQSOL,\r\n RichiestaEffect.requestConcludi,\r\n idPreventivo\r\n );\r\n };\r\n }\r\n\r\n public static saveConcludi(request: RichiestaConcludiRequestModel): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.SAVE_CONCLUDI_DICHIARAZIONI_CQSOL,\r\n RichiestaEffect.saveConcludi,\r\n request\r\n );\r\n };\r\n }\r\n\r\n public static requestGetImpegni(idUtente: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_IMPEGNI_CQSOL,\r\n RichiestaEffect.requestGetImpegni,\r\n idUtente\r\n );\r\n };\r\n }\r\n\r\n public static saveImpegni(impegni: NuovoImpegnoModel[]): any {\r\n // console.log(\"Action \" , impegni );\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.SAVE_IMPEGNI,\r\n RichiestaEffect.saveImpegni,\r\n impegni\r\n );\r\n };\r\n }\r\n\r\n public static resetFiltriImpegni(): any {\r\n return ActionUtility.createAction(RichiestaAction.RESET_IMPEGNI_FINISHED);\r\n }\r\n\r\n public static deleteDocumentiGeneratiCqsOnline(idUtente: number, idPreventivo: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.DELETE_DOCUMENTI_GENERATI_CQSOL,\r\n RichiestaEffect.deleteDocumentiGeneratiCqsOnline,\r\n idUtente,\r\n idPreventivo\r\n );\r\n };\r\n }\r\n\r\n public static requestAdeguataVerifica(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_ADEGUATA_VERIFICA,\r\n RichiestaEffect.requestAdeguataVerifica\r\n );\r\n };\r\n }\r\n\r\n public static saveAdeguataVerifica(request: RichiestaAdeguataVerificaRequestModel): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_SAVE_ADEGUATA_VERIFICA,\r\n RichiestaEffect.saveAdeguataVerifica,\r\n request\r\n );\r\n };\r\n }\r\n\r\n public static deleteImpegni(idUtente: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.DELETE_IMPEGNI,\r\n RichiestaEffect.deleteImpegni,\r\n idUtente\r\n );\r\n };\r\n }\r\n\r\n public static requestTrasferisciDocumentiConsensiCqsWeb(idPreventivo: number): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.TRASFERISCI_DOC_CONSENSI_CQSWEB,\r\n RichiestaEffect.requestTrasferisciDocumentiConsensiCqsWeb,\r\n idPreventivo\r\n );\r\n };\r\n }\r\n // #endregion CQS online\r\n\r\n public static requestError(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n RichiestaAction.REQUEST_ERROR,\r\n RichiestaEffect.requestError\r\n );\r\n };\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class AmministrazioneModel extends BaseModel {\r\n public readonly idAmministrazione: number = 0;\r\n public readonly idCategoriaAmministrativa: number = 0;\r\n public readonly denominazione: string = \"\";\r\n public readonly ndg: number = 0;\r\n public readonly piva: string = \"\";\r\n public readonly nomeComune: string = \"\";\r\n public readonly cap: string = \"\";\r\n public readonly codProvincia: string = \"\";\r\n public readonly indirizzo: string = \"\";\r\n public readonly telefono: string = \"\";\r\n public readonly descrProvincia: string = \"\";\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"LoadingIndicator_wrapper__3w3Dt\",\"loaderContainer\":\"LoadingIndicator_loaderContainer__3OqqV\"};","import styles from \"./LoadingIndicator.module.scss\";\r\n\r\nimport React from \"react\";\r\nimport classNames from \"classnames\";\r\nimport { Spinner } from \"react-bootstrap\";\r\n\r\ninterface IProps {\r\n readonly isActive?: boolean;\r\n readonly className?: string;\r\n}\r\ninterface IState {}\r\n\r\nexport default class LoadingIndicator extends React.PureComponent {\r\n public static defaultProps: IProps = {\r\n isActive: false,\r\n className: undefined,\r\n };\r\n\r\n public render(): JSX.Element {\r\n const { children, isActive, className } = this.props;\r\n const cssClasses: string = classNames(className, {\r\n [styles.wrapper]: isActive,\r\n });\r\n\r\n return (\r\n

\r\n {isActive && (\r\n
\r\n \r\n Loading...\r\n \r\n
\r\n )}\r\n {children}\r\n
\r\n );\r\n }\r\n}\r\n","import { createSelector, ParametricSelector } from \"reselect\";\r\nimport IRequestingState from \"../../stores/requesting/models/IRequestingState\";\r\nimport IStore from \"../../models/IStore\";\r\n\r\nexport class RequestingSelector {\r\n public static selectRequesting(requestingState: IRequestingState, actionTypes: string[]): boolean {\r\n return actionTypes.some((actionType: string) => requestingState[actionType]);\r\n }\r\n}\r\n\r\nexport const selectRequesting: ParametricSelector = createSelector(\r\n (state: IStore) => state.requesting,\r\n (state: IStore, actionTypes: string[]) => actionTypes,\r\n RequestingSelector.selectRequesting\r\n);\r\n","import environment from \"environment\";\r\nimport i18n from \"i18n\";\r\nimport IBAN from \"iban\";\r\nimport _ from \"lodash\";\r\nimport moment from \"moment\";\r\nimport { isValidPhoneNumber } from \"react-phone-number-input\";\r\nimport TipoRichiedenteModel from \"stores/tipo-richiedente/models/TipoRichiedenteModel\";\r\nimport * as Yup from \"yup\";\r\nimport { ObjectSchema, ValidationError } from \"yup\";\r\nimport FormatUtility, { ClonedObject } from \"./FormatUtility\";\r\n\r\nexport type ValidationResult = {\r\n message: string;\r\n invalid: boolean;\r\n};\r\n\r\nexport type ValidationContainer = ClonedObject;\r\n\r\nexport type ValidationSchema = ObjectSchema>;\r\n\r\nexport default abstract class ValidationUtility {\r\n private constructor() {}\r\n\r\n private static setLocale() {\r\n Yup.setLocale({\r\n mixed: {\r\n default: i18n.t(\"error_global_default\"),\r\n required: i18n.t(\"error_global_required\"),\r\n },\r\n string: {\r\n min: i18n.t(\"error_string_min\"),\r\n max: i18n.t(\"error_string_max\"),\r\n },\r\n number: {\r\n min: i18n.t(\"error_number_min\"),\r\n max: i18n.t(\"error_number_max\"),\r\n integer: i18n.t(\"error_number_integer\"),\r\n },\r\n date: {\r\n min: i18n.t(\"error_date_min\"),\r\n max: i18n.t(\"error_date_max\"),\r\n },\r\n });\r\n }\r\n\r\n public static setValidationContainer(viewModel: T): ValidationContainer {\r\n let propContent = { message: \"\", invalid: false } as ValidationResult;\r\n let replaceValuesFunction = () => {\r\n return propContent;\r\n };\r\n return FormatUtility.cloneObject(\r\n viewModel,\r\n replaceValuesFunction\r\n ) as ValidationContainer;\r\n }\r\n\r\n private static resetValidationContainer(errors: ValidationContainer): ValidationContainer {\r\n // reset all errors\r\n let replaceValuesFunction = (val: any) => {\r\n switch (val.constructor.name) {\r\n case \"String\":\r\n return \"\"; //message\r\n case \"Boolean\":\r\n return false; //invalid\r\n }\r\n return val;\r\n };\r\n return FormatUtility.cloneObject, ValidationResult>(\r\n errors,\r\n replaceValuesFunction\r\n ) as ValidationContainer;\r\n }\r\n\r\n public static checkValidity(errors: ValidationContainer) {\r\n let result: boolean[] = [];\r\n FormatUtility.getNestedFieldsValues(errors, \"invalid\", result);\r\n if (result.some((x) => x === true)) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n public static async validateSchema(\r\n schema: ValidationSchema,\r\n errors: ValidationContainer,\r\n viewModel: T,\r\n fieldName?: string,\r\n fieldValue?: any\r\n ) {\r\n // check if schema contains field\r\n if (fieldName !== undefined) {\r\n let field = _.get(schema.fields, fieldName.replace(\".\", \".fields.\").replace(/\\[(.*?)\\]/g, \".innerType\"));\r\n if (field === undefined) {\r\n return errors;\r\n }\r\n }\r\n\r\n // if value passed, update viewModel\r\n if (fieldName !== undefined && fieldValue !== undefined) {\r\n _.set(viewModel, fieldName, fieldValue);\r\n }\r\n\r\n // replace empty strings with undefined\r\n let replaceValuesFunction = (val: any) => {\r\n if (typeof val === \"string\" && val === \"\") {\r\n return undefined;\r\n }\r\n return val;\r\n };\r\n viewModel = FormatUtility.cloneObject(viewModel, replaceValuesFunction) as T;\r\n\r\n // validate schema (get all errors)\r\n await schema\r\n .validate(viewModel, { abortEarly: false })\r\n .then(() => {\r\n // reset all errors\r\n errors = ValidationUtility.resetValidationContainer(errors);\r\n })\r\n .catch((err: ValidationError) => {\r\n // set errors\r\n if (fieldName !== undefined) {\r\n // set current field error\r\n let fieldErrors = err.inner.filter((x) => x.path === fieldName);\r\n let fieldMessage = fieldErrors.length > 0 ? fieldErrors[0].message : \"\";\r\n let result = {\r\n message: fieldMessage,\r\n invalid: fieldMessage !== \"\",\r\n } as ValidationResult;\r\n _.set(errors, fieldName, result);\r\n } else {\r\n // reset all errors\r\n errors = ValidationUtility.resetValidationContainer(errors);\r\n\r\n // set all fields errors\r\n err.inner.forEach((error) => {\r\n let fieldName = error.path;\r\n let fieldMessage = error.message;\r\n // ignore if an error is already setted\r\n let current = _.get(errors, fieldName);\r\n if (current) {\r\n if (current.invalid) {\r\n return;\r\n }\r\n }\r\n let result = {\r\n message: fieldMessage,\r\n invalid: fieldMessage !== \"\",\r\n } as ValidationResult;\r\n _.set(errors, fieldName, result);\r\n });\r\n }\r\n });\r\n // return new errors object\r\n return errors;\r\n }\r\n\r\n // #region dismessi il 04/06/2020\r\n private static getFieldName(target: EventTarget & HTMLFormElement) {\r\n let fieldName =\r\n target.name ||\r\n target.id ||\r\n (target.parentElement?.parentElement?.nextElementSibling as HTMLInputElement).name ||\r\n (target.parentElement?.parentElement?.nextElementSibling as HTMLInputElement).id ||\r\n \"\";\r\n return fieldName;\r\n }\r\n\r\n private static async validateField(\r\n schema: ValidationSchema,\r\n errors: ValidationContainer,\r\n name: string,\r\n value: string,\r\n viewModel: T\r\n ) {\r\n let result = {\r\n message: \"\",\r\n invalid: false,\r\n } as ValidationResult;\r\n let field = _.get(schema.fields, name.replace(\".\", \".fields.\"));\r\n if (field !== undefined) {\r\n await field\r\n .validate(value === \"\" ? undefined : value, { context: viewModel })\r\n .then(() => {\r\n result.message = \"\";\r\n result.invalid = false;\r\n })\r\n .catch((err: any) => {\r\n result.message = err.message;\r\n result.invalid = true;\r\n });\r\n _.set(errors, name, result);\r\n }\r\n return errors;\r\n }\r\n\r\n private static async validateSchemaIteration(\r\n schema: ValidationSchema,\r\n errors: ValidationContainer,\r\n viewModel: T,\r\n obj: ValidationSchema = schema,\r\n path: string = \"\",\r\n fieldContainer: string = \"fields\"\r\n ): Promise> {\r\n if (fieldContainer in obj) {\r\n errors = await ValidationUtility.validateSchemaIteration(schema, errors, viewModel, obj[fieldContainer]);\r\n } else {\r\n let fieldsNames = Object.getOwnPropertyNames(obj);\r\n for (let i = 0; i < fieldsNames.length; i++) {\r\n let fieldName = fieldsNames[i];\r\n if (fieldContainer in obj[fieldName]) {\r\n let newPath = \"\";\r\n if (path.length > 0) {\r\n newPath += path + \".\";\r\n }\r\n newPath += fieldName;\r\n errors = await ValidationUtility.validateSchemaIteration(\r\n schema,\r\n errors,\r\n viewModel,\r\n obj[fieldName][fieldContainer],\r\n newPath\r\n );\r\n } else {\r\n let newFieldName = \"\";\r\n if (path.length > 0) {\r\n newFieldName += path + \".\";\r\n }\r\n newFieldName += fieldName;\r\n let value = _.get(viewModel, newFieldName);\r\n if (value !== undefined) {\r\n errors = await ValidationUtility.validateField(schema, errors, newFieldName, value, viewModel);\r\n }\r\n }\r\n }\r\n }\r\n return errors;\r\n }\r\n\r\n private static async validateForm(\r\n schema: ValidationSchema,\r\n errors: ValidationContainer,\r\n viewModel: T\r\n ) {\r\n return await ValidationUtility.validateSchemaIteration(schema, errors, viewModel);\r\n }\r\n // #endregion dismessi il 04/06/2020\r\n\r\n public static getSchemaPreventivo(\r\n tipiRichiedenti: TipoRichiedenteModel[],\r\n campiBoxPreventivo: boolean,\r\n attivaCampiNomeCognome: boolean,\r\n showSliders: boolean\r\n ): ValidationSchema {\r\n ValidationUtility.setLocale();\r\n if (campiBoxPreventivo === false) {\r\n return Yup.object().shape({\r\n importoRichiesto: Yup.string()\r\n .required(i18n.t(\"error_required_importo_richiesto\"))\r\n .notOneOf([\"\", \"0\", \"0,00\"], i18n.t(\"error_required_importo_richiesto\"))\r\n .test(\"format\", i18n.t(\"error_invalid_importo_richiesto\"), (val) => {\r\n return this.checkIfImportoIsValid(val);\r\n })\r\n .test(\r\n \"min\",\r\n i18n.t(\"error_min_importo_richiesto\").replace(\"${1}\", FormatUtility.currency(1000)),\r\n (val) => {\r\n let value = FormatUtility.numberFromNumberWithSeparators(val);\r\n if (value != null) {\r\n return this.checkMinNumber(value, 1000);\r\n }\r\n return false;\r\n }\r\n )\r\n .test(\r\n \"max\",\r\n i18n.t(\"error_max_importo_richiesto\").replace(\"${1}\", FormatUtility.currency(75000)),\r\n (val) => {\r\n let value = FormatUtility.numberFromNumberWithSeparators(val);\r\n if (value !== undefined) {\r\n return this.checkMaxNumber(value, 75000);\r\n }\r\n return false;\r\n }\r\n )\r\n .label(i18n.t(\"error_field_importo_richiesto\")),\r\n codiceTipoRichiedente: Yup.string()\r\n .required(i18n.t(\"error_required_tipo_richiedente\"))\r\n .label(i18n.t(\"error_field_tipo_richiedente\")),\r\n dataNascita: Yup.string()\r\n .when(\"codiceTipoRichiedente\", {\r\n is: (codiceTipoRichiedente) => {\r\n return this.checkIfCampoIsRequiredByTipoRichiedente(\r\n tipiRichiedenti,\r\n codiceTipoRichiedente,\r\n \"DATA_NASCITA\"\r\n );\r\n },\r\n then: Yup.string()\r\n .required(i18n.t(\"error_required_data_nascita\"))\r\n .test(\"format\", i18n.t(\"error_global_date_format\"), (val) => {\r\n return this.checkIfDateIsValidOrUndefined(val);\r\n })\r\n .test(\"min\", i18n.t(\"error_min_data_nascita\").replace(\"${1}\", (86).toString()), (val) => {\r\n let minDate = new Date();\r\n minDate.setFullYear(minDate.getFullYear() - 86);\r\n return this.checkMinDate(val, minDate);\r\n })\r\n .test(\"futura\", i18n.t(\"error_futura_data_nascita\"), (val) => {\r\n let maxDate = new Date();\r\n return this.checkMaxDate(val, maxDate);\r\n })\r\n .test(\"minorenne\", i18n.t(\"error_minorenne_data_nascita\"), (val) => {\r\n let maxDate = new Date();\r\n maxDate.setFullYear(maxDate.getFullYear() - 18);\r\n return this.checkMaxDate(val, maxDate);\r\n }),\r\n })\r\n .label(i18n.t(\"error_field_data_nascita\")),\r\n importoNettoRedditoMensile: Yup.string()\r\n .when(\"codiceTipoRichiedente\", {\r\n is: (codiceTipoRichiedente) => {\r\n return this.checkIfCampoIsRequiredByTipoRichiedente(\r\n tipiRichiedenti,\r\n codiceTipoRichiedente,\r\n \"IMPORTO_NETTO_MENSILE\"\r\n );\r\n },\r\n then: Yup.string()\r\n .required(i18n.t(\"error_required_importo_netto_mensile\"))\r\n .notOneOf([\"\", \"0\", \"0,00\"], i18n.t(\"error_required_importo_netto_mensile\"))\r\n .test(\"format\", i18n.t(\"error_invalid_importo_netto_mensile\"), (val) => {\r\n return this.checkIfImportoIsValid(val);\r\n })\r\n .test(\r\n \"min\",\r\n i18n.t(\"error_min_importo_netto_mensile\").replace(\"${1}\", FormatUtility.currency(500)),\r\n (val) => {\r\n let value = FormatUtility.numberFromNumberWithSeparators(val);\r\n if (value != null) {\r\n return this.checkMinNumber(value, 500);\r\n }\r\n return false;\r\n }\r\n )\r\n .test(\r\n \"max\",\r\n i18n\r\n .t(\"error_max_importo_netto_mensile\")\r\n .replace(\"${1}\", FormatUtility.currency(100000)),\r\n (val) => {\r\n let value = FormatUtility.numberFromNumberWithSeparators(val);\r\n if (value !== undefined) {\r\n //2147483647\r\n return this.checkMaxNumber(value, 100000);\r\n }\r\n return false;\r\n }\r\n ),\r\n })\r\n .label(i18n.t(\"error_field_importo_netto_mensile\")),\r\n dataAssunzione: Yup.string()\r\n .when(\"codiceTipoRichiedente\", {\r\n is: (codiceTipoRichiedente) => {\r\n return this.checkIfCampoIsRequiredByTipoRichiedente(\r\n tipiRichiedenti,\r\n codiceTipoRichiedente,\r\n \"DATA_ASSUNZIONE\"\r\n );\r\n },\r\n then: Yup.string()\r\n .required(i18n.t(\"error_required_data_assunzione\"))\r\n .test(\"format\", i18n.t(\"error_global_date_format\"), (val) => {\r\n return this.checkIfDateIsValidOrUndefined(val);\r\n })\r\n .test(\r\n \"min\",\r\n i18n.t(\"error_min_data_assunzione\").replace(\"${1}\", (86).toString()),\r\n (val) => {\r\n let minDate = new Date();\r\n minDate.setFullYear(minDate.getFullYear() - 86);\r\n return this.checkMinDate(val, minDate);\r\n }\r\n )\r\n .test(\"futura\", i18n.t(\"error_futura_data_assunzione\"), (val) => {\r\n let maxDate = new Date();\r\n return this.checkMaxDate(val, maxDate);\r\n }),\r\n })\r\n .label(i18n.t(\"error_field_data_assunzione\")),\r\n importoRata: Yup.number()\r\n .when(\"importoNettoRedditoMensile\", {\r\n is: () => {\r\n return showSliders;\r\n },\r\n then: Yup.number().required(i18n.t(\"error_required_rata\")).min(50).integer(),\r\n })\r\n .label(i18n.t(\"error_field_rata\")),\r\n durata: Yup.number()\r\n .when(\"importoNettoRedditoMensile\", {\r\n is: () => {\r\n return showSliders;\r\n },\r\n then: Yup.number().required(i18n.t(\"error_required_durata\")).min(24).max(120).integer(),\r\n })\r\n .label(i18n.t(\"error_field_durata\")),\r\n });\r\n } else {\r\n return Yup.object().shape({\r\n importoRichiesto: Yup.string()\r\n .required(i18n.t(\"error_required_importo_richiesto\"))\r\n .notOneOf([\"\", \"0\", \"0,00\"], i18n.t(\"error_required_importo_richiesto\"))\r\n .test(\"format\", i18n.t(\"error_invalid_importo_richiesto\"), (val) => {\r\n return this.checkIfImportoIsValid(val);\r\n })\r\n .test(\r\n \"min\",\r\n i18n.t(\"error_min_importo_richiesto\").replace(\"${1}\", FormatUtility.currency(1000)),\r\n (val) => {\r\n let value = FormatUtility.numberFromNumberWithSeparators(val);\r\n if (value != null) {\r\n return this.checkMinNumber(value, 1000);\r\n }\r\n return false;\r\n }\r\n )\r\n .test(\r\n \"max\",\r\n i18n.t(\"error_max_importo_richiesto\").replace(\"${1}\", FormatUtility.currency(75000)),\r\n (val) => {\r\n let value = FormatUtility.numberFromNumberWithSeparators(val);\r\n if (value !== undefined) {\r\n return this.checkMaxNumber(value, 75000);\r\n }\r\n return false;\r\n }\r\n )\r\n .label(i18n.t(\"error_field_importo_richiesto\")),\r\n codiceTipoRichiedente: Yup.string()\r\n .required(i18n.t(\"error_required_tipo_richiedente\"))\r\n .label(i18n.t(\"error_field_tipo_richiedente\")),\r\n dataNascita: Yup.string()\r\n .when(\"codiceTipoRichiedente\", {\r\n is: (codiceTipoRichiedente) => {\r\n return this.checkIfCampoIsRequiredByTipoRichiedente(\r\n tipiRichiedenti,\r\n codiceTipoRichiedente,\r\n \"DATA_NASCITA\"\r\n );\r\n },\r\n then: Yup.string()\r\n .required(i18n.t(\"error_required_data_nascita\"))\r\n .test(\"format\", i18n.t(\"error_global_date_format\"), (val) => {\r\n return this.checkIfDateIsValidOrUndefined(val);\r\n })\r\n .test(\"min\", i18n.t(\"error_min_data_nascita\").replace(\"${1}\", (86).toString()), (val) => {\r\n let minDate = new Date();\r\n minDate.setFullYear(minDate.getFullYear() - 86);\r\n return this.checkMinDate(val, minDate);\r\n })\r\n .test(\"futura\", i18n.t(\"error_futura_data_nascita\"), (val) => {\r\n let maxDate = new Date();\r\n return this.checkMaxDate(val, maxDate);\r\n })\r\n .test(\"minorenne\", i18n.t(\"error_minorenne_data_nascita\"), (val) => {\r\n let maxDate = new Date();\r\n maxDate.setFullYear(maxDate.getFullYear() - 18);\r\n return this.checkMaxDate(val, maxDate);\r\n }),\r\n })\r\n .label(i18n.t(\"error_field_data_nascita\")),\r\n importoNettoRedditoMensile: Yup.string()\r\n .when(\"codiceTipoRichiedente\", {\r\n is: (codiceTipoRichiedente) => {\r\n return this.checkIfCampoIsRequiredByTipoRichiedente(\r\n tipiRichiedenti,\r\n codiceTipoRichiedente,\r\n \"IMPORTO_NETTO_MENSILE\"\r\n );\r\n },\r\n then: Yup.string()\r\n .required(i18n.t(\"error_required_importo_netto_mensile\"))\r\n .notOneOf([\"\", \"0\", \"0,00\"], i18n.t(\"error_required_importo_netto_mensile\"))\r\n .test(\"format\", i18n.t(\"error_invalid_importo_netto_mensile\"), (val) => {\r\n return this.checkIfImportoIsValid(val);\r\n })\r\n .test(\r\n \"min\",\r\n i18n.t(\"error_min_importo_netto_mensile\").replace(\"${1}\", FormatUtility.currency(500)),\r\n (val) => {\r\n let value = FormatUtility.numberFromNumberWithSeparators(val);\r\n if (value != null) {\r\n return this.checkMinNumber(value, 500);\r\n }\r\n return false;\r\n }\r\n )\r\n .test(\r\n \"max\",\r\n i18n\r\n .t(\"error_max_importo_netto_mensile\")\r\n .replace(\"${1}\", FormatUtility.currency(100000)),\r\n (val) => {\r\n let value = FormatUtility.numberFromNumberWithSeparators(val);\r\n if (value !== undefined) {\r\n //2147483647\r\n return this.checkMaxNumber(value, 100000);\r\n }\r\n return false;\r\n }\r\n ),\r\n })\r\n .label(i18n.t(\"error_field_importo_netto_mensile\")),\r\n dataAssunzione: Yup.string()\r\n .when(\"codiceTipoRichiedente\", {\r\n is: (codiceTipoRichiedente) => {\r\n return this.checkIfCampoIsRequiredByTipoRichiedente(\r\n tipiRichiedenti,\r\n codiceTipoRichiedente,\r\n \"DATA_ASSUNZIONE\"\r\n );\r\n },\r\n then: Yup.string()\r\n .required(i18n.t(\"error_required_data_assunzione\"))\r\n .test(\"format\", i18n.t(\"error_global_date_format\"), (val) => {\r\n return this.checkIfDateIsValidOrUndefined(val);\r\n })\r\n .test(\r\n \"min\",\r\n i18n.t(\"error_min_data_assunzione\").replace(\"${1}\", (86).toString()),\r\n (val) => {\r\n let minDate = new Date();\r\n minDate.setFullYear(minDate.getFullYear() - 86);\r\n return this.checkMinDate(val, minDate);\r\n }\r\n )\r\n .test(\"futura\", i18n.t(\"error_futura_data_assunzione\"), (val) => {\r\n let maxDate = new Date();\r\n return this.checkMaxDate(val, maxDate);\r\n }),\r\n })\r\n .label(i18n.t(\"error_field_data_assunzione\")),\r\n importoRata: Yup.number()\r\n .when(\"importoNettoRedditoMensile\", {\r\n is: () => {\r\n return showSliders;\r\n },\r\n then: Yup.number().required(i18n.t(\"error_required_rata\")).min(50).integer(),\r\n })\r\n .label(i18n.t(\"error_field_rata\")),\r\n durata: Yup.number()\r\n .when(\"importoNettoRedditoMensile\", {\r\n is: () => {\r\n return showSliders;\r\n },\r\n then: Yup.number().required(i18n.t(\"error_required_durata\")).min(24).max(120).integer(),\r\n })\r\n .label(i18n.t(\"error_field_durata\")),\r\n\r\n informazioniUtente: Yup.object().shape({\r\n nome: Yup.string()\r\n .when(\"attivaCampiNomeCognome\", {\r\n is: (attivaCampiNomeCognome) => {\r\n return true;\r\n },\r\n then: Yup.string().required(i18n.t(\"registrazione_required_nome\")),\r\n })\r\n //.required(i18n.t(\"registrazione_required_email\"))\r\n .label(\"registrazione_field_nome\")\r\n .default(\"\"),\r\n cognome: Yup.string()\r\n .when(\"attivaCampiNomeCognome\", {\r\n is: (attivaCampiNomeCognome) => {\r\n return true;\r\n },\r\n then: Yup.string().required(i18n.t(\"registrazione_required_cognome\")),\r\n })\r\n //.required(i18n.t(\"registrazione_required_email\"))\r\n .label(\"registrazione_field_cognome\")\r\n .default(\"\"),\r\n email: Yup.string()\r\n .when(\"campiBoxPreventivo\", {\r\n is: (campiBoxPreventivo) => {\r\n return true;\r\n },\r\n then: Yup.string().required(i18n.t(\"registrazione_required_email\")),\r\n })\r\n .email(i18n.t(\"registrazione_invalid_email\"))\r\n //.required(i18n.t(\"registrazione_required_email\"))\r\n .label(\"registrazione_field_email\")\r\n .default(\"\"),\r\n numeroTelefono: Yup.string()\r\n .when(\"campiBoxPreventivo\", {\r\n is: (campiBoxPreventivo) => {\r\n return true;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_telefono\")),\r\n })\r\n .test(\"format\", i18n.t(\"error_invalid_telefono\"), (val: string) => {\r\n if (val === undefined) {\r\n return true;\r\n }\r\n return ValidationUtility.checkPhoneNumber(val);\r\n })\r\n .label(\"Telefono\"),\r\n privacy: Yup.array().of(\r\n Yup.object().shape({\r\n descrizione: Yup.string(),\r\n isObbligatorio: Yup.boolean(),\r\n codice: Yup.string(),\r\n fgMostraLanding: Yup.string(),\r\n isAccettato: Yup.boolean()\r\n .when(\"isObbligatorio\", {\r\n is: (isObbligatorio) => {\r\n // return ValidationUtility.checkIfCampoIsRequiredByConfiguration(campiBoxPreventivo, isObbligatorio, fgMostraLanding);\r\n return true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"obbligatorio\",\r\n i18n.t(\"registrazione_required_consenso_privacy\"),\r\n (val) => {\r\n return FormatUtility.castValue(val, true) === true;\r\n }\r\n ),\r\n })\r\n .label(i18n.t(\"registrazione_field_consenso_privacy\")),\r\n })\r\n ),\r\n }),\r\n });\r\n }\r\n }\r\n\r\n public static getSchemaRichiestaPreventivo(\r\n visualizzaAltriImpegniNelTabPrestiti: boolean\r\n ): ValidationSchema {\r\n ValidationUtility.setLocale();\r\n\r\n return Yup.object().shape({\r\n categoriaAmministrativa: Yup.string()\r\n .required(i18n.t(\"error_required_categoriaAmministrativa\"))\r\n .label(\"Categoria Amministrativa\"),\r\n amministrazione: Yup.string(),\r\n fgAltriFinanziamenti: Yup.string()\r\n .required(i18n.t(\"error_required_fgAltriFinanziamenti\"))\r\n .label(\"Altri Finanziamenti\"),\r\n altriImpegni: Yup.array().when(\"fgAltriFinanziamenti\", {\r\n is: \"S\",\r\n then: Yup.array().of(\r\n Yup.object().shape({\r\n tipologiaImpegno: Yup.string()\r\n .required(i18n.t(\"error_required_tipoImpegno\"))\r\n .label(\"Tipologia Impegno\"),\r\n // fgPresenzaDati: Yup.string()\r\n // .required(i18n.t(\"error_required_fgPresenzaDati\"))\r\n // .label(\"Nuovo Impegno\"),\r\n // estinzione: Yup.string()\r\n // .when(\"fgPresenzaDati\", {\r\n // is: \"S\",\r\n // then: Yup.string().required(i18n.t(\"error_required_fgEstinzione\")),\r\n // .test(\"checkTipoImpegno\", i18n.t(\"error_invalid_fgEstinzione\"), function () {\r\n // let fgPresenzaDati = (this.resolve(Yup.ref(\"fgPresenzaDati\")) as string) ?? \"\";\r\n // let tipoImpegno = (this.resolve(Yup.ref(\"tipologiaImpegno\")) as string) ?? \"\";\r\n // return ValidationUtility.checkTipoImpegno(fgPresenzaDati, tipoImpegno);\r\n //}),\r\n // })\r\n\r\n // .label(\"Tipologia Impegno\"),\r\n rata: Yup.string()\r\n .when([\"fgPresenzaDati\", \"estinzione\"], {\r\n is: (fgPresenzaDati, estinzione) => {\r\n return fgPresenzaDati === \"S\" && estinzione === \"S\";\r\n },\r\n then: Yup.string()\r\n /* .required(i18n.t(\"error_required_rata\"))\r\n .notOneOf([\"\", \"0\", \"0,00\"], i18n.t(\"error_required_rata\")) */\r\n .test(\"format\", i18n.t(\"error_invalid_rata\"), (val) => {\r\n return this.checkIfImportoIsValid(val);\r\n })\r\n .test(\r\n \"min\",\r\n i18n.t(\"error_min_rata\").replace(\"${1}\", FormatUtility.currency(10)),\r\n (val) => {\r\n let value = FormatUtility.numberFromNumberWithSeparators(val);\r\n if (value != null) {\r\n return this.checkMinNumber(value, 10);\r\n }\r\n return false;\r\n }\r\n )\r\n .test(\r\n \"max\",\r\n i18n.t(\"error_max_rata\").replace(\"${1}\", FormatUtility.currency(75000)),\r\n (val) => {\r\n let value = FormatUtility.numberFromNumberWithSeparators(val);\r\n if (value !== undefined) {\r\n return this.checkMaxNumber(value, 75000);\r\n }\r\n return false;\r\n }\r\n ),\r\n })\r\n .label(i18n.t(\"error_field_rata\")),\r\n\r\n debitoResiduo: Yup.string()\r\n .when([\"fgPresenzaDati\", \"estinzione\"], {\r\n is: (fgPresenzaDati, estinzione) => {\r\n return (\r\n fgPresenzaDati === \"S\" &&\r\n estinzione === \"S\" &&\r\n visualizzaAltriImpegniNelTabPrestiti\r\n );\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_categoriaAmministrativa\")),\r\n })\r\n .label(\"Categoria Amministrativa\"),\r\n\r\n istitutoFinanziario: Yup.string()\r\n .when([\"fgPresenzaDati\", \"estinzione\"], {\r\n is: (fgPresenzaDati, estinzione) => {\r\n return (\r\n fgPresenzaDati === \"S\" &&\r\n estinzione === \"S\" &&\r\n visualizzaAltriImpegniNelTabPrestiti\r\n );\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_categoriaAmministrativa\")),\r\n })\r\n .label(\"Categoria Amministrativa\"),\r\n })\r\n ),\r\n }),\r\n });\r\n }\r\n // /* public static getSchemaRichiestaPreventivo(fgAltriFinanziamenti: boolean): ValidationSchema {\r\n // ValidationUtility.setLocale();\r\n // if (fgAltriFinanziamenti === true) {\r\n // return Yup.object().shape({\r\n // categoriaAmministrativa: Yup.string()\r\n // .required(i18n.t(\"error_required_categoriaAmministrativa\"))\r\n // .label(\"Categoria Amministrativa\"),\r\n // fgAltriFinanziamenti: Yup.string()\r\n // .required(i18n.t(\"error_required_fgAltriFinanziamenti\"))\r\n // .label(\"Altri Finanziamenti\"),\r\n // altriImpegni: Yup.array().of(\r\n // Yup.object().shape({\r\n // tipologiaImpegno: Yup.string()\r\n // .required(i18n.t(\"error_required_tipoImpegno\"))\r\n // .label(\"Tipologia Impegno\"),\r\n // fgPresenzaDati: Yup.string()\r\n // .required(i18n.t(\"error_required_fgPresenzaDati\"))\r\n // .label(\"Nuovo Impegno\"),\r\n // estinzione: Yup.string()\r\n // .required(i18n.t(\"error_required_fgEstinzione\"))\r\n // .test(\"checkTipoImpegno\", i18n.t(\"error_invalid_fgEstinzione\"), function () {\r\n // let fgPresenzaDati = (this.resolve(Yup.ref(\"fgPresenzaDati\")) as string) ?? \"\";\r\n // let tipoImpegno = (this.resolve(Yup.ref(\"tipologiaImpegno\")) as string) ?? \"\";\r\n // return ValidationUtility.checkTipoImpegno(fgPresenzaDati, tipoImpegno);\r\n // })\r\n // .label(\"Tipologia Impegno\"),\r\n // rata: Yup.string()\r\n // /* .required(i18n.t(\"error_required_rata\"))\r\n // .notOneOf([\"\", \"0\", \"0,00\"], i18n.t(\"error_required_rata\")) */\r\n // .test(\"format\", i18n.t(\"error_invalid_rata\"), (val) => {\r\n // return this.checkIfImportoIsValid(val);\r\n // })\r\n // .test(\r\n // \"min\",\r\n // i18n.t(\"error_min_rata\").replace(\"${1}\", FormatUtility.currency(10)),\r\n // (val) => {\r\n // let value = FormatUtility.numberFromNumberWithSeparators(val);\r\n // if (value != null) {\r\n // return this.checkMinNumber(value, 10);\r\n // }\r\n // return false;\r\n // }\r\n // )\r\n // .test(\r\n // \"max\",\r\n // i18n.t(\"error_max_rata\").replace(\"${1}\", FormatUtility.currency(75000)),\r\n // (val) => {\r\n // let value = FormatUtility.numberFromNumberWithSeparators(val);\r\n // if (value !== undefined) {\r\n // return this.checkMaxNumber(value, 75000);\r\n // }\r\n // return false;\r\n // }\r\n // )\r\n // .label(i18n.t(\"error_field_rata\")),\r\n // })\r\n // ),\r\n // });\r\n // } else {\r\n // return Yup.object().shape({\r\n // categoriaAmministrativa: Yup.string()\r\n // .required(i18n.t(\"error_required_categoriaAmministrativa\"))\r\n // .label(\"Categoria Amministrativa\"),\r\n // fgAltriFinanziamenti: Yup.string()\r\n // .required(i18n.t(\"error_required_fgAltriFinanziamenti\"))\r\n // .label(\"Altri Finanziamenti\"),\r\n // });\r\n // }\r\n // } */\r\n\r\n public static getSchemaAccesso(): ValidationSchema {\r\n ValidationUtility.setLocale();\r\n return Yup.object().shape({\r\n username: Yup.string()\r\n .required(i18n.t(\"error_lbl_username_obbligatorio\"))\r\n .email(i18n.t(\"error_lbl_email_non_valida\"))\r\n .label(\"username\"),\r\n password: Yup.string().required(i18n.t(\"error_lbl_password_obbligatoria\")).label(\"password\"),\r\n });\r\n }\r\n\r\n public static getSchemaRecuperoPassword(): ValidationSchema {\r\n ValidationUtility.setLocale();\r\n return Yup.object().shape({\r\n username: Yup.string()\r\n .required(i18n.t(\"error_lbl_username_obbligatorio\"))\r\n .email(i18n.t(\"error_lbl_email_non_valida\"))\r\n .label(\"username\"),\r\n });\r\n }\r\n\r\n public static getSchemaRegistrazione(): ValidationSchema {\r\n ValidationUtility.setLocale();\r\n return Yup.object().shape({\r\n email: Yup.string()\r\n .email(i18n.t(\"registrazione_invalid_email\"))\r\n .required(i18n.t(\"registrazione_required_email\"))\r\n .label(\"registrazione_field_email\")\r\n .default(\"\"),\r\n privacy: Yup.array().of(\r\n Yup.object().shape({\r\n descrizione: Yup.string(),\r\n isObbligatorio: Yup.boolean(),\r\n codice: Yup.string(),\r\n isAccettato: Yup.boolean()\r\n .when(\"isObbligatorio\", {\r\n is: (isObbligatorio) => {\r\n return isObbligatorio;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"obbligatorio\",\r\n i18n.t(\"registrazione_required_consenso_privacy\"),\r\n (val) => {\r\n return FormatUtility.castValue(val, true) === true;\r\n }\r\n ),\r\n })\r\n .label(i18n.t(\"registrazione_field_consenso_privacy\")),\r\n })\r\n ),\r\n });\r\n }\r\n\r\n public static getSchemaRegistrazioneConfermaEmail(): ValidationSchema {\r\n ValidationUtility.setLocale();\r\n return Yup.object().shape({\r\n confermaPassword: Yup.string()\r\n .required(i18n.t(\"global_campo_obbligatorio\"))\r\n .test(\"format\", i18n.t(\"confermapage-err-passformato\"), (val) => {\r\n return this.checkIfPasswordIsValid(val);\r\n })\r\n //.oneOf([Yup.ref(\"repeatPassword\"), null], i18n.t(\"confermapage-err-regconferma\"))\r\n .label(\"Password\"),\r\n repeatPassword: Yup.string()\r\n .required(i18n.t(\"global_campo_obbligatorio\"))\r\n .test(\"format\", i18n.t(\"confermapage-err-passformato\"), (val) => {\r\n return this.checkIfPasswordIsValid(val);\r\n })\r\n .oneOf([Yup.ref(\"confermaPassword\"), null], i18n.t(\"confermapage-err-regconferma\"))\r\n .label(\"Conferma Password\"),\r\n });\r\n }\r\n\r\n public static getSchemaRinvioMail(): ValidationSchema {\r\n ValidationUtility.setLocale();\r\n return Yup.object().shape({\r\n username: Yup.string()\r\n .required(i18n.t(\"error_lbl_username_obbligatorio\"))\r\n .email(i18n.t(\"error_lbl_email_non_valida\"))\r\n .label(\"username\"),\r\n });\r\n }\r\n\r\n public static getSchemaCambioPassword(): ValidationSchema {\r\n ValidationUtility.setLocale();\r\n return Yup.object().shape({\r\n username: Yup.string()\r\n .required(i18n.t(\"error_lbl_username_obbligatorio\"))\r\n .email(i18n.t(\"error_lbl_email_non_valida\"))\r\n .label(\"username\"),\r\n password: Yup.string()\r\n .required(i18n.t(\"global_campo_obbligatorio\"))\r\n .test(\"format\", i18n.t(\"confermapage-err-passformato\"), (val) => {\r\n return this.checkIfPasswordIsValid(val);\r\n })\r\n //.oneOf([Yup.ref(\"repeatPassword\"), null], i18n.t(\"confermapage-err-regconferma\"))\r\n .label(\"Password\"),\r\n confermaPassword: Yup.string()\r\n .required(i18n.t(\"global_campo_obbligatorio\"))\r\n .test(\"format\", i18n.t(\"confermapage-err-passformato\"), (val) => {\r\n return this.checkIfPasswordIsValid(val);\r\n })\r\n .oneOf([Yup.ref(\"password\"), null], i18n.t(\"confermapage-err-regconferma\"))\r\n .label(\"Conferma Password\"),\r\n });\r\n }\r\n public static getSchemaRichiestaTabDatiAnagrafici(\r\n fullValidation: boolean,\r\n isPensionato: boolean,\r\n visualizzaCampiBonifico: boolean,\r\n attivaAdeguataVerifica: boolean\r\n ): ValidationSchema {\r\n ValidationUtility.setLocale();\r\n return Yup.object().shape({\r\n nome: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_nome\")),\r\n })\r\n .test(\"format\", i18n.t(\"error_invalid_nome\"), (val) => {\r\n return this.checkIfNotContainsNumbers(val);\r\n })\r\n .test(\"format\", i18n.t(\"error_invalid_nome\"), (val) => {\r\n return this.checkIfContainsEuropeanChar(val);\r\n })\r\n .label(\"Nome\"),\r\n cognome: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_cognome\")),\r\n })\r\n .test(\"format\", i18n.t(\"error_invalid_cognome\"), (val) => {\r\n return this.checkIfNotContainsNumbers(val);\r\n })\r\n .test(\"format\", i18n.t(\"error_invalid_nome\"), (val) => {\r\n return this.checkIfContainsEuropeanChar(val);\r\n })\r\n .label(\"Cognome\"),\r\n dataNascita: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_data_nascita\")),\r\n })\r\n .test(\"format\", i18n.t(\"error_global_date_format\"), (val) => {\r\n return this.checkIfDateIsValidOrUndefined(val);\r\n })\r\n .test(\"min\", i18n.t(\"error_min_data_nascita\").replace(\"${1}\", (86).toString()), (val) => {\r\n let minDate = new Date();\r\n minDate.setFullYear(minDate.getFullYear() - 86);\r\n return this.checkMinDate(val, minDate);\r\n })\r\n .test(\"futura\", i18n.t(\"error_futura_data_nascita\"), (val) => {\r\n let maxDate = new Date();\r\n return this.checkMaxDate(val, maxDate);\r\n })\r\n .test(\"minorenne\", i18n.t(\"error_minorenne_data_nascita\"), (val) => {\r\n let maxDate = new Date();\r\n maxDate.setFullYear(maxDate.getFullYear() - 18);\r\n return this.checkMaxDate(val, maxDate);\r\n })\r\n .label(\"Data Nascita\"),\r\n sesso: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_sesso\")),\r\n })\r\n .label(\"Sesso\"),\r\n codiceFiscale: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_codice_fiscale\")),\r\n })\r\n .max(16, i18n.t(\"error_max_codice_fiscale\"))\r\n .test(\"checkCodiceFiscale\", i18n.t(\"error_invalid_codice_fiscale\"), function (val) {\r\n let cognome = (this.resolve(Yup.ref(\"cognome\")) as string) ?? \"\";\r\n let nome = (this.resolve(Yup.ref(\"nome\")) as string) ?? \"\";\r\n let dataNascita = (this.resolve(Yup.ref(\"dataNascita\")) as string) ?? \"\";\r\n let sesso = (this.resolve(Yup.ref(\"sesso\")) as string) ?? \"\";\r\n let luogoNascita = (this.resolve(Yup.ref(\"luogoNascita\")) as string) ?? \"\";\r\n let nazioneNascita = (this.resolve(Yup.ref(\"nazioneNascita\")) as string) ?? \"\";\r\n let estero: boolean = nazioneNascita !== environment.codNazioneItalia;\r\n return ValidationUtility.checkCodiceFiscale(\r\n cognome,\r\n nome,\r\n dataNascita,\r\n sesso,\r\n estero ? nazioneNascita : luogoNascita,\r\n val\r\n );\r\n })\r\n .label(\"Codice Fiscale\"),\r\n nazioneNascita: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_nazione_nascita\")),\r\n })\r\n .label(\"Nazione di nascita\"),\r\n luogoNascita: Yup.string()\r\n .when(\"nazioneNascita\", {\r\n is: (nazioneNascita) => {\r\n return nazioneNascita === environment.codNazioneItalia && fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_luogo_nascita\")),\r\n })\r\n .label(\"Luogo di Nascita\"),\r\n cap: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: (nazioneNascita) => {\r\n return nazioneNascita === environment.codNazioneItalia && fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_cap\")),\r\n })\r\n .label(\"Cap\"),\r\n luogoNascitaEstero: Yup.string()\r\n .when(\"nazioneNascita\", {\r\n is: (nazioneNascita) => {\r\n return nazioneNascita !== environment.codNazioneItalia && fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_luogo_nascita\")),\r\n })\r\n .max(50)\r\n .label(\"Luogo di Nascita\"),\r\n cittadinanza: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_cittadinanza\")),\r\n })\r\n .label(\"Cittadinanza\"),\r\n altraCittadinanza: Yup.string()\r\n .when(\"swtCittadinanzaSecondaria\", {\r\n is: (swtCittadinanzaSecondaria) => {\r\n return FormatUtility.castValue(swtCittadinanzaSecondaria, true) === true;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_cittadinanza_secondaria\")),\r\n })\r\n .label(\"Cittadinanza secondaria\"),\r\n\r\n tipoDocumento: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_tipo_documento\")),\r\n })\r\n .label(\"Tipo Documento\"),\r\n numeroDocumento: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_numero_documento\")),\r\n })\r\n .label(\"Numero Documento\"),\r\n luogoRilascio: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_luogo_rilascio\")),\r\n })\r\n .label(\"Luogo Rilascio\"),\r\n dataRilascioDoc: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_data_rilascio\")),\r\n })\r\n .test(\"format\", i18n.t(\"error_global_date_format\"), (val) => {\r\n return this.checkIfDateIsValidOrUndefined(val);\r\n })\r\n .test(\"futura\", i18n.t(\"error_futura_data_rilascio\"), (val) => {\r\n let maxDate = new Date();\r\n return this.checkMaxDate(val, maxDate);\r\n })\r\n .label(\"Data Rilascio\"),\r\n dataScadenzaDoc: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_data_sacadenza\")),\r\n })\r\n .test(\"format\", i18n.t(\"error_global_date_format\"), (val) => {\r\n return this.checkIfDateIsValidOrUndefined(val);\r\n })\r\n .test(\"min\", i18n.t(\"error_min_data_scadenza\"), function (val) {\r\n let minDate = new Date();\r\n return ValidationUtility.checkMinDate(val, minDate, true);\r\n })\r\n .test(\"min\", i18n.t(\"error_range_data_rilascio_scadenza\"), function (val) {\r\n let minDate = this.resolve(Yup.ref(\"dataRilascioDoc\"));\r\n if (minDate === undefined) {\r\n return true;\r\n }\r\n return ValidationUtility.checkMinDate(val, minDate);\r\n })\r\n /* .test(\"range\", i18n.t(\"error_range_data_scadenza\"), function (val) {\r\n let tipoDocumento = (this.resolve(Yup.ref(\"tipoDocumento\")) as string) ?? \"\";\r\n switch (tipoDocumento) {\r\n case codCartaIdentita:\r\n let dataRilascio = (this.resolve(Yup.ref(\"dataRilascioDoc\")) as string) ?? \"\";\r\n let dataNascita = (this.resolve(Yup.ref(\"dataNascita\")) as string) ?? \"\";\r\n return ValidationUtility.checkRangeDataScadenza(val, dataRilascio, dataNascita);\r\n default:\r\n return true;\r\n }\r\n }) */\r\n .label(\"Data Scadenza\"),\r\n\r\n indirizzoResidenza: Yup.object().shape({\r\n nazione: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_nazione\")),\r\n })\r\n .label(\"Stato residenza\"),\r\n codiceIndirizzo: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_tipo_indirizzo\")),\r\n })\r\n .label(\"Tipo indirizzo residenza\"),\r\n indirizzo: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_indirizzo\")),\r\n })\r\n .max(50)\r\n .label(\"Indirizzo residenza\"),\r\n civico: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_civico\")),\r\n })\r\n .max(50)\r\n .label(\"Civico residenza\"),\r\n luogoEstero: Yup.string()\r\n .when(\"nazione\", {\r\n is: (nazione) => {\r\n return nazione !== environment.codNazioneItalia && fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_localita\")),\r\n })\r\n .label(\"Comune residenza\"),\r\n comune: Yup.string()\r\n .when(\"nazione\", {\r\n is: (nazione) => {\r\n return nazione === environment.codNazioneItalia && fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_localita\")),\r\n })\r\n .label(\"Comune residenza\"),\r\n cap: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_cap\")),\r\n })\r\n .label(\"Cap residenza\"),\r\n }),\r\n\r\n indirizzoDomicilio: Yup.object().when(\"swtDomicilio\", {\r\n is: (swtDomicilio) => {\r\n return FormatUtility.castValue(swtDomicilio, true) === true;\r\n },\r\n then: Yup.object().shape({\r\n nazione: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_nazione\")),\r\n })\r\n .label(\"Stato domicilio\"),\r\n codiceIndirizzo: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_tipo_indirizzo\")),\r\n })\r\n .label(\"Tipo indirizzo domicilio\"),\r\n indirizzo: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_indirizzo\")),\r\n })\r\n .max(50)\r\n .label(\"Indirizzo domicilio\"),\r\n civico: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_civico\")),\r\n })\r\n .max(50)\r\n .label(\"Civico domicilio\"),\r\n luogoEstero: Yup.string()\r\n .when(\"nazione\", {\r\n is: (nazione) => {\r\n return nazione !== environment.codNazioneItalia && fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_localita\")),\r\n })\r\n .label(\"Comune domicilio\"),\r\n comune: Yup.string()\r\n .when(\"nazione\", {\r\n is: (nazione) => {\r\n return nazione === environment.codNazioneItalia && fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_localita\")),\r\n })\r\n .label(\"Comune domicilio\"),\r\n cap: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_cap\")),\r\n })\r\n .label(\"Cap domicilio\"),\r\n }),\r\n }),\r\n\r\n indirizzoCorrispondenza: Yup.object().when(\"swtCorrispondenza\", {\r\n is: (swtCorrispondenza) => {\r\n return FormatUtility.castValue(swtCorrispondenza, true) === true;\r\n },\r\n then: Yup.object().shape({\r\n nazione: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_nazione\")),\r\n })\r\n .label(\"Stato corrispondenza\"),\r\n codiceIndirizzo: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_tipo_indirizzo\")),\r\n })\r\n .label(\"Tipo indirizzo corrispondenza\"),\r\n indirizzo: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_indirizzo\")),\r\n })\r\n .max(50)\r\n .label(\"Indirizzo corrispondenza\"),\r\n civico: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_civico\")),\r\n })\r\n .max(50)\r\n .label(\"Civico corrispondenza\"),\r\n luogoEstero: Yup.string()\r\n .when(\"nazione\", {\r\n is: (nazione) => {\r\n return nazione !== environment.codNazioneItalia && fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_localita\")),\r\n })\r\n .label(\"Comune corrispondenza\"),\r\n comune: Yup.string()\r\n .when(\"nazione\", {\r\n is: (nazione) => {\r\n return nazione === environment.codNazioneItalia && fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_localita\")),\r\n })\r\n .label(\"Comune corrispondenza\"),\r\n cap: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_cap\")),\r\n })\r\n .label(\"Cap corrispondenza\"),\r\n }),\r\n }),\r\n\r\n recapitoTelefonico: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_telefono\")),\r\n })\r\n .test(\"format\", i18n.t(\"error_invalid_telefono\"), (val: string) => {\r\n if (val === undefined) {\r\n return true;\r\n }\r\n return ValidationUtility.checkPhoneNumber(val);\r\n })\r\n .label(\"Telefono\"),\r\n\r\n amministrazione: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.required(i18n.t(\"error_required_amministrazione\")),\r\n })\r\n .label(\"Amministrazione\"),\r\n\r\n dataScadenzaContrattoDeterminato: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && isPensionato === false;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_required_data_scadenza\"), function (val: string) {\r\n let isDeterminato = (this.resolve(Yup.ref(\"isDeterminato\")) as boolean) ?? false;\r\n if (isDeterminato === false || (isDeterminato && val)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }),\r\n })\r\n .test(\"format\", i18n.t(\"error_global_date_format\"), (val) => {\r\n return this.checkIfDateIsValidOrUndefined(val);\r\n })\r\n .label(\"Data fine contratto\"),\r\n isIndeterminato: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && isPensionato === false;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkContratto\", i18n.t(\"error_invalid_tipo_contratto\"), function () {\r\n let isDeterminato = (this.resolve(Yup.ref(\"isDeterminato\")) as boolean) ?? false;\r\n let isIndeterminato = (this.resolve(Yup.ref(\"isIndeterminato\")) as boolean) ?? false;\r\n return ValidationUtility.checkContratto(isDeterminato, isIndeterminato);\r\n }),\r\n })\r\n .label(\"Tipo di contratto\"),\r\n\r\n isDeterminato: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && isPensionato === false;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkContratto\", i18n.t(\"error_invalid_tipo_contratto\"), function () {\r\n let isDeterminato = (this.resolve(Yup.ref(\"isDeterminato\")) as boolean) ?? false;\r\n let isIndeterminato = (this.resolve(Yup.ref(\"isIndeterminato\")) as boolean) ?? false;\r\n return ValidationUtility.checkContratto(isDeterminato, isIndeterminato);\r\n }),\r\n })\r\n .label(\"Tipo di contratto\"),\r\n tipologiaPensioneAltro: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && isPensionato === true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_required_altro_pensione\"), function (val: string) {\r\n let isAltro = (this.resolve(Yup.ref(\"tipologiaPensione.chiave\")) as string) ?? \"\";\r\n if (isAltro !== \"3\" || val) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }),\r\n })\r\n .max(50)\r\n .label(\"Tipologia di pensione\"),\r\n isTipologiaPensione: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && isPensionato === true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkPensione\", i18n.t(\"error_invalid_tipo_contratto\"), function () {\r\n let isTipologiaPensione =\r\n (this.resolve(Yup.ref(\"isTipologiaPensione\")) as boolean) ?? false;\r\n let isCointestata = (this.resolve(Yup.ref(\"isCointestata\")) as boolean) ?? false;\r\n return ValidationUtility.checkPensione(isTipologiaPensione, isCointestata);\r\n }),\r\n })\r\n .label(\"Tipologia di pensione\"),\r\n tipologiaPensione: Yup.object().shape({\r\n chiave: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_invalid_tipo_contratto\"), function (val) {\r\n let isTipologiaPensione =\r\n (this.resolve(Yup.ref(\"isTipologiaPensione\")) as boolean) ?? false;\r\n if (isTipologiaPensione !== true || val) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }),\r\n })\r\n .label(\"Tipologia Pensione\"),\r\n valore: Yup.string().label(\"Tipologia Pensione\"),\r\n }),\r\n /* isVecchiaia: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && isPensionato === true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkPensione\", i18n.t(\"error_invalid_tipo_contratto\"), function () {\r\n let isVecchiaia = (this.resolve(Yup.ref(\"isVecchiaia\")) as boolean) ?? false;\r\n let isInvalidita = (this.resolve(Yup.ref(\"isInvalidita\")) as boolean) ?? false;\r\n let isAltro = (this.resolve(Yup.ref(\"isAltro\")) as boolean) ?? false;\r\n return ValidationUtility.checkPensione(isVecchiaia, isInvalidita, isAltro);\r\n }),\r\n })\r\n .label(\"Tipologia di pensione\"),\r\n isInvalidita: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && isPensionato === true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkPensione\", i18n.t(\"error_invalid_tipo_contratto\"), function () {\r\n let isVecchiaia = (this.resolve(Yup.ref(\"isVecchiaia\")) as boolean) ?? false;\r\n let isInvalidita = (this.resolve(Yup.ref(\"isInvalidita\")) as boolean) ?? false;\r\n let isAltro = (this.resolve(Yup.ref(\"isAltro\")) as boolean) ?? false;\r\n return ValidationUtility.checkPensione(isVecchiaia, isInvalidita, isAltro);\r\n }),\r\n })\r\n .label(\"Tipologia di pensione\"),\r\n isAltro: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && isPensionato === true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkPensione\", i18n.t(\"error_invalid_tipo_contratto\"), function () {\r\n let isVecchiaia = (this.resolve(Yup.ref(\"isVecchiaia\")) as boolean) ?? false;\r\n let isInvalidita = (this.resolve(Yup.ref(\"isInvalidita\")) as boolean) ?? false;\r\n let isAltro = (this.resolve(Yup.ref(\"isAltro\")) as boolean) ?? false;\r\n return ValidationUtility.checkPensione(isVecchiaia, isInvalidita, isAltro);\r\n }),\r\n })\r\n .label(\"Tipologia di pensione\"), */\r\n isCointestata: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && isPensionato === true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkPensione\", i18n.t(\"error_invalid_tipo_contratto\"), function () {\r\n let isTipologiaPensione =\r\n (this.resolve(Yup.ref(\"isTipologiaPensione\")) as boolean) ?? false;\r\n let isCointestata = (this.resolve(Yup.ref(\"isCointestata\")) as boolean) ?? false;\r\n return ValidationUtility.checkPensione(isTipologiaPensione, isCointestata);\r\n }),\r\n })\r\n .label(\"Cointestata\"),\r\n //campo non necessario\r\n /* qualifica: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && isPensionato === false;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.required(i18n.t(\"error_required_qualifica\")),\r\n })\r\n .label(\"Qualifica\"), */\r\n\r\n modalitaErogazione: Yup.object().shape({\r\n chiave: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.required(i18n.t(\"error_required_modalita_erogazione\")),\r\n })\r\n .label(\"Modalita Erogazione\"),\r\n valore: Yup.string().label(\"Modalita Erogazione\"),\r\n }),\r\n iban: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && visualizzaCampiBonifico === true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_required_iban\"), function (val: string) {\r\n let modalitaErogazione =\r\n (this.resolve(Yup.ref(\"modalitaErogazione.valore\")) as string) ?? \"\";\r\n if (modalitaErogazione === \"Bonifico\") {\r\n if (val === undefined) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }),\r\n })\r\n .test(\"format\", i18n.t(\"error_invalid_iban_format\"), function (val: string) {\r\n if (visualizzaCampiBonifico === true) {\r\n let modalitaErogazione = (this.resolve(Yup.ref(\"modalitaErogazione.chiave\")) as string) ?? \"\";\r\n if (modalitaErogazione === \"1\" || val) {\r\n if (IBAN.isValid(val)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n })\r\n .label(\"Iban\"),\r\n\r\n dataAccensioneContoCorrente: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_required_data_conto\"), function (val: string) {\r\n let modalitaErogazione =\r\n (this.resolve(Yup.ref(\"modalitaErogazione.chiave\")) as string) ?? \"\";\r\n if (modalitaErogazione !== \"1\" || val) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }),\r\n })\r\n .test(\"format\", i18n.t(\"error_global_date_format\"), (val) => {\r\n return this.checkIfDateIsValidOrUndefined(val);\r\n })\r\n .test(\"futura\", i18n.t(\"error_futura_data_accensione_conto\"), (val) => {\r\n let maxDate = new Date();\r\n return this.checkMaxDate(val, maxDate);\r\n })\r\n .label(\"Data acccensione conto\"),\r\n\r\n isDocumentazioneBancaria: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkRilevazioneCoordinate\",\r\n i18n.t(\"error_invalid_rilevazione_coordinate\"),\r\n function () {\r\n let isDocumentazioneBancaria =\r\n (this.resolve(Yup.ref(\"isDocumentazioneBancaria\")) as boolean) ?? false;\r\n let isBustaPaga = (this.resolve(Yup.ref(\"isBustaPaga\")) as boolean) ?? false;\r\n let modalitaErogazione =\r\n (this.resolve(Yup.ref(\"modalitaErogazione.chiave\")) as string) ?? \"\";\r\n let isAltroBonifico = (this.resolve(Yup.ref(\"isAltroBonifico\")) as boolean) ?? false;\r\n return ValidationUtility.checkRilevazioneCoordinate(\r\n isDocumentazioneBancaria,\r\n isBustaPaga,\r\n isAltroBonifico,\r\n modalitaErogazione\r\n );\r\n }\r\n ),\r\n })\r\n .label(\"Rilevazione Coordinate\"),\r\n isBustaPaga: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkRilevazioneCoordinate\",\r\n i18n.t(\"error_invalid_rilevazione_coordinate\"),\r\n function () {\r\n let isDocumentazioneBancaria =\r\n (this.resolve(Yup.ref(\"isDocumentazioneBancaria\")) as boolean) ?? false;\r\n let isBustaPaga = (this.resolve(Yup.ref(\"isBustaPaga\")) as boolean) ?? false;\r\n let isAltroBonifico = (this.resolve(Yup.ref(\"isAltroBonifico\")) as boolean) ?? false;\r\n let modalitaErogazione =\r\n (this.resolve(Yup.ref(\"modalitaErogazione.chiave\")) as string) ?? \"\";\r\n return ValidationUtility.checkRilevazioneCoordinate(\r\n isDocumentazioneBancaria,\r\n isBustaPaga,\r\n isAltroBonifico,\r\n modalitaErogazione\r\n );\r\n }\r\n ),\r\n })\r\n .label(\"Rilevazione Coordinate\"),\r\n isAltroBonifico: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkRilevazioneCoordinate\",\r\n i18n.t(\"error_invalid_rilevazione_coordinate\"),\r\n function () {\r\n let isDocumentazioneBancaria =\r\n (this.resolve(Yup.ref(\"isDocumentazioneBancaria\")) as boolean) ?? false;\r\n let isBustaPaga = (this.resolve(Yup.ref(\"isBustaPaga\")) as boolean) ?? false;\r\n let isAltroBonifico = (this.resolve(Yup.ref(\"isAltroBonifico\")) as boolean) ?? false;\r\n let modalitaErogazione =\r\n (this.resolve(Yup.ref(\"modalitaErogazione.chiave\")) as string) ?? \"\";\r\n return ValidationUtility.checkRilevazioneCoordinate(\r\n isDocumentazioneBancaria,\r\n isBustaPaga,\r\n isAltroBonifico,\r\n modalitaErogazione\r\n );\r\n }\r\n ),\r\n })\r\n .label(\"Rilevazione Coordinate\"),\r\n rilevazioneCoordinateAltro: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && visualizzaCampiBonifico === true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_required_altro_coordinate\"), function (val: string) {\r\n let isAltroBonifico = (this.resolve(Yup.ref(\"isAltroBonifico\")) as boolean) ?? false;\r\n let modalitaErogazione =\r\n (this.resolve(Yup.ref(\"modalitaErogazione.chiave\")) as string) ?? \"\";\r\n\r\n if (modalitaErogazione === \"1\") {\r\n if (isAltroBonifico === true && val === undefined) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n if (val !== undefined) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n }),\r\n })\r\n .label(\"Rilevazione Coordinate Altro\"),\r\n isContoCointestato: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && visualizzaCampiBonifico === true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkIntestatario\", i18n.t(\"error_invalid_tipo_contratto\"), function () {\r\n let isMeMedesimo = (this.resolve(Yup.ref(\"isMeMedesimo\")) as boolean) ?? false;\r\n let isContoCointestato = (this.resolve(Yup.ref(\"isContoCointestato\")) as boolean) ?? false;\r\n let modalitaErogazione =\r\n (this.resolve(Yup.ref(\"modalitaErogazione.chiave\")) as string) ?? \"\";\r\n return ValidationUtility.checkIntestatario(\r\n isMeMedesimo,\r\n isContoCointestato,\r\n modalitaErogazione\r\n );\r\n }),\r\n })\r\n .label(\"Tipo di contratto\"),\r\n\r\n isMeMedesimo: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && visualizzaCampiBonifico === true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkIntestatario\", i18n.t(\"error_invalid_tipo_contratto\"), function () {\r\n let isMeMedesimo = (this.resolve(Yup.ref(\"isMeMedesimo\")) as boolean) ?? false;\r\n let isContoCointestato = (this.resolve(Yup.ref(\"isContoCointestato\")) as boolean) ?? false;\r\n let modalitaErogazione =\r\n (this.resolve(Yup.ref(\"modalitaErogazione.chiave\")) as string) ?? \"\";\r\n return ValidationUtility.checkIntestatario(\r\n isMeMedesimo,\r\n isContoCointestato,\r\n modalitaErogazione\r\n );\r\n }),\r\n })\r\n .label(\"Tipo di contratto\"),\r\n\r\n nominativoCointestatario: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && visualizzaCampiBonifico === true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"required\",\r\n i18n.t(\"error_required_nome_intestatario\"),\r\n function (val: string) {\r\n let isContoCointestato =\r\n (this.resolve(Yup.ref(\"isContoCointestato\")) as boolean) ?? false;\r\n let modalitaErogazione =\r\n (this.resolve(Yup.ref(\"modalitaErogazione.chiave\")) as string) ?? \"\";\r\n if (modalitaErogazione === \"1\") {\r\n if (isContoCointestato === true && val === undefined) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n if (val !== undefined) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n }\r\n ),\r\n })\r\n .label(\"Nominativo Cointestatario\"),\r\n\r\n gradoParentelaCointestatario: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && visualizzaCampiBonifico === true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_required_grado_parentela\"), function (val: string) {\r\n let isContoCointestato = (this.resolve(Yup.ref(\"isContoCointestato\")) as boolean) ?? false;\r\n let modalitaErogazione =\r\n (this.resolve(Yup.ref(\"modalitaErogazione.chiave\")) as string) ?? \"\";\r\n\r\n if (modalitaErogazione === \"1\") {\r\n if (isContoCointestato === true && val === undefined) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n if (val !== undefined) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n }),\r\n })\r\n .label(\"Grado Parentela\"),\r\n\r\n banca: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && visualizzaCampiBonifico === true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_required_banca\"), function (val: string) {\r\n let modalitaErogazione =\r\n (this.resolve(Yup.ref(\"modalitaErogazione.chiave\")) as string) ?? \"\";\r\n if (modalitaErogazione !== \"1\" || val) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }),\r\n })\r\n .label(\"Banca\"),\r\n\r\n sportello: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && visualizzaCampiBonifico === true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_required_sportello\"), function (val: string) {\r\n let modalitaErogazione =\r\n (this.resolve(Yup.ref(\"modalitaErogazione.chiave\")) as string) ?? \"\";\r\n if (modalitaErogazione !== \"1\" || val) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }),\r\n })\r\n .label(\"Sportello\"),\r\n isOrdinario: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkTipoContoCorrente\", i18n.t(\"error_invalid_tipo_conto\"), function () {\r\n let isOrdinario = (this.resolve(Yup.ref(\"isOrdinario\")) as boolean) ?? false;\r\n let isOnline = (this.resolve(Yup.ref(\"isOnline\")) as boolean) ?? false;\r\n let isCartaPrepagata = (this.resolve(Yup.ref(\"isCartaPrepagata\")) as boolean) ?? false;\r\n let modalitaErogazione =\r\n (this.resolve(Yup.ref(\"modalitaErogazione.chiave\")) as string) ?? \"\";\r\n return ValidationUtility.checkTipoContoCorrente(\r\n isOrdinario,\r\n isOnline,\r\n isCartaPrepagata,\r\n modalitaErogazione\r\n );\r\n }),\r\n })\r\n .label(\"Tipo Conto Corrente\"),\r\n isOnline: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkTipoContoCorrente\", i18n.t(\"error_invalid_tipo_conto\"), function () {\r\n let isOrdinario = (this.resolve(Yup.ref(\"isOrdinario\")) as boolean) ?? false;\r\n let isOnline = (this.resolve(Yup.ref(\"isOnline\")) as boolean) ?? false;\r\n let isCartaPrepagata = (this.resolve(Yup.ref(\"isCartaPrepagata\")) as boolean) ?? false;\r\n let modalitaErogazione =\r\n (this.resolve(Yup.ref(\"modalitaErogazione.chiave\")) as string) ?? \"\";\r\n return ValidationUtility.checkTipoContoCorrente(\r\n isOrdinario,\r\n isOnline,\r\n isCartaPrepagata,\r\n modalitaErogazione\r\n );\r\n }),\r\n })\r\n .label(\"Tipo Conto Corrente\"),\r\n isCartaPrepagata: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && visualizzaCampiBonifico === true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkTipoContoCorrente\", i18n.t(\"error_invalid_tipo_conto\"), function () {\r\n let isOrdinario = (this.resolve(Yup.ref(\"isOrdinario\")) as boolean) ?? false;\r\n let isOnline = (this.resolve(Yup.ref(\"isOnline\")) as boolean) ?? false;\r\n let isCartaPrepagata = (this.resolve(Yup.ref(\"isCartaPrepagata\")) as boolean) ?? false;\r\n let modalitaErogazione =\r\n (this.resolve(Yup.ref(\"modalitaErogazione.chiave\")) as string) ?? \"\";\r\n return ValidationUtility.checkTipoContoCorrente(\r\n isOrdinario,\r\n isOnline,\r\n isCartaPrepagata,\r\n modalitaErogazione\r\n );\r\n }),\r\n })\r\n .label(\"Tipo Conto Corrente\"),\r\n dataAssunzione: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation; //&& isPensionato === false;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.required(i18n.t(\"error_required_data_assunzione\")),\r\n })\r\n /* .test(\"required\", i18n.t(\"error_required_data_assunzione\"), (val) => {\r\n return this.checkIfDateIsValidOrUndefined(val);\r\n }) */\r\n .test(\"format\", i18n.t(\"error_global_date_format\"), (val) => {\r\n return this.checkIfDateIsValidOrUndefined(val);\r\n })\r\n .test(\"min\", i18n.t(\"error_min_data_assunzione\").replace(\"${1}\", (86).toString()), (val) => {\r\n let minDate = new Date();\r\n minDate.setFullYear(minDate.getFullYear() - 86);\r\n return this.checkMinDate(val, minDate);\r\n })\r\n .test(\"futura\", i18n.t(\"error_futura_data_assunzione\"), (val) => {\r\n let maxDate = new Date();\r\n return this.checkMaxDate(val, maxDate);\r\n })\r\n .label(isPensionato === false ? \"Data Assunzione\" : \"Data Pensionamento\"),\r\n isAffitto: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica === true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkProprietaAbitazione\",\r\n i18n.t(\"error_invalid_proprieta_abitazione\"),\r\n function () {\r\n let isAffitto = (this.resolve(Yup.ref(\"isAffitto\")) as boolean) ?? false;\r\n let isProprieta = (this.resolve(Yup.ref(\"isProprieta\")) as boolean) ?? false;\r\n let isTerzi = (this.resolve(Yup.ref(\"isTerzi\")) as boolean) ?? false;\r\n let isFamiglia = (this.resolve(Yup.ref(\"isFamiglia\")) as boolean) ?? false;\r\n return ValidationUtility.checkProprietaAbitazione(\r\n isAffitto,\r\n isProprieta,\r\n isTerzi,\r\n isFamiglia\r\n );\r\n }\r\n ),\r\n })\r\n .label(\"Proprieta Abitazione\"),\r\n isProprieta: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica === true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkProprietaAbitazione\",\r\n i18n.t(\"error_invalid_proprieta_abitazione\"),\r\n function () {\r\n let isAffitto = (this.resolve(Yup.ref(\"isAffitto\")) as boolean) ?? false;\r\n let isProprieta = (this.resolve(Yup.ref(\"isProprieta\")) as boolean) ?? false;\r\n let isTerzi = (this.resolve(Yup.ref(\"isTerzi\")) as boolean) ?? false;\r\n let isFamiglia = (this.resolve(Yup.ref(\"isFamiglia\")) as boolean) ?? false;\r\n return ValidationUtility.checkProprietaAbitazione(\r\n isAffitto,\r\n isProprieta,\r\n isTerzi,\r\n isFamiglia\r\n );\r\n }\r\n ),\r\n })\r\n .label(\"Proprieta Abitazione\"),\r\n isTerzi: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica === true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkProprietaAbitazione\",\r\n i18n.t(\"error_invalid_proprieta_abitazione\"),\r\n function () {\r\n let isAffitto = (this.resolve(Yup.ref(\"isAffitto\")) as boolean) ?? false;\r\n let isProprieta = (this.resolve(Yup.ref(\"isProprieta\")) as boolean) ?? false;\r\n let isTerzi = (this.resolve(Yup.ref(\"isTerzi\")) as boolean) ?? false;\r\n let isFamiglia = (this.resolve(Yup.ref(\"isFamiglia\")) as boolean) ?? false;\r\n return ValidationUtility.checkProprietaAbitazione(\r\n isAffitto,\r\n isProprieta,\r\n isTerzi,\r\n isFamiglia\r\n );\r\n }\r\n ),\r\n })\r\n .label(\"Proprieta Abitazione\"),\r\n isFamiglia: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica === true;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkProprietaAbitazione\",\r\n i18n.t(\"error_invalid_proprieta_abitazione\"),\r\n function () {\r\n let isAffitto = (this.resolve(Yup.ref(\"isAffitto\")) as boolean) ?? false;\r\n let isProprieta = (this.resolve(Yup.ref(\"isProprieta\")) as boolean) ?? false;\r\n let isTerzi = (this.resolve(Yup.ref(\"isTerzi\")) as boolean) ?? false;\r\n let isFamiglia = (this.resolve(Yup.ref(\"isFamiglia\")) as boolean) ?? false;\r\n return ValidationUtility.checkProprietaAbitazione(\r\n isAffitto,\r\n isProprieta,\r\n isTerzi,\r\n isFamiglia\r\n );\r\n }\r\n ),\r\n })\r\n .label(\"Proprieta Abitazione\"),\r\n });\r\n }\r\n\r\n public static getSchemaRichiestaTabDatiReddito(\r\n fullValidation: boolean,\r\n isPensionato: boolean,\r\n codiceTipoRichiedente: string,\r\n visualizzaCampiDatiReddito: boolean,\r\n attivaAdeguataVerifica: boolean\r\n ): ValidationSchema {\r\n ValidationUtility.setLocale();\r\n return Yup.object().shape({\r\n certificatoPensione: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && isPensionato && visualizzaCampiDatiReddito;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.required(i18n.t(\"error_required_certificato_pensione\")),\r\n })\r\n .test(\"format\", i18n.t(\"error_invalid_certificato_pensione\"), (val) => {\r\n if (val) {\r\n return this.checkIfNumber(val);\r\n }\r\n return true;\r\n })\r\n .max(8, i18n.t(\"error_maxlength_certificato_pensione\").replace(\"${1}\", \"8\"))\r\n .label(\"Certificato pensione\"),\r\n codiceSedePensione: Yup.string()\r\n /* .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && isPensionato;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.required(i18n.t(\"error_required_codice_sede_pensione\")),\r\n }) */\r\n .test(\"format\", i18n.t(\"error_invalid_codice_sede_pensione\"), (val) => {\r\n if (val) {\r\n return this.checkIfNumber(val);\r\n }\r\n return true;\r\n })\r\n .max(4, i18n.t(\"error_maxlength_codice_sede_pensione\").replace(\"${1}\", \"4\"))\r\n .label(\"Codice sede pensione\"),\r\n codiceCategPensione: Yup.string()\r\n /* .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && isPensionato;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.required(i18n.t(\"error_required_codice_categoria_pensione\")),\r\n })\r\n */ .test(\"format\", i18n.t(\"error_invalid_codice_categoria_pensione\"), (val) => {\r\n if (val) {\r\n return this.checkIfNotContainsNumbers(val);\r\n }\r\n return true;\r\n })\r\n .max(3, i18n.t(\"error_maxlength_codice_categoria_pensione\").replace(\"${1}\", \"3\"))\r\n .label(\"Codice categoria pensione\"),\r\n tfrMaturato: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && isPensionato === false && codiceTipoRichiedente === \"DPR\";\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema\r\n .required(i18n.t(\"error_required_tfr_maturato\"))\r\n .notOneOf([\"\", \"0\", \"0,00\"], i18n.t(\"error_required_tfr_maturato\")),\r\n })\r\n .test(\"format\", i18n.t(\"error_invalid_tfr_maturato\"), (val) => {\r\n if (val) {\r\n return this.checkIfImportoIsValid(val);\r\n }\r\n return true;\r\n })\r\n .label(\"TFR Maturato\"),\r\n tfrDataRiferimento: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && isPensionato === false && codiceTipoRichiedente === \"DPR\";\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.required(i18n.t(\"error_required_tfr_data_riferimento\")),\r\n })\r\n .test(\"format\", i18n.t(\"error_global_date_format\"), (val) => {\r\n return this.checkIfDateIsValidOrUndefined(val);\r\n })\r\n .label(\"TFR Data Riferimento\"),\r\n //campo non obbligatorio\r\n tfrFondo: Yup.string()\r\n /* .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && isPensionato === false;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema\r\n .required(i18n.t(\"error_required_tfr_fondo\"))\r\n .notOneOf([\"\", \"0\", \"0,00\"], i18n.t(\"error_required_tfr_fondo\")),\r\n }) */\r\n .test(\"format\", i18n.t(\"error_invalid_tfr_fondo\"), (val) => {\r\n if (val) {\r\n return this.checkIfImportoIsValid(val);\r\n }\r\n return true;\r\n })\r\n .label(\"TFR Fondo\"),\r\n //campo non obbligatorio\r\n tfrFondoDataRiferimento: Yup.string()\r\n /* .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && isPensionato === false;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.required(i18n.t(\"error_required_tfr_fondo_data_riferimento\")),\r\n }) */\r\n .test(\"format\", i18n.t(\"error_global_date_format\"), (val) => {\r\n return this.checkIfDateIsValidOrUndefined(val);\r\n })\r\n .label(\"TFR Fondo Data Riferimento\"),\r\n //campo non obbligatorio\r\n descrizioneFondo: Yup.string()\r\n /* .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && isPensionato === false;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.required(i18n.t(\"error_required_fondo\")),\r\n }) */\r\n .label(\"descrizioneFondo\"),\r\n numeroCedolino: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return (\r\n fullValidation &&\r\n visualizzaCampiDatiReddito &&\r\n isPensionato === false &&\r\n codiceTipoRichiedente === \"DPU\"\r\n );\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.required(\r\n i18n.t(\r\n codiceTipoRichiedente === environment.codTipoRichiedenteDipendentePrivato\r\n ? \"error_required_numero_cedolino\"\r\n : \"error_required_id_stipendio\"\r\n )\r\n ),\r\n })\r\n /* .test(\r\n \"format\",\r\n i18n.t(\r\n codiceTipoRichiedente === environment.codTipoRichiedenteDipendentePrivato\r\n ? \"error_invalid_numero_cedolino\"\r\n : \"error_invalid_id_stipendio\"\r\n ),\r\n (val) => {\r\n if (val) {\r\n return this.checkIfContainsEuropeanChar(val);\r\n }\r\n return true;\r\n }\r\n ) */\r\n .max(\r\n codiceTipoRichiedente === environment.codTipoRichiedenteDipendentePrivato ? 15 : 8,\r\n i18n\r\n .t(\r\n codiceTipoRichiedente === environment.codTipoRichiedenteDipendentePrivato\r\n ? \"error_maxlength_numero_cedolino\"\r\n : \"error_maxlength_id_stipendio\"\r\n )\r\n .replace(\r\n \"${1}\",\r\n codiceTipoRichiedente === environment.codTipoRichiedenteDipendentePrivato ? \"15\" : \"8\"\r\n )\r\n )\r\n .label(\r\n codiceTipoRichiedente === environment.codTipoRichiedenteDipendentePrivato\r\n ? \"Numero Cedolino\"\r\n : \"ID Stipendio\"\r\n ),\r\n meseRetribuzione: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && isPensionato === false;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.required(i18n.t(\"error_required_mese_retribuzione\")),\r\n })\r\n .test(\"format\", i18n.t(\"error_global_date_format\"), (val) => {\r\n if (val) {\r\n val = \"01/\" + val;\r\n }\r\n return this.checkIfDateIsValidOrUndefined(val);\r\n })\r\n .label(\"Mese Retribuzione\"),\r\n redditoAnnuo: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema\r\n .required(i18n.t(\"error_required_reddito_annuo\"))\r\n .notOneOf([\"\", \"0\", \"0,00\"], i18n.t(\"error_required_reddito_annuo\")),\r\n })\r\n .test(\"format\", i18n.t(\"error_invalid_reddito_annuo\"), (val) => {\r\n if (val) {\r\n return this.checkIfImportoIsValid(val);\r\n }\r\n return true;\r\n })\r\n .label(\"Reddito annuo\"),\r\n speseAffittoAnnue: Yup.string()\r\n /* .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema\r\n .required(i18n.t(\"error_required_spese_affitto_annue\"))\r\n .notOneOf([\"\", \"0\", \"0,00\"], i18n.t(\"error_required_spese_affitto_annue\")),\r\n }) */\r\n .test(\"format\", i18n.t(\"error_invalid_spese_affitto_annue\"), (val) => {\r\n if (val) {\r\n return this.checkIfImportoIsValid(val);\r\n }\r\n return true;\r\n })\r\n .label(\"Spese Affitto Annue\"),\r\n totaleRedditoAnnuo: Yup.string()\r\n /* .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema\r\n .required(i18n.t(\"error_required_totale_reddito_annuo\"))\r\n .notOneOf([\"\", \"0\", \"0,00\"], i18n.t(\"error_required_totale_reddito_annuo\")),\r\n }) */\r\n .test(\"format\", i18n.t(\"error_invalid_totale_reddito_annuo\"), (val) => {\r\n if (val) {\r\n return this.checkIfImportoIsValid(val);\r\n }\r\n return true;\r\n })\r\n .label(\"Totale Reddito Annuo\"),\r\n altreRateizzazioniAnnue: Yup.string()\r\n /* .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema\r\n .required(i18n.t(\"error_required_altre_reteizzazioni_annue\"))\r\n .notOneOf([\"\", \"0\", \"0,00\"], i18n.t(\"error_required_altre_reteizzazioni_annue\")),\r\n }) */\r\n .test(\"format\", i18n.t(\"error_invalid_altre_reteizzazioni_annue\"), (val) => {\r\n if (val) {\r\n return this.checkIfImportoIsValid(val);\r\n }\r\n return true;\r\n })\r\n .label(\"Altre Rateizzazioni Annue\"),\r\n nettoMesile: Yup.string()\r\n /* .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema\r\n .required(i18n.t(\"error_required_netto_mensile\"))\r\n .notOneOf([\"\", \"0\", \"0,00\"], i18n.t(\"error_required_netto_mensile\")),\r\n }) */\r\n .test(\"format\", i18n.t(\"error_invalid_netto_mensile\"), (val) => {\r\n if (val) {\r\n return this.checkIfImportoIsValid(val);\r\n }\r\n return true;\r\n })\r\n .label(\"Netto Mesile\"),\r\n altriRedditiRichiedente: Yup.string()\r\n /* .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema\r\n .required(i18n.t(\"error_required_altri_redditi_richiedente\"))\r\n .notOneOf([\"\", \"0\", \"0,00\"], i18n.t(\"error_required_altri_redditi_richiedente\")),\r\n }) */\r\n .test(\"format\", i18n.t(\"error_invalid_altri_redditi_richiedente\"), (val) => {\r\n if (val) {\r\n return this.checkIfImportoIsValid(val);\r\n }\r\n return true;\r\n })\r\n .label(\"Netto Mesile\"),\r\n altriRedditiNucleoFam: Yup.string()\r\n //.when(\"fullValidation\", {\r\n // is: () => {\r\n // return fullValidation;\r\n // },\r\n // then: (fieldSchema: Yup.MixedSchema) =>\r\n // fieldSchema\r\n // .required(i18n.t(\"error_required_altri_redditi_nucleo_familiare\"))\r\n // .notOneOf([\"\", \"0\", \"0,00\"], i18n.t(\"error_required_altri_redditi_nucleo_familiare\")),\r\n //})\r\n .test(\"format\", i18n.t(\"error_invalid_altri_redditi_nucleo_familiare\"), (val) => {\r\n if (val) {\r\n return this.checkIfImportoIsValid(val);\r\n }\r\n return true;\r\n })\r\n .label(\"Altri redditi nucleo familiare\"),\r\n fgDichiarazione: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n // then: Yup.boolean().required(i18n.t(\"error_required_fgDichiarazione\")),\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"obbligatorio\", i18n.t(\"registrazione_required_consenso_privacy\"), (val) => {\r\n return FormatUtility.castValue(val, true) === true;\r\n }),\r\n })\r\n .label(\"Dichiarazione\"),\r\n isFabbricati: Yup.boolean(),\r\n numeroFabbricati: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_required_rata\"), function (val: string) {\r\n let isFabbricati = (this.resolve(Yup.ref(\"isFabbricati\")) as boolean) ?? false;\r\n if (isFabbricati === true) {\r\n if (val === undefined) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }),\r\n })\r\n .label(\"Numero Fabbricati\"),\r\n destinazioneFabbricati: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_required_rata\"), function (val: string) {\r\n let isFabbricati = (this.resolve(Yup.ref(\"isFabbricati\")) as boolean) ?? false;\r\n if (isFabbricati === true) {\r\n if (val === undefined) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }),\r\n })\r\n .label(\"Destinazione Fabbricati\"),\r\n isTerreni: Yup.boolean(),\r\n numeroTerreni: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_required_rata\"), function (val: string) {\r\n let isTerreni = (this.resolve(Yup.ref(\"isTerreni\")) as boolean) ?? false;\r\n if (isTerreni === true) {\r\n if (val === undefined) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }),\r\n })\r\n .label(\"Numero Terreni\"),\r\n destinazioneTerreni: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_required_rata\"), function (val: string) {\r\n let isTerreni = (this.resolve(Yup.ref(\"isTerreni\")) as boolean) ?? false;\r\n if (isTerreni === true) {\r\n if (val === undefined) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }),\r\n })\r\n .label(\"Destinazioni Terreni\"),\r\n /* fgFinanziamentiInCorso:Yup.boolean(),\r\n rataFinanziamento:Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_required_rata\"), function (val: string) {\r\n let fgFinanziamentiInCorso =\r\n (this.resolve(Yup.ref(\"fgFinanziamentiInCorso\")) as boolean) ?? false;\r\n if (fgFinanziamentiInCorso === true) {\r\n if (val === undefined) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }),\r\n }) \r\n .label(\"Rata Finanziamento\"),\r\n finanziatore:Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica ;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_required_finanziatore\"), function (val: string) {\r\n let fgFinanziamentiInCorso =\r\n (this.resolve(Yup.ref(\"fgFinanziamentiInCorso\")) as boolean) ?? false;\r\n if (fgFinanziamentiInCorso === true) {\r\n if (val === undefined) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }),\r\n }) \r\n .label(\"Finanziatore\"),\r\n dataInizioFinanziamento:Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_required_data_finanziamento\"), function (val: string) {\r\n let fgFinanziamentiInCorso =\r\n (this.resolve(Yup.ref(\"fgFinanziamentiInCorso\")) as boolean) ?? false;\r\n if (fgFinanziamentiInCorso === true) {\r\n if (val === undefined) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }),\r\n }) \r\n .label(\"Data Inizio Finanziamento\"),\r\n rateResidueFinanziamento:Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica ;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_required_rate_residue_finanziamento\"), function (val: string) {\r\n let fgFinanziamentiInCorso =\r\n (this.resolve(Yup.ref(\"fgFinanziamentiInCorso\")) as boolean) ?? false;\r\n if (fgFinanziamentiInCorso === true) {\r\n if (val === undefined) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }),\r\n }) \r\n .label(\"Rate residue Finanziamento\"),\r\n fgPignoramentiInCorso:Yup.boolean(),\r\n rataMesilePignoramento:Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica ;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_required_rata\"), function (val: string) {\r\n let fgPignoramentiInCorso =\r\n (this.resolve(Yup.ref(\"fgPignoramentiInCorso\")) as boolean) ?? false;\r\n if (fgPignoramentiInCorso === true) {\r\n if (val === undefined) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }),\r\n }) \r\n .label(\"Rata Pignoramento\"),\r\n creditore:Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_required_creditore\"), function (val: string) {\r\n let fgPignoramentiInCorso =\r\n (this.resolve(Yup.ref(\"fgPignoramentiInCorso\")) as boolean) ?? false;\r\n if (fgPignoramentiInCorso === true) {\r\n if (val === undefined) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }),\r\n }) \r\n .label(\"Creditore\"), \r\n rateResiduePignoramento:Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica ;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"required\", i18n.t(\"error_required_rate_residue_pignoramento\"), function (val: string) {\r\n let fgPignoramentiInCorso =\r\n (this.resolve(Yup.ref(\"fgPignoramentiInCorso\")) as boolean) ?? false;\r\n if (fgPignoramentiInCorso === true) {\r\n if (val === undefined) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }),\r\n }) \r\n .label(\"Rate residue Pignoramento\"), \r\n isSupera: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkSuperaPercentuale\",\r\n i18n.t(\"error_invalid_supera_percentuale\"),\r\n function () {\r\n let isSupera = (this.resolve(Yup.ref(\"isSupera\")) as boolean) ?? false;\r\n let isNonSupera = (this.resolve(Yup.ref(\"isNonSupera\")) as boolean) ?? false;\r\n return ValidationUtility.checkSuperaPercentuale(isSupera, isNonSupera);\r\n }\r\n ),\r\n })\r\n .label(\"Supera Percentuale\"),\r\n isNonSupera: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkSuperaPercentuale\",\r\n i18n.t(\"error_invalid_supera_percentuale\"),\r\n function () {\r\n let isSupera = (this.resolve(Yup.ref(\"isSupera\")) as boolean) ?? false;\r\n let isNonSupera = (this.resolve(Yup.ref(\"isNonSupera\")) as boolean) ?? false;\r\n return ValidationUtility.checkSuperaPercentuale(isSupera, isNonSupera);\r\n }\r\n ),\r\n })\r\n .label(\"Supera Percentuale\"),*/\r\n isRenditaFinanziaria: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkFonteReddito\", i18n.t(\"error_invalid_supera_percentuale\"), function () {\r\n let altriRedditiNucleoFam =\r\n (this.resolve(Yup.ref(\"altriRedditiNucleoFam\")) as string) ?? \"\";\r\n let altriRedditiRichiedente =\r\n (this.resolve(Yup.ref(\"altriRedditiRichiedente\")) as string) ?? \"\";\r\n let isRenditaFinanziaria =\r\n (this.resolve(Yup.ref(\"isRenditaFinanziaria\")) as boolean) ?? false;\r\n let isRedditoImmobili = (this.resolve(Yup.ref(\"isRedditoImmobili\")) as boolean) ?? false;\r\n let isRedditoAltro = (this.resolve(Yup.ref(\"isRedditoAltro\")) as boolean) ?? false;\r\n return ValidationUtility.checkFonteReddito(\r\n altriRedditiNucleoFam,\r\n isRenditaFinanziaria,\r\n isRedditoImmobili,\r\n isRedditoAltro,\r\n altriRedditiRichiedente\r\n );\r\n }),\r\n })\r\n .label(\"Fonte Reddito\"),\r\n isRedditoImmobili: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkFonteReddito\", i18n.t(\"error_invalid_supera_percentuale\"), function () {\r\n let altriRedditiNucleoFam =\r\n (this.resolve(Yup.ref(\"altriRedditiNucleoFam\")) as string) ?? \"\";\r\n let altriRedditiRichiedente =\r\n (this.resolve(Yup.ref(\"altriRedditiRichiedente\")) as string) ?? \"\";\r\n let isRenditaFinanziaria =\r\n (this.resolve(Yup.ref(\"isRenditaFinanziaria\")) as boolean) ?? false;\r\n let isRedditoImmobili = (this.resolve(Yup.ref(\"isRedditoImmobili\")) as boolean) ?? false;\r\n let isRedditoAltro = (this.resolve(Yup.ref(\"isRedditoAltro\")) as boolean) ?? false;\r\n return ValidationUtility.checkFonteReddito(\r\n altriRedditiNucleoFam,\r\n isRenditaFinanziaria,\r\n isRedditoImmobili,\r\n isRedditoAltro,\r\n altriRedditiRichiedente\r\n );\r\n }),\r\n })\r\n .label(\"Fonte Reddito\"),\r\n isRedditoAltro: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkFonteReddito\", i18n.t(\"error_invalid_supera_percentuale\"), function () {\r\n let altriRedditiNucleoFam =\r\n (this.resolve(Yup.ref(\"altriRedditiNucleoFam\")) as string) ?? \"\";\r\n let altriRedditiRichiedente =\r\n (this.resolve(Yup.ref(\"altriRedditiRichiedente\")) as string) ?? \"\";\r\n let isRenditaFinanziaria =\r\n (this.resolve(Yup.ref(\"isRenditaFinanziaria\")) as boolean) ?? false;\r\n let isRedditoImmobili = (this.resolve(Yup.ref(\"isRedditoImmobili\")) as boolean) ?? false;\r\n let isRedditoAltro = (this.resolve(Yup.ref(\"isRedditoAltro\")) as boolean) ?? false;\r\n return ValidationUtility.checkFonteReddito(\r\n altriRedditiNucleoFam,\r\n isRenditaFinanziaria,\r\n isRedditoImmobili,\r\n isRedditoAltro,\r\n altriRedditiRichiedente\r\n );\r\n }),\r\n })\r\n .label(\"Fonte Reddito\"),\r\n });\r\n }\r\n\r\n public static getSchemaRichiestaTabAltriPrestiti(\r\n fullValidation: boolean,\r\n attivaAdeguataVerifica: boolean,\r\n visualizzaAltriImpegniNelTabPrestiti: boolean\r\n ): ValidationSchema {\r\n ValidationUtility.setLocale();\r\n\r\n if (visualizzaAltriImpegniNelTabPrestiti) {\r\n return Yup.object().shape({\r\n fgAltriImpegni: Yup.boolean().label(\"Altri prestiti\"),\r\n fgEstinzioneTerzi: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_estinzione_terzi\")),\r\n })\r\n .label(\"Estinzione Terzi\"),\r\n isSupera: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkSuperaPercentuale\",\r\n i18n.t(\"error_invalid_supera_percentuale\"),\r\n function () {\r\n let isSupera = (this.resolve(Yup.ref(\"isSupera\")) as boolean) ?? false;\r\n let isNonSupera = (this.resolve(Yup.ref(\"isNonSupera\")) as boolean) ?? false;\r\n return ValidationUtility.checkSuperaPercentuale(isSupera, isNonSupera);\r\n }\r\n ),\r\n })\r\n .label(\"Supera Percentuale\"),\r\n isNonSupera: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation && attivaAdeguataVerifica;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkSuperaPercentuale\",\r\n i18n.t(\"error_invalid_supera_percentuale\"),\r\n function () {\r\n let isSupera = (this.resolve(Yup.ref(\"isSupera\")) as boolean) ?? false;\r\n let isNonSupera = (this.resolve(Yup.ref(\"isNonSupera\")) as boolean) ?? false;\r\n return ValidationUtility.checkSuperaPercentuale(isSupera, isNonSupera);\r\n }\r\n ),\r\n })\r\n .label(\"Supera Percentuale\"),\r\n altriImpegni: Yup.array().when(\"fgAltriImpegni\", {\r\n is: true,\r\n then: Yup.array()\r\n .of(\r\n Yup.object().shape({\r\n tipologiaImpegno: Yup.string()\r\n .required(i18n.t(\"error_required_tipoImpegno\"))\r\n .label(\"Tipologia Impegno\"),\r\n rata: Yup.string()\r\n .when([\"fgPresenzaDati\", \"estinzione\"], {\r\n is: (fgPresenzaDati, estinzione) => {\r\n return fgPresenzaDati === \"S\" && estinzione === \"S\";\r\n },\r\n then: Yup.string()\r\n /* .required(i18n.t(\"error_required_rata\"))\r\n .notOneOf([\"\", \"0\", \"0,00\"], i18n.t(\"error_required_rata\")) */\r\n .test(\"format\", i18n.t(\"error_invalid_rata\"), (val) => {\r\n return this.checkIfImportoIsValid(val);\r\n })\r\n .test(\r\n \"min\",\r\n i18n.t(\"error_min_rata\").replace(\"${1}\", FormatUtility.currency(10)),\r\n (val) => {\r\n let value = FormatUtility.numberFromNumberWithSeparators(val);\r\n if (value != null) {\r\n return this.checkMinNumber(value, 10);\r\n }\r\n return false;\r\n }\r\n )\r\n .test(\r\n \"max\",\r\n i18n.t(\"error_max_rata\").replace(\"${1}\", FormatUtility.currency(75000)),\r\n (val) => {\r\n let value = FormatUtility.numberFromNumberWithSeparators(val);\r\n if (value !== undefined) {\r\n return this.checkMaxNumber(value, 75000);\r\n }\r\n return false;\r\n }\r\n ),\r\n })\r\n .label(i18n.t(\"error_field_rata\")),\r\n\r\n debitoResiduo: Yup.string()\r\n .when([\"fgPresenzaDati\", \"estinzione\"], {\r\n is: (fgPresenzaDati, estinzione) => {\r\n return (\r\n fgPresenzaDati === \"S\" &&\r\n estinzione === \"S\" &&\r\n visualizzaAltriImpegniNelTabPrestiti\r\n );\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_categoriaAmministrativa\")),\r\n })\r\n .label(\"Categoria Amministrativa\"),\r\n\r\n istitutoFinanziario: Yup.string()\r\n .when([\"fgPresenzaDati\", \"estinzione\"], {\r\n is: (fgPresenzaDati, estinzione) => {\r\n return (\r\n fgPresenzaDati === \"S\" &&\r\n estinzione === \"S\" &&\r\n visualizzaAltriImpegniNelTabPrestiti\r\n );\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_categoriaAmministrativa\")),\r\n })\r\n .label(\"Categoria Amministrativa\"),\r\n })\r\n )\r\n .label(\"Altri Impegni\"),\r\n }),\r\n });\r\n } else {\r\n return Yup.object().shape({\r\n fgAltriImpegni: Yup.boolean().label(\"Altri prestiti\"),\r\n fgEstinzioneTerzi: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: Yup.string().required(i18n.t(\"error_required_estinzione_terzi\")),\r\n })\r\n .label(\"Estinzione Terzi\"),\r\n // altriImpegni: Yup.array().of(\r\n // Yup.object().shape({\r\n // tipologiaImpegno: Yup.string()\r\n // .required(i18n.t(\"error_required_tipoImpegno\"))\r\n // .label(\"Tipologia Impegno\"),\r\n // fgPresenzaDati: Yup.string()\r\n // .required(i18n.t(\"error_required_fgPresenzaDati\"))\r\n // .label(\"Nuovo Impegno\"),\r\n // estinzione: Yup.string()\r\n // .required(i18n.t(\"error_required_fgEstinzione\"))\r\n // .test(\"checkTipoImpegno\", i18n.t(\"error_invalid_fgEstinzione\"), function () {\r\n // let fgPresenzaDati = (this.resolve(Yup.ref(\"fgPresenzaDati\")) as string) ?? \"\";\r\n // let tipoImpegno = (this.resolve(Yup.ref(\"tipologiaImpegno\")) as string) ?? \"\";\r\n // return ValidationUtility.checkTipoImpegno(fgPresenzaDati, tipoImpegno);\r\n // })\r\n // .label(\"Tipologia Impegno\"),\r\n // rata: Yup.string()\r\n // /* .required(i18n.t(\"error_required_rata\"))\r\n // .notOneOf([\"\", \"0\", \"0,00\"], i18n.t(\"error_required_rata\")) */\r\n // .test(\"format\", i18n.t(\"error_invalid_rata\"), (val) => {\r\n // return this.checkIfImportoIsValid(val);\r\n // })\r\n // .test(\r\n // \"min\",\r\n // i18n.t(\"error_min_rata\").replace(\"${1}\", FormatUtility.currency(10)),\r\n // (val) => {\r\n // let value = FormatUtility.numberFromNumberWithSeparators(val);\r\n // if (value != null) {\r\n // return this.checkMinNumber(value, 10);\r\n // }\r\n // return false;\r\n // }\r\n // )\r\n // .test(\r\n // \"max\",\r\n // i18n.t(\"error_max_rata\").replace(\"${1}\", FormatUtility.currency(75000)),\r\n // (val) => {\r\n // let value = FormatUtility.numberFromNumberWithSeparators(val);\r\n // if (value !== undefined) {\r\n // return this.checkMaxNumber(value, 75000);\r\n // }\r\n // return false;\r\n // }\r\n // )\r\n // .label(i18n.t(\"error_field_rata\")),\r\n // })\r\n // ),\r\n });\r\n }\r\n }\r\n\r\n public static getSchemaRichiestaTabAdeguataVerifica(\r\n fullValidation: boolean,\r\n attivaAdeguataVerifica: boolean\r\n ): ValidationSchema {\r\n ValidationUtility.setLocale();\r\n return Yup.object().shape({\r\n isClienteBanca: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkRapportoBanca\", i18n.t(\"error_invalid_rapporto_banca\"), function () {\r\n let isClienteBanca = (this.resolve(Yup.ref(\"isClienteBanca\")) as boolean) ?? false;\r\n let isClienteAgenzia = (this.resolve(Yup.ref(\"isClienteAgenzia\")) as boolean) ?? false;\r\n let isNewCliente = (this.resolve(Yup.ref(\"isNewCliente\")) as boolean) ?? false;\r\n return ValidationUtility.checkRapportoBanca(isClienteBanca, isClienteAgenzia, isNewCliente);\r\n }),\r\n })\r\n .label(\"Rapporto Banca\"),\r\n isClienteAgenzia: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkRapportoBanca\", i18n.t(\"error_invalid_rapporto_banca\"), function () {\r\n let isClienteBanca = (this.resolve(Yup.ref(\"isClienteBanca\")) as boolean) ?? false;\r\n let isClienteAgenzia = (this.resolve(Yup.ref(\"isClienteAgenzia\")) as boolean) ?? false;\r\n let isNewCliente = (this.resolve(Yup.ref(\"isNewCliente\")) as boolean) ?? false;\r\n return ValidationUtility.checkRapportoBanca(isClienteBanca, isClienteAgenzia, isNewCliente);\r\n }),\r\n })\r\n .label(\"Rapporto Banca\"),\r\n isNewCliente: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkRapportoBanca\", i18n.t(\"error_invalid_rapporto_banca\"), function () {\r\n let isClienteBanca = (this.resolve(Yup.ref(\"isClienteBanca\")) as boolean) ?? false;\r\n let isClienteAgenzia = (this.resolve(Yup.ref(\"isClienteAgenzia\")) as boolean) ?? false;\r\n let isNewCliente = (this.resolve(Yup.ref(\"isNewCliente\")) as boolean) ?? false;\r\n return ValidationUtility.checkRapportoBanca(isClienteBanca, isClienteAgenzia, isNewCliente);\r\n }),\r\n })\r\n .label(\"Rapporto Banca\"),\r\n isCelibeNubile: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkStatoCivile\", i18n.t(\"error_invalid_stato_civile\"), function () {\r\n let isCelibeNubile = (this.resolve(Yup.ref(\"isCelibeNubile\")) as boolean) ?? false;\r\n let isConvivente = (this.resolve(Yup.ref(\"isConvivente\")) as boolean) ?? false;\r\n let isConiugato = (this.resolve(Yup.ref(\"isConiugato\")) as boolean) ?? false;\r\n let isDivorziatoSeparato =\r\n (this.resolve(Yup.ref(\"isDivorziatoSeparato\")) as boolean) ?? false;\r\n let isVedovo = (this.resolve(Yup.ref(\"isVedovo\")) as boolean) ?? false;\r\n return ValidationUtility.checkStatoCivile(\r\n isCelibeNubile,\r\n isConvivente,\r\n isConiugato,\r\n isDivorziatoSeparato,\r\n isVedovo\r\n );\r\n }),\r\n })\r\n .label(\"Stato Civile\"),\r\n isConvivente: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkStatoCivile\", i18n.t(\"error_invalid_stato_civile\"), function () {\r\n let isCelibeNubile = (this.resolve(Yup.ref(\"isCelibeNubile\")) as boolean) ?? false;\r\n let isConvivente = (this.resolve(Yup.ref(\"isConvivente\")) as boolean) ?? false;\r\n let isConiugato = (this.resolve(Yup.ref(\"isConiugato\")) as boolean) ?? false;\r\n let isDivorziatoSeparato =\r\n (this.resolve(Yup.ref(\"isDivorziatoSeparato\")) as boolean) ?? false;\r\n let isVedovo = (this.resolve(Yup.ref(\"isVedovo\")) as boolean) ?? false;\r\n return ValidationUtility.checkStatoCivile(\r\n isCelibeNubile,\r\n isConvivente,\r\n isConiugato,\r\n isDivorziatoSeparato,\r\n isVedovo\r\n );\r\n }),\r\n })\r\n .label(\"Stato Civile\"),\r\n isConiugato: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkStatoCivile\", i18n.t(\"error_invalid_stato_civile\"), function () {\r\n let isCelibeNubile = (this.resolve(Yup.ref(\"isCelibeNubile\")) as boolean) ?? false;\r\n let isConvivente = (this.resolve(Yup.ref(\"isConvivente\")) as boolean) ?? false;\r\n let isConiugato = (this.resolve(Yup.ref(\"isConiugato\")) as boolean) ?? false;\r\n let isDivorziatoSeparato =\r\n (this.resolve(Yup.ref(\"isDivorziatoSeparato\")) as boolean) ?? false;\r\n let isVedovo = (this.resolve(Yup.ref(\"isVedovo\")) as boolean) ?? false;\r\n return ValidationUtility.checkStatoCivile(\r\n isCelibeNubile,\r\n isConvivente,\r\n isConiugato,\r\n isDivorziatoSeparato,\r\n isVedovo\r\n );\r\n }),\r\n })\r\n .label(\"Stato Civile\"),\r\n isDivorziatoSeparato: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkStatoCivile\", i18n.t(\"error_invalid_stato_civile\"), function () {\r\n let isCelibeNubile = (this.resolve(Yup.ref(\"isCelibeNubile\")) as boolean) ?? false;\r\n let isConvivente = (this.resolve(Yup.ref(\"isConvivente\")) as boolean) ?? false;\r\n let isConiugato = (this.resolve(Yup.ref(\"isConiugato\")) as boolean) ?? false;\r\n let isDivorziatoSeparato =\r\n (this.resolve(Yup.ref(\"isDivorziatoSeparato\")) as boolean) ?? false;\r\n let isVedovo = (this.resolve(Yup.ref(\"isVedovo\")) as boolean) ?? false;\r\n return ValidationUtility.checkStatoCivile(\r\n isCelibeNubile,\r\n isConvivente,\r\n isConiugato,\r\n isDivorziatoSeparato,\r\n isVedovo\r\n );\r\n }),\r\n })\r\n .label(\"Stato Civile\"),\r\n isVedovo: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkStatoCivile\", i18n.t(\"error_invalid_stato_civile\"), function () {\r\n let isCelibeNubile = (this.resolve(Yup.ref(\"isCelibeNubile\")) as boolean) ?? false;\r\n let isConvivente = (this.resolve(Yup.ref(\"isConvivente\")) as boolean) ?? false;\r\n let isConiugato = (this.resolve(Yup.ref(\"isConiugato\")) as boolean) ?? false;\r\n let isDivorziatoSeparato =\r\n (this.resolve(Yup.ref(\"isDivorziatoSeparato\")) as boolean) ?? false;\r\n let isVedovo = (this.resolve(Yup.ref(\"isVedovo\")) as boolean) ?? false;\r\n return ValidationUtility.checkStatoCivile(\r\n isCelibeNubile,\r\n isConvivente,\r\n isConiugato,\r\n isDivorziatoSeparato,\r\n isVedovo\r\n );\r\n }),\r\n })\r\n .label(\"Stato Civile\"),\r\n isComunioneDeiBeni: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkRegimePatrimoniale\",\r\n i18n.t(\"error_invalid_regime_patrimoniale\"),\r\n function () {\r\n let isComunioneDeiBeni =\r\n (this.resolve(Yup.ref(\"isComunioneDeiBeni\")) as boolean) ?? false;\r\n let isSeparazioneDeiBeni =\r\n (this.resolve(Yup.ref(\"isSeparazioneDeiBeni\")) as boolean) ?? false;\r\n return ValidationUtility.checkRegimePatrimoniale(\r\n isComunioneDeiBeni,\r\n isSeparazioneDeiBeni\r\n );\r\n }\r\n ),\r\n })\r\n .label(\"Regime Patrimoniale\"),\r\n isSeparazioneDeiBeni: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkRegimePatrimoniale\",\r\n i18n.t(\"error_invalid_regime_patrimoniale\"),\r\n function () {\r\n let isComunioneDeiBeni =\r\n (this.resolve(Yup.ref(\"isComunioneDeiBeni\")) as boolean) ?? false;\r\n let isSeparazioneDeiBeni =\r\n (this.resolve(Yup.ref(\"isSeparazioneDeiBeni\")) as boolean) ?? false;\r\n return ValidationUtility.checkRegimePatrimoniale(\r\n isComunioneDeiBeni,\r\n isSeparazioneDeiBeni\r\n );\r\n }\r\n ),\r\n })\r\n .label(\"Regime Patrimoniale\"),\r\n numeroNucleoFamiliare: Yup.string()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"required\",\r\n i18n.t(\"error_required_componenti_nucleo\"),\r\n function (val: string) {\r\n if (val) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n ),\r\n })\r\n .label(\"Numero Componenti Nucleo Familiare\"),\r\n /* isTitolareFinanziamento: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkTitolareEffetivo\",\r\n i18n.t(\"error_invalid_titolare_effettivo\"),\r\n function () {\r\n let isTitolareFinanziamento =\r\n (this.resolve(Yup.ref(\"isTitolareFinanziamento\")) as boolean) ?? false;\r\n let isnoPEP = (this.resolve(Yup.ref(\"isnoPEP\")) as boolean) ?? false;\r\n let isEsecutoreFinanziamento =\r\n (this.resolve(Yup.ref(\"isEsecutoreFinanziamento\")) as boolean) ?? false;\r\n return ValidationUtility.checkTitolareEffettivo(\r\n isTitolareFinanziamento,\r\n isnoPEP,\r\n isEsecutoreFinanziamento\r\n );\r\n }\r\n ),\r\n })\r\n .label(\"Titolare Effettivo\"),\r\n isnoPEP: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkTitolareEffetivo\",\r\n i18n.t(\"error_invalid_titolare_effettivo\"),\r\n function () {\r\n let isTitolareFinanziamento =\r\n (this.resolve(Yup.ref(\"isTitolareFinanziamento\")) as boolean) ?? false;\r\n let isnoPEP = (this.resolve(Yup.ref(\"isnoPEP\")) as boolean) ?? false;\r\n let isEsecutoreFinanziamento =\r\n (this.resolve(Yup.ref(\"isEsecutoreFinanziamento\")) as boolean) ?? false;\r\n return ValidationUtility.checkTitolareEffettivo(\r\n isTitolareFinanziamento,\r\n isnoPEP,\r\n isEsecutoreFinanziamento\r\n );\r\n }\r\n ),\r\n })\r\n .label(\"Titolare Effettivo\"),\r\n isEsecutoreFinanziamento: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkTitolareEffetivo\",\r\n i18n.t(\"error_invalid_titolare_effettivo\"),\r\n function () {\r\n let isTitolareFinanziamento =\r\n (this.resolve(Yup.ref(\"isTitolareFinanziamento\")) as boolean) ?? false;\r\n let isnoPEP = (this.resolve(Yup.ref(\"isnoPEP\")) as boolean) ?? false;\r\n let isEsecutoreFinanziamento =\r\n (this.resolve(Yup.ref(\"isEsecutoreFinanziamento\")) as boolean) ?? false;\r\n return ValidationUtility.checkTitolareEffettivo(\r\n isTitolareFinanziamento,\r\n isnoPEP,\r\n isEsecutoreFinanziamento\r\n );\r\n }\r\n ),\r\n })\r\n .label(\"Titolare Effettivo\"), */\r\n isCqs: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkTipoFinanziamento\",\r\n i18n.t(\"error_invalid_tipo_finanziamento\"),\r\n function () {\r\n let isCqs = (this.resolve(Yup.ref(\"isCqs\")) as boolean) ?? false;\r\n let isDlg = (this.resolve(Yup.ref(\"isDlg\")) as boolean) ?? false;\r\n let isCqp = (this.resolve(Yup.ref(\"isCqp\")) as boolean) ?? false;\r\n let isAnticipoFinanziamento =\r\n (this.resolve(Yup.ref(\"isAnticipoFinanziamento\")) as boolean) ?? false;\r\n return ValidationUtility.checkTipoFinanziamento(\r\n isCqs,\r\n isDlg,\r\n isCqp,\r\n isAnticipoFinanziamento\r\n );\r\n }\r\n ),\r\n })\r\n .label(\"Natura Finanziamento\"),\r\n isDlg: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkTipoFinanziamento\",\r\n i18n.t(\"error_invalid_tipo_finanziamento\"),\r\n function () {\r\n let isCqs = (this.resolve(Yup.ref(\"isCqs\")) as boolean) ?? false;\r\n let isDlg = (this.resolve(Yup.ref(\"isDlg\")) as boolean) ?? false;\r\n let isCqp = (this.resolve(Yup.ref(\"isCqp\")) as boolean) ?? false;\r\n let isAnticipoFinanziamento =\r\n (this.resolve(Yup.ref(\"isAnticipoFinanziamento\")) as boolean) ?? false;\r\n return ValidationUtility.checkTipoFinanziamento(\r\n isCqs,\r\n isDlg,\r\n isCqp,\r\n isAnticipoFinanziamento\r\n );\r\n }\r\n ),\r\n })\r\n .label(\"Natura Finanziamento\"),\r\n isCqp: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkTipoFinanziamento\",\r\n i18n.t(\"error_invalid_tipo_finanziamento\"),\r\n function () {\r\n let isCqs = (this.resolve(Yup.ref(\"isCqs\")) as boolean) ?? false;\r\n let isDlg = (this.resolve(Yup.ref(\"isDlg\")) as boolean) ?? false;\r\n let isCqp = (this.resolve(Yup.ref(\"isCqp\")) as boolean) ?? false;\r\n let isAnticipoFinanziamento =\r\n (this.resolve(Yup.ref(\"isAnticipoFinanziamento\")) as boolean) ?? false;\r\n return ValidationUtility.checkTipoFinanziamento(\r\n isCqs,\r\n isDlg,\r\n isCqp,\r\n isAnticipoFinanziamento\r\n );\r\n }\r\n ),\r\n })\r\n .label(\"Natura Finanziamento\"),\r\n isAnticipoFinanziamento: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkTipoFinanziamento\",\r\n i18n.t(\"error_invalid_tipo_finanziamento\"),\r\n function () {\r\n let isCqs = (this.resolve(Yup.ref(\"isCqs\")) as boolean) ?? false;\r\n let isDlg = (this.resolve(Yup.ref(\"isDlg\")) as boolean) ?? false;\r\n let isCqp = (this.resolve(Yup.ref(\"isCqp\")) as boolean) ?? false;\r\n let isAnticipoFinanziamento =\r\n (this.resolve(Yup.ref(\"isAnticipoFinanziamento\")) as boolean) ?? false;\r\n return ValidationUtility.checkTipoFinanziamento(\r\n isCqs,\r\n isDlg,\r\n isCqp,\r\n isAnticipoFinanziamento\r\n );\r\n }\r\n ),\r\n })\r\n .label(\"Natura Finanziamento\"),\r\n isAcquistoBeni: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkScopoFinanziamento\",\r\n i18n.t(\"error_invalid_scopo_finanziamento\"),\r\n function () {\r\n let isAcquistoBeni = (this.resolve(Yup.ref(\"isAcquistoBeni\")) as boolean) ?? false;\r\n let isEsigenzePersonali =\r\n (this.resolve(Yup.ref(\"isEsigenzePersonali\")) as boolean) ?? false;\r\n let isAltroScopoFinanziamento =\r\n (this.resolve(Yup.ref(\"isAltroScopoFinanziamento\")) as boolean) ?? false;\r\n return ValidationUtility.checkScopoFinanziamento(\r\n isAcquistoBeni,\r\n isEsigenzePersonali,\r\n isAltroScopoFinanziamento\r\n );\r\n }\r\n ),\r\n })\r\n .label(\"Scopo Finanziamento\"),\r\n isEsigenzePersonali: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkScopoFinanziamento\",\r\n i18n.t(\"error_invalid_scopo_finanziamento\"),\r\n function () {\r\n let isAcquistoBeni = (this.resolve(Yup.ref(\"isAcquistoBeni\")) as boolean) ?? false;\r\n let isEsigenzePersonali =\r\n (this.resolve(Yup.ref(\"isEsigenzePersonali\")) as boolean) ?? false;\r\n let isAltroScopoFinanziamento =\r\n (this.resolve(Yup.ref(\"isAltroScopoFinanziamento\")) as boolean) ?? false;\r\n return ValidationUtility.checkScopoFinanziamento(\r\n isAcquistoBeni,\r\n isEsigenzePersonali,\r\n isAltroScopoFinanziamento\r\n );\r\n }\r\n ),\r\n })\r\n .label(\"Scopo Finanziamento\"),\r\n isAltroScopoFinanziamento: Yup.boolean()\r\n .when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"checkScopoFinanziamento\",\r\n i18n.t(\"error_invalid_scopo_finanziamento\"),\r\n function () {\r\n let isAcquistoBeni = (this.resolve(Yup.ref(\"isAcquistoBeni\")) as boolean) ?? false;\r\n let isEsigenzePersonali =\r\n (this.resolve(Yup.ref(\"isEsigenzePersonali\")) as boolean) ?? false;\r\n let isAltroScopoFinanziamento =\r\n (this.resolve(Yup.ref(\"isAltroScopoFinanziamento\")) as boolean) ?? false;\r\n return ValidationUtility.checkScopoFinanziamento(\r\n isAcquistoBeni,\r\n isEsigenzePersonali,\r\n isAltroScopoFinanziamento\r\n );\r\n }\r\n ),\r\n })\r\n .label(\"Scopo Finanziamento\"),\r\n });\r\n }\r\n\r\n public static getSchemaRichiestaTabConcludi(fullValidation: boolean): ValidationSchema {\r\n ValidationUtility.setLocale();\r\n return Yup.object().shape({\r\n fgDichiarazioneBeneficiario: Yup.boolean().when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"obbligatorio\", i18n.t(\"concludi_required\"), (val) => {\r\n return FormatUtility.castValue(val, true) === true;\r\n }),\r\n }),\r\n\r\n fgDichiarazioneNonEspostaPolitica: Yup.boolean().when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkPolitico\", i18n.t(\"error_invalid_concludi\"), function () {\r\n let fgDichiarazioneNonEspostaPolitica =\r\n (this.resolve(Yup.ref(\"fgDichiarazioneNonEspostaPolitica\")) as boolean) ?? false;\r\n let fgDichiarazioneEspostaPolitica =\r\n (this.resolve(Yup.ref(\"fgDichiarazioneEspostaPolitica\")) as boolean) ?? false;\r\n return ValidationUtility.checkPolitico(\r\n fgDichiarazioneNonEspostaPolitica,\r\n fgDichiarazioneEspostaPolitica\r\n );\r\n }),\r\n }),\r\n\r\n fgDichiarazioneEspostaPolitica: Yup.boolean().when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkPolitico\", i18n.t(\"error_invalid_concludi\"), function () {\r\n let fgDichiarazioneNonEspostaPolitica =\r\n (this.resolve(Yup.ref(\"fgDichiarazioneNonEspostaPolitica\")) as boolean) ?? false;\r\n let fgDichiarazioneEspostaPolitica =\r\n (this.resolve(Yup.ref(\"fgDichiarazioneEspostaPolitica\")) as boolean) ?? false;\r\n return ValidationUtility.checkPolitico(\r\n fgDichiarazioneNonEspostaPolitica,\r\n fgDichiarazioneEspostaPolitica\r\n );\r\n }),\r\n }),\r\n\r\n fgDichiarazioneEsigenzePersonali: Yup.boolean().when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkEsigenzePersonali\", i18n.t(\"error_invalid_concludi\"), function () {\r\n let fgDichiarazioneEsigenzePersonali =\r\n (this.resolve(Yup.ref(\"fgDichiarazioneEsigenzePersonali\")) as boolean) ?? false;\r\n let fgDichiarazioneAltro = (this.resolve(Yup.ref(\"fgDichiarazioneAltro\")) as boolean) ?? false;\r\n return ValidationUtility.checkEsigenzePersonali(\r\n fgDichiarazioneEsigenzePersonali,\r\n fgDichiarazioneAltro\r\n );\r\n }),\r\n }),\r\n\r\n fgDichiarazioneAltro: Yup.boolean().when(\"fullValidation\", {\r\n is: () => {\r\n return fullValidation;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\"checkEsigenzePersonali\", i18n.t(\"error_invalid_concludi\"), function () {\r\n let fgDichiarazioneEsigenzePersonali =\r\n (this.resolve(Yup.ref(\"fgDichiarazioneEsigenzePersonali\")) as boolean) ?? false;\r\n let fgDichiarazioneAltro = (this.resolve(Yup.ref(\"fgDichiarazioneAltro\")) as boolean) ?? false;\r\n return ValidationUtility.checkEsigenzePersonali(\r\n fgDichiarazioneEsigenzePersonali,\r\n fgDichiarazioneAltro\r\n );\r\n }),\r\n }),\r\n });\r\n }\r\n\r\n public static getSchemaConsensi(): ValidationSchema {\r\n ValidationUtility.setLocale();\r\n return Yup.object().shape({\r\n privacy: Yup.array().of(\r\n Yup.object().shape({\r\n descrizione: Yup.string(),\r\n isObbligatorio: Yup.boolean(),\r\n codice: Yup.string(),\r\n isAccettato: Yup.boolean()\r\n .when(\"isObbligatorio\", {\r\n is: (isObbligatorio) => {\r\n return isObbligatorio;\r\n },\r\n then: (fieldSchema: Yup.MixedSchema) =>\r\n fieldSchema.test(\r\n \"obbligatorio\",\r\n i18n.t(\"registrazione_required_consenso_privacy\"),\r\n (val) => {\r\n return FormatUtility.castValue(val, true) === true;\r\n }\r\n ),\r\n })\r\n .label(i18n.t(\"registrazione_field_consenso_privacy\")),\r\n })\r\n ),\r\n });\r\n }\r\n\r\n private static checkIfNotContainsNumbers = (value: string) => {\r\n const regExpress = new RegExp(/[^0-9]/g);\r\n return regExpress.test(value);\r\n };\r\n\r\n private static checkIfContainsEuropeanChar = (value: string) => {\r\n const regExpress = new RegExp(\r\n /^[a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,.'-]+$/u\r\n );\r\n return regExpress.test(value);\r\n };\r\n\r\n private static checkIfNumber = (value: string) => {\r\n const regExpress = new RegExp(/^[0-9]*$/g);\r\n return regExpress.test(value);\r\n };\r\n\r\n private static checkIfPasswordIsValid = (password: string) => {\r\n const regExpress = new RegExp(/^(?=.{8,}$)(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[\\W_]).*$/);\r\n return regExpress.test(password);\r\n };\r\n\r\n private static checkIfImportoIsValid = (value: number | string): boolean => {\r\n if (value != null) {\r\n let number = NaN;\r\n switch (typeof value) {\r\n case \"number\":\r\n number = value;\r\n break;\r\n case \"string\":\r\n number = parseFloat(\r\n value\r\n .toString()\r\n .replace(/[^0-9,]/g, \"\")\r\n .replace(\",\", \".\")\r\n );\r\n break;\r\n }\r\n return isNaN(number) === false;\r\n }\r\n return false;\r\n };\r\n\r\n private static checkMinNumber = (value: number, minValue: number, exclude: boolean = false) => {\r\n if (value != null) {\r\n if (exclude) {\r\n return value > minValue;\r\n } else {\r\n return value >= minValue;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n private static checkMaxNumber = (value: number, maxValue: number, exclude: boolean = false) => {\r\n if (value != null) {\r\n if (exclude) {\r\n return value < maxValue;\r\n } else {\r\n return value <= maxValue;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n private static checkIfDateIsValidOrUndefined = (date: Date | moment.Moment | string): boolean => {\r\n if (date === undefined) {\r\n return true;\r\n }\r\n let dateValidated = FormatUtility.dateOrUndefined(date);\r\n if (dateValidated) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n private static checkMinDate = (\r\n date: Date | moment.Moment | string,\r\n minDate: Date | moment.Moment | string,\r\n exclude: boolean = false\r\n ): boolean => {\r\n if (date === undefined) {\r\n return true;\r\n }\r\n let dateValidated = FormatUtility.dateOrUndefined(date);\r\n let minDateValidated = FormatUtility.dateOrUndefined(minDate);\r\n if (dateValidated && minDateValidated) {\r\n if (exclude) {\r\n return dateValidated > minDateValidated;\r\n } else {\r\n return dateValidated >= minDateValidated;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n private static checkMaxDate = (\r\n date: Date | moment.Moment | string,\r\n maxDate: Date | moment.Moment | string,\r\n exclude: boolean = false\r\n ): boolean => {\r\n if (date === undefined) {\r\n return true;\r\n }\r\n let dateValidated = FormatUtility.dateOrUndefined(date);\r\n let maxDateValidated = FormatUtility.dateOrUndefined(maxDate);\r\n if (dateValidated && maxDateValidated) {\r\n if (exclude) {\r\n return dateValidated < maxDateValidated;\r\n } else {\r\n return dateValidated <= maxDateValidated;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n private static checkIfCampoIsRequiredByTipoRichiedente = (\r\n tipiRichiedenti: TipoRichiedenteModel[],\r\n tipoRichiedenteCodice: string,\r\n campo: string\r\n ): boolean => {\r\n let tipoRichiedente = tipiRichiedenti.find((elem) => elem.codice === tipoRichiedenteCodice);\r\n if (tipoRichiedente && tipoRichiedente!.campiDiConfigurazione.indexOf(campo) > -1) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n private static checkIfCampoIsRequiredByConfiguration = (\r\n campiBoxPreventivo: boolean,\r\n isObbligatorio: boolean,\r\n fgMostraLanding: string\r\n ): boolean => {\r\n if (isObbligatorio === true && campiBoxPreventivo === true && fgMostraLanding === \"S\") {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n public static preventEnterKeySubmit = (event: React.KeyboardEvent) => {\r\n if (event.key === \"Enter\" && event.shiftKey === false) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n };\r\n\r\n public static checkPhoneNumber = (value: string) => {\r\n let result = isValidPhoneNumber(value);\r\n if (value && value.startsWith(\"+39\") && value.startsWith(\"+393\") === false) {\r\n // italian phone number but not mobile phone\r\n result = false;\r\n }\r\n return result;\r\n };\r\n public static checkContratto = (isDeterminato: boolean, isIndeterminato: boolean): boolean => {\r\n if (isDeterminato === false && isIndeterminato === false) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n public static checkPolitico = (\r\n fgDichiarazioneNonEspostaPolitica: boolean,\r\n fgDichiarazioneEspostaPolitica: boolean\r\n ): boolean => {\r\n if (fgDichiarazioneNonEspostaPolitica === false && fgDichiarazioneEspostaPolitica === false) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n public static checkEsigenzePersonali = (\r\n fgDichiarazioneEsigenzePersonali: boolean,\r\n fgDichiarazioneAltro: boolean\r\n ): boolean => {\r\n if (fgDichiarazioneEsigenzePersonali === false && fgDichiarazioneAltro === false) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n public static checkPensione = (isTipologiaPensione: boolean, isCointestata: boolean): boolean => {\r\n if (isTipologiaPensione === false && isCointestata === false) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n public static checkRilevazioneCoordinate = (\r\n isDocumentazioneBancaria: boolean,\r\n isBustaPaga: boolean,\r\n isAltroBonifico: boolean,\r\n modalitaErogazione: string\r\n ): boolean => {\r\n if (\r\n isDocumentazioneBancaria === false &&\r\n isBustaPaga === false &&\r\n isAltroBonifico === false &&\r\n modalitaErogazione === \"1\"\r\n ) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n public static checkIntestatario = (\r\n isMeMedesimo: boolean,\r\n isContoCointestato: boolean,\r\n modalitaErogazione: string\r\n ): boolean => {\r\n if (isMeMedesimo === false && isContoCointestato === false && modalitaErogazione === \"1\") {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n public static checkTipoContoCorrente = (\r\n isOrdinario: boolean,\r\n isOnline: boolean,\r\n isCartaPrepagata: boolean,\r\n modalitaErogazione: string\r\n ): boolean => {\r\n if (isOrdinario === false && isOnline === false && isCartaPrepagata === false && modalitaErogazione === \"1\") {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n public static checkRapportoBanca = (\r\n isClienteBanca: boolean,\r\n isClienteAgenzia: boolean,\r\n isNewCliente: boolean\r\n ): boolean => {\r\n if (!isClienteBanca && !isClienteAgenzia && !isNewCliente) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n public static checkStatoCivile = (\r\n isCelibeNubile: boolean,\r\n isConvivente: boolean,\r\n isConiugato: boolean,\r\n isDivorziatoSeparato: boolean,\r\n isVedovo: boolean\r\n ): boolean => {\r\n if (!isCelibeNubile && !isConvivente && !isConiugato && !isDivorziatoSeparato && !isVedovo) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n public static checkRegimePatrimoniale = (isComunioneDeiBeni: boolean, isSeparazioneDeiBeni: boolean): boolean => {\r\n if (!isSeparazioneDeiBeni && !isComunioneDeiBeni) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n public static checkTipoFinanziamento = (\r\n isCqs: boolean,\r\n isDlg: boolean,\r\n isCqp: boolean,\r\n isAnticipoFinanziamento: boolean\r\n ): boolean => {\r\n if (!isCqs && !isDlg && !isCqp && !isAnticipoFinanziamento) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n public static checkScopoFinanziamento = (\r\n isAcquistoBeni: boolean,\r\n isEsigenzePersonali: boolean,\r\n isAltroScopoFinanziamento: boolean\r\n ): boolean => {\r\n if (!isAcquistoBeni && !isEsigenzePersonali && !isAltroScopoFinanziamento) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n public static checkTitolareEffettivo = (\r\n isTitolareFinanziamento: boolean,\r\n isnoPEP: boolean,\r\n isEsecutoreFinanziamento: boolean\r\n ): boolean => {\r\n if (!isTitolareFinanziamento && !isnoPEP && !isEsecutoreFinanziamento) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n public static checkProprietaAbitazione = (\r\n isAffitto: boolean,\r\n isProprieta: boolean,\r\n isTerzi: boolean,\r\n isFamiglia: boolean\r\n ): boolean => {\r\n if (!isAffitto && !isProprieta && !isTerzi && !isFamiglia) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n public static checkSuperaPercentuale = (isSupera: boolean, isNonSupera: boolean): boolean => {\r\n if (!isSupera && !isNonSupera) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n public static checkFonteReddito = (\r\n altriRedditiNucleoFam: string,\r\n isRenditaFinanziaria: boolean,\r\n isRedditoImmobili: boolean,\r\n isRedditoAltro: boolean,\r\n altriRedditiRichiedente: string\r\n ): boolean => {\r\n if (\r\n !isRenditaFinanziaria &&\r\n !isRedditoImmobili &&\r\n !isRedditoAltro &&\r\n (altriRedditiNucleoFam !== \"\" || altriRedditiRichiedente !== \"\")\r\n ) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n public static checkCodiceFiscale = (\r\n cognome: string,\r\n nome: string,\r\n dataNascita: string,\r\n sesso: string,\r\n luogoNascita: string,\r\n codiceFiscale: string\r\n ): boolean => {\r\n console.log(\"luogo nascita calcolo cf -----------> \", luogoNascita);\r\n\r\n if (codiceFiscale === undefined) {\r\n return true;\r\n }\r\n let sessoFormatted: \"M\" | \"F\";\r\n switch (sesso) {\r\n case \"M\":\r\n sessoFormatted = \"M\";\r\n break;\r\n case \"F\":\r\n sessoFormatted = \"F\";\r\n break;\r\n default:\r\n return false;\r\n }\r\n let dateFormatted: Date | undefined = FormatUtility.dateOrUndefined(dataNascita);\r\n if (dateFormatted === undefined) {\r\n return false;\r\n }\r\n let codiceFiscaleCalcolato = FormatUtility.getCodiceFiscale(\r\n cognome,\r\n nome,\r\n dateFormatted,\r\n sessoFormatted,\r\n luogoNascita\r\n );\r\n codiceFiscale = codiceFiscale.toUpperCase();\r\n if (codiceFiscale === codiceFiscaleCalcolato) {\r\n return true;\r\n } else if (codiceFiscale.length === 16 && codiceFiscaleCalcolato.length === 16) {\r\n // controllo per accettare casi di omocodia\r\n const chPosizioniOmocodia = [14, 13, 12, 10, 9, 7, 6];\r\n const chValoriOmocodia = \"LMNPQRSTUV\";\r\n chPosizioniOmocodia.forEach((chPos: number) => {\r\n // se il carattere nella posizione corrente del codice fiscale\r\n // è il carattere applicato in caso di omocodia\r\n // ignora la posizione nel confronto\r\n const charCorrente = codiceFiscale.charAt(chPos);\r\n const charDefault = codiceFiscaleCalcolato.charAt(chPos);\r\n const numero = parseInt(charDefault);\r\n if (isNaN(numero) === false) {\r\n const charDefaultReplaced = chValoriOmocodia.charAt(numero);\r\n if (charCorrente === charDefaultReplaced) {\r\n codiceFiscale = codiceFiscale.slice(0, chPos) + codiceFiscale.slice(chPos + 1);\r\n codiceFiscaleCalcolato =\r\n codiceFiscaleCalcolato.slice(0, chPos) + codiceFiscaleCalcolato.slice(chPos + 1);\r\n }\r\n }\r\n });\r\n console.log(\"codfisc calcolato ----> : \", codiceFiscaleCalcolato);\r\n if (codiceFiscale === codiceFiscaleCalcolato) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n public static getCookie = (cookieName: string): string => {\r\n const name = cookieName + \"=\";\r\n const decodedCookie = decodeURIComponent(document.cookie);\r\n const ca = decodedCookie.split(\";\");\r\n for (let i = 0; i < ca.length; i++) {\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\n private static checkRangeDataScadenza = (\r\n dataScadenza: string,\r\n dataRilascio: string,\r\n dataNascita: string\r\n ): boolean => {\r\n if (dataScadenza === undefined || dataRilascio === undefined || dataNascita === undefined) {\r\n return true;\r\n }\r\n\r\n let dataRilascioFormatted: Date | undefined = FormatUtility.dateOrUndefined(dataRilascio);\r\n let dataScadenzaFormatted: Date | undefined = FormatUtility.dateOrUndefined(dataScadenza);\r\n let dataNascitaFormatted: Date | undefined = FormatUtility.dateOrUndefined(dataNascita);\r\n if (\r\n dataRilascioFormatted === undefined ||\r\n dataScadenzaFormatted === undefined ||\r\n dataNascitaFormatted === undefined\r\n ) {\r\n return false;\r\n }\r\n let day = dataRilascioFormatted.getDate();\r\n let month = dataRilascioFormatted.getMonth();\r\n let year = dataRilascioFormatted.getFullYear();\r\n\r\n if (year > 2012) {\r\n let monthRilascio = dataRilascioFormatted.getMonth();\r\n // se è maggiore del 2012 bisogna aggiungere 10 anni alla data di rilascio e deve cadere il giorno di nascita\r\n month = dataNascitaFormatted.getMonth();\r\n day = dataNascitaFormatted.getDate();\r\n //se la data di rilascio è antecedente al giorno di nascita se invece è posteriore deve cadere nell'anno successivo\r\n if (monthRilascio >= month) {\r\n year += 1;\r\n }\r\n }\r\n let dataScadenzaCorretta = new Date(year + 10, month, day);\r\n if (dataScadenzaCorretta === dataScadenzaFormatted) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n public static checkPresenzaDati = (fgPresenzaDati: string): boolean => {\r\n if (fgPresenzaDati === \"S\") {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n public static checkTipoImpegno = (fgPresenzaDati: string, tipoImpegno: string): boolean => {\r\n if (fgPresenzaDati === \"S\" && tipoImpegno !== \"4\") {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class ResponseEsitoModel extends BaseModel {\r\n public readonly esito: boolean = false;\r\n public readonly infoEsito: string = \"\";\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class CategoriaAmministrativaModel extends BaseModel {\r\n public readonly creditoNET: boolean = false;\r\n public readonly fgCodiceIpa: string = \"\";\r\n public readonly notificaAlMef: boolean = false;\r\n public readonly chiave: string = \"\";\r\n public readonly valore: string = \"\";\r\n\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class ModalitaErogazioneModel extends BaseModel {\r\n public readonly chiave: string = \"\";\r\n public readonly valore: string = \"\";\r\n\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class TipologiaPensioneModel extends BaseModel {\r\n public readonly chiave: string = \"\";\r\n public readonly valore: string = \"\";\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class FondoModel extends BaseModel {\r\n public readonly chiave: string = \"\";\r\n public readonly valore: string = \"\";\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class TipologiaImpegnoModel extends BaseModel {\r\n public readonly chiave: string = \"\";\r\n public readonly valore: string = \"\";\r\n\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class QuoteSocietaModel extends BaseModel {\r\n public readonly id: number = 0;\r\n public readonly codice: string = \"\";\r\n public readonly descrizione: string = \"\";\r\n \r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class ImportoConIntermediariModel extends BaseModel {\r\n public readonly id: number = 0;\r\n public readonly codice: string = \"\";\r\n public readonly descrizione: string = \"\";\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\nimport RichiestaDatiAnagraficiIndirizzoRequestModel from \"./RichiestaDatiAnagraficiIndirizzoRequestModel\";\r\nimport RichiestaDatiAnagraficiComuneViewModel from \"./RichiestaDatiAnagraficiComuneViewModel\";\r\nimport AmministrazioneModel from \"stores/lookup/models/AmministrazioneModel\";\r\nimport RichiestaRecapitoModel from \"./RichiestaRecapitoModel\";\r\nimport ModalitaErogazioneModel from \"stores/lookup/models/ModalitaErogazioneModel\";\r\nimport TipologiaPensioneModel from \"stores/lookup/models/TipologiaPensioneModel\";\r\nimport CategoriaAmministrativaModel from \"stores/lookup/models/CategoriaAmministrativaModel\";\r\nexport default class RichiestaDatiAnagraficiRequestModel extends BaseModel {\r\n public readonly nome: string = \"\";\r\n public readonly cognome: string = \"\";\r\n public readonly dataNascita?: string = undefined;\r\n public readonly sesso: string = \"\";\r\n public readonly codiceFiscale: string = \"\";\r\n public readonly nazioneNascita: string = \"\";\r\n public readonly luogoNascitaEstero: string = \"\";\r\n public readonly comuneNascita?: RichiestaDatiAnagraficiComuneViewModel = undefined;\r\n public readonly cittadinanza: string = \"\";\r\n public readonly altraCittadinanza?: string = undefined;\r\n public readonly tipoDocumento: string = \"\";\r\n public readonly numeroDocumento: string = \"\";\r\n public readonly luogoRilascio?: RichiestaDatiAnagraficiComuneViewModel = undefined;\r\n public readonly dataRilascioDoc?: string = undefined;\r\n public readonly dataScadenzaDoc?: string = undefined;\r\n public readonly indirizzoResidenza?: RichiestaDatiAnagraficiIndirizzoRequestModel = undefined;\r\n public readonly indirizzoDomicilio?: RichiestaDatiAnagraficiIndirizzoRequestModel = undefined;\r\n public readonly indirizzoCorrispondenza?: RichiestaDatiAnagraficiIndirizzoRequestModel = undefined;\r\n public readonly recapitoTelefonico?: RichiestaRecapitoModel = undefined;\r\n public readonly amministrazione?: AmministrazioneModel = undefined;\r\n public readonly dataAssunzione?: string = undefined;\r\n public readonly codTipoRichiedente: string = \"\";\r\n public readonly idRichiesta?: number = 0;\r\n public readonly isSospensione?: boolean = false;\r\n public readonly step?: string = \"\";\r\n public readonly modalitaErogazione?: ModalitaErogazioneModel = undefined;\r\n public readonly iban: string = \"\";\r\n public readonly dataScadenzaContrattoDeterminato?: string = undefined;\r\n public readonly isDeterminato: boolean = false;\r\n public readonly isIndeterminato: boolean = false;\r\n public readonly tipologiaPensioneAltro: string = \"\";\r\n public readonly isCointestata: boolean = false;\r\n public readonly dataAccensioneContoCorrente?: string = undefined;\r\n public readonly isDocumentazioneBancaria: boolean = false;\r\n public readonly isBustaPaga: boolean = false;\r\n public readonly isAltroBonifico: boolean = false;\r\n public readonly rilevazioneCoordinateAltro: string = \"\";\r\n public readonly isMeMedesimo: boolean = false;\r\n public readonly isContoCointestato: boolean = false;\r\n public readonly nominativoCointestatario: string = \"\";\r\n public readonly gradoParentelaCointestatario: string = \"\";\r\n public readonly banca: string = \"\";\r\n public readonly sportello: string = \"\";\r\n public readonly isOrdinario: boolean = false;\r\n public readonly isOnline: boolean = false;\r\n public readonly isCartaPrepagata: boolean = false;\r\n public readonly tipologiaPensione?: TipologiaPensioneModel = undefined;\r\n public readonly isTipologiaPensione: boolean = false;\r\n public readonly categoriaAmministrativa?: CategoriaAmministrativaModel = undefined;\r\n public readonly isAffitto: boolean = false;\r\n public readonly isProprieta: boolean = false;\r\n public readonly isTerzi: boolean = false;\r\n public readonly isFamiglia: boolean = false;\r\n\r\n // campo non necessario\r\n // public readonly qualifica?: QualificaModel = undefined;\r\n // public readonly descrizioneQualifica?: string = undefined;\r\n\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class RichiestaDatiRedditoRequestModel extends BaseModel {\r\n public readonly certificatoPensione?: number = undefined;\r\n public readonly codiceSedePensione?: string = undefined;\r\n public readonly codiceCategPensione?: string = undefined;\r\n public readonly tfrMaturato?: number = undefined;\r\n public readonly tfrDataRiferimento?: string = undefined;\r\n public readonly tfrFondo?: number = undefined;\r\n public readonly tfrFondoDataRiferimento?: string = undefined;\r\n public readonly idFondo?: string = undefined;\r\n public readonly descrizioneFondo?: string = undefined;\r\n public readonly numeroCedolino?: number = undefined;\r\n public readonly meseRetribuzione?: string = undefined;\r\n public readonly redditoAnnuo?: number = undefined;\r\n public readonly altriRedditiNucleoFam?: number = undefined;\r\n public readonly codTipoRichiedente: string = \"\";\r\n public readonly isSospensione: boolean = false;\r\n public readonly idRichiesta: number = 0;\r\n public readonly step: string = \"\";\r\n public readonly speseAffittoAnnue?: number = undefined;\r\n public readonly totaleRedditoAnnuo?: number = undefined;\r\n public readonly altreRateizzazioniAnnue?: number = undefined;\r\n public readonly nettoMesile?: number = undefined;\r\n public readonly altriRedditiRichiedente?: number = undefined;\r\n public readonly fgDichiarazione: boolean = false;\r\n public readonly isFabbricati: boolean = false;\r\n public readonly numeroFabbricati: string = \"\";\r\n public readonly destinazioneFabbricati: string = \"\";\r\n public readonly isTerreni: boolean = false;\r\n public readonly numeroTerreni: string = \"\";\r\n public readonly destinazioneTerreni: string = \"\";\r\n // public readonly fgFinanziamentiInCorso: boolean= false;\r\n // public readonly rataFinanziamento: string = \"\";\r\n // public readonly finanziatore: string = \"\";\r\n // public readonly dataInizioFinanziamento: string = \"\";\r\n // public readonly rateResidueFinanziamento: string = \"\";\r\n // public readonly fgPignoramentiInCorso: boolean= false;\r\n // public readonly rataMesilePignoramento: string = \"\";\r\n // public readonly creditore: string = \"\";\r\n // public readonly rateResiduePignoramento: string = \"\";\r\n // public readonly isSupera: boolean = false\r\n // public readonly isNonSupera: boolean = false\r\n public readonly isRenditaFinanziaria: boolean = false;\r\n public readonly isRedditoImmobili: boolean = false;\r\n public readonly isRedditoAltro: boolean = false;\r\n public readonly descrAltroReddito: string = \"\";\r\n\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\nexport default class RichiestaAltriPrestitiRequestModel extends BaseModel {\r\n public readonly fgAltriImpegni: boolean = false;\r\n public readonly codTipoRichiedente: string = \"\";\r\n public readonly idRichiesta?: number = 0;\r\n public readonly isSospensione?: boolean = false;\r\n public readonly step?: string = \"\";\r\n public readonly fgEstinzioneTerzi: boolean = false;\r\n public readonly isSupera: boolean = false\r\n public readonly isNonSupera: boolean = false\r\n //public readonly preventivoQuestionario: PreventivoQuestionarioModel = new PreventivoQuestionarioModel({});\r\n\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\nimport ImportoConIntermediariModel from \"stores/lookup/models/ImportoConIntermediariModel\";\r\nimport QuoteSocietaModel from \"stores/lookup/models/QuoteSocietaModel\";\r\nexport default class RichiestaAdeguataVerificaRequestModel extends BaseModel {\r\n public readonly idUtente: number = 0;\r\n public readonly idRichiesta?: number = 0;\r\n public readonly isSospensione?: boolean = false;\r\n public readonly step?: string = \"\";\r\n public readonly numeroNucleoFamiliare:string = \"\"; \r\n public readonly fgClienteTitolareQuoteSoc: boolean = false;\r\n public readonly infoTitolareRapp: string = \"\";\r\n public readonly fgAltriIntermediari: boolean = false;\r\n public readonly fgFamiliariClienti: boolean = false;\r\n public readonly nomeFamiliareCliente: string = \"\";\r\n public readonly isClienteBanca: boolean = false;\r\n public readonly isClienteAgenzia: boolean = false;\r\n public readonly isNewCliente: boolean = false;\r\n public readonly isCelibeNubile: boolean = false;\r\n public readonly isConvivente: boolean = false;\r\n public readonly isConiugato: boolean = false;\r\n public readonly isDivorziatoSeparato: boolean = false;\r\n public readonly isVedovo: boolean = false;\r\n public readonly isComunioneDeiBeni: boolean = false;\r\n public readonly isSeparazioneDeiBeni: boolean = false;\r\n public readonly isTitolareFinanziamento: boolean = false;\r\n public readonly isnoPEP: boolean = false;\r\n public readonly isEsecutoreFinanziamento: boolean = false;\r\n public readonly isCqs: boolean = false;\r\n public readonly isDlg: boolean = false;\r\n public readonly isCqp: boolean = false;\r\n public readonly isAnticipoFinanziamento: boolean = false;\r\n public readonly isAcquistoBeni: boolean = false;\r\n public readonly isEsigenzePersonali: boolean = false;\r\n public readonly isAltroScopoFinanziamento: boolean = false;\r\n public readonly scopoFinanziamentoAltro: string = \"\";\r\n public readonly quoteSoc?: QuoteSocietaModel = undefined; \r\n public readonly importoIntermediari?: ImportoConIntermediariModel = undefined;\r\n\r\n\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class UserInfoModel extends BaseModel {\r\n public readonly nome: string = \"\";\r\n public readonly cognome: string = \"\";\r\n public readonly email: string = \"\";\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class ResponseAuthTokensModel extends BaseModel {\r\n public readonly accessToken: string = \"\";\r\n public readonly refreshToken: string = \"\";\r\n public readonly infoEsito: string = \"\";\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import environment from \"environment\";\r\nimport HttpErrorResponseModel from \"../../models/HttpErrorResponseModel\";\r\nimport HttpUtility from \"../../utilities/HttpUtility\";\r\nimport { AxiosResponse } from \"axios\";\r\nimport EffectUtility from \"../../utilities/EffectUtility\";\r\nimport ResponseEsitoModel from \"stores/shared/models/ResponseEsitoModel\";\r\nimport UserLoginRequestModel from \"./models/UserLoginRequestModel\";\r\nimport UserRegistrationRequestModel from \"./models/UserRegistrationRequestModel\";\r\nimport UserRegistrationConfirmRequestModel from \"./models/UserRegistrationConfirmRequestModel\";\r\nimport UserInfoModel from \"./models/UserInfoModel\";\r\nimport ResponseAuthTokensModel from \"stores/shared/models/ResponseAuthTokensModel\";\r\nimport RecuperoPasswordRequestModel from \"./models/RecuperoPasswordRequestModel\";\r\nimport CambioPasswordRequestModel from \"./models/CambioPasswordRequestModel\";\r\nimport UserRegistrationRinvioMail from \"./models/UserRegistrationRinvioMail\";\r\n//import RegistrationAnonyousModel from \"./models/RegistrationAnonymousModel\";\r\n\r\nexport default class UserEffect {\r\n public static async requestUserLogin(\r\n userLogin: UserLoginRequestModel\r\n ): Promise {\r\n const endpoint: string = environment.api.login;\r\n return EffectUtility.postToModel(ResponseAuthTokensModel, endpoint, userLogin);\r\n }\r\n\r\n public static async requestUserRegistration(\r\n userRegistration: UserRegistrationRequestModel\r\n ): Promise {\r\n const endpoint: string = environment.api.registrazione;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, userRegistration);\r\n }\r\n\r\n public static async requestVerificaToken(token: string): Promise {\r\n const endpoint: string = environment.api.verificaToken;\r\n return EffectUtility.getToModel(ResponseEsitoModel, endpoint, { token: token });\r\n }\r\n\r\n public static async requestUserRegistrationConfirm(\r\n userRegistrationConfirm: UserRegistrationConfirmRequestModel\r\n ): Promise {\r\n const endpoint: string = environment.api.confermaRegistrazione;\r\n return EffectUtility.putToModel(ResponseEsitoModel, endpoint, userRegistrationConfirm);\r\n }\r\n\r\n public static async requestGetInfoUtente(user: UserInfoModel): Promise {\r\n const endpoint: string = environment.api.getInfoUtente;\r\n return EffectUtility.getToModel(UserInfoModel, endpoint, user);\r\n }\r\n\r\n public static async requestUserDelete(): Promise {\r\n const endpoint: string = environment.api.deleteUtente;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint);\r\n }\r\n\r\n public static async requestUserRecuperoPassword(\r\n user: RecuperoPasswordRequestModel\r\n ): Promise {\r\n const endpoint: string = environment.api.credenzialiRecuperoCQSonline;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, user);\r\n }\r\n\r\n public static async requestUserVerificaTokenRecuperoPassword(\r\n token: string\r\n ): Promise {\r\n const endpoint: string = environment.api.credenzialiVerificaTokenCQSonline;\r\n return EffectUtility.getToModel(ResponseEsitoModel, endpoint, { token: token });\r\n }\r\n\r\n public static async requestUserCambioPassword(\r\n user: CambioPasswordRequestModel\r\n ): Promise {\r\n const endpoint: string = environment.api.credenzialiAggiornaCQSonline;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, user);\r\n }\r\n\r\n public static async requestUserRinvioEmail(\r\n userRegistration: UserRegistrationRinvioMail\r\n ): Promise {\r\n const endpoint: string = environment.api.rinvioEmailRegistrazioneCQSonline;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, userRegistration);\r\n }\r\n\r\n public static async requesSaveConsesiUtenteConfirm(\r\n consensi: UserRegistrationRequestModel\r\n ): Promise {\r\n console.log(\"effect\");\r\n const endpoint: string = environment.api.saveConsesiPrivacyUtente;\r\n console.log(\"effect\");\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, consensi);\r\n }\r\n\r\n /**\r\n * This is only to trigger an error api response so we can use it for an example in the AboutPage\r\n */\r\n public static async requestError(): Promise {\r\n const endpoint: string = environment.api.errorExample;\r\n const response: AxiosResponse | HttpErrorResponseModel = await HttpUtility.get(endpoint);\r\n\r\n if (response instanceof HttpErrorResponseModel) {\r\n return response;\r\n }\r\n return response.data;\r\n }\r\n}\r\n","import UserEffect from \"./UserEffect\";\r\nimport HttpErrorResponseModel from \"../../models/HttpErrorResponseModel\";\r\nimport ActionUtility from \"../../utilities/ActionUtility\";\r\nimport { ReduxDispatch } from \"../../models/ReduxProps\";\r\nimport UserModel from \"./models/UserModel\";\r\nimport ResponseEsitoModel from \"stores/shared/models/ResponseEsitoModel\";\r\nimport UserLoginRequestModel from \"./models/UserLoginRequestModel\";\r\nimport UserRegistrationRequestModel from \"./models/UserRegistrationRequestModel\";\r\nimport UserRegistrationConfirmRequestModel from \"./models/UserRegistrationConfirmRequestModel\";\r\nimport UserResponseInfoModel from \"./models/UserInfoModel\";\r\nimport ResponseAuthTokensModel from \"stores/shared/models/ResponseAuthTokensModel\";\r\nimport RecuperoPasswordRequestModel from \"./models/RecuperoPasswordRequestModel\";\r\nimport CambioPasswordRequestModel from \"./models/CambioPasswordRequestModel\";\r\nimport UserRegistrationRinvioMail from \"./models/UserRegistrationRinvioMail\";\r\nimport RicercaPreventivoViewModel from \"stores/preventivo/models/RicercaPreventivoViewModel\";\r\n//import RegistrationAnonyousModel from \"./models/RegistrationAnonymousModel\";\r\n\r\ntype ActionUnion =\r\n | undefined\r\n | HttpErrorResponseModel\r\n | UserModel\r\n | ResponseAuthTokensModel\r\n | ResponseEsitoModel\r\n | UserResponseInfoModel;\r\n// | RegistrationAnonyousModel;\r\n\r\nexport default class UserAction {\r\n public static readonly SET_COOKIE_CONSENT: string = \"UserAction.SET_COOKIE_CONSENT\";\r\n public static readonly SET_COOKIE_CONSENT_FINISHED: string = \"UserAction.SET_COOKIE_CONSENT_FINISHED\";\r\n\r\n public static readonly REQUEST_USER_LOGIN: string = \"UserAction.REQUEST_USER_LOGIN\";\r\n public static readonly REQUEST_USER_LOGIN_FINISHED: string = \"UserAction.REQUEST_USER_LOGIN_FINISHED\";\r\n\r\n public static readonly SET_USER_LOGIN_REQUIRED: string = \"UserAction.SET_USER_LOGIN_REQUIRED\";\r\n public static readonly SET_USER_LOGIN_REQUIRED_FINISHED: string = \"UserAction.SET_USER_LOGIN_REQUIRED_FINISHED\";\r\n\r\n public static readonly SET_USER_LOGIN: string = \"UserAction.SET_USER_LOGIN\";\r\n public static readonly SET_USER_LOGIN_FINISHED: string = \"UserAction.SET_USER_LOGIN_FINISHED\";\r\n\r\n public static readonly SET_USER_LOGOUT: string = \"UserAction.SET_USER_LOGOUT\";\r\n public static readonly SET_USER_LOGOUT_FINISHED: string = \"UserAction.SET_USER_LOGOUT_FINISHED\";\r\n\r\n public static readonly REQUEST_USER_REGISTRATION: string = \"UserAction.REQUEST_USER_REGISTRATION\";\r\n public static readonly REQUEST_USER_REGISTRATION_FINISHED: string = \"UserAction.REQUEST_USER_REGISTRATION_FINISHED\";\r\n\r\n public static readonly REQUEST_VERIFICA_TOKEN: string = \"UserAction.REQUEST_VERIFICA_TOKEN\";\r\n public static readonly REQUEST_VERIFICA_TOKEN_FINISHED: string = \"UserAction.REQUEST_VERIFICA_TOKEN_FINISHED\";\r\n\r\n public static readonly REQUEST_USER_REGISTRATION_CONFIRM: string = \"UserAction.REQUEST_USER_REGISTRATION_CONFIRM\";\r\n public static readonly REQUEST_USER_REGISTRATION_CONFIRM_FINISHED: string =\r\n \"UserAction.REQUEST_USER_REGISTRATION_CONFIRM_FINISHED\";\r\n\r\n public static readonly REQUEST_GET_INFO_UTENTE: string = \"UserAction.REQUEST_GET_INFO_UTENTE\";\r\n public static readonly REQUEST_GET_INFO_UTENTE_FINISHED: string = \"UserAction.REQUEST_GET_INFO_UTENTE_FINISHED\";\r\n\r\n public static readonly REQUEST_USER_DELETE: string = \"UserAction.REQUEST_USER_DELETE\";\r\n public static readonly REQUEST_USER_DELETE_FINISHED: string = \"UserAction.REQUEST_USER_DELETE_FINISHED\";\r\n\r\n public static readonly REQUEST_USER_RECUPERO_PASSWORD: string = \"UserAction.REQUEST_USER_RECUPERO_PASSWORD\";\r\n public static readonly REQUEST_USER_RECUPERO_PASSWORD_FINISHED: string =\r\n \"UserAction.REQUEST_USER_RECUPERO_PASSWORD_FINISHED\";\r\n\r\n public static readonly REQUEST_VERIFICA_TOKEN_RECUPERO_PASSWORD: string =\r\n \"UserAction.REQUEST_VERIFICA_TOKEN_RECUPERO_PASSWORD\";\r\n public static readonly REQUEST_VERIFICA_TOKEN_RECUPERO_PASSWORD_FINISHED: string =\r\n \"UserAction.REQUEST_VERIFICA_TOKEN_RECUPERO_PASSWORD_FINISHED\";\r\n\r\n public static readonly REQUEST_USER_CAMBIO_PASSWORD: string = \"UserAction.REQUEST_USER_CAMBIO_PASSWORD\";\r\n public static readonly REQUEST_USER_CAMBIO_PASSWORD_FINISHED: string =\r\n \"UserAction.REQUEST_USER_CAMBIO_PASSWORD_FINISHED\";\r\n\r\n public static readonly REQUEST_USER_RINVIO_REGISTRATION: string = \"UserAction.REQUEST_USER_RINVIO_REGISTRATION\";\r\n public static readonly REQUEST_USER_RINVIO_REGISTRATION_FINISHED: string =\r\n \"UserAction.REQUEST_USER_RINVIO_REGISTRATION_FINISHED\";\r\n\r\n /* public static readonly REQUEST_USER_REGISTRATION_ANONYMOUS: string = \"UserAction.REQUEST_USER_REGISTRATION_ANONYMOUS\";\r\n public static readonly REQUEST_USER_REGISTRATION_ANONYMOUS_FINISHED: string =\r\n \"UserAction.REQUEST_USER_REGISTRATION_ANONYMOUS_FINISHED\";\r\n */\r\n public static readonly REQUEST_SET_USER_REGISTRATION_MODEL: string =\r\n \"UserAction.REQUEST_SET_USER_REGISTRATION_MODEL\";\r\n public static readonly REQUEST_SET_USER_REGISTRATION_MODEL_FINISHED: string =\r\n \"UserAction.REQUEST_SET_USER_REGISTRATION_MODEL_FINISHED\";\r\n\r\n public static readonly REQUEST_SAVE_CONSENSI_USER: string = \"UserAction.REQUEST_SAVE_CONSENSI_USER\";\r\n public static readonly REQUEST_SAVE_CONSENSI_USER_FINISHED: string =\r\n \"UserAction.REQUEST_SAVE_CONSENSI_USER_FINISHED\";\r\n\r\n public static readonly REQUEST_ERROR: string = \"UserAction.REQUEST_ERROR\";\r\n public static readonly REQUEST_ERROR_FINISHED: string = \"UserAction.REQUEST_ERROR_FINISHED\";\r\n\r\n public static setCookieConsent(consent: boolean): any {\r\n return ActionUtility.createAction(UserAction.SET_COOKIE_CONSENT_FINISHED, consent);\r\n }\r\n\r\n public static requestUserLogin(request: UserLoginRequestModel): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n UserAction.REQUEST_USER_LOGIN,\r\n UserEffect.requestUserLogin,\r\n request\r\n );\r\n };\r\n }\r\n\r\n public static setUserLoginRequired(required: boolean): any {\r\n return ActionUtility.createAction(UserAction.SET_USER_LOGIN_REQUIRED_FINISHED, required);\r\n }\r\n\r\n public static setUserLogin(): any {\r\n return ActionUtility.createAction(UserAction.SET_USER_LOGIN_FINISHED);\r\n }\r\n\r\n public static setUserLogout(): any {\r\n return ActionUtility.createAction(UserAction.SET_USER_LOGOUT_FINISHED);\r\n }\r\n\r\n public static requestUserRegistration(userRegistration: UserRegistrationRequestModel): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n UserAction.REQUEST_USER_REGISTRATION,\r\n UserEffect.requestUserRegistration,\r\n userRegistration\r\n );\r\n };\r\n }\r\n\r\n public static requestVerificaToken(token: String): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n UserAction.REQUEST_VERIFICA_TOKEN,\r\n UserEffect.requestVerificaToken,\r\n token\r\n );\r\n };\r\n }\r\n\r\n public static requestUserRegistrationConfirm(userRegistrationConfirm: UserRegistrationConfirmRequestModel): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n UserAction.REQUEST_USER_REGISTRATION_CONFIRM,\r\n UserEffect.requestUserRegistrationConfirm,\r\n userRegistrationConfirm\r\n );\r\n };\r\n }\r\n\r\n public static requestGetInfoUtente(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n UserAction.REQUEST_GET_INFO_UTENTE,\r\n UserEffect.requestGetInfoUtente\r\n );\r\n };\r\n }\r\n\r\n public static requestUserDelete(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n UserAction.REQUEST_USER_DELETE,\r\n UserEffect.requestUserDelete\r\n );\r\n };\r\n }\r\n\r\n public static requestUserRecuperoPassword(request: RecuperoPasswordRequestModel): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n UserAction.REQUEST_USER_RECUPERO_PASSWORD,\r\n UserEffect.requestUserRecuperoPassword,\r\n request\r\n );\r\n };\r\n }\r\n\r\n public static requestVerificaTokenRecuperoPassword(token: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n UserAction.REQUEST_VERIFICA_TOKEN_RECUPERO_PASSWORD,\r\n UserEffect.requestUserVerificaTokenRecuperoPassword,\r\n token\r\n );\r\n };\r\n }\r\n\r\n public static requestUserCambioPassword(request: CambioPasswordRequestModel): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n UserAction.REQUEST_USER_CAMBIO_PASSWORD,\r\n UserEffect.requestUserCambioPassword,\r\n request\r\n );\r\n };\r\n }\r\n\r\n public static requestUserRinvioEmail(userRegistration: UserRegistrationRinvioMail): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n UserAction.REQUEST_USER_RINVIO_REGISTRATION,\r\n UserEffect.requestUserRinvioEmail,\r\n userRegistration\r\n );\r\n };\r\n }\r\n\r\n public static setUserRegistration(filtri: RicercaPreventivoViewModel): any {\r\n return ActionUtility.createAction(UserAction.REQUEST_SET_USER_REGISTRATION_MODEL_FINISHED);\r\n }\r\n public static requesSaveConsesiUtenteConfirm(consensi: UserRegistrationRequestModel): any {\r\n console.log(\"action\");\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n UserAction.REQUEST_SAVE_CONSENSI_USER,\r\n UserEffect.requesSaveConsesiUtenteConfirm,\r\n consensi\r\n );\r\n };\r\n }\r\n\r\n public static requestError(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(dispatch, UserAction.REQUEST_ERROR, UserEffect.requestError);\r\n };\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class ComuneModel extends BaseModel {\r\n //comune nascita\r\n public readonly cap: string = \"\";\r\n public readonly codiceProvincia: string = \"\";\r\n public readonly nomeProvincia: string = \"\";\r\n public readonly chiave: string = \"\";\r\n public readonly valore: string = \"\";\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class TipoDocumentoModel extends BaseModel {\r\n public readonly chiave: string = \"\";\r\n public readonly valore: string = \"\";\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class CittadinanzaModel extends BaseModel {\r\n public readonly valore: string = \"\";\r\n public readonly chiave: string = \"\";\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class NazioneModel extends BaseModel {\r\n public readonly chiave: string = \"\";\r\n public readonly valore: string = \"\";\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class TipoIndirizzoModel extends BaseModel {\r\n public readonly chiave: string = \"\";\r\n public readonly valore: string = \"\";\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class TipoRichiedenteModel extends BaseModel {\r\n public readonly codice: string = \"\";\r\n public readonly descrizione: string = \"\";\r\n public readonly campiDiConfigurazione: string[] = [];\r\n public readonly idcatammin: number = 0;\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class CqsOnlineTipoCodiceFiscaleModel extends BaseModel {\r\n public readonly chiave: string = \"\";\r\n public readonly valore: string = \"\";\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class IstitutoFinanziarioModel extends BaseModel {\r\n public readonly chiave: string = \"\";\r\n public readonly valore: string = \"\";\r\n\r\n /* public readonly idIstituto: string = \"\";\r\n public readonly Denominazione: string = \"\";\r\n public readonly Piva: string = \"\";\r\n public readonly CodFisc: string = \"\";\r\n public readonly Iban1: string = \"\";\r\n public readonly Iban2: string = \"\";\r\n public readonly Abi: string = \"\";\r\n public readonly idTipoIstituto: number = 0;\r\n public readonly TanApplicato: number = 0;\r\n public readonly ProgressivoRappCSE: number = 0;\r\n public readonly PercentualeMontante: number = 0;\r\n public readonly ProvvigioneCollaborazione: number = 0;\r\n public readonly CodDettaglioCollaboratore: string = \"\";\r\n public readonly LogFilialeCSE: number = 0;\r\n public readonly LogABICSE: number = 0;\r\n public readonly DenomBancaAccredito: string = \"\";\r\n public readonly FgCumuloCapitaleFinanziato: string = \"\";\r\n public readonly IdSAE : number = 0;\r\n public readonly IdRAE : number = 0;\r\n public readonly IdFormaGiuridica: number = 0;\r\n public readonly TipoCDG: string = \"\";\r\n public readonly Cdg: number = 0;\r\n public readonly CodTitoloOnorifico: number = 0;\r\n public readonly CodIstat: string = \"\";\r\n public readonly FgBuonaPrassi: string = \"\"; */\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import environment from \"environment\";\r\nimport HttpErrorResponseModel from \"../../models/HttpErrorResponseModel\";\r\nimport HttpUtility from \"../../utilities/HttpUtility\";\r\nimport { AxiosResponse } from \"axios\";\r\nimport ComuneModel from \"./models/ComuneModel\";\r\nimport EffectUtility from \"utilities/EffectUtility\";\r\nimport TipoDocumentoModel from \"./models/TipoDocumentoModel\";\r\nimport CittadinanzaModel from \"./models/CittadinanzaModel\";\r\nimport NazioneModel from \"./models/NazioneModel\";\r\nimport TipoIndirizzoModel from \"./models/TipoIndirizzoModel\";\r\nimport AmministrazioneModel from \"./models/AmministrazioneModel\";\r\nimport TipoRichiedenteModel from \"stores/tipo-richiedente/models/TipoRichiedenteModel\";\r\nimport ConsensoPrivacyModel from \"stores/consenso-privacy/models/ConsensoPrivacyModel\";\r\nimport FondoModel from \"./models/FondoModel\";\r\nimport CqsOnlineTipoCodiceFiscaleModel from \"stores/cqsonline/models/CqsOnlineTipoCodiceFiscaleModel\";\r\nimport ModalitaErogazioneModel from \"./models/ModalitaErogazioneModel\";\r\nimport TipologiaPensioneModel from \"./models/TipologiaPensioneModel\";\r\nimport CategoriaAmministrativaModel from \"./models/CategoriaAmministrativaModel\";\r\nimport TipologiaImpegnoModel from \"./models/TipologiaImpegnoModel\";\r\nimport QuoteSocietaModel from \"./models/QuoteSocietaModel\";\r\nimport ImportoConIntermediariModel from \"./models/ImportoConIntermediariModel\";\r\nimport IstitutoFinanziarioModel from \"./models/IstitutoFinanziarioModel\";\r\n\r\nexport default class LookUpEffect {\r\n public static async requestConsensoPrivacy(): Promise {\r\n const endpoint: string = environment.api.consensoPrivacy;\r\n return EffectUtility.getToModel(ConsensoPrivacyModel, endpoint);\r\n }\r\n\r\n public static async requestTipoRichiedentes(): Promise {\r\n const endpoint: string = environment.api.tipoRichiedente;\r\n return EffectUtility.getToModel(TipoRichiedenteModel, endpoint);\r\n }\r\n\r\n public static async requestComuneNascita(\r\n comune: string,\r\n codice: string\r\n ): Promise {\r\n const endpoint: string = environment.api.comuniNascita;\r\n return EffectUtility.getToModel(ComuneModel, endpoint, { comune, codice });\r\n }\r\n\r\n public static async requestComuneResidenza(\r\n comune: string,\r\n codice: string\r\n ): Promise {\r\n const endpoint: string = environment.api.comuniResidenza;\r\n return EffectUtility.getToModel(ComuneModel, endpoint, { comune, codice });\r\n }\r\n\r\n public static async requestTipoDocumento(): Promise {\r\n const endpoint: string = environment.api.tipoDocumento;\r\n return EffectUtility.getToModel(TipoDocumentoModel, endpoint);\r\n }\r\n\r\n public static async requestCittadinanza(): Promise {\r\n const endpoint: string = environment.api.cittadinanza;\r\n return EffectUtility.getToModel(CittadinanzaModel, endpoint);\r\n }\r\n\r\n public static async requestNazione(): Promise {\r\n const endpoint: string = environment.api.nazione;\r\n return EffectUtility.getToModel(NazioneModel, endpoint);\r\n }\r\n\r\n public static async requestTipoIndirizzo(): Promise {\r\n const endpoint: string = environment.api.tipoIndirizzo;\r\n return EffectUtility.getToModel(TipoIndirizzoModel, endpoint);\r\n }\r\n\r\n public static async requestAmministrazione(\r\n codiceTipoRichiedente: string\r\n ): Promise {\r\n const endpoint: string = environment.api.amministrazione;\r\n return EffectUtility.getToModel(AmministrazioneModel, endpoint, {\r\n codiceTipoRichiedente,\r\n });\r\n }\r\n\r\n public static async requestFondo(): Promise {\r\n const endpoint: string = environment.api.fondo;\r\n return EffectUtility.getToModel(FondoModel, endpoint);\r\n }\r\n\r\n // #region CQSonline\r\n public static async requestTipoDocumentoCQSonline(): Promise {\r\n const endpoint: string = environment.api.tipoDocumentoCQSonline;\r\n return EffectUtility.getToModel(TipoDocumentoModel, endpoint);\r\n }\r\n\r\n public static async requestTipoCodiceFiscaleCQSonline(): Promise<\r\n CqsOnlineTipoCodiceFiscaleModel[] | HttpErrorResponseModel\r\n > {\r\n const endpoint: string = environment.api.getTipoCodiceFiscaleCQSonline;\r\n return EffectUtility.getToModel(CqsOnlineTipoCodiceFiscaleModel, endpoint);\r\n }\r\n\r\n public static async requestModalitaErogazione(): Promise {\r\n const endpoint: string = environment.api.getModalitaErogazione;\r\n return EffectUtility.getToModel(ModalitaErogazioneModel, endpoint);\r\n }\r\n\r\n public static async requestTipologiaPensione(): Promise {\r\n const endpoint: string = environment.api.getTipoPensione;\r\n return EffectUtility.getToModel(TipologiaPensioneModel, endpoint);\r\n }\r\n\r\n public static async requestCategoriaAmministrativa(\r\n codiceTipoRichiedente: string\r\n ): Promise {\r\n const endpoint: string = environment.api.getCategoriaAmministrativa;\r\n return EffectUtility.getToModel(CategoriaAmministrativaModel, endpoint, {\r\n codiceTipoRichiedente,\r\n });\r\n }\r\n\r\n public static async requestTipologiaImpegno(\r\n codiceTipoRichiedente: string\r\n ): Promise {\r\n const endpoint: string = environment.api.getTipologiaImpegni;\r\n return EffectUtility.getToModel(TipologiaImpegnoModel, endpoint, {\r\n codiceTipoRichiedente,\r\n });\r\n }\r\n\r\n public static async requestVociAmministrazioneConvenzione(\r\n codiceTipoRichiedente: string\r\n ): Promise {\r\n const endpoint: string = environment.api.vociAmministrazioneConvenzione;\r\n return EffectUtility.getToModel(AmministrazioneModel, endpoint, {\r\n codiceTipoRichiedente,\r\n });\r\n }\r\n\r\n public static async requestQuoteSocietarie(): Promise {\r\n const endpoint: string = environment.api.getQuoteSocietarie;\r\n return EffectUtility.getToModel(QuoteSocietaModel, endpoint);\r\n }\r\n\r\n public static async requestImportiConIntermediari(): Promise<\r\n ImportoConIntermediariModel[] | HttpErrorResponseModel\r\n > {\r\n const endpoint: string = environment.api.getImportiIntermediari;\r\n return EffectUtility.getToModel(ImportoConIntermediariModel, endpoint);\r\n }\r\n\r\n public static async requestIstitutiFinanziari(): Promise {\r\n const endpoint: string = environment.api.getIstitutiFinanziari;\r\n return EffectUtility.getToModel(IstitutoFinanziarioModel, endpoint);\r\n }\r\n\r\n public static async requestConsesiPrivacyUtente(): Promise {\r\n const endpoint: string = environment.api.getconsensoPrivacyUtente;\r\n return EffectUtility.getToModel(ConsensoPrivacyModel, endpoint);\r\n }\r\n\r\n // #endregion CQSonline\r\n\r\n //campo non necessario\r\n /* public static async requestQualifica(): Promise {\r\n const endpoint: string = environment.api.qualifica;\r\n return EffectUtility.getToModel(QualificaModel, endpoint);\r\n }\r\n */\r\n public static async requestError(): Promise {\r\n const endpoint: string = environment.api.errorExample;\r\n const response: AxiosResponse | HttpErrorResponseModel = await HttpUtility.get(endpoint);\r\n if (response instanceof HttpErrorResponseModel) {\r\n return response;\r\n }\r\n return response.data;\r\n }\r\n}\r\n","import HttpErrorResponseModel from \"../../models/HttpErrorResponseModel\";\r\nimport ActionUtility from \"../../utilities/ActionUtility\";\r\nimport { ReduxDispatch } from \"../../models/ReduxProps\";\r\nimport IStore from \"../../models/IStore\";\r\nimport ComuneModel from \"./models/ComuneModel\";\r\nimport LookUpEffect from \"./LookUpEffect\";\r\nimport TipoDocumentoModel from \"./models/TipoDocumentoModel\";\r\nimport CittadinanzaModel from \"./models/CittadinanzaModel\";\r\nimport NazioneModel from \"./models/NazioneModel\";\r\nimport TipoIndirizzoModel from \"./models/TipoIndirizzoModel\";\r\nimport AmministrazioneModel from \"./models/AmministrazioneModel\";\r\nimport TipoRichiedenteModel from \"stores/tipo-richiedente/models/TipoRichiedenteModel\";\r\nimport ConsensoPrivacyModel from \"stores/consenso-privacy/models/ConsensoPrivacyModel\";\r\nimport FondoModel from \"./models/FondoModel\";\r\nimport CqsOnlineTipoCodiceFiscaleModel from \"stores/cqsonline/models/CqsOnlineTipoCodiceFiscaleModel\";\r\nimport ModalitaErogazioneModel from \"./models/ModalitaErogazioneModel\";\r\nimport TipologiaPensioneModel from \"./models/TipologiaPensioneModel\";\r\nimport CategoriaAmministrativaModel from \"./models/CategoriaAmministrativaModel\";\r\nimport TipologiaImpegnoModel from \"./models/TipologiaImpegnoModel\";\r\nimport QuoteSocietaModel from \"./models/QuoteSocietaModel\";\r\nimport ImportoConIntermediariModel from \"./models/ImportoConIntermediariModel\";\r\nimport IstitutoFinanziarioModel from \"./models/IstitutoFinanziarioModel\";\r\n\r\ntype ActionUnion =\r\n | undefined\r\n | ConsensoPrivacyModel[]\r\n | TipoRichiedenteModel[]\r\n | ComuneModel[]\r\n | TipoDocumentoModel[]\r\n | CittadinanzaModel[]\r\n | NazioneModel[]\r\n | TipoIndirizzoModel[]\r\n | AmministrazioneModel[]\r\n | QuoteSocietaModel[]\r\n | IstitutoFinanziarioModel[]\r\n | HttpErrorResponseModel;\r\n\r\nexport default class LookUpAction {\r\n public static readonly REQUEST_CONSENSO_PRIVACY: string = \"LookUpAction.REQUEST_CONSENSO_PRIVACY\";\r\n public static readonly REQUEST_CONSENSO_PRIVACY_FINISHED: string = \"LookUpAction.REQUEST_CONSENSO_PRIVACY_FINISHED\";\r\n\r\n public static readonly REQUEST_TIPO_RICHIEDENTES: string = \"LookUpAction.REQUEST_TIPO_RICHIEDENTES\";\r\n public static readonly REQUEST_TIPO_RICHIEDENTES_FINISHED: string =\r\n \"LookUpAction.REQUEST_TIPO_RICHIEDENTES_FINISHED\";\r\n\r\n public static readonly REQUEST_COMUNE_NASCITA: string = \"LookUpAction.REQUEST_COMUNE_NASCITA\";\r\n public static readonly REQUEST_COMUNE_NASCITA_FINISHED: string = \"LookUpAction.REQUEST_COMUNE_NASCITA_FINISHED\";\r\n\r\n public static readonly REQUEST_COMUNE_RESIDENZA: string = \"LookUpAction.REQUEST_COMUNE_RESIDENZA\";\r\n public static readonly REQUEST_COMUNE_RESIDENZA_FINISHED: string = \"LookUpAction.REQUEST_COMUNE_RESIDENZA_FINISHED\";\r\n\r\n public static readonly REQUEST_TIPO_DOCUMENTO: string = \"LookUpAction.REQUEST_TIPO_DOCUMENTO\";\r\n public static readonly REQUEST_TIPO_DOCUMENTO_FINISHED: string = \"LookUpAction.REQUEST_TIPO_DOCUMENTO_FINISHED\";\r\n\r\n public static readonly REQUEST_CITTADINANZA: string = \"LookUpAction.REQUEST_CITTADINANZA\";\r\n public static readonly REQUEST_CITTADINANZA_FINISHED: string = \"LookUpAction.REQUEST_CITTADINANZA_FINISHED\";\r\n\r\n public static readonly REQUEST_NAZIONE: string = \"LookUpAction.REQUEST_NAZIONE\";\r\n public static readonly REQUEST_NAZIONE_FINISHED: string = \"LookUpAction.REQUEST_NAZIONE_FINISHED\";\r\n\r\n public static readonly REQUEST_TIPO_INDIRIZZO: string = \"LookUpAction.REQUEST_TIPO_INDIRIZZO\";\r\n public static readonly REQUEST_TIPO_INDIRIZZO_FINISHED: string = \"LookUpAction.REQUEST_TIPO_INDIRIZZO_FINISHED\";\r\n\r\n public static readonly REQUEST_AMMINISTRAZIONE: string = \"LookUpAction.REQUEST_AMMINISTRAZIONE\";\r\n public static readonly REQUEST_AMMINISTRAZIONE_FINISHED: string = \"LookUpAction.REQUEST_AMMINISTRAZIONE_FINISHED\";\r\n\r\n //campo non necessario\r\n // public static readonly REQUEST_QUALIFICA: string = \"LookUpAction.REQUEST_QUALIFICA\";\r\n // public static readonly REQUEST_QUALIFICA_FINISHED: string = \"LookUpAction.REQUEST_QUALIFICA_FINISHED\";\r\n\r\n public static readonly REQUEST_FONDO: string = \"LookUpAction.REQUEST_FONDO\";\r\n public static readonly REQUEST_FONDO_FINISHED: string = \"LookUpAction.REQUEST_FONDO_FINISHED\";\r\n\r\n // #region CQSonline\r\n public static readonly REQUEST_TIPO_DOCUMENTO_CQSOL: string = \"LookUpAction.REQUEST_TIPO_DOCUMENTO_CQSOL\";\r\n public static readonly REQUEST_TIPO_DOCUMENTO_CQSOL_FINISHED: string =\r\n \"LookUpAction.REQUEST_TIPO_DOCUMENTO_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_TIPO_CODICE_FISCALE_CQSOL: string = \"LookUpAction.REQUEST_TIPO_CODICE_FISCALE_CQSOL\";\r\n public static readonly REQUEST_TIPO_CODICE_FISCALE_CQSOL_FINISHED: string =\r\n \"LookUpAction.REQUEST_TIPO_CODICE_FISCALE_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_MODALITA_EROGAZIONE_CQSOL: string = \"LookUpAction.REQUEST_MODALITA_EROGAZIONE_CQSOL\";\r\n public static readonly REQUEST_MODALITA_EROGAZIONE_CQSOL_FINISHED: string =\r\n \"LookUpAction.REQUEST_MODALITA_EROGAZIONE_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_TIPOLOGIA_PENSIONE_CQSOL: string = \"LookUpAction.REQUEST_TIPOLOGIA_PENSIONE_CQSOL\";\r\n public static readonly REQUEST_TIPOLOGIA_PENSIONE_CQSOL_FINISHED: string =\r\n \"LookUpAction.REQUEST_TIPOLOGIA_PENSIONE_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_CATEGORIA_AMMINISTRATIVA_CQSOL: string =\r\n \"LookUpAction.REQUEST_CATEGORIA_AMMINISTRATIVA_CQSOL\";\r\n public static readonly REQUEST_CATEGORIA_AMMINISTRATIVA_CQSOL_FINISHED: string =\r\n \"LookUpAction.REQUEST_CATEGORIA_AMMINISTRATIVA_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_TIPOLOGIA_IMPEGNO_CQSOL: string = \"LookUpAction.REQUEST_TIPOLOGIA_IMPEGNO_CQSOL\";\r\n public static readonly REQUEST_TIPOLOGIA_IMPEGNO_CQSOL_FINISHED: string =\r\n \"LookUpAction.REQUEST_TIPOLOGIA_IMPEGNO_CQSOL_FINISHED\";\r\n\r\n public static readonly REQUEST_VOCI_AMMINISTRAZIONE_CONVENZIONE: string =\r\n \"LookUpAction.REQUEST_VOCI_AMMINISTRAZIONE_CONVENZIONE\";\r\n public static readonly REQUEST_VOCI_AMMINISTRAZIONE_CONVENZIONE_FINISHED: string =\r\n \"LookUpAction.REQUEST_VOCI_AMMINISTRAZIONE_CONVENZIONE_FINISHED\";\r\n\r\n public static readonly REQUEST_QUOTE_SOCIETARIE: string = \"LookUpAction.REQUEST_QUOTE_SOCIETARIE\";\r\n public static readonly REQUEST_QUOTE_SOCIETARIE_FINISHED: string = \"LookUpAction.REQUEST_QUOTE_SOCIETARIE_FINISHED\";\r\n\r\n public static readonly REQUEST_IMPORTI_INTERMEDIARI: string = \"LookUpAction.REQUEST_IMPORTI_INTERMEDIARI\";\r\n public static readonly REQUEST_IMPORTI_INTERMEDIARI_FINISHED: string =\r\n \"LookUpAction.REQUEST_IMPORTI_INTERMEDIARI_FINISHED\";\r\n\r\n public static readonly REQUEST_ISTITUTO_FINANZIARIO: string = \"LookUpAction.REQUEST_ISTITUTO_FINANZIARIO\";\r\n public static readonly REQUEST_ISTITUTO_FINANZIARIO_FINISHED: string =\r\n \"LookUpAction.REQUEST_ISTITUTO_FINANZIARIO_FINISHED\";\r\n public static readonly REQUEST_GET_CONSENSI_USER: string = \"UserAction.REQUEST_GET_CONSENSI_USER\";\r\n public static readonly REQUEST_GET_CONSENSI_USER_FINISHED: string = \"UserAction.REQUEST_GET_CONSENSI_USER_FINISHED\";\r\n // #endregion CQSonline\r\n\r\n public static readonly REQUEST_ERROR: string = \"LookUpAction.REQUEST_ERROR\";\r\n public static readonly REQUEST_ERROR_FINISHED: string = \"LookUpAction.REQUEST_ERROR_FINISHED\";\r\n\r\n public static requestConsensoPrivacy(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_CONSENSO_PRIVACY,\r\n LookUpEffect.requestConsensoPrivacy\r\n );\r\n };\r\n }\r\n\r\n public static requestTipoRichiedentes(): any {\r\n return async (dispatch: ReduxDispatch, getState: () => IStore): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_TIPO_RICHIEDENTES,\r\n LookUpEffect.requestTipoRichiedentes\r\n );\r\n };\r\n }\r\n\r\n public static requestComuneNascita(comune: string, codice: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_COMUNE_NASCITA,\r\n LookUpEffect.requestComuneNascita,\r\n comune,\r\n codice\r\n );\r\n };\r\n }\r\n\r\n public static requestComuneResidenza(comune: string, codice: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_COMUNE_RESIDENZA,\r\n LookUpEffect.requestComuneResidenza,\r\n comune,\r\n codice\r\n );\r\n };\r\n }\r\n\r\n public static requestTipoDocumento(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_TIPO_DOCUMENTO,\r\n LookUpEffect.requestTipoDocumento\r\n );\r\n };\r\n }\r\n\r\n public static requestCittadinanza(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_CITTADINANZA,\r\n LookUpEffect.requestCittadinanza\r\n );\r\n };\r\n }\r\n\r\n public static requestNazione(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_NAZIONE,\r\n LookUpEffect.requestNazione\r\n );\r\n };\r\n }\r\n\r\n public static requestTipoIndirizzo(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_TIPO_INDIRIZZO,\r\n LookUpEffect.requestTipoIndirizzo\r\n );\r\n };\r\n }\r\n\r\n public static requestAmministrazione(codiceTipoRichiedente: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_AMMINISTRAZIONE,\r\n LookUpEffect.requestAmministrazione,\r\n codiceTipoRichiedente\r\n );\r\n };\r\n }\r\n\r\n public static requestFondo(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_FONDO,\r\n LookUpEffect.requestFondo\r\n );\r\n };\r\n }\r\n\r\n // #region CQSonline\r\n\r\n public static requestTipoDocumentoCQSonline(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_TIPO_DOCUMENTO_CQSOL,\r\n LookUpEffect.requestTipoDocumentoCQSonline\r\n );\r\n };\r\n }\r\n\r\n public static requestTipoCodiceFiscaleCQSonline(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_TIPO_CODICE_FISCALE_CQSOL,\r\n LookUpEffect.requestTipoCodiceFiscaleCQSonline\r\n );\r\n };\r\n }\r\n\r\n public static requestModalitaErogazione(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_MODALITA_EROGAZIONE_CQSOL,\r\n LookUpEffect.requestModalitaErogazione\r\n );\r\n };\r\n }\r\n\r\n public static requestTipologiaPensione(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_TIPOLOGIA_PENSIONE_CQSOL,\r\n LookUpEffect.requestTipologiaPensione\r\n );\r\n };\r\n }\r\n\r\n public static requestCategoriaAmministrativa(codiceTipoRichiedente: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_CATEGORIA_AMMINISTRATIVA_CQSOL,\r\n LookUpEffect.requestCategoriaAmministrativa,\r\n codiceTipoRichiedente\r\n );\r\n };\r\n }\r\n\r\n public static requestTipologiaImpegno(codiceTipoRichiedente: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_TIPOLOGIA_IMPEGNO_CQSOL,\r\n LookUpEffect.requestTipologiaImpegno,\r\n codiceTipoRichiedente\r\n );\r\n };\r\n }\r\n\r\n public static requestVociAmministrazioneConvenzione(codiceTipoRichiedente: string): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_VOCI_AMMINISTRAZIONE_CONVENZIONE,\r\n LookUpEffect.requestVociAmministrazioneConvenzione,\r\n codiceTipoRichiedente\r\n );\r\n };\r\n }\r\n\r\n public static requestQuoteSocietarie(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_QUOTE_SOCIETARIE,\r\n LookUpEffect.requestQuoteSocietarie\r\n );\r\n };\r\n }\r\n\r\n public static requestImportiConIntermediari(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_IMPORTI_INTERMEDIARI,\r\n LookUpEffect.requestImportiConIntermediari\r\n );\r\n };\r\n }\r\n\r\n public static requestIstitutoFinanziari(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_ISTITUTO_FINANZIARIO,\r\n LookUpEffect.requestIstitutiFinanziari\r\n );\r\n };\r\n }\r\n\r\n public static requestConsesiPrivacyUtente(): any {\r\n return async (dispatch: ReduxDispatch): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n LookUpAction.REQUEST_GET_CONSENSI_USER,\r\n LookUpEffect.requestConsesiPrivacyUtente\r\n );\r\n };\r\n }\r\n // #endregion CQSonline\r\n\r\n //campo non necessario\r\n // public static requestQualifica(): any {\r\n // return async (dispatch: ReduxDispatch): Promise => {\r\n // await ActionUtility.createThunkEffect(\r\n // dispatch,\r\n // LookUpAction.REQUEST_QUALIFICA,\r\n // LookUpEffect.requestQualifica\r\n // );\r\n // };\r\n // }\r\n\r\n public static requestError(): any {\r\n return async (dispatch: ReduxDispatch, getState: () => IStore): Promise => {\r\n await ActionUtility.createThunkEffect(dispatch, LookUpAction.REQUEST_ERROR, LookUpEffect.requestError);\r\n };\r\n }\r\n}\r\n","import i18n from \"i18next\";\r\nimport { initReactI18next } from \"react-i18next\";\r\n\r\nimport Backend from \"i18next-http-backend\";\r\nimport LanguageDetector from \"i18next-browser-languagedetector\";\r\nimport enviroment from \"environment\";\r\n\r\ni18n\r\n // load translation using http -> see /public/locales (i.e. https://github.com/i18next/react-i18next/tree/master/example/react/public/locales)\r\n // learn more: https://github.com/i18next/i18next-http-backend\r\n .use(Backend)\r\n // detect user language\r\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\r\n .use(LanguageDetector)\r\n // pass the i18n instance to react-i18next.\r\n .use(initReactI18next)\r\n // init i18next\r\n // for all options read: https://www.i18next.com/overview/configuration-options\r\n .init(\r\n {\r\n fallbackLng: \"it-IT\",\r\n preload: [\"it-IT\"],\r\n debug: false,\r\n load: \"currentOnly\",\r\n\r\n backend: {\r\n loadPath: enviroment.api.traduzione + \"/{{lng}}\",\r\n crossDomain: true,\r\n overrideMimeType: \"application/json\",\r\n },\r\n /*\r\n interpolation: {\r\n escapeValue: false, // not needed for react as it escapes by default\r\n },\r\n\r\n react: {\r\n wait: true,\r\n },\r\n\r\n wait: true,\r\n */\r\n },\r\n () => {}\r\n );\r\n\r\nexport default i18n;\r\n","import environment from \"environment\";\r\n\r\nfunction RouteEnum() {\r\n return {\r\n HOME: environment.basePathDeploy + \"/\",\r\n ACCESSO_REGISTRAZIONE: environment.basePathDeploy + \"/accesso-registrazione\",\r\n REGISTRAZIONE_EFFETTUATA: environment.basePathDeploy + \"/registrazione-effettuata\",\r\n CONFERMA_REGISTRAZIONE: environment.basePathDeploy + \"/conferma-registrazione\",\r\n PREVENTIVO: environment.basePathDeploy + \"/preventivo\",\r\n VANTAGGI: environment.basePathDeploy + \"/vantaggi\",\r\n COSA_SERVE: environment.basePathDeploy + \"/cosaserve\",\r\n COSA_E: environment.basePathDeploy + \"/cose\",\r\n CHI_SIAMO: environment.basePathDeploy + \"/chi\",\r\n ACCESSO: environment.basePathDeploy + \"/accesso\",\r\n ACCESSO_EFFETTUATO: environment.basePathDeploy + \"/accesso-effettuato\",\r\n RICHIESTA: environment.basePathDeploy + \"/richiesta\",\r\n DASHBOARD: environment.basePathDeploy + \"/dashboard\",\r\n PRIVACY: environment.basePathDeploy + \"/privacy\",\r\n RECUPERO_PASSWORD: environment.basePathDeploy + \"/recupero-password\",\r\n CAMBIO_PASSWORD: environment.basePathDeploy + \"/cambio-password\",\r\n FIRMA_DOCUMENTI_ISTRUTTORIA: environment.basePathDeploy + \"/documenti-istruttoria\",\r\n RICHIESTA_PREVENTIVO: environment.basePathDeploy + \"/richiesta-preventivo\",\r\n };\r\n}\r\n\r\nexport default RouteEnum;\r\n","import { v4 as uuidv4 } from \"uuid\";\r\nimport IError from \"./IError\";\r\nexport default class HttpErrorResponseModel implements IError {\r\n public readonly id: string = uuidv4();\r\n public status: number = 0;\r\n public message: string = \"\";\r\n public errors: string[] = [];\r\n public url: string = \"\";\r\n public raw: any = null;\r\n}\r\n","enum StatoProcessoFirmaDigitale {\r\n NonEsiste = 0,\r\n InCorso = 1,\r\n Annullato = 2,\r\n Completato = 3,\r\n}\r\n\r\nexport default StatoProcessoFirmaDigitale;\r\n","import environment from \"environment\";\r\nimport axios, { AxiosRequestConfig, AxiosResponse, Method } from \"axios\";\r\nimport HttpErrorResponseModel from \"../models/HttpErrorResponseModel\";\r\n\r\nexport enum RequestMethod {\r\n Get = \"GET\",\r\n Post = \"POST\",\r\n Put = \"PUT\",\r\n Delete = \"DELETE\",\r\n Options = \"OPTIONS\",\r\n Head = \"HEAD\",\r\n Patch = \"PATCH\",\r\n}\r\n\r\nexport default class HttpUtility {\r\n private constructor() {}\r\n\r\n public static async get(\r\n endpoint: string,\r\n params?: any,\r\n requestConfig?: AxiosRequestConfig\r\n ): Promise {\r\n const paramsConfig: AxiosRequestConfig | undefined = params ? { params } : undefined;\r\n\r\n return HttpUtility._request(\r\n {\r\n url: endpoint,\r\n method: RequestMethod.Get,\r\n },\r\n {\r\n ...paramsConfig,\r\n ...requestConfig,\r\n }\r\n );\r\n }\r\n\r\n public static async post(\r\n endpoint: string,\r\n data?: any,\r\n requestConfig?: AxiosRequestConfig\r\n ): Promise {\r\n const config: AxiosRequestConfig | undefined = data ? { data } : undefined;\r\n\r\n return HttpUtility._request(\r\n {\r\n url: endpoint,\r\n method: RequestMethod.Post,\r\n },\r\n {\r\n ...config,\r\n ...requestConfig,\r\n }\r\n );\r\n }\r\n\r\n public static async put(endpoint: string, data?: any): Promise {\r\n const config: AxiosRequestConfig | undefined = data ? { data } : undefined;\r\n\r\n return HttpUtility._request(\r\n {\r\n url: endpoint,\r\n method: RequestMethod.Put,\r\n },\r\n config\r\n );\r\n }\r\n\r\n public static async delete(\r\n endpoint: string,\r\n params?: any,\r\n requestConfig?: AxiosRequestConfig\r\n ): Promise {\r\n const paramsConfig: AxiosRequestConfig | undefined = params ? { params } : undefined;\r\n return HttpUtility._request(\r\n {\r\n url: endpoint,\r\n method: RequestMethod.Delete,\r\n },\r\n {\r\n ...paramsConfig,\r\n ...requestConfig,\r\n }\r\n );\r\n }\r\n\r\n private static async _request(\r\n restRequest: Partial,\r\n config?: AxiosRequestConfig\r\n ): Promise {\r\n if (!Boolean(restRequest.url)) {\r\n console.error(`Received ${restRequest.url} which is invalid for a endpoint url`);\r\n }\r\n\r\n const token = sessionStorage.getItem(\"accessToken\");\r\n\r\n if (token) {\r\n if (!config) {\r\n config = {};\r\n }\r\n\r\n config.headers = {\r\n ...config.headers,\r\n Authorization: `Bearer ${token}`,\r\n };\r\n }\r\n\r\n try {\r\n const axiosRequestConfig: AxiosRequestConfig = {\r\n ...config,\r\n method: restRequest.method as Method,\r\n url: restRequest.url,\r\n headers: {\r\n // \"Content-Type\": \"application/x-www-form-urlencoded\",\r\n \"Content-Type\": \"application/json\",\r\n\r\n ...config?.headers,\r\n },\r\n };\r\n const [axiosResponse] = await Promise.all([axios(axiosRequestConfig), HttpUtility._delay()]);\r\n\r\n const { status, data, request } = axiosResponse;\r\n\r\n if (data.success === false) {\r\n return HttpUtility._fillInErrorWithDefaults(\r\n {\r\n status,\r\n message: data.errors.join(\" - \"),\r\n errors: data.errors,\r\n url: request ? request.responseURL : restRequest.url,\r\n raw: axiosResponse,\r\n },\r\n restRequest\r\n );\r\n }\r\n\r\n return {\r\n ...axiosResponse,\r\n };\r\n } catch (error) {\r\n if (error.response) {\r\n // The request was made and the server responded with a status code that falls out of the range of 2xx\r\n const { status, statusText, data } = error.response;\r\n\r\n // if error is 401 and is not a \"try again\" call\r\n if (status === 401 && config?.headers?.retry !== true) {\r\n const accessToken = sessionStorage.getItem(\"accessToken\");\r\n const refreshToken = sessionStorage.getItem(\"refreshToken\");\r\n // call refreshToken API to get new accessToken and refreshToken (with \"try again\" identifier)\r\n var retryResult = await HttpUtility.post(\r\n environment.api.refreshToken,\r\n { accessToken: accessToken, refreshToken: refreshToken },\r\n { headers: { retry: true } }\r\n ).then((response: AxiosResponse | HttpErrorResponseModel) => {\r\n if (\r\n !(response instanceof HttpErrorResponseModel) &&\r\n response.hasOwnProperty(\"data\") &&\r\n response.data.hasOwnProperty(\"accessToken\") &&\r\n response.data.hasOwnProperty(\"refreshToken\")\r\n ) {\r\n // if response is not an error and contain accessToken and refreshToken\r\n // replace these and redo the original call\r\n sessionStorage.setItem(\"accessToken\", response.data.accessToken);\r\n sessionStorage.setItem(\"refreshToken\", response.data.refreshToken);\r\n return HttpUtility._request(restRequest, {\r\n ...config,\r\n headers: { ...config?.headers, retry: true },\r\n });\r\n }\r\n // else set retryResult to null\r\n return null;\r\n });\r\n\r\n if (retryResult !== null) {\r\n return retryResult;\r\n }\r\n }\r\n\r\n const errors: string[] = data.hasOwnProperty(\"errors\") ? [statusText, ...data.errors] : [statusText];\r\n\r\n return HttpUtility._fillInErrorWithDefaults(\r\n {\r\n status,\r\n message: errors.filter(Boolean).join(\" - \"),\r\n errors,\r\n url: error.request.responseURL,\r\n raw: error.response,\r\n },\r\n restRequest\r\n );\r\n } else if (error.request) {\r\n // The request was made but no response was received `error.request` is an instance of XMLHttpRequest in the browser and an instance of http.ClientRequest in node.js\r\n const { status, statusText, responseURL } = error.request;\r\n\r\n return HttpUtility._fillInErrorWithDefaults(\r\n {\r\n status,\r\n message: statusText,\r\n errors: [statusText],\r\n url: responseURL,\r\n raw: error.request,\r\n },\r\n restRequest\r\n );\r\n }\r\n\r\n // Something happened in setting up the request that triggered an Error\r\n return HttpUtility._fillInErrorWithDefaults(\r\n {\r\n status: 0,\r\n message: error.message,\r\n errors: [error.message],\r\n url: restRequest.url!,\r\n raw: error,\r\n },\r\n restRequest\r\n );\r\n }\r\n }\r\n\r\n private static _fillInErrorWithDefaults(\r\n error: Partial,\r\n request: Partial\r\n ): HttpErrorResponseModel {\r\n const model = new HttpErrorResponseModel();\r\n\r\n model.status = error.status || 0;\r\n model.message = error.message || \"Error requesting data\";\r\n model.errors = error.errors!.length ? error.errors! : [\"Error requesting data\"];\r\n model.url = error.url || request.url!;\r\n model.raw = error.raw;\r\n\r\n // Remove anything with undefined or empty strings.\r\n model.errors = model.errors.filter(Boolean);\r\n\r\n return model;\r\n }\r\n\r\n /**\r\n * We want to show the loading indicator to the user but sometimes the api\r\n * request finished too quickly. This makes sure there the loading indicator is\r\n * visual for at least a given time.\r\n *\r\n * @param duration\r\n * @returns {Promise}\r\n * @private\r\n */\r\n private static _delay(duration: number = 250): Promise {\r\n return new Promise((resolve) => setTimeout(resolve, duration));\r\n }\r\n}\r\n","/*\r\n * Note: This reducer breaks convention on how reducers should be setup.\r\n */\r\nimport IRequestingState from \"./models/IRequestingState\";\r\nimport IAction from \"../../models/IAction\";\r\n\r\nexport default class RequestingReducer {\r\n public static readonly initialState: IRequestingState = {};\r\n\r\n public static reducer(\r\n state: IRequestingState = RequestingReducer.initialState,\r\n action: IAction\r\n ): IRequestingState {\r\n // We only take actions that include 'REQUEST_' in the type.\r\n const isRequestType: boolean = action.type.includes(\"REQUEST_\");\r\n\r\n if (isRequestType === false) {\r\n return state;\r\n }\r\n\r\n // Remove the string '_FINISHED' from the action type so we can use the first part as the key on the state.\r\n const requestName: string = action.type.replace(\"_FINISHED\", \"\");\r\n // If the action type includes '_FINISHED'. The boolean value will be false. Otherwise we\r\n // assume it is a starting request and will be set to true.\r\n const isFinishedRequestType: boolean = action.type.includes(\"_FINISHED\");\r\n\r\n return {\r\n ...state,\r\n [requestName]: isFinishedRequestType === false,\r\n };\r\n }\r\n}\r\n","import IAction from \"../../models/IAction\";\r\nimport ActionUtility from \"../../utilities/ActionUtility\";\r\n\r\nexport default class ErrorAction {\r\n public static readonly CLEAR_ALL: string = \"ErrorAction.CLEAR_ALL\";\r\n public static readonly REMOVE: string = \"ErrorAction.REMOVE\";\r\n\r\n public static removeById(id: string): IAction {\r\n return ActionUtility.createAction(ErrorAction.REMOVE, id);\r\n }\r\n\r\n public static clearAll(): IAction {\r\n return ActionUtility.createAction(ErrorAction.CLEAR_ALL);\r\n }\r\n}\r\n","/*\r\n * Note: This reducer breaks convention on how reducers should be setup.\r\n */\r\nimport IErrorState from \"./models/IErrorState\";\r\nimport IAction from \"../../models/IAction\";\r\nimport ErrorAction from \"./ErrorAction\";\r\nimport HttpErrorResponseModel from \"../../models/HttpErrorResponseModel\";\r\n\r\nexport default class ErrorReducer {\r\n public static readonly initialState: IErrorState = {};\r\n\r\n public static reducer(state: IErrorState = ErrorReducer.initialState, action: IAction): IErrorState {\r\n const { type, error, payload } = action;\r\n /*\r\n * Removes an HttpErrorResponseModel by it's id that is in the action payload.\r\n */\r\n if (type === ErrorAction.REMOVE) {\r\n // Create a new state without the error that has the same id as the payload.\r\n return Object.entries(state).reduce((newState: object, [key, value]: [string, HttpErrorResponseModel]) => {\r\n if (value.id !== payload) {\r\n newState[key] = value;\r\n }\r\n\r\n return newState;\r\n }, {});\r\n }\r\n /*\r\n * Removes all errors by returning the initial state which is an empty object.\r\n */\r\n if (type === ErrorAction.CLEAR_ALL) {\r\n return ErrorReducer.initialState;\r\n }\r\n /*\r\n * True if the action type has the key word '_FINISHED' then the action is finished.\r\n */\r\n const isFinishedRequestType = type.includes(\"_FINISHED\");\r\n /*\r\n * True if the action type has the key word 'REQUEST_' and not '_FINISHED'.\r\n */\r\n const isStartRequestType = type.includes(\"REQUEST_\") && !isFinishedRequestType;\r\n /*\r\n * If an action is started we want to remove any old errors because there is a new action has been re-dispatched.\r\n */\r\n if (isStartRequestType) {\r\n // Using ES7 Object Rest Spread operator to omit properties from an object.\r\n const { [`${type}_FINISHED`]: value, ...stateWithoutFinishedType } = state;\r\n\r\n return stateWithoutFinishedType;\r\n }\r\n /*\r\n * True if the action is finished and the error property is true.\r\n */\r\n const isError: boolean = isFinishedRequestType && Boolean(error);\r\n /*\r\n * For any start and finished actions that don't have errors we return the current state.\r\n */\r\n if (isError === false) {\r\n return state;\r\n }\r\n /*\r\n * At this point the \"type\" will be a finished action type (e.g. \"SomeAction.REQUEST_*_FINISHED\").\r\n * The payload will be a HttpErrorResponseModel.\r\n */\r\n return {\r\n ...state,\r\n [type]: payload,\r\n };\r\n }\r\n}\r\n","import ActionUtility from \"../../utilities/ActionUtility\";\r\nimport IAction from \"../../models/IAction\";\r\nimport ToastStatusEnum from \"../../constants/ToastStatusEnum\";\r\nimport IToast from \"./models/IToast\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\nexport default class ToastsAction {\r\n public static readonly ADD_TOAST: string = \"ToastsAction.ADD_TOAST\";\r\n public static readonly REMOVE_TOAST: string = \"ToastsAction.REMOVE_TOAST\";\r\n\r\n public static add(message: string, type: ToastStatusEnum, fullMessage: string): IAction {\r\n return ActionUtility.createAction(ToastsAction.ADD_TOAST, {\r\n message,\r\n type,\r\n id: uuidv4(),\r\n fullMessage,\r\n });\r\n }\r\n\r\n public static removeById(toastId: string): IAction {\r\n return ActionUtility.createAction(ToastsAction.REMOVE_TOAST, toastId);\r\n }\r\n}\r\n","import IAction from \"../models/IAction\";\r\n\r\ntype ReducerMethod = (state: T, action: IAction) => T;\r\n\r\nexport default abstract class BaseReducer {\r\n public initialState: T = {} as any;\r\n\r\n public reducer = (state: T = this.initialState, action: IAction): T => {\r\n // if the action type is used for a method name then this be a reference to\r\n // that class method.\r\n // if the action type is not found then the \"method\" const will be undefined.\r\n const method: ReducerMethod | undefined = this[action.type];\r\n\r\n // if the action type \"method\" const is undefined or the action is an error\r\n // return the state.\r\n if (!method || action.error) {\r\n return state;\r\n }\r\n\r\n // Calls the method with the correct \"this\" and returns the modified state.\r\n return method.call(this, state, action);\r\n };\r\n}\r\n","import IToastsState from \"./models/IToastsState\";\r\nimport ToastsAction from \"./ToastsAction\";\r\nimport BaseReducer from \"../../utilities/BaseReducer\";\r\nimport IAction from \"../../models/IAction\";\r\nimport IToast from \"./models/IToast\";\r\n\r\nexport default class ToastsReducer extends BaseReducer {\r\n public readonly initialState: IToastsState = {\r\n items: [],\r\n };\r\n\r\n public [ToastsAction.ADD_TOAST](state: IToastsState, action: IAction): IToastsState {\r\n return {\r\n ...state,\r\n items: [...state.items, action.payload!],\r\n };\r\n }\r\n\r\n public [ToastsAction.REMOVE_TOAST](state: IToastsState, action: IAction): IToastsState {\r\n const toastId: string = action.payload!;\r\n\r\n return {\r\n ...state,\r\n items: state.items.filter((model: IToast) => model.id !== toastId),\r\n };\r\n }\r\n}\r\n","import BaseReducer from \"../../utilities/BaseReducer\";\r\nimport IAction from \"../../models/IAction\";\r\nimport IMenuState from \"./models/MenuStore\";\r\nimport MenuAction from \"./MenuAction\";\r\nimport MenuModel from \"./models/MenuModel\";\r\n\r\nexport default class MenuReducer extends BaseReducer {\r\n public readonly initialState: IMenuState = {\r\n menuItems: [],\r\n sitePaths: [],\r\n };\r\n\r\n public [MenuAction.REQUEST_MENUS_FINISHED](state: IMenuState, action: IAction): IMenuState {\r\n return {\r\n ...state,\r\n menuItems: action.payload!,\r\n };\r\n }\r\n\r\n public [MenuAction.REQUEST_PATHS_FINISHED](state: IMenuState, action: IAction): IMenuState {\r\n return {\r\n ...state,\r\n sitePaths: action.payload!,\r\n };\r\n }\r\n}\r\n","import BaseReducer from \"../../utilities/BaseReducer\";\r\nimport IContentsState from \"./models/IContentsState\";\r\n\r\nexport default class ContentsReducer extends BaseReducer {\r\n public readonly initialState: IContentsState = {};\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\nimport InfoUtentePreventivoModel from \"./InfoUtentePreventivoModel\";\r\nimport PreventivoQuestionarioViewModel from \"./PreventivoQuestionarioViewModel\";\r\n\r\nexport default class PreventivoInformazioniUtenteModel extends BaseModel {\r\n public readonly codiceConvenzione: string = \"\";\r\n public readonly codiceTipoRichiedente: string = \"\";\r\n public readonly dataAssunzione: string = \"\";\r\n public readonly dataNascita: string = \"\";\r\n public readonly durata: number = 0;\r\n public readonly idPreventivo: number = 0;\r\n public readonly importoNettoRedditoMensile: number = 0;\r\n public readonly importoRata: number = 0;\r\n public readonly importoRichiesto: number = 0;\r\n public readonly informazioniUtente: InfoUtentePreventivoModel = new InfoUtentePreventivoModel({});\r\n public readonly preventivoQuestionario: PreventivoQuestionarioViewModel = new PreventivoQuestionarioViewModel({});\r\n public readonly isLogged: boolean = false;\r\n\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import BaseReducer from \"../../utilities/BaseReducer\";\r\nimport IAction from \"../../models/IAction\";\r\nimport IPreventivoState from \"./models/IPreventivoState\";\r\nimport RicercaPreventivoViewModel from \"./models/RicercaPreventivoViewModel\";\r\nimport PreventivoAction from \"./PreventivoAction\";\r\nimport PreventivoModel from \"./models/PreventivoModel\";\r\nimport ResponseEsitoModel from \"stores/shared/models/ResponseEsitoModel\";\r\nimport PreventiviUtenteModel from \"./models/PreventiviUtenteModel\";\r\nimport PreventivoQuestionarioViewModel from \"./models/PreventivoQuestionarioViewModel\";\r\nimport FormatUtility from \"utilities/FormatUtility\";\r\nimport PreventivoInformazioniUtenteModel from \"./models/PreventivoInformazioniUtenteModel\";\r\n\r\nexport default class PreventivoReducer extends BaseReducer {\r\n public readonly initialState: IPreventivoState = {\r\n filtri: new RicercaPreventivoViewModel({}),\r\n risultati: [] as PreventivoModel[],\r\n corrente: new PreventivoModel({}),\r\n idUtente: 0,\r\n filtriInfoUtente: new PreventivoInformazioniUtenteModel({}),\r\n };\r\n\r\n public [PreventivoAction.REQUEST_SIMULAZIONE_PREVENTIVOS_FINISHED](\r\n state: IPreventivoState,\r\n action: IAction\r\n ): IPreventivoState {\r\n return {\r\n ...state,\r\n risultati: action.payload!.preventiviSimulati,\r\n idUtente: action.payload!.idUtente,\r\n };\r\n }\r\n\r\n public [PreventivoAction.REQUEST_PREVENTIVOS_FINISHED](\r\n state: IPreventivoState,\r\n action: IAction\r\n ): IPreventivoState {\r\n return {\r\n ...state,\r\n risultati: action.payload!,\r\n };\r\n }\r\n\r\n public [PreventivoAction.SET_FILTRI_RICERCA_PREVENTIVO_FINISHED](\r\n state: IPreventivoState,\r\n action: IAction\r\n ): IPreventivoState {\r\n return {\r\n ...state,\r\n filtri: action.payload!,\r\n };\r\n }\r\n\r\n public [PreventivoAction.SET_FILTRI_QUESTIONARIO_RICERCA_PREVENTIVO_FINISHED](\r\n state: IPreventivoState,\r\n action: IAction\r\n ): IPreventivoState {\r\n return {\r\n ...state,\r\n filtri: {\r\n ...state.filtri,\r\n preventivoQuestionario: action.payload!,\r\n } as RicercaPreventivoViewModel,\r\n };\r\n }\r\n\r\n public [PreventivoAction.RESET_RISULTATI_RICERCA_PREVENTIVO_FINISHED](state: IPreventivoState): IPreventivoState {\r\n return {\r\n ...state,\r\n risultati: [] as PreventivoModel[],\r\n };\r\n }\r\n\r\n public [PreventivoAction.RESET_SIMULAZIONE_PREVENTIVO_FINISHED](\r\n state: IPreventivoState,\r\n action: IAction\r\n ): IPreventivoState {\r\n return {\r\n ...state,\r\n //filtri: new RicercaPreventivoViewModel({}),\r\n risultati: [] as PreventivoModel[],\r\n };\r\n }\r\n\r\n public [PreventivoAction.SAVE_PREVENTIVOS_FINISHED](\r\n state: IPreventivoState,\r\n action: IAction\r\n ): IPreventivoState {\r\n let idPreventivo = state.corrente.idPreventivo;\r\n if (action.payload && action.payload!.infoEsito !== \"\") {\r\n idPreventivo = parseInt(action.payload!.infoEsito);\r\n if (isNaN(idPreventivo)) {\r\n idPreventivo = state.corrente.idPreventivo;\r\n }\r\n }\r\n return {\r\n ...state,\r\n corrente: {\r\n ...state.corrente,\r\n idPreventivo: idPreventivo,\r\n } as PreventivoModel,\r\n };\r\n }\r\n public [PreventivoAction.GET_FILTRI_RICERCA_PREVENTIVO_FINISHED](\r\n state: IPreventivoState,\r\n action: IAction\r\n ): IPreventivoState {\r\n let filtri = {\r\n ...state,\r\n filtri: action.payload!,\r\n };\r\n // return {\r\n // ...state,\r\n // filtri: action.payload!,\r\n // };\r\n let filtriFormatted = {\r\n ...state,\r\n filtri: {\r\n ...filtri.filtri,\r\n importoRichiesto:\r\n FormatUtility.numberFromNumberWithSeparators(\r\n FormatUtility.numberWithSeparators(filtri.filtri.importoRichiesto, \"0.00\")\r\n )?.toString() ?? \"\",\r\n importoNettoRedditoMensile:\r\n FormatUtility.numberFromNumberWithSeparators(\r\n filtri.filtri.importoNettoRedditoMensile\r\n )?.toString() ?? \"\",\r\n dataNascita: FormatUtility.dateInGivenFormat(filtri.filtri.dataNascita, \"DD/MM/YYYY\") ?? null,\r\n dataAssunzione: FormatUtility.dateInGivenFormat(filtri.filtri.dataAssunzione, \"DD/MM/YYYY\") ?? null,\r\n } as RicercaPreventivoViewModel,\r\n };\r\n return filtriFormatted;\r\n }\r\n\r\n public [PreventivoAction.SET_REGISTRAZIONE_ANONIMA_FINISHED](\r\n state: IPreventivoState,\r\n action: IAction\r\n ): IPreventivoState {\r\n let filtri = {\r\n ...state,\r\n filtriInfoUtente: action.payload!,\r\n }; \r\n return filtri;\r\n\r\n\r\n\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\nimport ConsensoPrivacyModel from \"stores/consenso-privacy/models/ConsensoPrivacyModel\";\r\n\r\nexport default class UserModel extends BaseModel {\r\n public readonly username: string = \"\";\r\n public readonly isLogged: boolean = false;\r\n public readonly isLoginRequired: boolean = false;\r\n public readonly isCookieAllowed: boolean = false;\r\n public readonly nome: string = \"\";\r\n public readonly cognome: string = \"\";\r\n public readonly email: string = \"\";\r\n public readonly infoEsito: string = \"\";\r\n public readonly privacy: ConsensoPrivacyModel[] = [] as ConsensoPrivacyModel[];\r\n public readonly idUtente: number = 0;\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import BaseReducer from \"../../utilities/BaseReducer\";\r\nimport IAction from \"../../models/IAction\";\r\nimport IUserState from \"./models/IUserState\";\r\nimport UserAction from \"./UserAction\";\r\nimport UserModel from \"./models/UserModel\";\r\nimport ResponseEsitoModel from \"stores/shared/models/ResponseEsitoModel\";\r\nimport UserInfoModel from \"./models/UserInfoModel\";\r\nimport ResponseAuthTokensModel from \"stores/shared/models/ResponseAuthTokensModel\";\r\nimport RicercaPreventivoViewModel from \"stores/preventivo/models/RicercaPreventivoViewModel\";\r\n//import RegistrationAnonyousModel from \"./models/RegistrationAnonymousModel\";\r\nexport default class UserReducer extends BaseReducer {\r\n public readonly initialState: IUserState = {\r\n profile: new UserModel({}),\r\n responseRegistration: false,\r\n responseTokenVerification: false,\r\n responseRegistrationConfirm: false,\r\n responseRecuperoPassword: false,\r\n responseTokenRecuperoPassword: false,\r\n responseCambioPassword: false,\r\n responseSalvaConsensi: false,\r\n // responseRegistrationAnonymous: new RegistrationAnonyousModel({})\r\n };\r\n\r\n public [UserAction.SET_COOKIE_CONSENT_FINISHED](state: IUserState, action: IAction): IUserState {\r\n return {\r\n ...state,\r\n profile: {\r\n ...state.profile,\r\n isCookieAllowed: action.payload!,\r\n } as UserModel,\r\n };\r\n }\r\n\r\n public [UserAction.REQUEST_USER_LOGIN_FINISHED](\r\n state: IUserState,\r\n action: IAction\r\n ): IUserState {\r\n let accessToken: string = \"\";\r\n let refreshToken: string = \"\";\r\n let isLogged = false;\r\n if (action.payload && action.payload!.accessToken && action.payload!.refreshToken) {\r\n accessToken = action.payload!.accessToken;\r\n refreshToken = action.payload!.refreshToken;\r\n\r\n isLogged = true;\r\n }\r\n sessionStorage.setItem(\"accessToken\", accessToken);\r\n sessionStorage.setItem(\"refreshToken\", refreshToken);\r\n\r\n return {\r\n ...state,\r\n profile: {\r\n ...state.profile,\r\n isLogged: isLogged,\r\n infoEsito: action.payload!.infoEsito,\r\n } as UserModel,\r\n };\r\n }\r\n\r\n public [UserAction.SET_USER_LOGIN_REQUIRED_FINISHED](state: IUserState, action: IAction): IUserState {\r\n const accessToken = sessionStorage.getItem(\"accessToken\");\r\n const refreshToken = sessionStorage.getItem(\"refreshToken\");\r\n let isLogged = false;\r\n if (accessToken && refreshToken) {\r\n isLogged = true;\r\n }\r\n return {\r\n ...state,\r\n profile: {\r\n ...state.profile,\r\n isLogged: isLogged,\r\n isLoginRequired: action.payload!,\r\n } as UserModel,\r\n };\r\n }\r\n\r\n public [UserAction.SET_USER_LOGIN_FINISHED](state: IUserState, action: IAction): IUserState {\r\n const accessToken = sessionStorage.getItem(\"accessToken\");\r\n const refreshToken = sessionStorage.getItem(\"refreshToken\");\r\n let isLogged = false;\r\n if (accessToken && refreshToken) {\r\n isLogged = true;\r\n }\r\n return {\r\n ...state,\r\n profile: {\r\n ...state.profile,\r\n isLogged: isLogged,\r\n } as UserModel,\r\n };\r\n }\r\n\r\n public [UserAction.SET_USER_LOGOUT_FINISHED](state: IUserState, action: IAction): IUserState {\r\n sessionStorage.removeItem(\"accessToken\");\r\n sessionStorage.removeItem(\"refreshToken\");\r\n return {\r\n ...state,\r\n profile: {\r\n ...state.profile,\r\n username: \"\",\r\n isLogged: false,\r\n } as UserModel,\r\n };\r\n }\r\n\r\n public [UserAction.REQUEST_USER_REGISTRATION_FINISHED](\r\n state: IUserState,\r\n action: IAction\r\n ): IUserState {\r\n return {\r\n ...state,\r\n responseRegistration: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [UserAction.REQUEST_VERIFICA_TOKEN_FINISHED](\r\n state: IUserState,\r\n action: IAction\r\n ): IUserState {\r\n return {\r\n ...state,\r\n responseTokenVerification: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [UserAction.REQUEST_USER_REGISTRATION_CONFIRM_FINISHED](\r\n state: IUserState,\r\n action: IAction\r\n ): IUserState {\r\n return {\r\n ...state,\r\n responseRegistrationConfirm: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [UserAction.REQUEST_GET_INFO_UTENTE_FINISHED](\r\n state: IUserState,\r\n action: IAction\r\n ): IUserState {\r\n return {\r\n ...state,\r\n profile: {\r\n ...state.profile,\r\n nome: action.payload!.nome,\r\n cognome: action.payload!.cognome,\r\n email: action.payload!.email,\r\n } as UserModel,\r\n };\r\n }\r\n\r\n public [UserAction.REQUEST_USER_DELETE_FINISHED](\r\n state: IUserState,\r\n action: IAction\r\n ): IUserState {\r\n return {\r\n ...state,\r\n profile: {\r\n ...state.profile,\r\n username: \"\",\r\n isLogged: false,\r\n nome: \"\",\r\n cognome: \"\",\r\n email: \"\",\r\n } as UserModel,\r\n };\r\n }\r\n\r\n public [UserAction.REQUEST_USER_RECUPERO_PASSWORD_FINISHED](\r\n state: IUserState,\r\n action: IAction\r\n ): IUserState {\r\n return {\r\n ...state,\r\n responseRecuperoPassword: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [UserAction.REQUEST_VERIFICA_TOKEN_RECUPERO_PASSWORD_FINISHED](\r\n state: IUserState,\r\n action: IAction\r\n ): IUserState {\r\n return {\r\n ...state,\r\n responseTokenRecuperoPassword: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [UserAction.REQUEST_USER_RINVIO_REGISTRATION_FINISHED](\r\n state: IUserState,\r\n action: IAction\r\n ): IUserState {\r\n return {\r\n ...state,\r\n responseRegistration: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [UserAction.REQUEST_USER_CAMBIO_PASSWORD_FINISHED](\r\n state: IUserState,\r\n action: IAction\r\n ): IUserState {\r\n return {\r\n ...state,\r\n responseCambioPassword: action.payload!.esito,\r\n };\r\n }\r\n\r\n /* public [UserAction.REQUEST_USER_REGISTRATION_ANONYMOUS_FINISHED ](\r\n state: IUserState,\r\n action: IAction\r\n ): IUserState {\r\n return {\r\n ...state,\r\n responseRegistrationAnonymous: {\r\n idUtente: action.payload!.idUtente,\r\n } as RegistrationAnonyousModel\r\n \r\n };\r\n } */\r\n\r\n public [UserAction.REQUEST_SET_USER_REGISTRATION_MODEL_FINISHED](\r\n state: IUserState,\r\n action: IAction\r\n ): IUserState {\r\n return {\r\n ...state,\r\n profile: {\r\n ...state.profile,\r\n email: action.payload!.informazioniUtente.email,\r\n privacy: action.payload!.informazioniUtente.privacy,\r\n idUtente: action.payload!.informazioniUtente.idUtente,\r\n } as UserModel,\r\n };\r\n }\r\n\r\n public [UserAction.REQUEST_SAVE_CONSENSI_USER_FINISHED](\r\n state: IUserState,\r\n action: IAction\r\n ): IUserState {\r\n console.log(\"reducer\");\r\n return {\r\n ...state,\r\n responseSalvaConsensi: action.payload!.esito,\r\n };\r\n }\r\n}\r\n","import BaseReducer from \"../../utilities/BaseReducer\";\r\nimport IAction from \"../../models/IAction\";\r\nimport LookUpAction from \"./LookUpAction\";\r\nimport ComuneModel from \"./models/ComuneModel\";\r\nimport ILookUpsState from \"./models/ILookUpsState\";\r\nimport TipoDocumentoModel from \"./models/TipoDocumentoModel\";\r\nimport CittadinanzaModel from \"./models/CittadinanzaModel\";\r\nimport NazioneModel from \"./models/NazioneModel\";\r\nimport TipoIndirizzoModel from \"./models/TipoIndirizzoModel\";\r\nimport AmministrazioneModel from \"./models/AmministrazioneModel\";\r\nimport TipoRichiedenteModel from \"stores/tipo-richiedente/models/TipoRichiedenteModel\";\r\nimport ConsensoPrivacyModel from \"stores/consenso-privacy/models/ConsensoPrivacyModel\";\r\nimport FondoModel from \"./models/FondoModel\";\r\nimport CqsOnlineTipoCodiceFiscaleModel from \"stores/cqsonline/models/CqsOnlineTipoCodiceFiscaleModel\";\r\nimport ModalitaErogazioneModel from \"./models/ModalitaErogazioneModel\";\r\nimport TipologiaPensioneModel from \"./models/TipologiaPensioneModel\";\r\nimport CategoriaAmministrativaModel from \"./models/CategoriaAmministrativaModel\";\r\nimport TipologiaImpegnoModel from \"./models/TipologiaImpegnoModel\";\r\nimport QuoteSocietaModel from \"./models/QuoteSocietaModel\";\r\nimport ImportoConIntermediariModel from \"./models/ImportoConIntermediariModel\";\r\nimport IstitutoFinanziarioModel from \"./models/IstitutoFinanziarioModel\";\r\n\r\nexport default class LookUpReducer extends BaseReducer {\r\n public readonly initialState: ILookUpsState = {\r\n consensoPrivacyItems: [] as ConsensoPrivacyModel[],\r\n tipoRichiedenteItems: [] as TipoRichiedenteModel[],\r\n comuneNascitaItems: [] as ComuneModel[],\r\n comuneResidenzaItems: [] as ComuneModel[],\r\n tipoDocumentoItems: [] as TipoDocumentoModel[],\r\n cittadinanzaItems: [] as CittadinanzaModel[],\r\n nazioneItems: [] as NazioneModel[],\r\n tipoIndirizzoItems: [] as TipoIndirizzoModel[],\r\n amministrazioneItems: [] as AmministrazioneModel[],\r\n fondoItems: [] as FondoModel[],\r\n tipoCodiceFiscaleItemsCqsOnline: [] as CqsOnlineTipoCodiceFiscaleModel[],\r\n modalitaErogazioneItems: [] as ModalitaErogazioneModel[],\r\n tipologiaPensioneItems: [] as TipologiaPensioneModel[],\r\n categoriaAmministrativaItems: [] as CategoriaAmministrativaModel[],\r\n tipologiaImpegnoItems: [] as TipologiaImpegnoModel[],\r\n vociAmministrazioneItems: [] as AmministrazioneModel[],\r\n quoteSocietaItems: [] as QuoteSocietaModel[],\r\n importiIntermediariItems: [] as ImportoConIntermediariModel[],\r\n istitutoFinanziarioItems: [] as IstitutoFinanziarioModel[],\r\n // qualificaItems: [] as QualificaModel[],\r\n };\r\n\r\n public [LookUpAction.REQUEST_CONSENSO_PRIVACY_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n consensoPrivacyItems: action.payload!,\r\n };\r\n }\r\n\r\n public [LookUpAction.REQUEST_TIPO_RICHIEDENTES_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n tipoRichiedenteItems: action.payload!,\r\n };\r\n }\r\n\r\n public [LookUpAction.REQUEST_COMUNE_NASCITA_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n comuneNascitaItems: action.payload!,\r\n };\r\n }\r\n\r\n public [LookUpAction.REQUEST_COMUNE_RESIDENZA_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n comuneResidenzaItems: action.payload!,\r\n };\r\n }\r\n\r\n public [LookUpAction.REQUEST_TIPO_DOCUMENTO_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n tipoDocumentoItems: action.payload!,\r\n };\r\n }\r\n\r\n public [LookUpAction.REQUEST_CITTADINANZA_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n cittadinanzaItems: action.payload!,\r\n };\r\n }\r\n\r\n public [LookUpAction.REQUEST_NAZIONE_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n nazioneItems: action.payload!,\r\n };\r\n }\r\n\r\n public [LookUpAction.REQUEST_TIPO_INDIRIZZO_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n tipoIndirizzoItems: action.payload!,\r\n };\r\n }\r\n\r\n public [LookUpAction.REQUEST_AMMINISTRAZIONE_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n amministrazioneItems: action.payload!,\r\n };\r\n }\r\n\r\n public [LookUpAction.REQUEST_FONDO_FINISHED](state: ILookUpsState, action: IAction): ILookUpsState {\r\n return {\r\n ...state,\r\n fondoItems: action.payload!,\r\n };\r\n }\r\n\r\n // #region CQSonline\r\n public [LookUpAction.REQUEST_TIPO_DOCUMENTO_CQSOL_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n tipoDocumentoItems: action.payload!,\r\n };\r\n }\r\n\r\n public [LookUpAction.REQUEST_TIPO_CODICE_FISCALE_CQSOL_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n tipoCodiceFiscaleItemsCqsOnline: action.payload!,\r\n };\r\n }\r\n\r\n public [LookUpAction.REQUEST_MODALITA_EROGAZIONE_CQSOL_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n modalitaErogazioneItems: action.payload!,\r\n };\r\n }\r\n\r\n public [LookUpAction.REQUEST_TIPOLOGIA_PENSIONE_CQSOL_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n tipologiaPensioneItems: action.payload!,\r\n };\r\n }\r\n\r\n public [LookUpAction.REQUEST_CATEGORIA_AMMINISTRATIVA_CQSOL_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n categoriaAmministrativaItems: action.payload!,\r\n };\r\n }\r\n\r\n public [LookUpAction.REQUEST_TIPOLOGIA_IMPEGNO_CQSOL_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n tipologiaImpegnoItems: action.payload!,\r\n };\r\n }\r\n\r\n public [LookUpAction.REQUEST_VOCI_AMMINISTRAZIONE_CONVENZIONE_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n vociAmministrazioneItems: action.payload!,\r\n };\r\n }\r\n\r\n public [LookUpAction.REQUEST_QUOTE_SOCIETARIE_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n quoteSocietaItems: action.payload!,\r\n };\r\n }\r\n\r\n public [LookUpAction.REQUEST_IMPORTI_INTERMEDIARI_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n importiIntermediariItems: action.payload!,\r\n };\r\n }\r\n\r\n public [LookUpAction.REQUEST_GET_CONSENSI_USER_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n consensoPrivacyItems: action.payload!,\r\n };\r\n }\r\n\r\n public [LookUpAction.REQUEST_ISTITUTO_FINANZIARIO_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n istitutoFinanziarioItems: action.payload!,\r\n };\r\n }\r\n\r\n // #endregion CQSonline\r\n\r\n //campo non necessario\r\n /* public [LookUpAction.REQUEST_QUALIFICA_FINISHED](\r\n state: ILookUpsState,\r\n action: IAction\r\n ): ILookUpsState {\r\n return {\r\n ...state,\r\n qualificaItems: action.payload!,\r\n };\r\n } */\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\n\r\nexport default class CqsOnlineRichiestaDettaglioDocumentoViewModel extends BaseModel {\r\n public readonly idDoc?: number = undefined;\r\n public readonly descrizione: string = \"\";\r\n public readonly macropratica: string = \"\";\r\n public readonly sottopratica: string = \"\";\r\n public readonly tipodocumentoCSE: string = \"\";\r\n public readonly uploadCompleto: boolean = false;\r\n public readonly path: string = \"\";\r\n public readonly chiaveDoc: string = \"\";\r\n public readonly tipoDocumento: number = 0;\r\n public readonly base64File: string = \"\";\r\n public readonly contentType: string = \"\";\r\n public readonly idDocConfigCqsOL: number = 0;\r\n public readonly idTipoDocumentoCqsOl?: number = undefined;\r\n public readonly tipoFirma: string = \"\";\r\n public readonly modalitaSblocco: string = \"\";\r\n public readonly nomeReportCdocx: string = \"\";\r\n public readonly idStampaCdocx?: number = undefined;\r\n public readonly file?: Blob = undefined;\r\n public readonly fgObbligatorio: string = \"\";\r\n\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import BaseReducer from \"../../utilities/BaseReducer\";\r\nimport IAction from \"../../models/IAction\";\r\nimport RichiestaModel from \"./models/RichiestaModel\";\r\nimport ResponseEsitoModel from \"stores/shared/models/ResponseEsitoModel\";\r\nimport RichiestaDatiAnagraficiRequestModel from \"./models/RichiestaDatiAnagraficiRequestModel\";\r\nimport RichiestaAltriPrestitiRequestModel from \"./models/RichiestaAltriPrestitiRequestModel\";\r\nimport RichiestaDocumentoViewModel from \"./models/RichiestaDocumentoViewModel\";\r\nimport IRichiestaState from \"./models/IRichiestaState\";\r\nimport RichiestaAction from \"./RichiestaAction\";\r\nimport RichiestaDatiRedditoRequestModel from \"./models/RichiestaDatiRedditoRequestModel\";\r\nimport RichiestaDocumentiViewModel from \"./models/RichiestaDocumentiViewModel\";\r\nimport ResponseStatoModel from \"../shared/models/ResponseStatoModel\";\r\nimport StatoProcessoFirmaDigitale from \"../../constants/StatoProcessoFirmaDigitale\";\r\nimport CqsOnlineRichiestaSezioneDocumentiViewModel from \"stores/cqsonline/models/CqsOnlineRichiestaSezioneDocumentiViewModel\";\r\nimport CqsOnlineRichiestaDettaglioDocumentoViewModel from \"stores/cqsonline/models/CqsOnlineRichiestaDettaglioDocumentoViewModel\";\r\nimport CqsOnlineStatoProcessoDocumentiDaFirmare from \"constants/CqsOnlineStatoProcessoDocumentiDaFirmare\";\r\nimport CqsOnlineRichiestaInfoSezionePreventivoViewModel from \"stores/cqsonline/models/CqsOnlineRichiestaInfoSezionePreventivoViewModel\";\r\nimport RichiestaConcludiRequestModel from \"./models/RichiestaConcludiRequestModel\";\r\nimport NuovoImpegnoModel from \"stores/preventivo/models/NuovoImpegnoModel\";\r\nimport RichiestaAdeguataVerificaRequestModel from \"./models/RichiestaAdeguataVerificaRequestModel\";\r\n\r\nexport default class RichiestaReducer extends BaseReducer {\r\n public readonly initialState: IRichiestaState = {\r\n corrente: new RichiestaModel({}),\r\n isRichiestaPresente: false,\r\n responseVerificaRichiesta: false,\r\n responseRichiesta: false,\r\n responseStepRichiesta: false,\r\n responseDatiAnagrafici: false,\r\n responseAdeguataVerifica: false,\r\n responseDatiReddito: false,\r\n responseAltriPrestiti: false,\r\n responseUploadDocumento: false,\r\n responseDownloadDocumento: false,\r\n responseDownloadPianoAmmortamento: false,\r\n responseAvviaProcessoFirmaDebole: false,\r\n responseAnnullaProcessoFirmaDebole: false,\r\n statoProcessoFirmaDebole: StatoProcessoFirmaDigitale.NonEsiste,\r\n responseAvviaProcessoFirmaForte: false,\r\n responseAnnullaProcessoFirmaForte: false,\r\n statoProcessoFirmaForte: StatoProcessoFirmaDigitale.NonEsiste,\r\n responseAvviaProcessoRiconoscimento: false,\r\n responseAnnullaProcessoRiconoscimento: false,\r\n statoProcessoRiconoscimento: StatoProcessoFirmaDigitale.NonEsiste,\r\n urlProcessoRiconoscimento: \"\",\r\n urlProcessoFirma: \"\",\r\n statoProcessoFirmaCqsOnline: CqsOnlineStatoProcessoDocumentiDaFirmare.DaAvviare,\r\n responseCheckPreventivo: false,\r\n msgCheckPreventivo: \"\",\r\n responseCancellaPreventivoRichiesta: false,\r\n msgCancellaPreventivoRichiesta: \"\",\r\n responseConcludi: false,\r\n altriPrestiti: [] as NuovoImpegnoModel[],\r\n responseTrasferisciConsensi: false,\r\n };\r\n\r\n public [RichiestaAction.VERIFICA_RICHIESTA_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n let idRichiesta = 0;\r\n if (action.payload) {\r\n idRichiesta = parseInt(action.payload!.infoEsito);\r\n if (isNaN(idRichiesta) === true || idRichiesta <= 0) {\r\n idRichiesta = 0;\r\n }\r\n }\r\n return {\r\n ...state,\r\n isRichiestaPresente: action.payload!.esito,\r\n corrente: new RichiestaModel({\r\n ...state.corrente,\r\n idRichiesta: idRichiesta,\r\n }),\r\n responseVerificaRichiesta: true,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_RICHIESTA_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n corrente: action.payload! as RichiestaModel,\r\n responseRichiesta: true,\r\n };\r\n }\r\n\r\n public [RichiestaAction.SAVE_STEP_RICHIESTA_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseStepRichiesta: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [RichiestaAction.DOWNLOAD_PIANO_AMMORTAMENTO_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseDownloadPianoAmmortamento: action.payload instanceof Blob ? true : false,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_DATI_ANAGRAFICI_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n corrente: {\r\n ...state.corrente,\r\n datiAnagrafici: action.payload! as RichiestaDatiAnagraficiRequestModel,\r\n } as RichiestaModel,\r\n };\r\n }\r\n\r\n public [RichiestaAction.SAVE_DATI_ANAGRAFICI_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseDatiAnagrafici: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_DATI_REDDITO_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n corrente: {\r\n ...state.corrente,\r\n datiReddito: action.payload! as RichiestaDatiRedditoRequestModel,\r\n } as RichiestaModel,\r\n };\r\n }\r\n public [RichiestaAction.SAVE_DATI_REDDITO_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseDatiReddito: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_ALTRI_PRESTITI_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n corrente: {\r\n ...state.corrente,\r\n altriPrestiti: action.payload! as RichiestaAltriPrestitiRequestModel,\r\n } as RichiestaModel,\r\n };\r\n }\r\n public [RichiestaAction.SAVE_ALTRI_PRESTITI_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseAltriPrestiti: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_DOCUMENTI_FIRMA_FORTE_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n const result = action.payload! as RichiestaDocumentoViewModel[];\r\n const documentiDaFirmare = result.filter((x) => x.tipoDocumento.fgDaGenerare === true);\r\n return {\r\n ...state,\r\n corrente: {\r\n ...state.corrente,\r\n documentiFirmaForte: {\r\n elenco: documentiDaFirmare,\r\n } as RichiestaDocumentiViewModel,\r\n } as RichiestaModel,\r\n };\r\n }\r\n\r\n public [RichiestaAction.UPLOAD_DOCUMENTO_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseUploadDocumento: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_AVVIA_PROCESSO_FIRMA_DEBOLE_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseAvviaProcessoFirmaDebole: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_ANNULLA_PROCESSO_FIRMA_DEBOLE_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseAnnullaProcessoFirmaDebole: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_STATO_PROCESSO_FIRMA_DEBOLE_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n let statoEnum = StatoProcessoFirmaDigitale.NonEsiste;\r\n const stato = action.payload!.stato;\r\n switch (stato) {\r\n case \"NON_ESISTE\":\r\n statoEnum = StatoProcessoFirmaDigitale.NonEsiste;\r\n break;\r\n case \"IN_CORSO\":\r\n statoEnum = StatoProcessoFirmaDigitale.InCorso;\r\n break;\r\n case \"ANNULLATO\":\r\n statoEnum = StatoProcessoFirmaDigitale.Annullato;\r\n break;\r\n case \"COMPLETATO\":\r\n statoEnum = StatoProcessoFirmaDigitale.Completato;\r\n break;\r\n }\r\n return {\r\n ...state,\r\n statoProcessoFirmaDebole: statoEnum,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_AVVIA_PROCESSO_FIRMA_FORTE_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseAvviaProcessoFirmaForte: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_ANNULLA_PROCESSO_FIRMA_FORTE_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseAnnullaProcessoFirmaForte: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_STATO_PROCESSO_FIRMA_FORTE_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n let statoEnum = StatoProcessoFirmaDigitale.NonEsiste;\r\n const stato = action.payload!.stato;\r\n switch (stato) {\r\n case \"NON_ESISTE\":\r\n statoEnum = StatoProcessoFirmaDigitale.NonEsiste;\r\n break;\r\n case \"IN_CORSO\":\r\n statoEnum = StatoProcessoFirmaDigitale.InCorso;\r\n break;\r\n case \"ANNULLATO\":\r\n statoEnum = StatoProcessoFirmaDigitale.Annullato;\r\n break;\r\n case \"COMPLETATO\":\r\n statoEnum = StatoProcessoFirmaDigitale.Completato;\r\n break;\r\n }\r\n return {\r\n ...state,\r\n statoProcessoFirmaForte: statoEnum,\r\n urlProcessoFirma: action.payload?.infoStato ?? \"\",\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_AVVIA_PROCESSO_RICONOSCIMENTO_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseAvviaProcessoRiconoscimento: action.payload!.esito,\r\n };\r\n }\r\n\r\n /* public [RichiestaAction.REQUEST_ANNULLA_PROCESSO_RICONOSCIMENTO_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseAnnullaProcessoRiconoscimento: action.payload!.esito,\r\n };\r\n }\r\n */\r\n /* public [RichiestaAction.REQUEST_STATO_PROCESSO_RICONOSCIMENTO_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n let statoEnum = StatoProcessoFirmaDigitale.NonEsiste;\r\n const stato = action.payload!.stato;\r\n switch (stato) {\r\n case \"NON_ESISTE\":\r\n statoEnum = StatoProcessoFirmaDigitale.NonEsiste;\r\n break;\r\n case \"IN_CORSO\":\r\n statoEnum = StatoProcessoFirmaDigitale.InCorso;\r\n break;\r\n case \"ANNULLATO\":\r\n statoEnum = StatoProcessoFirmaDigitale.Annullato;\r\n break;\r\n case \"COMPLETATO\":\r\n statoEnum = StatoProcessoFirmaDigitale.Completato;\r\n break;\r\n }\r\n return {\r\n ...state,\r\n statoProcessoRiconoscimento: statoEnum,\r\n urlProcessoRiconoscimento: action.payload!.infoStato,\r\n };\r\n } */\r\n // #region CQS online\r\n public [RichiestaAction.REQUEST_DOCUMENTI_DA_CARICARE_CQSOL_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n corrente: {\r\n ...state.corrente,\r\n documentiDaCaricare: action.payload!,\r\n } as RichiestaModel,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_DOCUMENTI_DA_FIRMARE_CQSOL_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n corrente: {\r\n ...state.corrente,\r\n documentiDaFirmare: action.payload!.map((sezione) => {\r\n return new CqsOnlineRichiestaSezioneDocumentiViewModel({\r\n ...sezione,\r\n infoSezione: new CqsOnlineRichiestaInfoSezionePreventivoViewModel({\r\n ...sezione.infoSezione,\r\n }),\r\n });\r\n }),\r\n } as RichiestaModel,\r\n };\r\n }\r\n\r\n public [RichiestaAction.UPLOAD_DOCUMENTO_CQSOL_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n const filePath = action.payload!.infoEsito;\r\n const partFileName = filePath.split(\".\")[0].split(\"-\");\r\n const fileName = partFileName[2];\r\n return {\r\n ...state,\r\n responseUploadDocumento: action.payload!.esito,\r\n corrente: {\r\n ...state.corrente,\r\n documentiDaCaricare: state.corrente.documentiDaCaricare?.map((sez) => {\r\n return new CqsOnlineRichiestaSezioneDocumentiViewModel({\r\n ...sez,\r\n documenti: sez.documenti?.map((doc) => {\r\n if ((doc.idDocConfigCqsOL?.toString() ?? \"\") + doc.tipoDocumento.toString() === fileName) {\r\n return new CqsOnlineRichiestaDettaglioDocumentoViewModel({\r\n ...doc,\r\n path: filePath,\r\n });\r\n }\r\n return doc;\r\n }),\r\n });\r\n }),\r\n } as RichiestaModel,\r\n };\r\n }\r\n\r\n public [RichiestaAction.SAVE_SEZIONE_DOCUMENTI_CQSOL_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n };\r\n }\r\n\r\n public [RichiestaAction.DOWNLOAD_DOCUMENTO_CQSOL_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseDownloadDocumento: action.payload instanceof Blob ? true : false,\r\n };\r\n }\r\n\r\n public [RichiestaAction.DELETE_DOCUMENTO_CQSOL_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n corrente: {\r\n ...state.corrente,\r\n documentiDaCaricare: state.corrente.documentiDaCaricare?.map((s) => {\r\n return {\r\n ...s,\r\n documenti: s.documenti?.map((d) => {\r\n if (d.idDoc === Number(action.payload?.infoEsito)) {\r\n let result = new CqsOnlineRichiestaDettaglioDocumentoViewModel({\r\n ...d,\r\n idDoc: 0,\r\n chiaveDoc: \"\",\r\n contentType: \"\",\r\n base64File: \"\",\r\n uploadCompleto: false,\r\n });\r\n return result;\r\n } else {\r\n return d;\r\n }\r\n }),\r\n } as CqsOnlineRichiestaSezioneDocumentiViewModel;\r\n }),\r\n } as RichiestaModel,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_AVVIA_PROCESSO_FIRMA_CQSOL_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseAvviaProcessoFirmaDebole: action.payload!.esito,\r\n urlProcessoFirma: action.payload!.infoEsito,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_ANNULLA_PROCESSO_FIRMA_CQSOL_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseAnnullaProcessoFirmaDebole: action.payload!.esito,\r\n urlProcessoFirma: action.payload!.infoEsito,\r\n };\r\n }\r\n public [RichiestaAction.REQUEST_STATO_FIRMA_CQSOL_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n let statoEnum = CqsOnlineStatoProcessoDocumentiDaFirmare.DaAvviare;\r\n const stato = action.payload!.stato;\r\n switch (stato) {\r\n case \"NON_ESISTE\":\r\n statoEnum = CqsOnlineStatoProcessoDocumentiDaFirmare.DaAvviare;\r\n break;\r\n case \"IN_CORSO\":\r\n statoEnum = CqsOnlineStatoProcessoDocumentiDaFirmare.InCorso;\r\n break;\r\n case \"COMPLETATO\":\r\n statoEnum = CqsOnlineStatoProcessoDocumentiDaFirmare.Completato;\r\n break;\r\n }\r\n return {\r\n ...state,\r\n statoProcessoFirmaCqsOnline: statoEnum,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_AVVIA_PROCESSO_RICONOSCIMENTO_CQSOL_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseAvviaProcessoRiconoscimento: action.payload!.esito,\r\n urlProcessoRiconoscimento: action.payload!.infoEsito,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_ANNULLA_PROCESSO_RICONOSCIMENTO_CQSOL_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseAnnullaProcessoRiconoscimento: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_STATO_PROCESSO_RICONOSCIMENTO_CQSOL_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n let statoEnum = StatoProcessoFirmaDigitale.NonEsiste;\r\n const stato = action.payload!.stato;\r\n switch (stato) {\r\n case \"NON_ESISTE\":\r\n statoEnum = StatoProcessoFirmaDigitale.NonEsiste;\r\n break;\r\n case \"IN_CORSO\":\r\n statoEnum = StatoProcessoFirmaDigitale.InCorso;\r\n break;\r\n case \"ANNULLATO\":\r\n statoEnum = StatoProcessoFirmaDigitale.Annullato;\r\n break;\r\n case \"COMPLETATO\":\r\n statoEnum = StatoProcessoFirmaDigitale.Completato;\r\n break;\r\n }\r\n return {\r\n ...state,\r\n statoProcessoRiconoscimento: statoEnum,\r\n urlProcessoRiconoscimento: action.payload!.infoStato,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_CHECK_PREVENTIVO_CQSOL_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseCheckPreventivo: action.payload!.esito,\r\n msgCheckPreventivo: action.payload!.infoEsito,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_CANCELLA_PREVENTIVO_RICHIESTA_CQSOL_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseCancellaPreventivoRichiesta: action.payload!.esito,\r\n msgCancellaPreventivoRichiesta: action.payload!.infoEsito,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_DOCUMENTI_ISTRUTTORIA_DA_FIRMARE_CQSOL_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n corrente: {\r\n ...state.corrente,\r\n documentiDaFirmareIstruttoria: action.payload!,\r\n } as RichiestaModel,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_CONCLUDI_DICHIARAZIONI_CQSOL_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n corrente: {\r\n ...state.corrente,\r\n concludi: action.payload!,\r\n } as RichiestaModel,\r\n };\r\n }\r\n\r\n public [RichiestaAction.SAVE_CONCLUDI_DICHIARAZIONI_CQSOL_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseConcludi: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_IMPEGNI_CQSOL_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n altriPrestiti: action.payload!.map((imp) => {\r\n return {\r\n ...imp,\r\n fgPresenzaDati: imp.rata > 0 ? \"S\" : \"N\",\r\n };\r\n }) as NuovoImpegnoModel[],\r\n };\r\n }\r\n\r\n public [RichiestaAction.SAVE_IMPEGNI_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n // console.log(\"Reducer \" , state);\r\n return {\r\n ...state,\r\n responseAltriPrestiti: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_ADEGUATA_VERIFICA_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n corrente: {\r\n ...state.corrente,\r\n adeguataVerifica: action.payload! as RichiestaAdeguataVerificaRequestModel,\r\n } as RichiestaModel,\r\n };\r\n }\r\n\r\n public [RichiestaAction.REQUEST_SAVE_ADEGUATA_VERIFICA_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseAdeguataVerifica: action.payload!.esito ?? true,\r\n };\r\n }\r\n public [RichiestaAction.DELETE_IMPEGNI_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseAltriPrestiti: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [RichiestaAction.TRASFERISCI_DOC_CONSENSI_CQSWEB_FINISHED](\r\n state: IRichiestaState,\r\n action: IAction\r\n ): IRichiestaState {\r\n return {\r\n ...state,\r\n responseTrasferisciConsensi: action.payload!.esito,\r\n };\r\n }\r\n\r\n // #endregion CQS online\r\n\r\n //metodi non necessari\r\n // public [RichiestaAction.DOWNLOAD_DOCUMENTO_FINISHED](\r\n // state: IRichiestaState,\r\n // action: IAction\r\n // ): IRichiestaState {\r\n // return {\r\n // ...state,\r\n // responseDownloadDocumento: action.payload instanceof Blob ? true : false,\r\n // };\r\n // }\r\n\r\n // public [RichiestaAction.DELETE_DOCUMENTO_FINISHED](\r\n // state: IRichiestaState,\r\n // action: IAction\r\n // ): IRichiestaState {\r\n // return {\r\n // ...state,\r\n // corrente: {\r\n // ...state.corrente,\r\n // documentiDaCaricare: {\r\n // elenco: state.corrente.documentiDaCaricare?.elenco?.map((d) => {\r\n // if (d.idDocumento === Number(action.payload?.infoEsito)) {\r\n // let result = new RichiestaDocumentoViewModel({\r\n // tipoDocumento: new RichiestaTipoDocumentoViewModel({ ...d.tipoDocumento }),\r\n // });\r\n // return result;\r\n // } else {\r\n // return d;\r\n // }\r\n // }),\r\n // } as RichiestaDocumentiViewModel,\r\n // } as RichiestaModel,\r\n // };\r\n // }\r\n}\r\n","import BaseReducer from \"../../utilities/BaseReducer\";\r\nimport IAction from \"../../models/IAction\";\r\nimport ResponseEsitoModel from \"stores/shared/models/ResponseEsitoModel\";\r\nimport PraticaAction from \"./PraticaAction\";\r\nimport IPraticaState from \"./models/IPraticaState\";\r\nimport PraticaInfoPraticaRequestModel from \"./models/PraticaInfoPraticaRequestModel\";\r\n\r\nexport default class PraticaReducer extends BaseReducer {\r\n public readonly initialState: IPraticaState = {\r\n responseCreaPratica: false,\r\n pratica: new PraticaInfoPraticaRequestModel({}),\r\n };\r\n\r\n public [PraticaAction.REQUEST_CREA_PRATICA_CQSOL_FINISHED](\r\n state: IPraticaState,\r\n action: IAction\r\n ): IPraticaState {\r\n return {\r\n ...state,\r\n responseCreaPratica: action.payload!.esito,\r\n };\r\n }\r\n\r\n public [PraticaAction.REQUEST_INFO_PRATICA_CQSOL_FINISHED](\r\n state: IPraticaState,\r\n action: IAction\r\n ): IPraticaState {\r\n return {\r\n ...state,\r\n pratica: {\r\n ...action.payload!,\r\n } as PraticaInfoPraticaRequestModel,\r\n };\r\n }\r\n}\r\n","import BaseReducer from \"../../utilities/BaseReducer\";\r\nimport IAction from \"../../models/IAction\";\r\nimport ConfigurationAction from \"./ConfigurationAction\";\r\nimport IConfigurationState from \"./models/IConfigurationState\";\r\nimport ConfigurationModel from \"./models/ConfigurationModel\";\r\n\r\nexport default class ConfigurationReducer extends BaseReducer {\r\n public readonly initialState: IConfigurationState = {\r\n getconfiguration: new ConfigurationModel({}),\r\n };\r\n\r\n public [ConfigurationAction.REQUEST_GET_CONFIGURAZIONE_FINISHED](\r\n state: IConfigurationState,\r\n action: IAction\r\n ): IConfigurationState {\r\n return {\r\n ...state,\r\n getconfiguration: action.payload!,\r\n };\r\n }\r\n}\r\n","enum ToastStatusEnum {\r\n Error = \"error\",\r\n Warning = \"warning\",\r\n Success = \"success\",\r\n}\r\n\r\nexport default ToastStatusEnum;\r\n","import { Dispatch, Middleware, MiddlewareAPI } from \"redux\";\r\nimport IStore from \"../models/IStore\";\r\nimport IAction from \"../models/IAction\";\r\n\r\nconst errorToastMiddleware = (): Middleware => (store: MiddlewareAPI) => (next: Dispatch) => (\r\n action: IAction\r\n): void => {\r\n // if (action.error) {\r\n // const errorAction = action as Required>;\r\n\r\n // const errorObj = errorAction.payload.raw.data;\r\n // const rootMsg = i18n.t(\"GLOBAL_SERVER_ERROR_\" + errorObj?.code);\r\n\r\n // next(ToastsAction.add(rootMsg, ToastStatusEnum.Error, JSON.stringify(errorObj)));\r\n // }\r\n\r\n // if(action.type === 'UserAction.REQUEST_LOGIN_USER_FINISHED' && !action.error){\r\n // next(ToastsAction.add(\"Accesso effettuato correttamente\", ToastStatusEnum.Success, \"\"));\r\n // }\r\n\r\n next(action);\r\n};\r\n\r\nexport default errorToastMiddleware;\r\n","import { Dispatch, Middleware } from \"redux\";\r\nimport IAction from \"../models/IAction\";\r\nimport UserAction from \"stores/user/UserAction\";\r\nimport RouteEnum from \"constants/RouteEnum\";\r\n\r\nconst userLoggedMiddleware = (): Middleware => () => (next: Dispatch) => (action: IAction): void => {\r\n if (action.type === \"@@router/LOCATION_CHANGE\") {\r\n let required = false;\r\n switch (action.payload?.location?.pathname ?? \"\") {\r\n case RouteEnum().ACCESSO_EFFETTUATO:\r\n case RouteEnum().DASHBOARD:\r\n case RouteEnum().RICHIESTA:\r\n //TODO redirect if not logged\r\n required = true;\r\n break;\r\n }\r\n // get token from sessionStorage and set isLogged and isLoginRequired\r\n next(UserAction.setUserLoginRequired(required));\r\n }\r\n\r\n next(action);\r\n};\r\n\r\nexport default userLoggedMiddleware;\r\n","import { Dispatch, Middleware, MiddlewareAPI } from \"redux\";\r\nimport IAction from \"../models/IAction\";\r\nimport UserAction from \"stores/user/UserAction\";\r\nimport ValidationUtility from \"utilities/ValidationUtility\";\r\nimport IStore from \"models/IStore\";\r\n\r\nconst cookieConsentMiddleware = (): Middleware => (store: MiddlewareAPI) => (next: Dispatch) => (\r\n action: IAction\r\n): void => {\r\n if (store.getState().user.profile.isCookieAllowed === false) {\r\n const cookieValue = ValidationUtility.getCookie(\"ecq-cookie-consent\");\r\n const consent = cookieValue === \"true\";\r\n if (consent === true) {\r\n next(UserAction.setCookieConsent(consent));\r\n }\r\n }\r\n\r\n next(action);\r\n};\r\n\r\nexport default cookieConsentMiddleware;\r\n","import { applyMiddleware, createStore, Middleware, Store } from \"redux\";\r\nimport thunk from \"redux-thunk\";\r\nimport { composeWithDevTools } from \"redux-devtools-extension/logOnlyInProduction\";\r\nimport { routerMiddleware } from \"connected-react-router\";\r\nimport { History } from \"history\";\r\nimport reduxFreeze from \"redux-freeze\";\r\nimport environment from \"environment\";\r\nimport rootReducer from \"./rootReducer\";\r\nimport IStore from \"../models/IStore\";\r\nimport errorToastMiddleware from \"../middlewares/errorToastMiddleware\";\r\nimport userLoggedMiddleware from \"middlewares/userLoggedMiddleware\";\r\nimport cookieConsentMiddleware from \"middlewares/cookieConsentMiddleware\";\r\n\r\nexport default (initialState: Partial, history: History): Store => {\r\n const middleware: Middleware[] = [\r\n environment.isDevelopment ? reduxFreeze : null!,\r\n thunk,\r\n routerMiddleware(history),\r\n errorToastMiddleware(),\r\n userLoggedMiddleware(),\r\n cookieConsentMiddleware(),\r\n ].filter(Boolean);\r\n\r\n const store: Store = createStore(\r\n rootReducer(history),\r\n initialState as any,\r\n composeWithDevTools(applyMiddleware(...middleware))\r\n );\r\n\r\n return store;\r\n};\r\n","import { combineReducers, Reducer, ReducersMapObject } from \"redux\";\r\nimport { connectRouter } from \"connected-react-router\";\r\nimport { History } from \"history\";\r\nimport IStore from \"../models/IStore\";\r\nimport RequestingReducer from \"./requesting/RequestingReducer\";\r\nimport ErrorReducer from \"./error/ErrorReducer\";\r\nimport ToastsReducer from \"./toasts/ToastsReducer\";\r\nimport MenuReducer from \"./menu/MenuReducer\";\r\nimport ContentsReducer from \"./contents/ContentsReducer\";\r\nimport PreventivoReducer from \"./preventivo/PreventivoReducer\";\r\nimport UserReducer from \"./user/UserReducer\";\r\nimport LookUpReducer from \"./lookup/LookUpReducer\";\r\nimport RichiestaReducer from \"./richiesta/RichiestaReducer\";\r\nimport PraticaReducer from \"./pratica/PraticaReducer\";\r\nimport ConfigurationReducer from \"./configuration/ConfigurationReducer\";\r\n\r\nexport default (history: History): Reducer => {\r\n const reducerMap: ReducersMapObject = {\r\n error: ErrorReducer.reducer,\r\n requesting: RequestingReducer.reducer,\r\n router: connectRouter(history) as any,\r\n toasts: new ToastsReducer().reducer,\r\n menu: new MenuReducer().reducer,\r\n contents: new ContentsReducer().reducer,\r\n user: new UserReducer().reducer,\r\n preventivo: new PreventivoReducer().reducer,\r\n richiesta: new RichiestaReducer().reducer,\r\n lookups: new LookUpReducer().reducer,\r\n pratica: new PraticaReducer().reducer,\r\n configuration: new ConfigurationReducer().reducer,\r\n };\r\n\r\n return combineReducers(reducerMap);\r\n};\r\n","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport IStore from \"../../../models/IStore\";\r\nimport { ReduxProps } from \"../../../models/ReduxProps\";\r\nimport ToastStatusEnum from \"../../../constants/ToastStatusEnum\";\r\nimport IToast from \"../../../stores/toasts/models/IToast\";\r\nimport ToastsAction from \"../../../stores/toasts/ToastsAction\";\r\nimport { Toast } from \"react-bootstrap\";\r\nimport i18n from \"i18n\";\r\n\r\ninterface IProps {\r\n readonly item: IToast;\r\n}\r\ninterface IState {\r\n show: boolean;\r\n showDetails: boolean;\r\n}\r\ninterface IStateToProps {}\r\n\r\nconst mapStateToProps = (state: IStore, ownProps: IProps): IStateToProps => ({});\r\n\r\nclass ToastCard extends React.Component, IState> {\r\n constructor(props: IProps & IStateToProps & ReduxProps) {\r\n super(props);\r\n this.state = {\r\n show: true,\r\n showDetails: false,\r\n } as IState;\r\n }\r\n\r\n private hasUnmounted = false;\r\n\r\n public componentWillUnmount() {\r\n this.hasUnmounted = true;\r\n }\r\n\r\n private setShow = (show: boolean) => {\r\n if (this.hasUnmounted === false) {\r\n this.setState({ show });\r\n }\r\n };\r\n\r\n private toggleShow = () => {\r\n this.setShow(!this.state.show);\r\n this.props.dispatch(ToastsAction.removeById(this.props.item.id));\r\n };\r\n\r\n private getVariant = (type: ToastStatusEnum) => {\r\n switch (type) {\r\n case ToastStatusEnum.Success:\r\n return \"bg-success\";\r\n case ToastStatusEnum.Warning:\r\n return \"bg-warning\";\r\n case ToastStatusEnum.Error:\r\n return \"bg-danger\";\r\n }\r\n };\r\n\r\n private getTitle = (type: ToastStatusEnum) => {\r\n switch (type) {\r\n case ToastStatusEnum.Success:\r\n return i18n.t(\"global_error_confirm\");\r\n case ToastStatusEnum.Warning:\r\n return i18n.t(\"global_error_warning\");\r\n case ToastStatusEnum.Error:\r\n return i18n.t(\"global_error_errore\");\r\n }\r\n };\r\n\r\n public render(): JSX.Element {\r\n const { item } = this.props;\r\n\r\n return (\r\n \r\n \r\n {this.getTitle(item.type)}\r\n \r\n {item.message}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport { ToastCard as Unconnected };\r\nexport default connect(mapStateToProps)(ToastCard);\r\n","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { ReduxProps } from \"../../../models/ReduxProps\";\r\nimport IStore from \"../../../models/IStore\";\r\nimport IToast from \"../../../stores/toasts/models/IToast\";\r\nimport ToastCard from \"../toast-card/ToastCard\";\r\n\r\ninterface IProps {}\r\ninterface IState {}\r\ninterface IStateToProps {\r\n readonly toasts: IToast[];\r\n}\r\n\r\nconst mapStateToProps = (state: IStore, ownProps: IProps): IStateToProps => ({\r\n toasts: state.toasts.items,\r\n});\r\n\r\nclass Toasts extends React.Component, IState> {\r\n public render(): JSX.Element | null {\r\n const { toasts } = this.props;\r\n\r\n if (toasts.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n {toasts.map((model: IToast) => (\r\n \r\n ))}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport { Toasts as Unconnected };\r\nexport default connect(mapStateToProps)(Toasts);\r\n","import { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { push } from \"connected-react-router\";\r\nimport RouteEnum from \"constants/RouteEnum\";\r\nimport i18n from \"i18n\";\r\nimport IAction from \"models/IAction\";\r\nimport React from \"react\";\r\nimport { Col, Row } from \"react-bootstrap\";\r\nimport { DispatchProp, connect } from \"react-redux\";\r\nimport ErrorAction from \"stores/error/ErrorAction\";\r\nimport IErrorState from \"stores/error/models/IErrorState\";\r\nimport UserAction from \"stores/user/UserAction\";\r\nimport IStore from \"../../../models/IStore\";\r\nimport { ReduxProps } from \"../../../models/ReduxProps\";\r\nimport BaseButton from \"../base-form/BaseButton\";\r\nimport BaseModal from \"../base-form/BaseModal\";\r\n\r\ninterface IProps {}\r\n\r\ninterface IState {\r\n showDetails: boolean;\r\n showUserUnauthorizedAlert: boolean;\r\n}\r\ninterface IStateToProps {\r\n readonly errors: IErrorState;\r\n readonly hasErrors: boolean;\r\n readonly hasDetails: boolean;\r\n readonly showUserUnauthorizedAlert: boolean;\r\n}\r\n\r\nconst mapStateToProps = (state: IStore): IStateToProps => ({\r\n errors: state.error,\r\n hasErrors: checkIfHasErrors(state.error),\r\n hasDetails: checkIfHasDetails(state.error),\r\n showUserUnauthorizedAlert: checkIfLoginRequiredOrUnauthorized(\r\n state.user.profile.isLoginRequired,\r\n state.user.profile.isLogged,\r\n state.error\r\n ),\r\n});\r\n\r\nconst checkIfHasErrors = (errors: IErrorState) => {\r\n let result = false;\r\n if (Object.keys(errors).length > 0) {\r\n // console.log(\"checkIfHasErrors result \" + Object.keys(errors).length);\r\n Object.keys(errors).forEach((error) => {\r\n const errorObj = errors[error].raw?.data;\r\n console.log(\"errorObj?.code \" + errorObj?.code ?? \"\");\r\n if (errorObj && parseInt(errorObj.status) !== 500 && Object.keys(errors).length > 0) {\r\n console.log(\"errorObj?.code \" + errorObj?.code ?? \"\");\r\n result = true;\r\n }\r\n });\r\n // console.log(\"checkIfHasErrors result \" + result);\r\n }\r\n\r\n return result;\r\n};\r\n\r\nconst checkIfHasDetails = (errors: IErrorState) => {\r\n let result = false;\r\n Object.keys(errors).forEach((error) => {\r\n const errorObj = errors[error].raw?.data;\r\n if (errorObj && (errorObj.detail || errorObj.additionalErrors)) {\r\n result = true;\r\n }\r\n });\r\n return result;\r\n};\r\n\r\nconst checkIfUnauthorized = (errors: IErrorState) => {\r\n let result = false;\r\n Object.keys(errors).forEach((error) => {\r\n const errorObj = errors[error].raw?.data;\r\n if (errorObj && parseInt(errorObj.status) === 401) {\r\n //console.log(\"checkIfUnauthorized result true\");\r\n result = true;\r\n }\r\n });\r\n // console.log(\"checkIfUnauthorized result \" + result);\r\n return result;\r\n};\r\n\r\nconst checkIfLoginRequiredOrUnauthorized = (isLoginRequired: boolean, isLogged: boolean, errors: IErrorState) => {\r\n if (isLoginRequired === true && isLogged === false) {\r\n // console.log(\"checkIfLoginRequiredOrUnauthorized result true\");\r\n return true;\r\n } else {\r\n return checkIfUnauthorized(errors);\r\n }\r\n};\r\n\r\nconst showErrorDetail = (errorObj: any) => (\r\n <>\r\n {errorObj?.detail ? : null}\r\n {errorObj?.title ? (\r\n
    \r\n
  • {errorObj?.title ? errorObj.title : \"\"}
  • ;\r\n
\r\n ) : null}\r\n\r\n {errorObj?.additionalErrors ? (\r\n
    \r\n {errorObj?.additionalErrors.map(function (item: any, i: number) {\r\n return
  • {item?.code ? i18n.t(\"GLOBAL_SERVER_ERROR_\" + item?.code) : \"\"}
  • ;\r\n })}\r\n
\r\n ) : null}\r\n \r\n);\r\n\r\nclass ErrorViewer extends React.Component>, IState> {\r\n constructor(props: IProps & IStateToProps & ReduxProps) {\r\n super(props);\r\n this.state = {\r\n showDetails: false,\r\n } as IState;\r\n }\r\n\r\n private hasUnmounted = false;\r\n\r\n public componentWillUnmount() {\r\n this.hasUnmounted = true;\r\n }\r\n\r\n private setShowDetails = (showDetails: boolean) => {\r\n if (this.hasUnmounted === false) {\r\n this.setState({ ...this.state, showDetails });\r\n }\r\n };\r\n\r\n private toggleShowDetails = () => {\r\n this.setShowDetails(!this.state.showDetails);\r\n };\r\n\r\n private close = () => {\r\n // alla chiusura dell'overlay di errore vengono eliminati tutti gli errori dallo state\r\n this.props.dispatch(ErrorAction.clearAll());\r\n if (this.props.showUserUnauthorizedAlert === true) {\r\n this.props.dispatch(UserAction.setUserLogout());\r\n this.props.dispatch(push(RouteEnum().ACCESSO));\r\n }\r\n };\r\n\r\n public render(): JSX.Element {\r\n const { errors, hasErrors, hasDetails, showUserUnauthorizedAlert } = this.props;\r\n const { showDetails } = this.state;\r\n\r\n return (\r\n <>\r\n \r\n {i18n.t(\"global_error_unauthorized\")}\r\n \r\n }\r\n body={\r\n \r\n {i18n.t(\"global_error_unauthorized_message\")}\r\n \r\n }\r\n footer={\r\n \r\n }\r\n />\r\n \r\n {i18n.t(\"global_error_errore\")}\r\n \r\n }\r\n body={\r\n \r\n \r\n {Object.keys(errors).map(function (key) {\r\n const errorObj = errors[key].raw?.data;\r\n return (\r\n
\r\n {errorObj?.code === \"DUPLICATE_EMAIL\" ? (\r\n <>\r\n \r\n {showDetails ?
{showErrorDetail(errorObj)}
: null}\r\n \r\n ) : (\r\n <>\r\n \r\n {/*showDetails ?
{showErrorDetail(errorObj)}
: null*/}\r\n \r\n )}\r\n
\r\n );\r\n })}\r\n \r\n
\r\n }\r\n footerClassName={hasDetails ? \"d-flex justify-content-center\" : undefined}\r\n footer={\r\n <>\r\n {hasDetails ? (\r\n \r\n ) : null}\r\n \r\n \r\n }\r\n />\r\n \r\n );\r\n }\r\n}\r\n\r\nexport { ErrorViewer as Unconnected };\r\nexport default connect(mapStateToProps)(ErrorViewer);\r\n","import React, { lazy } from \"react\";\r\nimport { connect, DispatchProp } from \"react-redux\";\r\nimport IAction from \"../../../models/IAction\";\r\nimport IStore from \"../../../models/IStore\";\r\nimport MenuModel from \"stores/menu/models/MenuModel\";\r\nimport { Route, Switch } from \"react-router-dom\";\r\nimport MenuAction from \"stores/menu/MenuAction\";\r\nimport { selectRequesting } from \"selectors/requesting/RequestingSelector\";\r\nimport RouteEnum from \"constants/RouteEnum\";\r\n\r\nconst BaseContent = lazy(() => import(\"views/components/base-content/BaseContent\"));\r\nconst PrivacyPage = lazy(() => import(\"views/privacy/PrivacyPage\"));\r\nconst NotFoundPage = lazy(() => import(\"views/not-found-page/NotFoundPage\"));\r\nconst PreventivoPage = lazy(() => import(\"views/preventivo-page/PreventivoPage\"));\r\nconst AccessoRegistrazionePage = lazy(() => import(\"views/accesso-registrazione-page/AccessoRegistrazionePage\"));\r\nconst AccessoPage = lazy(() => import(\"views/accesso-page/AccessoPage\"));\r\nconst AccessoEffettuatoPage = lazy(() => import(\"views/accesso-effettuato-page/AccessoEffettuatoPage\"));\r\nconst RegistrazioneConfermaEmailPage = lazy(\r\n () => import(\"views/registrazione-conferma-email-page/RegistrazioneConfermaEmailPage\")\r\n);\r\nconst RegistrazioneEffettuataPage = lazy(\r\n () => import(\"views/registrazione-effettuata-page/RegistrazioneEffettuataPage\")\r\n);\r\nconst DashboardPage = lazy(() => import(\"views/dashboard-page/DashboardPage\"));\r\nconst RichiestaPage = lazy(() => import(\"views/richiesta-page/RichiestaPage\"));\r\nconst RecuperoPasswordPage = lazy(() => import(\"views/recupero-password-page/RecuperoPasswordPage\"));\r\nconst CambioPasswordPage = lazy(() => import(\"views/cambio-password-page/CambioPasswordPage\"));\r\nconst DocumentiIstruttoriaPage = lazy(() => import(\"views/documenti-istruttoria-page/DocumentiIstruttoriaPage\"));\r\nconst RichiestaPreventivoPage = lazy(() => import(\"views/richiesta-preventivo-page/RichiestaPreventivoPage\"));\r\nconst HomePage = lazy(() => import(\"views/home-page/HomePage\"))\r\ninterface IProps {}\r\ninterface IState {\r\n readonly sitePaths: MenuModel[];\r\n}\r\ninterface IStateToProps {\r\n readonly isRequesting: boolean;\r\n readonly sitePaths: MenuModel[];\r\n}\r\n\r\nconst mapStateToProps = (state: IStore, ownProps: IProps): IStateToProps => ({\r\n isRequesting: selectRequesting(state, [MenuAction.REQUEST_PATHS]),\r\n sitePaths: state.menu.sitePaths,\r\n});\r\n\r\nclass BasePath extends React.Component>, IState> {\r\n constructor(props: IProps & IStateToProps & DispatchProp>) {\r\n super(props);\r\n this.state = {\r\n sitePaths: [],\r\n } as IState;\r\n }\r\n\r\n private hasUnmounted = false;\r\n\r\n public componentDidMount() {\r\n this.setLookupsAndViewModel();\r\n }\r\n\r\n public componentWillUnmount() {\r\n this.hasUnmounted = true;\r\n }\r\n\r\n private setLookupsAndViewModel = async () => {\r\n let sitePaths: MenuModel[] = await this.props.dispatch(MenuAction.requestPaths());\r\n if (this.hasUnmounted === false) {\r\n this.setState({\r\n sitePaths: sitePaths,\r\n });\r\n }\r\n };\r\n\r\n public render(): JSX.Element {\r\n const { sitePaths } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {sitePaths && sitePaths.length > 0\r\n ? sitePaths.map((sitePath) => (\r\n (\r\n \r\n )}\r\n />\r\n ))\r\n : null}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport { BasePath as Unconnected };\r\nexport default connect(mapStateToProps)(BasePath);\r\n","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { ReduxProps } from \"../../../models/ReduxProps\";\r\nimport IStore from \"../../../models/IStore\";\r\nimport ConfigurationAction from \"stores/configuration/ConfigurationAction\";\r\n\r\ninterface IProps {}\r\ninterface IState {}\r\ninterface IStateToProps {\r\n readonly analyticsUID: string;\r\n readonly campiBoxPreventivo: boolean;\r\n}\r\n\r\nconst mapStateToProps = (state: IStore, ownProps: IProps): IStateToProps => ({\r\n analyticsUID: state.configuration.getconfiguration.analyticsUID ?? \"\",\r\n campiBoxPreventivo: state.configuration.getconfiguration.campiBoxPreventivo ?? false,\r\n});\r\n\r\nclass Configuration extends React.Component, IState> {\r\n public componentDidMount(): void {\r\n this.props.dispatch(ConfigurationAction.getConfigurazione());\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n return null;\r\n }\r\n}\r\n\r\nexport { Configuration as Unconnected };\r\nexport default connect(mapStateToProps)(Configuration);\r\n","import React, { Suspense, lazy } from \"react\";\r\nimport { History } from \"history\";\r\nimport { ConnectedRouter } from \"connected-react-router\";\r\nimport { Dispatch } from \"redux\";\r\nimport IAction from \"../models/IAction\";\r\nimport LoadingIndicator from \"./components/loading-indicator/LoadingIndicator\";\r\nimport Toasts from \"./components/toasts/Toasts\";\r\nimport { Container } from \"react-bootstrap\";\r\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\r\nimport { fas } from \"@fortawesome/free-solid-svg-icons\";\r\nimport ErrorViewer from \"./components/error/ErrorViewer\";\r\nimport BasePath from \"./components/base-content/BasePath\";\r\nimport Configuration from \"./components/configuration/Configuration\";\r\n\r\nlibrary.add(fas);\r\n\r\nconst MainNav = lazy(() => import(\"./components/main-nav/MainNav\"));\r\nconst DiclaimerBanner = lazy(() => import(\"./components/disclaimer-banner/DiclaimerBanner\"));\r\n\r\ninterface IProps {\r\n readonly history: History;\r\n readonly dispatch: Dispatch>;\r\n}\r\ninterface IState {}\r\n\r\nexport default class App extends React.Component {\r\n public render(): JSX.Element {\r\n return (\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === \"localhost\" ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === \"[::1]\" ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\r\n);\r\n\r\ntype Config = {\r\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\r\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\r\n};\r\n\r\nexport function register(config?: Config) {\r\n if (process.env.REACT_APP_ENVIRONMENT === \"production\" && \"serviceWorker\" in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener(\"load\", () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n // console.log(\r\n // \"This web app is being served cache-first by a service \" +\r\n // \"worker. To learn more, visit https://bit.ly/CRA-PWA\"\r\n // );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string, config?: Config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then((registration) => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === \"installed\") {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n // console.log(\r\n // \"New content is available and will be used when all \" +\r\n // \"tabs for this page are closed. See https://bit.ly/CRA-PWA.\"\r\n // );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n // console.log(\"Content is cached for offline use.\");\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch((error) => {\r\n console.error(\"Error during service worker registration:\", error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { \"Service-Worker\": \"script\" },\r\n })\r\n .then((response) => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get(\"content-type\");\r\n if (response.status === 404 || (contentType != null && contentType.indexOf(\"javascript\") === -1)) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n // console.log(\"No internet connection found. App is running in offline mode.\");\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if (\"serviceWorker\" in navigator) {\r\n navigator.serviceWorker.ready\r\n .then((registration) => {\r\n registration.unregister();\r\n })\r\n .catch((error) => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import \"react-app-polyfill/ie11\";\r\nimport \"react-app-polyfill/stable\";\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { Store } from \"redux\";\r\nimport { Provider } from \"react-redux\";\r\nimport { createBrowserHistory, History } from \"history\";\r\nimport IStore from \"./models/IStore\";\r\nimport rootStore from \"./stores/rootStore\";\r\nimport App from \"./views/App\";\r\nimport environment from \"environment\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\nimport \"./i18n\";\r\nimport i18next from \"i18next\";\r\nimport(`./brands/${process.env.REACT_APP_BRAND}/index.scss`);\r\nrequire(\"typeface-ibm-plex-sans\");\r\n\r\ni18next.on(\"initialized\", function (options) {\r\n (async (window: Window): Promise => {\r\n const initialState: Partial = {};\r\n const history: History = createBrowserHistory({ basename: environment.route.baseRoute });\r\n const store: Store = rootStore(initialState, history);\r\n\r\n const rootEl: HTMLElement | null = document.getElementById(\"root\");\r\n const render = (Component: typeof App, el: HTMLElement | null): void => {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n el\r\n );\r\n };\r\n\r\n render(App, rootEl);\r\n })(window);\r\n});\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","import { BaseModel } from \"sjs-base-model\";\r\nimport PreventivoModel from \"./PreventivoModel\";\r\n\r\nexport default class PreventiviUtenteModel extends BaseModel {\r\n public readonly idUtente: number = 0;\r\n public readonly preventiviSimulati: PreventivoModel[] = [];\r\n\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import environment from \"environment\";\r\nimport HttpErrorResponseModel from \"../../models/HttpErrorResponseModel\";\r\nimport HttpUtility from \"../../utilities/HttpUtility\";\r\nimport { AxiosResponse } from \"axios\";\r\nimport EffectUtility from \"../../utilities/EffectUtility\";\r\nimport PreventivoModel from \"./models/PreventivoModel\";\r\nimport RicercaPreventivoViewModel from \"./models/RicercaPreventivoViewModel\";\r\nimport FormatUtility from \"utilities/FormatUtility\";\r\nimport ResponseEsitoModel from \"stores/shared/models/ResponseEsitoModel\";\r\nimport PreventiviUtenteModel from \"./models/PreventiviUtenteModel\";\r\nimport PreventivoQuestionarioModel from \"./models/PreventivoQuestionarioModel\";\r\nimport InfoUtentePreventivoModel from \"./models/InfoUtentePreventivoModel\";\r\nimport NuovoImpegnoModel from \"./models/NuovoImpegnoModel\";\r\nimport ConsensoPrivacyModel from \"stores/consenso-privacy/models/ConsensoPrivacyModel\";\r\nimport NuovoImpegnoViewModel from \"./models/NuovoImpegnoViewModel\";\r\n\r\nexport default class PreventivoEffect {\r\n public static async requestSimulazionePreventivos(\r\n filtri: RicercaPreventivoViewModel\r\n ): Promise {\r\n const endpoint: string = environment.api.simulazionePreventivo;\r\n let request = {\r\n ...filtri,\r\n isLogged: filtri.isLogged ?? false,\r\n importoRichiesto: FormatUtility.numberFromNumberWithSeparators(filtri.importoRichiesto) ?? 0,\r\n codiceTipoRichiedente: filtri.codiceTipoRichiedente,\r\n dataNascita:\r\n filtri.dataNascita.length > 0\r\n ? FormatUtility.dateInGivenFormat(filtri.dataNascita, \"YYYY-MM-DD\")\r\n : null,\r\n dataAssunzione:\r\n filtri.dataAssunzione.length > 0\r\n ? FormatUtility.dateInGivenFormat(filtri.dataAssunzione, \"YYYY-MM-DD\")\r\n : null,\r\n importoNettoRedditoMensile:\r\n FormatUtility.numberFromNumberWithSeparators(filtri.importoNettoRedditoMensile) ?? 0,\r\n importoRata: filtri.importoRata,\r\n durata: filtri.durata,\r\n idPreventivo: filtri.idPreventivo,\r\n codiceConvenzione: filtri.codiceConvenzione,\r\n informazioniUtente: new InfoUtentePreventivoModel({\r\n ...filtri.informazioniUtente,\r\n idUtente: filtri.informazioniUtente.idUtente,\r\n nome: filtri.informazioniUtente.nome,\r\n cognome: filtri.informazioniUtente.cognome,\r\n privacy: [\r\n ...filtri.informazioniUtente.privacy?.map(\r\n (privacy) =>\r\n new ConsensoPrivacyModel({\r\n ...privacy,\r\n descrizione: privacy.descrizione,\r\n isObbligatorio: privacy.isObbligatorio,\r\n codice: privacy.codice,\r\n isAccettato: privacy.isAccettato,\r\n fgMostraLanding: privacy.fgMostraLanding,\r\n })\r\n ),\r\n ],\r\n idPreventivo: filtri.informazioniUtente.idPreventivo,\r\n email: filtri.informazioniUtente.email,\r\n numeroTelefono: filtri.informazioniUtente.numeroTelefono,\r\n }),\r\n preventivoQuestionario: {\r\n //...filtri.preventivoQuestionario,\r\n categoriaAmministrativa: filtri.preventivoQuestionario.categoriaAmministrativa,\r\n amministrazione: filtri.preventivoQuestionario.amministrazione,\r\n descrizioneAmministrazione: filtri.preventivoQuestionario.decrizioneAmministrazione,\r\n fgAltriFinanziamenti: filtri.preventivoQuestionario.fgAltriFinanziamenti,\r\n altriImpegni: [\r\n ...filtri.preventivoQuestionario.altriImpegni?.map(\r\n (impegno: NuovoImpegnoViewModel) =>\r\n ({\r\n idImpegno: impegno.idImpegno,\r\n idUtente: filtri.informazioniUtente.idUtente,\r\n tipologiaImpegno: impegno.tipologiaImpegno,\r\n fgPresenzaDati: impegno.fgPresenzaDati,\r\n estinzione: impegno.estinzione,\r\n rata: FormatUtility.numberFromNumberWithSeparators(impegno.rata) ?? 0,\r\n durata: impegno.durata,\r\n dataInizio:\r\n impegno.dataInizio.length > 0\r\n ? FormatUtility.dateInGivenFormat(impegno.dataInizio, \"YYYY-MM-DD\")\r\n : undefined,\r\n tan: FormatUtility.numberFromNumberWithSeparators(impegno.tan) ?? 0,\r\n dataChiusuraCe:\r\n impegno.dataChiusuraCe.length > 0\r\n ? FormatUtility.dateInGivenFormat(impegno.dataChiusuraCe, \"YYYY-MM-DD\")\r\n : null,\r\n debitoResiduo: FormatUtility.numberFromNumberWithSeparators(impegno.debitoResiduo) ?? 0,\r\n ordineInserimento: impegno.ordineInserimento,\r\n istitutoFinanziario: impegno.istitutoFinanziario,\r\n istitutoFinanziarioValore: impegno.istitutoFinanziarioValore,\r\n } as NuovoImpegnoModel)\r\n ),\r\n ] as NuovoImpegnoModel[],\r\n } as PreventivoQuestionarioModel,\r\n };\r\n // console.log(\"requestSimulazionePreventivos effetct \", request);\r\n return EffectUtility.postToModel(PreventiviUtenteModel, endpoint, request);\r\n }\r\n\r\n public static async requestPreventivos(): Promise {\r\n const endpoint: string = environment.api.preventivo;\r\n return EffectUtility.getToModel(PreventivoModel, endpoint);\r\n }\r\n\r\n public static async savePreventivo(\r\n PreventivoModel: PreventivoModel\r\n ): Promise {\r\n const endpoint: string = environment.api.salvaPreventivo;\r\n\r\n const input: PreventivoModel = {\r\n ...PreventivoModel,\r\n dataAssunzione: PreventivoModel.dataAssunzione.length > 0 ? PreventivoModel.dataAssunzione : null,\r\n } as PreventivoModel;\r\n return EffectUtility.postToModel(ResponseEsitoModel, endpoint, input);\r\n }\r\n\r\n public static async requestGetFiltri(): Promise {\r\n const endpoint: string = environment.api.getFiltriPreventivo;\r\n return EffectUtility.getToModel(RicercaPreventivoViewModel, endpoint);\r\n }\r\n\r\n public static async setRegistrazioneAnonima(\r\n filtri: RicercaPreventivoViewModel\r\n ): Promise {\r\n const endpoint: string = environment.api.registrazioneAnonima;\r\n let request = {\r\n ...filtri,\r\n isLogged: filtri.isLogged ?? false,\r\n importoRichiesto: FormatUtility.numberFromNumberWithSeparators(filtri.importoRichiesto) ?? 0,\r\n codiceTipoRichiedente: filtri.codiceTipoRichiedente,\r\n dataNascita:\r\n filtri.dataNascita.length > 0\r\n ? FormatUtility.dateInGivenFormat(filtri.dataNascita, \"YYYY-MM-DD\")\r\n : null,\r\n dataAssunzione:\r\n filtri.dataAssunzione.length > 0\r\n ? FormatUtility.dateInGivenFormat(filtri.dataAssunzione, \"YYYY-MM-DD\")\r\n : null,\r\n importoNettoRedditoMensile:\r\n FormatUtility.numberFromNumberWithSeparators(filtri.importoNettoRedditoMensile) ?? 0,\r\n importoRata: filtri.importoRata,\r\n durata: filtri.durata,\r\n idPreventivo: filtri.idPreventivo,\r\n codiceConvenzione: filtri.codiceConvenzione,\r\n informazioniUtente: new InfoUtentePreventivoModel({\r\n ...filtri.informazioniUtente,\r\n idUtente: filtri.informazioniUtente.idUtente,\r\n nome: filtri.informazioniUtente.nome,\r\n cognome: filtri.informazioniUtente.cognome,\r\n privacy: [\r\n ...filtri.informazioniUtente.privacy?.map(\r\n (privacy) =>\r\n new ConsensoPrivacyModel({\r\n ...privacy,\r\n descrizione: privacy.descrizione,\r\n isObbligatorio: privacy.isObbligatorio,\r\n codice: privacy.codice,\r\n isAccettato: privacy.isAccettato,\r\n fgMostraLanding: privacy.fgMostraLanding,\r\n })\r\n ),\r\n ],\r\n idPreventivo: filtri.informazioniUtente.idPreventivo,\r\n email: filtri.informazioniUtente.email,\r\n numeroTelefono: filtri.informazioniUtente.numeroTelefono,\r\n }),\r\n preventivoQuestionario: {\r\n //...filtri.preventivoQuestionario,\r\n categoriaAmministrativa: filtri.preventivoQuestionario.categoriaAmministrativa,\r\n amministrazione: filtri.preventivoQuestionario.amministrazione,\r\n descrizioneAmministrazione: filtri.preventivoQuestionario.decrizioneAmministrazione,\r\n fgAltriFinanziamenti: filtri.preventivoQuestionario.fgAltriFinanziamenti,\r\n altriImpegni: [\r\n ...filtri.preventivoQuestionario.altriImpegni?.map(\r\n (impegno: NuovoImpegnoViewModel) =>\r\n ({\r\n // ...impegno,\r\n idImpegno: impegno.idImpegno,\r\n idUtente: filtri.informazioniUtente.idUtente,\r\n tipologiaImpegno: impegno.tipologiaImpegno,\r\n fgPresenzaDati: impegno.fgPresenzaDati,\r\n estinzione: impegno.estinzione,\r\n rata: FormatUtility.numberFromNumberWithSeparators(impegno.rata) ?? 0,\r\n durata: impegno.durata,\r\n dataInizio:\r\n impegno.dataInizio.length > 0\r\n ? FormatUtility.dateInGivenFormat(\"01/\" + impegno.dataInizio, \"YYYY-MM-DD\")\r\n : undefined,\r\n tan: FormatUtility.numberFromNumberWithSeparators(impegno.tan) ?? 0,\r\n dataChiusuraCe:\r\n impegno.dataChiusuraCe.length > 0\r\n ? FormatUtility.dateInGivenFormat(impegno.dataChiusuraCe, \"YYYY-MM-DD\")\r\n : null,\r\n debitoResiduo: FormatUtility.numberFromNumberWithSeparators(impegno.debitoResiduo) ?? 0,\r\n ordineInserimento: impegno.ordineInserimento,\r\n istitutoFinanziario: impegno.istitutoFinanziario,\r\n istitutoFinanziarioValore: impegno.istitutoFinanziarioValore,\r\n } as NuovoImpegnoModel)\r\n ),\r\n ] as NuovoImpegnoModel[],\r\n } as PreventivoQuestionarioModel,\r\n };\r\n return EffectUtility.postToModel(RicercaPreventivoViewModel, endpoint, request);\r\n }\r\n /**\r\n * This is only to trigger an error api response so we can use it for an example in the AboutPage\r\n */\r\n public static async requestError(): Promise {\r\n const endpoint: string = environment.api.errorExample;\r\n const response: AxiosResponse | HttpErrorResponseModel = await HttpUtility.get(endpoint);\r\n\r\n if (response instanceof HttpErrorResponseModel) {\r\n return response;\r\n }\r\n\r\n return response.data;\r\n }\r\n}\r\n","import HttpErrorResponseModel from \"../../models/HttpErrorResponseModel\";\r\nimport ActionUtility from \"../../utilities/ActionUtility\";\r\nimport { ReduxDispatch } from \"../../models/ReduxProps\";\r\nimport IStore from \"../../models/IStore\";\r\nimport RicercaPreventivoViewModel from \"./models/RicercaPreventivoViewModel\";\r\nimport PreventivoEffect from \"./PreventivoEffect\";\r\nimport PreventivoModel from \"./models/PreventivoModel\";\r\nimport ResponseEsitoModel from \"stores/shared/models/ResponseEsitoModel\";\r\nimport PreventiviUtenteModel from \"./models/PreventiviUtenteModel\";\r\nimport PreventivoQuestionarioViewModel from \"./models/PreventivoQuestionarioViewModel\";\r\ntype ActionUnion =\r\n | undefined\r\n | HttpErrorResponseModel\r\n | RicercaPreventivoViewModel[]\r\n | PreventivoModel[]\r\n | PreventiviUtenteModel\r\n | ResponseEsitoModel\r\n | RicercaPreventivoViewModel;\r\n\r\nexport default class PreventivoAction {\r\n public static readonly REQUEST_PREVENTIVOS: string = \"PreventivoAction.REQUEST_PREVENTIVOS\";\r\n public static readonly REQUEST_PREVENTIVOS_FINISHED: string = \"PreventivoAction.REQUEST_PREVENTIVOS_FINISHED\";\r\n\r\n public static readonly SAVE_PREVENTIVOS: string = \"PreventivoAction.SAVE_PREVENTIVOS\";\r\n public static readonly SAVE_PREVENTIVOS_FINISHED: string = \"PreventivoAction.SAVE_PREVENTIVOS_FINISHED\";\r\n\r\n public static readonly REQUEST_SIMULAZIONE_PREVENTIVOS: string = \"PreventivoAction.REQUEST_SIMULAZIONE_PREVENTIVOS\";\r\n public static readonly REQUEST_SIMULAZIONE_PREVENTIVOS_FINISHED: string =\r\n \"PreventivoAction.REQUEST_SIMULAZIONE_PREVENTIVOS_FINISHED\";\r\n\r\n public static readonly SET_FILTRI_RICERCA_PREVENTIVO: string = \"PreventivoAction.SET_FILTRI_RICERCA_PREVENTIVO\";\r\n public static readonly SET_FILTRI_RICERCA_PREVENTIVO_FINISHED: string =\r\n \"PreventivoAction.SET_FILTRI_RICERCA_PREVENTIVO_FINISHED\";\r\n\r\n public static readonly RESET_RISULTATI_RICERCA_PREVENTIVO: string =\r\n \"PreventivoAction.RESET_RISULTATI_RICERCA_PREVENTIVO\";\r\n public static readonly RESET_RISULTATI_RICERCA_PREVENTIVO_FINISHED: string =\r\n \"PreventivoAction.RESET_RISULTATI_RICERCA_PREVENTIVO_FINISHED\";\r\n\r\n public static readonly RESET_SIMULAZIONE_PREVENTIVO: string = \"PreventivoAction.RESET_SIMULAZIONE_PREVENTIVO\";\r\n public static readonly RESET_SIMULAZIONE_PREVENTIVO_FINISHED: string =\r\n \"PreventivoAction.RESET_SIMULAZIONE_PREVENTIVO_FINISHED\";\r\n\r\n public static readonly SET_FILTRI_QUESTIONARIO_RICERCA_PREVENTIVO: string =\r\n \"PreventivoAction.SET_FILTRI_QUESTIONARIO_RICERCA_PREVENTIVO\";\r\n public static readonly SET_FILTRI_QUESTIONARIO_RICERCA_PREVENTIVO_FINISHED: string =\r\n \"PreventivoAction.SET_FILTRI_QUESTIONARIO_RICERCA_PREVENTIVO_FINISHED\";\r\n\r\n public static readonly GET_FILTRI_RICERCA_PREVENTIVO: string = \"PreventivoAction.GET_FILTRI_RICERCA_PREVENTIVO\";\r\n public static readonly GET_FILTRI_RICERCA_PREVENTIVO_FINISHED: string =\r\n \"PreventivoAction.GET_FILTRI_RICERCA_PREVENTIVO_FINISHED\";\r\n\r\n public static readonly SET_REGISTRAZIONE_ANONIMA: string = \"PreventivoAction.SET_REGISTRAZIONE_ANONIMA\";\r\n public static readonly SET_REGISTRAZIONE_ANONIMA_FINISHED: string =\r\n \"PreventivoAction.SET_REGISTRAZIONE_ANONIMA_FINISHED\";\r\n\r\n public static readonly REQUEST_ERROR: string = \"PreventivoAction.REQUEST_ERROR\";\r\n public static readonly REQUEST_ERROR_FINISHED: string = \"PreventivoAction.REQUEST_ERROR_FINISHED\";\r\n\r\n public static requestSimulazionePreventivos(filtri: RicercaPreventivoViewModel): any {\r\n // console.log(\"action filtri \", filtri);\r\n return async (dispatch: ReduxDispatch, getState: () => IStore): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n PreventivoAction.REQUEST_SIMULAZIONE_PREVENTIVOS,\r\n PreventivoEffect.requestSimulazionePreventivos,\r\n filtri\r\n );\r\n };\r\n }\r\n\r\n public static requestPreventivos(): any {\r\n return async (dispatch: ReduxDispatch, getState: () => IStore): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n PreventivoAction.REQUEST_PREVENTIVOS,\r\n PreventivoEffect.requestPreventivos\r\n );\r\n };\r\n }\r\n\r\n public static salvaPreventivo(preventivoSelezionato: PreventivoModel): any {\r\n return async (dispatch: ReduxDispatch, getState: () => IStore): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n PreventivoAction.SAVE_PREVENTIVOS,\r\n PreventivoEffect.savePreventivo,\r\n preventivoSelezionato\r\n );\r\n };\r\n }\r\n\r\n public static setFiltriRicercaPreventivo(ricercaPreventivo: RicercaPreventivoViewModel): any {\r\n return ActionUtility.createAction(\r\n PreventivoAction.SET_FILTRI_RICERCA_PREVENTIVO_FINISHED,\r\n ricercaPreventivo\r\n );\r\n }\r\n\r\n public static resetRisultatiRicercaPreventivo(): any {\r\n return ActionUtility.createAction(PreventivoAction.RESET_RISULTATI_RICERCA_PREVENTIVO_FINISHED);\r\n }\r\n\r\n public static resetPreventivoSimulazione(): any {\r\n return ActionUtility.createAction(PreventivoAction.RESET_SIMULAZIONE_PREVENTIVO_FINISHED);\r\n }\r\n\r\n public static setFiltriQuestionarioRicercaPreventivo(ricercaPreventivo: PreventivoQuestionarioViewModel): any {\r\n return ActionUtility.createAction(\r\n PreventivoAction.SET_FILTRI_QUESTIONARIO_RICERCA_PREVENTIVO_FINISHED,\r\n ricercaPreventivo\r\n );\r\n }\r\n\r\n public static requestGetFiltri(): any {\r\n return async (dispatch: ReduxDispatch, getState: () => IStore): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n PreventivoAction.GET_FILTRI_RICERCA_PREVENTIVO,\r\n PreventivoEffect.requestGetFiltri\r\n );\r\n };\r\n }\r\n\r\n public static setRegistrazioneAnonima(filtri: RicercaPreventivoViewModel): any {\r\n return async (dispatch: ReduxDispatch, getState: () => IStore): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n PreventivoAction.SET_REGISTRAZIONE_ANONIMA,\r\n PreventivoEffect.setRegistrazioneAnonima,\r\n filtri\r\n );\r\n };\r\n }\r\n\r\n public static requestError(): any {\r\n return async (dispatch: ReduxDispatch, getState: () => IStore): Promise => {\r\n await ActionUtility.createThunkEffect(\r\n dispatch,\r\n PreventivoAction.REQUEST_ERROR,\r\n PreventivoAction.requestError\r\n );\r\n };\r\n }\r\n}\r\n","import { BaseModel } from \"sjs-base-model\";\r\nimport ConsensoPrivacyModel from \"stores/consenso-privacy/models/ConsensoPrivacyModel\";\r\n\r\nexport default class InfoUtentePreventivoModel extends BaseModel {\r\n public readonly idUtente: number = 0;\r\n public readonly nome: string = \"\";\r\n public readonly cognome: string = \"\";\r\n public readonly privacy: ConsensoPrivacyModel[] = [] as ConsensoPrivacyModel[];\r\n public readonly idPreventivo: number = 0;\r\n public readonly email: string = \"\";\r\n public readonly numeroTelefono: string = \"\";\r\n\r\n /*\r\n * Client-Side properties (Not from API)\r\n */\r\n // public noneApiProperties: unknown = null;\r\n constructor(data: Partial) {\r\n super();\r\n\r\n this.update(data);\r\n }\r\n}\r\n","import environment, { Environment } from \"../../../environments/base\";\r\n\r\n/*\r\n * base.ts is the default environment for production.\r\n * You shouldn't have override anything.\r\n */\r\nconst baseApi = \"https://cqs.csebo.it/italcredi_easymoney/services\";\r\nconst env = environment(baseApi);\r\n\r\nconst productionEnv: Environment = {\r\n ...env,\r\n // override anything that gets added from base.\r\n basePathDeploy: \"/italcredi_easymoney\",\r\n visualizzaCampiBonifico: true,\r\n visualizzaCampiDatiReddito: true,\r\n attivaScriptTracciamento: true,\r\n attivaCalcoloRedditualeID289: true,\r\n attivaAdeguataVerifica: false,\r\n richiestaSteps: [\"ANAG\", \"REDD\", \"PREST\", \"DOC\", \"RICON\", \"FIRMA\", \"CONCLUDI\", \"END\"],\r\n attivaCampiNomeCognome: true,\r\n attivaPreSelezionePensionato: false,\r\n attivaPreselezioneCatAmmin: true,\r\n visualizzaAltriImpegniNelTabPrestiti: true,\r\n attivaGestioneConsensi: true,\r\n visualizzaDisclaimerPreventivo: true,\r\n};\r\n\r\nexport default productionEnv;\r\n","/*\r\n * Base is the default environment for production.\r\n */\r\nexport default function baseEnv(baseApi: string) {\r\n return {\r\n route: {\r\n baseRoute: \"/\",\r\n },\r\n api: {\r\n currentVersion: `${baseApi}/v1/v1`,\r\n errorExample: \"https://httpstat.us/520\",\r\n traduzione: `${baseApi}/v1/v1/traduzione`,\r\n menu: `${baseApi}/v1/v1/menu`,\r\n contenuto: `${baseApi}/v1/v1/contenuto`,\r\n tipoRichiedente: `${baseApi}/v1/v1/tipo-richiedente`,\r\n simulazionePreventivo: `${baseApi}/v1/v1/preventivo/simula`,\r\n preventivo: `${baseApi}/v1/v1/preventivo`,\r\n salvaPreventivo: `${baseApi}/v1/v1/preventivo/salva-preventivo`,\r\n consensoPrivacy: `${baseApi}/v1/v1/consenso-privacy`,\r\n // login: `${baseApi}/v1/v1/login`,\r\n refreshToken: `${baseApi}/v1/v1/refresh-token`,\r\n registrazione: `${baseApi}/v1/v1/cqsonline-registra`,\r\n confermaRegistrazione: `${baseApi}/v1/v1/registra/conferma`,\r\n verificaToken: `${baseApi}/v1/v1/registra/verifica-token`,\r\n verificaRichiesta: `${baseApi}/v1/v1/richiesta/verifica-richiesta`,\r\n comuniNascita: `${baseApi}/v1/v1/lookup/recupera-comune-nascita`,\r\n tipoDocumento: `${baseApi}/v1/v1/lookup/recupera-tipi-documento`,\r\n cittadinanza: `${baseApi}/v1/v1/lookup/recupera-lista-cittadinanze`,\r\n nazione: `${baseApi}/v1/v1/lookup/recupera-nazioni`,\r\n tipoIndirizzo: `${baseApi}/v1/v1/lookup/recupera-tipi-indirizzo`,\r\n amministrazione: `${baseApi}/v1/v1/lookup/recupera-amministrazioni`,\r\n comuniResidenza: `${baseApi}/v1/v1/lookup/recupera-comune-residenza`,\r\n fondo: `${baseApi}/v1/v1/lookup/recupera-fondo-pensione`,\r\n getRichiesta: `${baseApi}/v1/v1/richiesta/recupera-crea-richiesta`,\r\n saveStepRichiesta: `${baseApi}/v1/v1/richiesta/aggiorna-step`,\r\n getDatiAnagrafici: `${baseApi}/v1/v1/dati-anagrafici/recupera`,\r\n saveDatiAnagrafici: `${baseApi}/v1/v1/dati-anagrafici/salva`,\r\n getDatiReddito: `${baseApi}/v1/v1/dati-reddito/recupera`,\r\n saveDatiReddito: `${baseApi}/v1/v1/dati-reddito/salva`,\r\n getAltriPrestiti: `${baseApi}/v1/v1/altri-prestiti/recupera`,\r\n saveAltriPrestiti: `${baseApi}/v1/v1/altri-prestiti/salva`,\r\n getDocumenti: `${baseApi}/v1/v1/documenti/recupera`,\r\n saveDocumento: `${baseApi}/v1/v1/documenti/salva`,\r\n getDocumentoPianoAmmortamento: `${baseApi}/v1/v1/preventivo/recupera-documento-piano-ammortamento`,\r\n getDocumento: `${baseApi}/v1/v1/documenti/recupera-documento`,\r\n deleteDocumento: `${baseApi}/v1/v1/documenti/elimina`,\r\n avviaProcessoFirma: `${baseApi}/v1/v1/firma/avvia-processo`,\r\n annullaProcessoFirma: `${baseApi}/v1/v1/firma/annulla-processo`,\r\n getStatoProcessoFirma: `${baseApi}/v1/v1/firma/stato-processo`,\r\n avviaProcessoRiconoscimento: `${baseApi}/v1/v1/riconoscimento/avvia-processo`,\r\n // annullaProcessoRiconoscimento: `${baseApi}/v1/v1/riconoscimento/annulla-processo`,\r\n getStatoProcessoRiconoscimento: `${baseApi}/v1/v1/riconoscimento/stato-processo`,\r\n getInfoUtente: `${baseApi}/v1/v1/info-utente`,\r\n deleteUtente: `${baseApi}/v1/v1/disabilita-utente`,\r\n credenzialiRecupero: `${baseApi}/v1/v1/credenziali/recupero`,\r\n credenzialiVerificaToken: `${baseApi}/v1/v1/credenziali/verifica-token`,\r\n credenzialiAggiorna: `${baseApi}/v1/v1/credenziali/aggiorna`,\r\n //login: `${baseApi}/login`,\r\n //contents: `${baseApi}/contents/:sectionId`,\r\n //content: `${baseApi}/content/:contentId`,\r\n //campo non necessario\r\n // qualifica: `${baseApi}/v1/v1/lookup/recupera-tipo-qualifica`,\r\n\r\n //#region CQSonline\r\n getDocumentiDaCaricareCQSonline: `${baseApi}/v1/v1/cqsonline-documenti/recupera-da-caricare`,\r\n getDocumentiDaFirmareCQSonline: `${baseApi}/v1/v1/cqsonline-documenti/recupera-da-firmare`,\r\n saveDocumentoCQSonline: `${baseApi}/v1/v1/cqsonline-documenti/salva`,\r\n saveSezioneDocumentiCQSonline: `${baseApi}/v1/v1/cqsonline-documenti/salva-sezione`,\r\n getDocumentoCQSonline: `${baseApi}/v1/v1/cqsonline-documenti/recupera`,\r\n deleteDocumentoCQSonline: `${baseApi}/v1/v1/cqsonline-documenti/elimina`,\r\n tipoDocumentoCQSonline: `${baseApi}/v1/v1/cqsonline-lookup/recupera-tipi-documento`,\r\n getTipoCodiceFiscaleCQSonline: `${baseApi}/v1/v1/cqsonline-lookup/recupera-tipo-codice-fiscale`,\r\n avvioFirmaCQSonline: `${baseApi}/v1/v1/cqsonline-firma/avvia-processo`,\r\n annullaFirmaCQSonline: `${baseApi}/v1/v1/cqsonline-firma/annulla-processo`,\r\n statoFirmaCQSonline: `${baseApi}/v1/v1/cqsonline-firma/stato-processo`,\r\n avviaRiconoscimentoCQSonline: `${baseApi}/v1/v1/cqsonline-riconoscimento/avvia-riconoscimento`,\r\n annullaRiconoscimentoCQSonline: `${baseApi}/v1/v1/cqsonline-riconoscimento/annulla-riconoscimento`,\r\n getStatoRiconoscimentoCQSonline: `${baseApi}/v1/v1/cqsonline-riconoscimento/stato-riconoscimento`,\r\n credenzialiRecuperoCQSonline: `${baseApi}/v1/v1/cqsonline-credenziali/recupero`,\r\n credenzialiVerificaTokenCQSonline: `${baseApi}/v1/v1/cqsonline-credenziali/verifica-token`,\r\n credenzialiAggiornaCQSonline: `${baseApi}/v1/v1/cqsonline-credenziali/aggiorna`,\r\n creaPraticaCQSonline: `${baseApi}/v1/v1/cqsonline-pratica/crea-pratica`,\r\n rinvioEmailRegistrazioneCQSonline: `${baseApi}/v1/v1/cqsonline-rinvio-email`,\r\n verificaPreventivo: `${baseApi}/v1/v1/richiesta/verifica-preventivo`,\r\n cancellaPreventivoRichiesta: `${baseApi}/v1/v1/richiesta/cancella-preventivo-richiesta`,\r\n getModalitaErogazione: `${baseApi}/v1/v1/cqsonline-lookup/recupera-modalita-erogazione`,\r\n getDocumentiIstruttoriaDaFirmareCQSonline: `${baseApi}/v1/v1/cqsonline-documenti/recupera-da-firmare-istruttoria`,\r\n getInfoPratica: `${baseApi}/v1/v1/cqsonline-pratica/info-pratica`,\r\n login: `${baseApi}/v1/v1/cqsonline-autenticazione/login`,\r\n getTipoPensione: `${baseApi}/v1/v1/cqsonline-lookup/recupera-tipologia-pensione`,\r\n getConfigurazione: `${baseApi}/v1/v1/configurazioni/recupera`,\r\n getConcludi: `${baseApi}/v1/v1/cqsonline-concludi/recupera-dichiarazioni`,\r\n saveConcludi: `${baseApi}/v1/v1/cqsonline-concludi/salva`,\r\n getCategoriaAmministrativa: `${baseApi}/v1/v1/lookup/recupera-categorie-amministrative`,\r\n getTipologiaImpegni: `${baseApi}/v1/v1/cqsonline-lookup/recupera-tipologie-impegni`,\r\n getImpegni: `${baseApi}/v1/v1/altri-prestiti/get-impegni`,\r\n saveImpegni: `${baseApi}/v1/v1/altri-prestiti/salva-impegni`,\r\n getFiltriPreventivo: `${baseApi}/v1/v1/preventivo/get-filtri`,\r\n vociAmministrazioneConvenzione: `${baseApi}/v1/v1/lookup/recupera-voci-amministrative`,\r\n deleteDocumentiGeneratiCQSonline: `${baseApi}/v1/v1/cqsonline-documenti/cancella-documenti-generati`,\r\n registrazioneAnonima: `${baseApi}/v1/v1/preventivo/salva-recapiti-utente`,\r\n getQuoteSocietarie: `${baseApi}/v1/v1/cqsonline-lookup/recupera-tipologie-quote-societa`,\r\n getImportiIntermediari: `${baseApi}/v1/v1/cqsonline-lookup/recupera-importi-rapporti-intermediari`,\r\n getAdeguataVerifica: `${baseApi}/v1/v1/cqsonline-adeguata-verifica/recupera`,\r\n saveAdeguataVerifica: `${baseApi}/v1/v1/cqsonline-adeguata-verifica/salva`,\r\n deleteImpegni: `${baseApi}/v1/v1/altri-prestiti/delete-impegni`,\r\n getIstitutiFinanziari: `${baseApi}/v1/v1/lookup/recupera-istituto-finanziario`,\r\n getconsensoPrivacyUtente: `${baseApi}/v1/v1/recupera-consenso-privacy-utente`,\r\n saveConsesiPrivacyUtente: `${baseApi}/v1/v1/salva-consensi-privacy-utente`,\r\n trasferisciConsesiCqsWeb: `${baseApi}/v1/v1/cqsonline-documenti/trasferisci-consensi-cqsWeb`,\r\n // refreshToken: `${baseApi}/v1/v1/cqsonline-autenticazione/refresh-token`,\r\n // getInfoUtente: `${baseApi}/v1/v1/cqsonline-autenticazione/info-utente`,\r\n // deleteUtente: `${baseApi}/v1/v1/cqsonline-autenticazione/disabilita-utente`,\r\n\r\n //#endregion CQSonline\r\n },\r\n lang: \"it-IT\",\r\n isProduction: true,\r\n isDevelopment: false,\r\n isTesting: false,\r\n recaptchaValidation: false,\r\n recaptchaV2Key: \"6LfK6fAUAAAAAHILR9hAHoXG-ITTbwXfX3AeM47q\",\r\n recaptchaV2InvisibleKey: \"6LfoTvEUAAAAAOXCzKUuNZn46ysP6MqeLAAbSSVk\",\r\n recaptchaV3Key: \"6Lccl64ZAAAAAJgW_Le0jDOWMk85gLX8BnVOqUXY\",\r\n richiestaSteps: [\"ANAG\", \"REDD\", \"PREST\", \"DOC\", \"RICON\", \"FIRMA\", \"CONCLUDI\", \"END\"],\r\n codTipoRichiedentePensionato: \"P\",\r\n codTipoRichiedenteDipendentePrivato: \"DPR\",\r\n codTipoRichiedenteDipendentePubblico: \"DPU\",\r\n codStatoRichiestaInCompilazione: \"A\",\r\n codNazioneItalia: \"Z000\",\r\n richiestaUploadFileSizeLimit: 5242880, //5mb //2097152, 2mb\r\n richiestaUploadFileAcceptedTypes: [\".pdf\", \".jpg\", \".png\", \".doc\", \".docx\"],\r\n richiestaUploadFileMimeTypes: [\r\n \"application/pdf\",\r\n \"image/jpeg\",\r\n \"image/png\",\r\n \"application/msword\",\r\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\r\n ],\r\n basePathDeploy: \"\",\r\n visualizzaCampiBonifico: false,\r\n visualizzaCampiDatiReddito: false,\r\n attivaScriptTracciamento: false,\r\n attivaCalcoloRedditualeID289: false,\r\n attivaAdeguataVerifica: false,\r\n attivaCampiNomeCognome: false,\r\n attivaPreSelezionePensionato: true,\r\n attivaPreselezioneCatAmmin: false,\r\n visualizzaAltriImpegniNelTabPrestiti: false,\r\n attivaGestioneConsensi: false,\r\n visualizzaDisclaimerPreventivo: false,\r\n };\r\n}\r\n\r\nexport type Environment = ReturnType;\r\n"],"sourceRoot":""}